Attempt to recap/summarize (was Re: datatyping draft 3 (for telecon))

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