- From: Patrick Stickler <patrick.stickler@nokia.com>
- Date: Wed, 4 Dec 2002 15:48:00 +0200
- To: "pat hayes" <phayes@ai.uwf.edu>, "ext Graham Klyne" <GK@NineByNine.org>
- Cc: <fmanola@mitre.org>, <w3c-rdfcore-wg@w3.org>
[Patrick Stickler, Nokia/Finland, (+358 40) 801 9690, patrick.stickler@nokia.com]
> I've just looked at Pat's revised words in [1], section 3.2.4:
> [[
> The intended use for rdf:value is to associate some quantity with a literal
> representing the 'amount' of the quantity, such as a weight in kilograms or
> a length in yards. Examples of this kind of use are given in [RDF-PRIMER].
> Since the subject of the relevant triple can be any quantitity, and the
> object can either be a plain literal indicating a textual representation of
> the amount or a typed literal denoting the numerical value of the amount,
> there is no way to state this condition formally in a model theory.
> ]]
>
> These words suggest that rdf:value is a superproperty over all properties
> that express *quantities*; i.e. numbers, etc., and their lexical spaces.
>
> Unfortunately, there's a counter-example in the original M&S, section 7.3,
> which uses (something very like) the following:
>
> ex:docURI dc:subject _:x .
> _:x rdf:value "020 - Library science" .
> _:x ex:classification "DeweyDecimalCode" .
I think that it wouldn't be a bad thing if rdf:value were deprecated.
It makes for sloppy modelling, since it's hard to argue IMO that
one can expect the following entailment to always be valid
IF
some:Thing some:Property _:x .
_:x rdf:value _:y .
THEN
some:Thing some:Property _:y .
Uses of rdf:value that I've seen have primarily been either (a) used
to build complex values where a more explicit property would be
more informative or (b) used where URIs were far more appropriate
(the above dc:subject example is an perfect example of this)
Rather than
some:Thing x:length [ rdf:value "200"^^xsd:integer ;
x:unit "meters" ]
as typically done, one should do something like
x:length rdfs:range x:Measurement .
x:magnitude rdfs:domain x:Measurement .
x:magnitude rdfs:range xsd:integer .
x:unit rdfs:domain x:Measurement .
x:unit rdfs:range x:UnitOfMeasure .
<voc://example.com/units/meter> a x:UnitOfMeasure .
some:Thing x:length [ x:magnitude "200"^^xsd:integer ;
x:unit <voc://example.com/units/meter> ] .
Rather than
ex:docURI dc:subject _:x .
_:x rdf:value "020 - Library science" .
_:x ex:classification "DeweyDecimalCode" .
one should say
ex:docURI dc:subject <voc://example.com/dewey/020> .
<voc://example.com/dewey/020> rdfs:label "Library Science" .
In either case, rdf:value does not IMO add any clarity to the model and
would be no great loss if deprecated.
--
The one use of rdf:value that does seem useful, though, is as a form
of scoping mechanism. E.g.
some:Thing x:assemblyY [ rdf:value "1234" ; x:scope "Model_ABC" ] .
where the value is qualified according to the other properties
of the bnode apart from rdf:value. Otherwise, one must use the far
more verbose reification representation to do this, e.g.
some:Thing x:assemblyY "1234" .
[ a rdf:Statement ;
rdf:subject some:Thing ;
rdf:predicate x:assemblyY ;
rdf:object "1234" ;
x:scope "Model_ABC" ]
If it were possible to define rdf:value such that only this scoping
or qualification usage were allowed, then I'd say let's keep it,
but I don't see that happening, given the legacy usage...
Patrick
Received on Wednesday, 4 December 2002 08:48:02 UTC