- From: Tim Berners-Lee <timbl@w3.org>
 - Date: Thu, 28 Sep 2006 17:06:20 -0400
 - To: Danny Ayers <danny.ayers@gmail.com>
 - Cc: "Elisa F. Kendall" <ekendall@sandsoft.com>, "Robert Dodier" <robert.dodier@gmail.com>, semantic-web@w3.org, "Evan Wallace" <ewallace@cme.nist.gov>
 
While
       box1  exterms:mass  [ex:value  2.4; exterms:units  
exunits:kilograms] .
  might seem like a straightforward way, it turns out it is a trap!
Presumably this one could write too
       box1 exterms:mass  [ex:value  2.4; exterms:units  
exunits:kilograms] ;
	   exterms:mass  [ex:value  2400.0; exterms:units exunits:grams] .
You would expect mass to be a functional property, to the two Bnodes  
must
be owl:sameAs each other, so we can conclude that the masses are the  
same:
       box1 exterms:mass  [
			ex:value  2.4;
			exterms:units exunits:kilograms;
	   		ex:value  2400.0;
			exterms:units exunits:grams]
bzzzt! tilt! that means we have a mass with two values and two units.
What's wrong with this picture?:
       box1 exterms:mass  [
			ex:value  2.4, 2400.0;
			exterms:units exunits:kilograms, exunits:grams]
A much *better way* is to use the unit as a connecting predicate.
       box1  exterms:mass   [ exunits:kilograms 2.4 ].
You can then write quite validly
       box1  exterms:mass   [ exunits:grams 2400.0;   
exunits:kilograms 2.4   ].
This takes less space and can be easily manipulated, and doesn't  
throw up
horrible errors.
A unit kg is the relationship between 3kg and 3.
Presumably also the relationship between 3 and 3[kg^-1] but that is  
another story.
It works out nicely with path syntax in N3,  ! for forward and ^ for  
backward,
    box1!exterms:mass!exunits:kilograms        is the mass in kg  [ie  
a number]
and     2.4^exunits:kg                   is a mass.
Tim
See http://www.w3.org/DesignIssues/InterpretationProperties.html for  
some 6 year old ramblings on similar properties for datatypes and  
languages.
  Also http://ksl.stanford.edu/knowledge-sharing/papers/engmath.html  
which notes "To reuse a simple example: 3 feet and 1 yard are equal,  
yet the tuples <3,ft> and <1,yd> are not.".
[Notice a similarity between 2.4^exunits:kg and   
"2.4"^^integer?  .... hmmm funny that :-) ]
PPS: can't you even say, using units predicates as multiplication or  
division of scalar quantities
@prefix : <....exunits#>.
@keywords.
   box1  height	3 ^ m ;
     	speed   3 ^ m!s ;
     	acceleration 9.81 ^m!s!s .
On Sep 23, 2006, at 4:19, Danny Ayers wrote:
>
> Hi Robert,
>
> N-ary relations [1] seems like a straightforward way of representing
> values with units, there's an example in the Primer [2] (here as
> Turtle syntax, a bit clearer):
>
> exproduct:item10245   exterms:mass  [
>                 rdf:value        "2.4"^^xsd:decimal ;
>                 exterms:units    exunits:kilograms .
> ]
>
> Cheers,
> Danny.
>
> [1] http://www.w3.org/TR/swbp-n-aryRelations/
> [2] http://www.w3.org/TR/rdf-primer/#rdfvalue
>
> -- 
>
> http://dannyayers.com
Received on Thursday, 28 September 2006 21:06:26 UTC