Further discussion on quantities and units

 
All,

The weights and units discussion implicitly brings up a lot of issues
that have to do with syntax, expressiveness of the language needed for
product development modeling and whether our effort should be restricted
to OWL 2.  Expressiveness for product modeling includes both class
definition constructions and integration with type systems. I am not
sure that DL currently has what is needed, more on this later.  Reading
XML is like reading machine language.  I think that we ought to adopt
some Manchester style syntax and should make use of UML style graphical
syntax. I would be interested in any comments on what follows.  The
following illustrates how I think about quantities and units with some
suggestions for notation.

I will use a pseudo Manchester OWL syntax for a weight example.  First
two relations:

	Hasweight : PhysicalObject -> Weight

	Inpounds : Weight -> Numbers

The composition is written in infix notation from right to left as:
	Inpounds o hasweight : PhysicalObject -> Numbers

and one has:
	<p, k> : Inpounds o hasweight  IFF 
exists w : Weight, <p,w> : hasweight AND <w,k> : inpounds

One wants to be able to define the class of all physical objects with a
specific weigh k1 in pounds and needs a class construction for this.  I
believe this class construction is a DL universal restriction.  The
class construction is written in pseudo Manchester OWL syntax with its
FOL semantics below.  

	hasweight   inpounds value k1

which translates into FOL.  Here, I use an infix notation <a,b> : X
rather than X(a,b) as concrete syntax.

	Any p. (any w. <p,w> : hasWeight AND exists k <w, k> : inpound
and k = k1)

One could also use a 'set constructor' notation

	{ p |  any w. <p,w> : hasWeight AND exists k <w, k> : inpound
and k = k1   }

Conrad suggests that this could be written in CLIF as:

  (forall (p)
     (iff (your-class-construction p)
          (exists (w)
             (and (hasWeight p w)
                  (inpounds w k1)))))



The issues for product development expressiveness include both class
definition constructions and integration with type systems.  
Further, one could express relations such as 

	Inpounds (a + b) = inpounds (a) + inpounds(b)

where a, b are variables or universally quantified statements and "+" is
an operation with + <Weight,Weight> -> Numbers.  

I am using a tuple notation for the product type/class.  Expressing an
additive property for inpounds is much weaker than identifying inpounds
with "+".  Also, the expression "a + b" requires a lot of discussion.
It is not obvious what it means.  I think that what I am suggesting is
consistent with viewing Weight as having a manifold structure with
operations on the manifold and with functions such as "inpounds" that
take data values.

Received on Wednesday, 9 July 2008 16:05:29 UTC