- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Mon, 27 Jan 2003 17:44:36 +0100
- To: www-webont-wg@w3.org
(Given the length of the detailed exposition of the mapping rules, I am replying separately on the other point Dan raised). > * a test case/document, d > * an excerpt from one of our specs that > clearly showed P(d) for some P. > * another excerpt from one of our specs > that clearly showed not(P(d)) Guide: (22 January 2003) http://www.w3.org/2001/sw/WebOnt/guide-src/Guide.html#SetOperators [ Set Operators intersectionOf, unionOf, complementOf [OWL DL] ] followed by section 5.1.1 on intersection of ending with test case document d: <owl:Class rdf:ID="WhiteBurgundy"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Burgundy" /> <owl:Class rdf:about="#WhiteWine" /> </owl:intersectionOf> </owl:Class> Read AS&S (24 January 2003) section 2 [[ ontology ::= 'Ontology(' { directive } ')' directive ::= 'Annotation(' URIreference URIreference ')' | 'Annotation(' URIreference dataLiteral ')' | 'Imports(' URI ')' | axiom | fact axiom ::= 'Class(' classID modality { annotation } { super } ')' modality ::= 'complete' | 'partial' super ::= classID | restriction ]] (these are all taken from the OWL Lite section). This allows us to construct an OWL Lite abstract ontology Ontology( Class( <#WhiteBurgundy>, complete, <#Burgundy>, <#WhiteWine> ) ) (Note that all three URIrefs are classIDs, you need this in the mapping rules). Apply the mapping rules to this and you get: T(Ontology( Class( <#WhiteBurgundy>, complete, <#Burgundy>, <#WhiteWine> ) )) = T(Class( <#WhiteBurgundy>, complete, <#Burgundy>, <#WhiteWine> ) ) = <#WhiteBurgundy> rdf:type owl:Class . <#WhiteBurgundy> owl:intersectionOf T( SEQ <#Burgundy> <#WhiteWine> ). = <#WhiteBurgundy> rdf:type owl:Class . <#WhiteBurgundy> owl:intersectionOf _:l1 . _:l1 rdf:type rdf:List _:l1 rdf:first T(<#Burgundy>) . _:l1 rdf:rest _:l2 . _:l2 rdf:type rdf:List . _:l2 rdf:first T(<#WhiteWine>) . _:l2 rdf:rest rdf:nil . = (remembering that the two URIrefs are classIDs) <#WhiteBurgundy> rdf:type owl:Class . <#WhiteBurgundy> owl:intersectionOf _:l1 . _:l1 rdf:type rdf:List _:l1 rdf:first <#Burgundy> . _:l1 rdf:rest _:l2 . _:l2 rdf:type rdf:List . _:l2 rdf:first <#WhiteWine> . _:l2 rdf:rest rdf:nil . <#Burgundy> rdf:type owl:Class . <#WhiteWine> rdf:type owl:Class . = (applying the W3C RDF validator once it is fixed) <owl:Class rdf:ID="WhiteBurgundy"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Burgundy" /> <owl:Class rdf:about="#WhiteWine" /> </owl:intersectionOf> </owl:Class> =========================== If we reopen the issue and clarify that complete classes are in OWL Lite then this example document d should be moved forward in the guide, and new text will be needed to explain the difference between this one and the anonymous intersection which is only in OWL DL. I would be happy with that (and corresponding changes in Features and Overview), but would prefer the resolution I proposed. Jeremy
Received on Monday, 27 January 2003 11:45:34 UTC