- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Tue, 09 Oct 2001 17:55:46 -0400
- To: www-rdf-comments@w3.org
This is an ``official'' version of some thoughts I have had concerning the relationship between the new draft model theory for RDF and how datatypes could be added to RDF Schema. One reason for posting this note here is to alert the RDF Core WG to an opportunity that may be closed off by the model theory. Peter F. Patel-Schneider Bell Labs Research Adding Datatypes to RDF Schema Peter F. Patel-Schneider Here is a method for adding datatypes to RDF Schema that fits well with what I see as the RDF Schema philosophy. INTRODUCTION First some desiderata: 1/ The datatype scheme should be backward compatible with RDF and RDF Schema as they are currently constituted. From this, I get that the following n-triples should still be allowed: John age "5" . John streetAddress "12a" . Mary streetAddress "5" . 2/ The datatype scheme should allow range information to be specified in the same way that RDF Schema provides range information for resources. From this, I get that the following is a (or, perhaps, the) way to specify the type of a literal: Mary age "07" . age rdfs:range ????:integer . John age "05" . 3/ The datatype scheme should be as compatible as possible with XML and XML Schema. From this, I get that the following should be allowed <Person rdf:ID="Mary"> <streetAddress>05</streetAddress> <age>06</age> </Person> and it should be possible to determine the ``type'' of 05 and 06 from information about ``Person'' or ``streetAddress'' and ``age''. Second some political comments: 1/ I am doing this now, as opposed to later, because the RDF Core WG may end up precluding this sort of extension to RDF Schema. 2/ I am doing this now, as opposed to earlier, because DAML+OIL has a similar scheme for datatypes and I thought that the existence of the DAML+OIL solution would serve to prevent this sort of scheme from being precluded by RDF. THE PROPOSAL The basic idea of the proposal is quite simple. 1/ Given a collection of datatypes, each consisting of a value space and a mapping from literals (lexical representations) to their value space make the set of literal values contain the disjoint union of the collection of these value spaces. 2/ Use special URIs to refer to these datatypes and incorporate their meaning into the meaning of (an extension of) RDF Schema. 3/ Allow untyped literals to denote any element of this value space for which they are lexical representations. 4/ When available, range information for properties is used to determine which of the possible literal values is denoted by a particular use of a literal. For technical details on one way to do something very close to this, see the model theory for DAML+OIL at http://www.daml.org/2001/03/model-theoretic-semantics.html For a slightly different way, and one directly aimed at RDF and RDF Schema see my alternative model theory for RDF and RDF Schema soon to be posted on www-rdf-interest. What sort of URIs and value spaces could be used? Just about any kind. Built-in XML Schema datatypes would work and will be used in the following examples. The mechanism can be extended to all XML Schema datatypes and with some extensions probably even to all of XML Schema. EXAMPLES AND COMMENTARY Consider an n3 example using built-in XML Schema datatypes as the datatypes: John age "5" . All that is known so far is that John's age is some data value that can be lexically represented as 5. John streetAddress "05" . Mary streetAddress "5" . It is not know yet whether John's age is the same data value as Mary's street address. Also John and Mary could turn out to have the same streetAddress. John age "05" . It is not known yet whether John has two ages. age rdfs:range xsd:integer . Now we know that the two statements about John's age denote the same information. streetAddress rdfs:range xsd:string . Now we know that John's street address is different from Mary's street address. An RDF/XML version of more-or-less the above example, using qnames as abbreviations for purposes of readability: <rdf:RDF> .... <rdf:Property rdf:ID="streetAddress"> <rdfs:range rdf:resource="xsd:string" /> </rdf:Property> <Person rdf:ID="John"> <age>5</age> <streetAddress>05</streetAddress> </Person> <Person rdf:ID="Mary"> <streetAddress>5</streetAddress> </Person> <Person rdf:about="John"> <age>05</age> </Person> .... <rdf:Property rdf:ID="age"> <rdfs:range rdf:resource="xsd:integer" /> </rdf:Property> </rdf:RDF>
Received on Tuesday, 9 October 2001 17:56:00 UTC