- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Wed, 7 May 2003 23:37:35 +0300
- To: w3c-rdfcore-wg@w3.org
The text that Dan quotes is not relevant
"the ontologies in O, taken together, provide a type for every
individual ID;"
an 'individual ID' is a URIref by another name.
Blank nodes only appear in OWL DL and OWL Lite as introduced by the mapping
rules.
The current relevant mapping rule is:
http://www.w3.org/TR/owl-semantics/mapping.html#4.1
[[
SEQ item1…itemn
==>
_:l1 rdf:type rdf:List .
_:l1 rdf:first T(item1) . _:l1 rdf:rest _:l2 .
…
_:ln rdf:type rdf:List .
_:ln rdf:first T(itemn) . _:ln rdf:rest rdf:nil .
_:l1
]]
This could be changed to:
[
SEQ item1…itemn
==>
_:l1 rdf:type rdf:List . [opt]
_:l1 rdf:first T(item1) . _:l1 rdf:rest _:l2 .
…
_:ln rdf:type rdf:List . [opt]
_:ln rdf:first T(itemn) . _:ln rdf:rest rdf:nil .
_:l1
]]
and I think we would be done.
===
However, my code would have to change more ...
my code keeps track of which nodes in the graph are the subject of rdf:type
triples (except for ones with object rdf:Class, rdf:Property,
owl:DeprecatedClass, owl:DeprecatedProperty and owl:FunctionalProperty).
These nodes without an explicit type are not permitted in OWL DL (or OWL
Lite).
Modifying this code so that it also excludes from consideration those nodes
that are the subject of a triple rdf:first or rdf:rest is real work (not a
lot, but ...)
Moreover, this code becomes increasingly difficult to maintain as more special
cases are added.
So for OWL Lite and OWL DL the normal case is to have a type triple. Tim
doesn't like them being produced by the parser, well the default in OWL Lite
and OWL DL is that they are written direct into the RDF/XML. Have a look at
the OWL Test Cases, they hardly use the rdf:Description construct, because
everything has a type. When you get into the swing of it, why bother with
only one redundant type triple, you can have two or three as in:
<my:userClass rdf:ID="thingy"/>
<!-- we now know that userClass is a class -->
<owl:Class rdf:ID="userClass">
<rdfs:comment>This is my class</rdfs:comment>
</owl:Class>
...
<owl:Class rdf:ID="someOther">
<rdfs:subClassOf>
<owl:Class rdf:about="#userClass"/>
</rdfs:subClassOf>
</rdfs:subClassOf>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#userClass"/>
</owl:intersectionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
My take is that the commentator hasn't yet grokked OWL DL.
The parseType="Collection" construct, should, according to me, prioritize OWL
DL mindset - and I am clear that that is to have the type triple.
Jeremy
Received on Wednesday, 7 May 2003 17:37:29 UTC