- From: Raphael Volz <volz@aifb.uni-karlsruhe.de>
- Date: Sat, 5 Oct 2002 22:45:19 +0200
- To: "Webont" <www-webont-wg@w3.org>
- Cc: "ls3" <ls3@aifb.uni-karlsruhe.de>
- Message-ID: <DMECLAFLIOFJEFFIAJPCGEMLDAAA.volz@aifb.uni-karlsruhe.de>
Hi - I forgot to mention disjointWith, which is not problematic and can be supported. My assumption on oneOf (in the reply to Dan's mail was wrong), it is fully explained in the revised document, why I was wrong. So we have: 22. disjointWith Here is the delta to the old version to simplify reading : 5.4.4 Construction of classes by enumeration This is can be problematic,since we cannot disallow using predicates in rules. However,we can support the construction of classes via enumeration with the chosen representation under certain circumstances. A ”trick “can build on the fact that the enumerated individuals are usually assigned to the enumerated class via the OWL collection mechanism and not via the rdf:type predicate.They become instances of the enumerated class through the following rule pattern: C(X) : ?oneOf(c,L) , member(L,X). Let us assume that individuals can only be assigned this way.Then we can control the closure of the enumeration via the following rules. type(X,C) : ?type(X,D) , subClassOf(D,C). inconsistent(C, L) : ?oneOf(C,L) , type(Y,C). This disallows that the enumerated class has any nonempty subclasses and dis- allows that there is any explicit assignment of individuals to the enumerated class. The latter assumption is too strong.Since this would raise inconsistencies even if the knowledge base is consistent.For example,the following declaration of Boolean would mistakenly trigger an inconsistency: <Class rdf:ID="Boolean"> <oneOf owl:parseType="collection"> <myDoc:Boolean rdf:about="#true"/> <myDoc:Boolean rdf:about="#false"/> <oneOf> </Class> The problem is that the class itself is used in a type statement.This problem can be solved via use of negation in rules only. 5.4.5 Disjointness of classes The pairwise disjointness of two classes can be expressed using the owl:disjointWith constructor.It guarantees that there exists no individual that is member of both classes.The following rule pattern captures this: inconsistent(C,D) :? disjointWith (C,D) , type(X,C) , type(X,D). Sorry for the inconvenience, attached you find the updated version of the document. Cheers, Raphael ___ Raphael Volz, University of Karlsruhe - http://www.uni-karlsruhe.de/WBS/rvo/
Attachments
- application/pdf attachment: Paper.pdf
Received on Saturday, 5 October 2002 16:48:00 UTC