Re: Further discussion on quantities and units

Dear Henson,

I have some thoughts related to your interesting e-mail (I have changed
"weight" to "mass" :)):

1) Your approach is in line with the Tim Berners-Lee approach to units, as
corrected (there were some minor errors), and extended to be consistent with
the VIM and ISO 31 terminology, by the W3PM wiki.

2) I agree that "composition" (the mathematical and MathML term - called
"chaining" by Dan Connolly) is a useful operation, and needs to be available
to us in the RDF/OWL world.

3) The composition of hasMass: PhysicalObject -> Mass and inPounds: Mass ->
Numbers to give hasMassInPounds: PhysicalObject -> Numbers is probably
useful only in special circumstances.

In a data sheet, a cell may be labelled "mass in pounds". Hence the composed
property hasMassInPounds defines the content of the cell, and the
composition relationship relates the property back to the standard
properties in the ontology.

However, I suggest that such a composed property, which has explicit units,
should not be used in engineering constraints.

4) You say:

>One wants to be able to define the class of all physical objects with a
specific mass k1 in pounds.
 
I suggest that this is not correctly formulated. It should be:

-One wants to be able to define the class of all physical objects with a
specific mass M1. The mass M1 can be expressed as K1 pounds or as R1 kilograms.

The constraint should be defined in terms of quantities (i.e. masses in this
case), and not numbers. This is recommended in the NIST SI Guide
(http://physics.nist.gov/cuu/pdf/sp811.pdf).

5) I agree that RDF as XML is not easily person readable. Nonetheless the
class "things with mass M1" is represented straightforwardly as:

 <owl:Class rdf:about="#ThingsWithMassM1">
  <owl:equivalentClass>
   <owl:Restriction>
    <owl:onProperty rdf:resource="#hasMass"/>
    <owl:hasValue rdf:resource="#M1"/>
   </owl:Restriction>
  </owl:equivalentClass>
 </owl:Class>

The quantity M1 can be defined as:

 <quantity:Mass rdf:about="#M1>
  <scale:inPounds>K1</scale:inPounds>
 </quantity:Mass>

Note that the engineering constraint is separate from the definition of the
quantity, so that an engineer working in SI can express the quantities
differently, but leave the constraints unchanged. This not possible if the
two are rolled up together as:

 <owl:Class rdf:about="#ThingsWithMassInPoundsK1">
  <owl:equivalentClass>
   <owl:Restriction>
    <owl:onProperty rdf:resource="#hasMassInPounds"/>
    <owl:hasValue>K1</hasValue>
   </owl:Restriction>
  </owl:equivalentClass>
 </owl:Class>

In practice, a constraint will not be expressed as an exact value, but as a
value from a range M1-D to M1+D say. This would be:

 <owl:Class rdf:about="#ThingsWithMassM1PlusOrMinusD">
  <owl:equivalentClass>
   <owl:Restriction>
    <owl:onProperty rdf:resource="#hasMass"/>
    <owl:allValuesFrom rdf:resource="#M1PlusOrMinusD"/>
   </owl:Restriction>
  </owl:equivalentClass>
 </owl:Class>

It is important that we can defined the quantity range M1PlussOrMinusD.

6) I assume that where you wrote "+ <Weight,Weight> -> Numbers", you meant:

 +M <Mass,Mass> -> Mass

There is a similar, but different, + operator for Reals:

 +R <Reals,Reals> -> Reals

Best regards,
David

At 11:04 09/07/2008 -0500, you wrote:
>
> 
>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.
>
>
>

============================================================
David Leal
CAESAR Systems Limited
29 Somertrees Avenue
Lee London SE12 0BS
tel:      +44 (0)20 8857 1095
mob:      +44 (0)77 0702 6926
e-mail:   david.leal@caesarsystems.co.uk
web site: http://www.caesarsystems.co.uk
============================================================

Received on Thursday, 10 July 2008 09:07:11 UTC