From: Peter F. Patel-Schneider ([email protected])
Date: 11/26/01
[This is a revision of an earlier message that I sent out last week.] I don't think that it is possible to create a DAML+OIL model theory that is both 1/ based on the RDF graph abstract syntax and 2/ compatible with the new RDF model theory. I say this because the triples generated by DAML+OIL logical constructs add extra stuff to models and this extra stuff gets in the way of entailment. (This is similar to the case argued a while ago concerning arbitrary booleans in RDF.) For example, consider <rdfs:Class foo> <daml:intersectionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Man"/> <daml:Class rdf:about="Woman"/> </daml:intersectionOf> </rdfs:Class> This does not RDFS entail <rdfs:Class foo> <daml:intersectionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Woman"/> <daml:Class rdf:about="Man"/> </daml:intersectionOf> </rdfs:Class> because the RDF-encoding of the collections involved. Now, maybe one can live with this, as one doesn't really want to ask about entailment between classes. Even more serious is that <rdfs:Class foo> <daml:intersectionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Man"/> <daml:Class rdf:about="Woman"/> </daml:intersectionOf> </rdfs:Class> <foo rdf:about="John"/> does not entail <foo rdf:about="John" <rdf:type> <daml:intersectionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Woman"/> <daml:Class rdf:about="Man"/> </daml:intersectionOf> </rdf:type> </foo> Note that if Man and Woman are in the same order, then the entailment does go through. So, maybe, one could go to unordered collections. However, this does not work, because of <daml:unionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Dog"/> <daml:intersectionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Woman"/> <daml:Class rdf:about="Man"/> </daml:Class> </daml:intersectionOf> versus <daml:intersectionOf rdf:parseType="daml:collection"> <daml:unionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Dog"/> <daml:Class rdf:about="Woman"/> </daml:unionOf> <daml:unionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="Dog"/> <daml:Class rdf:about="Man"/> </daml:unionOf> </daml:intersectionOf> How can this be fixed? About the only way I can see is to not produce model-theory stuff for the DAML+OIL logical stuff. However, this is very hard if one starts with RDF triples, as how does one tell which triples are logical and which are not? The situation is *much* better if one starts with XML. Here it is much easier to determine which constructs are logical constructs, and thus do not need to be translated into relationships, and which are non-logical constructs, and thus do need to be translated into relationships. Also, the non-logcial constructs that are syntactially inside of logical constructs can also be treated as they should. For example, the last two examples would result in no (new) RDF classes. Their semantics would only be employed by enclosing class definitions, resulting in the appropriate extension for the class, and not in extraneous relationships in the RDF model theory. As I see it there are really (only) two possibilities: 1/ Keep the RDF graph (i.e., triple) abstract syntax and use a separate semantic treatment, because of the issues above. This is the route currently taken by DAML+OIL. However, it is *not* compatible with the RDF model theory. 2/ Keep the essence of the RDF model theory, but go directly from a different (tree-based) abstract syntax (such as an XML data model) to the model theory. In my view, the second approach is better. peter
This archive was generated by hypermail 2.1.4 : 04/02/02 EST