- 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