- 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