Can one layer a DAML+OIL model theory on top of RDF?

From: Peter F. Patel-Schneider (pfps@research.bell-labs.com)
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