- 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