- From: Patrick Stickler <patrick.stickler@nokia.com>
- Date: Fri, 28 Jun 2002 19:22:51 +0300
- To: Pat Hayes <phayes@ai.uwf.edu>
- CC: RDF Core <w3c-rdfcore-wg@w3.org>
On 2002-06-28 18:56, "ext pat hayes" <phayes@ai.uwf.edu> wrote: > >> Pat, >> >> I support the "gist" of essentially all that you are saying >> below, but would offer an even more simplified proposal. >> >> Rather than >> >>> Jenny ex:age _:y "10" . >>> _:y "10" xsd:number _:x . >>> Jim ex:age _:x . >> >> simply >> >> Jenny ex:age _:y"10" . >> _:y rdf:type xsd:integer . >> Jim ex:age _:y . > > OK, but bear in mind that the subject of the second triple is the > very same node as the object of the first triple, and so it still has > the "10" literal label, even though you didn't mention it. So this is > exactly the same graph as: > > Jenny ex:age _:y "10" . > _:y "10" rdf:type xsd:integer . > Jim ex:age _:y "10". Right. > Now, that would be nice, but... I agree. >> so that datatyping is no different than "normal" RDF >> typing, and the above works perfectly in conjuction >> with rdfs:range. E.g. > > ....seems to me that it doesn't work, and that we have been here > before. In fact this is very much like the old P++ proposal that you > shot down, on the excellent grounds that mere membership in the value > space cannot be the trigger of a datatype check since two datatypes > with different lexical2value mappings can have exactly the same value > space. Which is why we decided to make the actual range itself be the > trigger, rather than an rdf:type conclusion from the range. (Have you > changed your mind on that point??) We discussed this in Bristol. The rdfs:range constraint is indeed only on the value space of the datatype class, and thus, the literal node denotes a datatype value, but because we also know that it is of type rdfs:Datatype, there is the additional constraint that the value denoted by the literal node is the specific value to which the lexical form embodied in the label maps, according to the lexical to value mapping of that datatype. The rdfs:range semantics tells us the literal node denotes the value. The rdfs:Datatype semantics tells us the label is the lexical representation of the value. The fact that the class extension of the datatype is only its value space is only a problem for query engines or similar applications which might separate a lexical form from its original datatype context, based on the original triple in which it occurs (by e.g. applying subPropertyOf relations, etc.) As long as implementers are aware that subPropertyOf and subClassOf relations are valid for datatype values but not mappings, and that the original context must be preserved, then we're fine. >> ex:age rdfs:range xsd:integer . >> >> Likewise, rather than >> >>> _:x"10" rdf:sourceDeclaration "xml version="1.0"" . >>> _:x"10" rdf:xmlLang "FR" . >> >> simply >> >> _:x"10" rdf:type rdf:XML . >> _:x"10" xml:lang _:z"fr" . > > Yes, that is better. > > Pat > Patrick -- Patrick Stickler Phone: +358 50 483 9453 Senior Research Scientist Fax: +358 7180 35409 Nokia Research Center Email: patrick.stickler@nokia.com
Received on Friday, 28 June 2002 12:29:32 UTC