RE: timbl-03 collection clutter

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