- From: Sandro Hawke <sandro@w3.org>
- Date: Thu, 15 Feb 2001 23:11:02 -0500
- To: www-rdf-logic@w3.org, ht@w3.org
Looking over the proposed daml+oil+concrete system [1] with an eye towards implementing some of it, I noticed a few minor problems I have not seen mentioned on the list. I hope I haven't misunderstood anything too badly. 1. The references to XML Schema objects do not follow the spec [5] which mandates the use of xpointer. I understand this mandate might change, so maybe this difference is intended. In my examples below, I'll try to do things the way I understand the spec to require. (Of course this syntax breaks some of the tools I used to check my RDF. Ugh.) 2. The proposal treats datatypes as if they were the classes which conventionally have the same name (eg "integer"), but according to the XMLSchema spec, they are not. For example, [2] contains: <rdfs:Class rdf:ID="NonNegativeInteger"> <rdfs:subClassOf rdf:resource="http://www.w3c.org/xml/xmlschema#integer"/> </rdfs:Class> and [3] contains: <daml:ConcreteProperty rdf:ID="shoesize"> <rdfs:range rdf:resource="xsd:decimal"/> </daml:ConcreteProperty> which both seem to be treating these XMLSchema datatypes (integer and decimal, respectively) as if they were the classes of numbers. But the XML Schema Datatypes spec [4] says that "a datatype is a 3-tuple, consisting of a) a set of distinct values, called its value space, b) a set of lexical representations, called its lexical space, ..." So the correct form needs to introduce another property connecting the class of objects in the value space with the datatype. It might look like this: <!-- #Integer is something which has a "datatype" of integer --> <rdfs:Class rdf:ID="#Integer"> <datatype resource='http://www.w3.org/2000/10/XMLSchema#xpointer(id("integer"))' /> </rdf:Description> <rdfs:Class rdf:ID="NonNegativeInteger"> <rdfs:subClassOf rdf:resource="#Integer"> </rdfs:Class> and <daml:ConcreteProperty rdf:ID="shoesize"> <rdfs:range rdf:resource='#Integer' /> </daml:ConcreteProperty> We can solve this easily for the standard datatypes by putting all the classes in some ontology, publishing the classes you've been using (and using a nicer identifier syntax). But the distinction doesn't go away as long as people keep using xsd:schema to make new datatypes. 3. Using the property rdf:value to link from a point in the value space (eg 10) to a point in the lexical space (eg "10") seems completely backwards. That's saying: the number 10 has a value which is the string "10" when the correct form (IMHO) is the number 10 has a lexical representation which is the string "10" I know rdf:value is given in RDF M&S, but that doesn't make it right. We need a property lexicalRepresentation (and probably canonicalLexicalRepresentation) to be clear here. (One might possibly consider rdf:value an inverse property of those, but I think that's too vague to bother with.) -- Sandro Hawke [1] http://www.cs.man.ac.uk/~horrocks/daml+oil/Datatypes/datatypes.html [2] http://www.cs.man.ac.uk/~horrocks/daml+oil/Datatypes/daml+oil+concrete.daml [3] http://www.cs.man.ac.uk/~horrocks/daml+oil/Datatypes/daml+oil+concrete-ex.daml [4] http://www.w3.org/TR/xmlschema-2/#typesystem [5] http://www.w3.org/TR/xmlschema-2/#schema (and scroll down a little)
Received on Thursday, 15 February 2001 23:11:09 UTC