Re: rdf as a base for other languages

   [Graham Klyne]
   Is there any fundamental reason why 
   we cannot start with a language capable of expressing ground facts, and 
   extend it in a consistent way (creating a new language, "outside" the 
   original) such that the original language for expressing ground facts is 
   present as a sub-language?

It's the tension between "outside" and "sub-language" that is causing
all the miscommunication.  If the extended language is indeed outside
the original, then there's no problem; there's also no RDF.  So RDF is
supposed to stick around as a sub-language in some sense.  This is
where things get murky.  Let RDF++ be a language with RDF as a
subset.  Obviously, the rules of RDF++ can't be the same as those for
RDF, or we get the bugs that drove us here.  To avoid changing the
rules, we resort to reification.  But in the end reification turns out
to look exactly the way changing the rules would look.

Here's what I mean: If R is vanilla RDF, then R is also in
RDF++.  However, to represent something like (or P R), we have to
reify or quote P and R, so that "or" becomes a relation on quoted expressions,
which we write (or 'P 'R).  Now suppose we want to draw an inference
from (not 'P) and (or 'P 'R).  That inference is R.  Quotes no longer
necessary.

I suggest that this is simply an alternative, less clear description
of what we're really doing, which is introducing a symbol "or" that
violates the usual rules.  The operator "or" does not really express a
relationship between two quoted expressions; it expresses a
relationship between two propositions, just as in classical logic.
The only thing we're allowed to quote is a piece of RDF++, and we have
to be able to unquote it when necessary.  Once all these protocols are
spelled out, the only remaining purpose of the quotes is to help us
pretend that we haven't changed the rules.  

                                             -- Drew McDermott

Received on Tuesday, 5 June 2001 11:05:49 UTC