Re: Define 'RDF' (was RE: MISC: Internet ...)

What is an RDF agent?

Consider the oft-used web travel  agent.  It is not an RDF agent.  How
can it be?  It is a travel agent.  Its job is not to determine RDF
entailments; its job is to sell tickets.

The web travel agent, could, of course, accept as input RDF documents.  It
could even determine RDF entailment during the course of its activities.
It is, however, more likely that it would instead employ some other agent
or service to determine RDF entailment.


What would this other agent or service do?  

First consider a slightly different agent or service - a service that
determines whether one propositional formula follows from another using
propositional logic.  Well this service had better only answer yes if the
second formula does indeed follow from the first in this formal system, and
had better only answer no if the second formula does not follow from the
first.  (This leaves open whether there is a third answer, a don't-know
answer.  A complete propositional reasoning service had better never
provide this answer, and had better always return.)

An RDF entailment service should behave in exactly this manner.  It should
never respond that one RDF graph RDF entails another if it, indeed, does
not.  Also, it should never respond that one RDF graph RDF does not entail
another if it, indeed, does.  An RDFS entailment service should behave
similarly, but, of course, with respect to RDFS entailment.

Could there be any other RDF service that could be provided?  Well, not
really, at least not any services that are related to inferencing.  The RDF
M&S and RDFSS documents are being replaced, so they should not be used as
definitions of RDF services.  The test cases document is only test caes,
and not a definition of any service.  The primer is explicitly a
non-normative document.  The syntax specification only serves as as
translation from RDF/XML to n-triples.  The only possibile place to find
definitions of RDF services is the new Schema document, but this document
just covers the same ground as the RDF Model Theory document, with one
exception.

The only other possible RDF reasoning service is alluded to in the RDF
Schema document.  In this document it refers to rdfs:comment as providing a
human-readable description of a resource.  A reasoning service built from
this sort of information would require the ability to understand the
meaning of natural language, and is thus not a viable candidate for an RDF
reasoning service.

So the only RDF reasoning services described in the RDF documents are RDF
entailment and RDFS entailment.


How could one evaluate an agent or service that claims to be an RDF(S)
agent or service?

Consider an agent that claims to do zero-order predicate calculus
reasoning.  Suppose this agent is asked to determine whether 

  P(a)
  P(b)
  ~Q(b)
  forall(x,implies(P(x),Q(x)))

entails

  Q(a)

and the agent answers that this is so.  Is this agent a zero-order
predicate calculus reasoner?  Absolutely not.  Its reasoning is unsound in
zero-order predicate calculus.  Anyone claiming that this agent is a
zero-order predicate calculus reasoner is claiming an untruth.

Now consider an agent that claims to be doing RDF reasoning.  Suppose this
agent is asked to determine whether the following RDF graph (where I have
made the common abbreviation of using QNames as abbreviations for URIrefs)

  <ex:Student> <rdfs:subClassOf> <ex:Person> .
  <ex:John> <rdf:type> <ex:Student> .
  <rdfs:subClassOf> <rdf:type> <rdf:Property> .
  <rdfs:subClassOf> <rdfs:domain> <rdfs:Class> .
  <rdfs:subClassOf> <rdfs:range> <rdfs:Class> .
  <rdfs:Class> <rdf:type> <rdfs:Class> .

RDF entails 

  <ex:John> <rdf:type> <ex:Person> .

and the agent answers that this is so.  Is this agent an RDF reasoner?
Absolutely not.  Its reasoning is unsound in RDF.

Is there any other relationship like RDF entailment that this reasoner
could be computing?  There is none in the RDF documents (except for RDFS
entailment, but that is RDFS, not RDF).  Anyone claiming that this agent is
an RDF reasoner is claiming an untruth.

Similarly, consider an agent that claims to be doing RDFS reasoning.
Suppose this agent is asked to determine whether the RDF graph

  <ex:best-friend> <rdf:type> <ont:UniqueProperty> .
  <ex:age> <rdf:type> <ont:UniqueProperty> .
  <ex:bob> <ex:best-friend> <ex:margaret> .
  <ex:bob> <ex:best-friend> <ex:peggy> .
  <ex:peggy> <ex:age> "35" .
  <ex:margaret> <ex:best-friend> <ex:susan> .
  <ex:margaret> <ex:best-friend> <ex:jane> .
  <ex:susan> <ex:age> "43" .
  <ex:jane> <ex:age> "55" .
  <ont:UniqueProperty> <rdfs:label> "UniqueProperty" .
  <ont:UniqueProperty> <rdfs:comment> "compare with maxCardinality=1, e.g., ..." .
  <ont:UniqueProperty> <rdfs:subClassOf> <rdf:Property> .

RDFS entails

  <ex:margaret> <ex:age> "35" .

and the agent answers that this is so.  Is this agent an RDFS reasoner?  Absolutely
not.  Its reasoning is unsound in RDFS.  

Is there any other relationship like RDFS entailment that this reasoner
could be computing?  There is none in the RDF documents (except, of course,
RDF entailment).  Anyone claiming that this agent is an RDFS reasoner is
claiming an untruth.

In summary any agent/system/person doing RDF or RDFS reasoning has to be
computing either RDF or RDFS entailment, and these are now precisely
defined.  Any agent/system/person that is computing a relationship between
RDF graphs that is not RDF entailment is not an RDF reasoner;  any
agent/system/person that is computing a relationship between 
RDFS graphs that is not RDFS entailment is not an RDFS reasoner.


What then is the status of systems like CWM and Euler?  

Euler has a mode that claims to implement RDFS entailment, so it might be
considered to provide an RDFS entailment service, as least for the
n-triples syntax of RDF.  However, this claim is a bit suspect because the
RDFS service provided by Euler is described in the same way as Euler's OWL
service, which is incomplete.  CWM's relationship to RDF is even weaker, at
least given the readily-available documentation on CWM, as CWM does not
appear to have a mode that attempts to implement RDF or RDFS entailment.

However, the documentation on both these systems is very limited, and it
may be that they do indeed provide RDF or RDFS entailment.


Peter F. Patel-Schneider
Bell Labs Research

Received on Tuesday, 28 May 2002 07:59:34 UTC