- From: Patrick Stickler <patrick.stickler@nokia.com>
- Date: Tue, 19 Feb 2002 11:28:43 +0200
- To: Pat Hayes <phayes@ai.uwf.edu>
- CC: RDF Core <w3c-rdfcore-wg@w3.org>
On 2002-02-18 21:13, "ext Pat Hayes" <phayes@ai.uwf.edu> wrote: >> A datatype class (rdfs:Datatype) is a special kind of class > > Yes, but here we are using the datatype as a property, rather than a > class. Its the range of that property that Im talking about. Ahhh, then that's where the disconnect is. We need to be very careful then to distinguish between a datatype *as* a range of some property and the range *of* a datatype property. I agree we were talking about two different things here (and I think we agree about both, just not if they are jumbled together ;-) -- To attempt to recap/summarize: An traditional RDF class is just a value space. An RDF datatype class (rdfs:Datatype) is a value space (just like a traditional RDF class) but also a lexical space, an optional canonical lexical space, and an N:1 mapping from lexical space to value space. The rdfs:range property constrains a property's values to the members of the value space of a class, whether it is a basic RDF class or datatype class does not matter. Thus (using the unnecessary but illustrative datatype URI variants from S): ppp rdfs:range ddd.val . The rdfs:drange property constrains a property's values to the union of the members of the value space and lexical space of a datatype class. ppp rdfs:drange ddd.(val U lex) . The rdfs:lrange property constrains a property's values to the members of the lexical space of a datatype class. ppp rdfs:lrange ddd.lex . [Note that while I use the variant datatype URIs (*.val, *.lex) to help illustrate which sub-space of a datatype class a given range constraint applies to, it is not necessary to use such variant URIs in practice, as the semantics are clear and fixed for each particular range property.] The implicit rdfs:range of the property rdfs:dlex is rdfs:Literal; and the datatyping interpretation is that the literal string (not node) denotes a member of the lexical space of some datatype (the actual datatype depends on other statements). Thus: rdfs:dlex rdfs:range rdfs:Literal . The implicit rdfs:domain of the property rdfs:dlex is a member of the value space of some datatype (the actual datatype depends on other statements). We could even give the class of such values a name such as rdfs:DatatypeValue. Thus: rdfs:dlex rdfs:domain rdfs:DatatypeValue . The implicit rdfs:range of the property rdfs:dtype is rdfs:Datatype. rdfs:dtype rdfs:range rdfs:Datatype . The implicit rdfs:domain of the property rdfs:dtype is the value space of some datatype (the actual datatype depends on other statements). rdfs:dtype rdfs:domain rdfs:DatatypeValue . Every datatype property is an rdfs:subPropertyOf rdfs:dlex. The implicit rdfs:range of a datatype property is the lexical space of the datatype. Thus (using the unnecessary but illustrative datatype URI variants from S): ddd rdfs:range ddd.lex . The implicit rdfs:domain of a datatype property is the value space of the datatype. ddd rdfs:domain ddd.val . Each/all/any of the following statements _:1 rdfs:dtype ddd . ppp rdfs:drange ddd . ppp rdfs:lrange ddd . implies ddd rdf:type rdfs:Datatype . -- Right? ;-) 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 Tuesday, 19 February 2002 04:27:13 UTC