- 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