- From: Jonathan Borden <jonathan@openhealth.org>
- Date: Tue, 12 Mar 2002 14:36:12 -0500
- To: "WebOnt WG" <www-webont-wg@w3.org>
Some thoughts about integrating XML datatypes with OWL
DAML+OIL currently makes the distinction between ObjectProperties and
DatatypeProperties.
XML Schema makes the distinction between ComplexTypes and SimpleTypes.
Roughly speaking the XML lexical space of a SimpleType is a restriction on a
character string e.g. xsd:string. The lexical space of a ComplexType is a
piece of XML itself.
XML Schema further distinguishes between "local" and "global" types. A local
type is context dependent. Looking through various DAMLs at
http://www.daml.org I notice the following idiom:
<Property rdf:ID="name">
<rdfs:domain="#book"/>
...
</Property>
<Property rdf:ID="name">
<rdfs:domain="#article"/>
...
</Property>
This looks to me like a desire to have something like "local" properties in
DAML, yet isn't legal RDF -- values of an rdf:ID must be unique.
This is a real issue. The solution is to use a hierarchical naming space
(within an ontology) rather than a global space per ontology. For example
the path specifiers:
myont:book/name
myont:article/name
corresponding to the URIs:
http://example.org/myont#book/name
http://example.org/myont#article/name
"bind" the "name" property to the class "book" or "article", much as a local
XML schema declaration.
Back to the ObjectProperty vs. DatatypeProperty: it is not entirely clear to
me that there _need be_ this distinction: Both ObjectProperties ala
ComplexTypes and DatatypeProperties ala SimpleTypes might indicate XML
Schema (or XQuery) datatypes.
For example (I hope I am expressing this in an intelligible fashion !): The
intention is to say that the Property "person.name" has a value of the
indicated type "PersonName" which has the properties:
{family,given,middle,prefix, suffix}. This property "person.name" is the
"same as" a property whose range is the XML Schema type "myxsd:person.name".
By such a mechanism we would have the ability to infer based on D+O/OWL
descriptions as well as provide the syntactic constraints of XML
schema/XQuery
<Property rdf:ID="person.name">
<samePropertyAs>
<DatatypeProperty>
<rdfs:range rdf:resource="myxsd:person.name"/>
</DatatypeProperty>
</samePropertyAs>
<rdfs:range>
<Class>
<subClassOf>
<Restriction>
<onProperty rdf:resource="#family"/>
<toClass rdf:resource="#string"/>
</Restriction>
</subClassOf>
<subClassOf>
<Restriction>
<onProperty rdf:resource="#given"/>
<toClass rdf:resource="#string"/>
</Restriction>
</subClassOf>
<subClassOf>
<Restriction>
<onProperty rdf:resource="#middle"/>
<toClass rdf:resource="#string"/>
</Restriction>
</subClassOf>
...
</Class>
</rdfs:range>
</Property>
Jonathan
Received on Tuesday, 12 March 2002 16:41:20 UTC