- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Fri, 28 Mar 2003 10:51:11 +0100
- To: www-webont-wg@w3.org
This objection is based on the unnecessary implementation difficulty for OWL DL systems (particularly OWL Syntax Checkers) resulting from the omission of parts B.1 and B.2 from the resolution of this issue; and the resulting lack of clear exposition in the Semantics and Abstract Syntax Draft of what implementors need to do. This objection does not concern either OWL Lite or OWL Full, and only impacts OWL DL ontologies making use of the EquivalentClasses or DisjointClasses constructs to compare descriptions. (i.e. the owl:equivalentClass and owl:disjointWith properties between blank nodes). 0. Summary ========== The resolution of this issue results in: - a recommendation that does not adequately inform implementors what they need to do And for the two identified features of OWL DL - is unnecessarily difficult to implement correctly - will often be implemented incorrectly - may result in interoperability failures between implementations 1. Background ============= I raised the OWL DL Syntax issue [2] with the goal of making it possible to both articulate and implement systems that can recognise which RDF graphs correspond to OWL DL abstract ontologies. This ability is fundamental to the operation of OWL DL, since it is part of the link between Web documents in OWL and their meaning as specified in section 3 of the Semantics and Abstract Syntax WD [3]. The resolution [4] of the issue without B.1 and B.2, is a significant improvement on the earlier WDs (such as [5]). However, the omission of parts B.1 and B.2 leaves a significant hole concerning the abstract syntax constructs DisjointClasses and EquivalentClasses and their RDF/XML equivalents: triples with predicate owl:disjointWith and owl:equivalentClass. Also, the resolution meant that the alternative characterisation of OWL Lite and OWL DL graphs [1], without reference to the mapping rules, became too difficult to articulate correctly. 2. Example of problem ===================== 2.1 EquivalentClasses ===================== Given an OWL DL document (namespaces omitted) such as: <rdf:RDF> <!-- definitions of descriptions and/or restrictions --> <owl:Class rdf:nodeID="a"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:ID="A"/> </owl:unionOf> </owl:Class> <owl:Class rdf:nodeID="b"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:ID="B"/> </owl:unionOf> </owl:Class> <owl:Class rdf:nodeID="c"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:ID="C"/> </owl:unionOf> </owl:Class> <!-- equivalent and disjoint classes --> <owl:Class rdf:nodeID="a"> <owl:equivalentClass rdf:nodeID="b"/> </owl:Class> <owl:Class rdf:nodeID="b"> <owl:equivalentClass rdf:nodeID="c"/> </owl:Class> </rdf:RDF> An implementation has to run the mapping rules [6] in reverse to find the abstract form: EquivalentClasses( unionOf( <A> ) unionOf( <B> ) unionOf( <C> ) ) This is made decidedly difficult when subtly different variants of the RDF/XML cannot be subject to such a reverse mapping. For example the following is not in OWL DL, according to the last call candidate, but is, in fact, in OWL Full: <rdf:RDF> <!-- definitions of descriptions and/or restrictions --> as above <!-- equivalent and disjoint classes --> <owl:Class rdf:nodeID="a"> <owl:equivalentClass rdf:nodeID="b"/> </owl:Class> <owl:Class rdf:nodeID="a"> <owl:equivalentClass rdf:nodeID="c"/> </owl:Class> </rdf:RDF> However, in OWL Full it has exactly the same meaning as the original document. 2.2 DisjointClasses =================== Correct treatment of the DisjointClasses construct involves checking that the owl:disjointWith triples form non-overlapping cliques with sufficient crosslinks between them. e.g. <rdf:RDF> <!-- definitions of descriptions and/or restrictions --> as above <!-- equivalent and disjoint classes --> <owl:Class rdf:nodeID="a"> <owl:disjointWith rdf:nodeID="b"/> </owl:Class> <owl:Class rdf:nodeID="a"> <owl:disjointWith rdf:nodeID="c"/> </owl:Class> <owl:Class rdf:nodeID="b"> <owl:disjointWith rdf:nodeID="c"/> </owl:Class> </rdf:RDF> Can be mapped in reverse to DisjointClasses( unionOf( <A> ) unionOf( <B> ) unionOf( <C> ) ) Because the last three parts of the RDF/XML form a complete (undirected) graph K3 over the nodes _:a, _:b and _:c. The related <rdf:RDF> <!-- definitions of descriptions and/or restrictions --> as above <!-- equivalent and disjoint classes --> <owl:Class rdf:nodeID="a"> <owl:disjointWith rdf:nodeID="b"/> </owl:Class> <owl:Class rdf:nodeID="a"> <owl:disjointWith rdf:nodeID="c"/> </owl:Class> </rdf:RDF> Does not have any such inverse mapping, and is hence not in OWL DL, but in OWL Full - however, it's meaning in OWL Full is the same as documents corresponding to the abstract syntax form: DisjointClasses( unionOf( <A> ) unionOf( <B> ) ) DisjointClasses( unionOf( <A> ) unionOf( <C> ) ) More complicated examples involving say two cliques of four and three description nodes could be formed - if there are seven distinct nodes then the example is in OWL DL, if any of the nodes is shared between the two cliques then the example is in OWL Full, but its meaning is unchanged. 3. Articulation of the RDF graphs in OWL DL =========================================== Earlier working drafts had text [8] trying to articulate which RDF graphs are in OWL DL, in a fashion that did not rely on running the mapping rules backwards. This text did not attempt to articulate the constraints on owl:disjointWith and owl:equivalentClass (was known as owl:sameClassAs). I proposed a clearer and more correct articulation such as [1] allowing implementors a view of OWL DL that does not require understanding a complex inverse mapping, however this text relies on the mapping rules being sufficiently regular. B.1, B.2 was the WGs favorite approach to making these two mapping rules more regular. It would be possible to augment [1] with extra text describing the results of these two mapping rules in graph theoretic terms - roughly that owl:disjointWith should color subgraphs that are cliques, and owl:equivalentClass should color subgraphs that have directed Hamiltonian paths (does that mean that OWL DL Syntax is NP complete?) 4. Proposed solution =================== This is articulated in [4] parts B.1 and B.2 and was made at the technical plenary in Cambridge in March 2003, by Patel-Schneider. This removes the irregularities by allowing fairly arbitrary sharing of the bnodes involved. The constraints on bnode structures are then as in [1]. All the examples in this message are then in OWL DL. 5. Pros and Cons of Proposed Solution ===================================== The group has rejected this solution because of agreed potential technical difficulties with an important proof [9]. While the desire for proven correctness is important, my judgement is that, in the absence of such a proof, the risk of many incorrect implementations resulting in a lack of interoperability (with the WG's resolution) should be given priority over the very slight risk that there is a technical error making the proposed solution unsound. (Incorrect implementations would suffer this risk of unsoundness in any case). I fully agree with the WG judgement that there is significant techical difficulty with the proof of the soundness of the B.1, B.2 proposal. The disagreement is about balance of risks rather than technical substance. 6. Implementation report =================== An implementation report that showed that this part of the spec is correctly implemented by many, and incorrectly implemented by few would go a long way to addressing this concern. References ========== [1] OWL DL as triples (my proposal) http://lists.w3.org/Archives/Public/www-archive/2003Mar/att-0089/m [2] Issue raising message http://lists.w3.org/Archives/Public/www-webont-wg/2003Jan/0489.html [3] OWL Direct Semantics http://www.w3.org/TR/owl-semantics/direct.html [4] Initial proposal to close http://lists.w3.org/Archives/Public/www-webont-wg/2003Mar/0066.html [5] Earlier WD http://www.w3.org/TR/2003/WD-owl-semantics-20030203/ [6] unused? http://www.w3.org/TR/owl-semantics/mapping.html#4.1 [7] unused? http://www.w3.org/TR/owl-semantics/rdfs.html#5 [8] Earlier description of OWL DL as RDF graph http://www.w3.org/TR/2003/WD-owl-semantics-20030203/mapping.html#4.2 [9] Proof that is difficult to fix http://www.w3.org/TR/owl-semantics/proofs.html#A.1
Received on Friday, 28 March 2003 04:50:36 UTC