- 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