Re: Grist for layering discussion

----- Original Message -----
From: "Peter F. Patel-Schneider" <>
To: <>
Cc: <>; <>; <>;
<>; <>; <>;
Sent: Friday, January 11, 2002 9:16 AM
Subject: Re: Grist for layering discussion

> As it appears that some participants in this debate prefer an operational
> view of the situation, let me try to couch my comments in an operational
> setting.  (I believe that Pat would agree with the following, but I'm sure
> that he will speak for himself as well.)
> Suppose you want to build a representation formalism, like, say, RDF.  You
> design a syntax (and, maybe, an API) that lets you create information
> and you specify a retrieval mechanism that lets you see what you have
> created.  SQL is a not-very-good example of such as retrieval
> mechanism for databases.  The retrieval mechanism wasn't really done for
> RDF, so lets just say that we can ask whether an information base contains
> a particular triple.
> Now you want to extend RDF.  OK, lets add mechanisms for creating a class
> taxonomy and for typing the domains and ranges of roles, and call it RDFS.
> We'll use the same syntax to create information bases, but modify the
> retrieval mechanism to make it correspond to the wording in the RDF Schema
> Candidate Recommendation.  Now you definitely get more out of the
> information base than you put in.  In particular, you get
> rdfs:Class rdfs:subClassOf rdfs:Resource .
> out of an information base that has not had any information added to it.

I would not expect that.  There is  a set of axioms from the RDFS spec which
you can put into any database but I see no reason why you should
assume them in any database.   For me, a database and a document are the
same.  Each is just a way of accessing some abstract information.
This way, you get a set of statements which every document is deemed to
That is weird. I would prefer to say that any statement made in a document
uses OWL terms imples the semantics of the OWL spec, and therefore the
author is deemed to support the decutive closure of  the union of
the statements from his document and the axioms.

> So far so good.
> We have:
> 1/ All RDF syntax is also RDFS syntax.
> 2/ Given an RDF information base, i.e., an information base created using
>    only the syntax in RDF, the RDFS retrieval mechanism produces
>    that the RDF retrieval mechanism would produce, and maybe more.

I would say, exactly the same.

> This is precisely what it means to be an extension.

Not for me. What you have in my view  is a new function, "answer this query
using the extra knowledge you have about DAML".  This will tell you a
superset of what you got out of the
plain query.

> However, RDF and RDFS have a very uncommon relationship because they also
> share a syntax.  Let's try to create a same-syntax extension of RDFS to
> encompass some of propositional logic, namely the part that allows us to
> create related disjunctions such as John is either married to Susan or
> friends with Jake.
> [Why do this extension in particular?  Well it is an extension that shows
> some of the problems, but it also has a construction that can be fairly
> naturally expressed as triples.]
> What doesn't work is to directly encode the missing logical
> construction.  A direct encoding of this would be something like
> IB1 John rdfo:or _:x .
> _:x married Susan .
> _:x friend Jake .

That is just nonsense of course.  You can't encode "or" as a conjunction
of triples.   DAML defines some prediates which allow you to do
similar things.  you can defien that the class of people married to the
Susan and the class of people friends of John are disjoint.

> We construct a formal specification of RDFO to incorporate this
> construction.

You can't.  You can define the meaning of a property  rdf:or but you can't
define it in a way which reaches up inside the machine and affects other
You can only (1) give an algorithm for deducuing other information
from a statement and (2) give new axioms - constraints on the world - which
are related to the property. You can't say  "and if used in a sentence
it negates the meaning of the previous sentence" for example.

>  In particular, from
> IB2 John rdfn:or _:x .
> _:x married Susan .
> RDFO retrieval will produce
> John married Susan .
> Now is everything OK?  NO!  There are two problems:

No, it is not OK, you can't do that. DAML doesn't do that.

(N3's log:forSome and log:forAll do and they are not real RDF triples and
I must fix it so they don't appear to be in the syntax or the code. they
would have this problem if treated as such.)


> It is possible to overcome these problems, at least partly, by exploiting
> the reflective properties of RDF.  We can encode the disjunctions using a
> special construction, something like
> IB3 John rdfor:or _:l1 .
> _:l1 rdfor:fact _:f1 .
> _:l1 rdfor:rest _:l2 .
> _:l2 rdfor:fact _:f2 .
> _:l2 rdfor:rest rdfor:nil .
> _:f1 rdfor:predicate married .
> _:f1 rdfor:object Susan .
> _:f2 rdfor:predicate friend .
> _:f2 rdfor:object John .           [Jake?]

This is (with s/fact/first)    N3's   John rdfor:or  ( [ predicate married;
object Susan]
    [ rdf:predicate :friend; :object :Jake])

which is close to

   { :John :married :Susan } rdf99:or { :John :friend :Jake }.

which is very like

   { :John :married :Susan }  log:implies  { :John :notFriend :Jake }.

which works.

Now you can regard the {} as either an extension to the grammar of the
language, which I tend to do, or if you want to be strict and stick with RDF
you can use the construction above.  here it becomes I think
something like

:F1  rdf99:or :F2.
:F1  x:setOf  :L1.
:L1   daml:first :s1;    daml:rest daml:nil.
:s1 :rdf:Subject :John;  rdf:predicate :married; :object :Susan.
:F2  x:setOf  :L2.
:L2   daml:first :s2;    daml:rest daml:nil.
:s2 :rdf:Subject :John;  rdf:predicate :friend; :object :Jake.

# same as:

[ is x:setOf ( [:rdf:Subject :John;  rdf:predicate :married; :object
[ is x:setOf ([:rdf:Subject :John;  rdf:predicate :friend; :object

> Now retrieval for RDFOR can (probably) be designed so that
> 1/ All the extra consequences involve special the RDFOR constructs, and so
>    can be regarded as benign.

Before any deduction, yes.

> 2/ RDFOR is monotonic.


> Have we succeeded?  Partly, but at three prices, two that show up right
> away and one that shows up in other extensions.
> The first price is that the construction is much more complicated than
> a syntax extension.

What does that mean?   You have made a construct which works in the abstract
space, which does not require a syntax extension.  More complicated?
Well, I suppose complexity is subjective. The simplicity is that the
space isn't changed.  You can then make some syntactic sugar to hide the
compexity of the construct in real files.

> The second price is that the construction adds a lot of extra
> These consequences can be considered to be benign, but they are still
> there.  To make the formalism work correctly in the presence of these
> consequences requires a lot of work (and may not be possible, even here).

I suppose it consequences but they all involve the anonumous nodes F1, etc
used to set the thing up.  I don't see why making it work is so tricky.

> The third price is that we have introduced a form of reification and a
> construct that can assert the truth of reification constructs.  This
> (probably) doesn't cause any problems here because the extension is so
> expressively limited.  However, for more powerful extensions reification
> produces paradoxes, and thus cannot be used.

How do you mean "produces"?  Allows  one to write, or allows one to
deduce from the empty formula?

In N3,
{ this a :Falsehood }.

It is will always possible to write a paradox on the semantic web. It is
so importnat to be able to say what someone else is say is untrue that
one cannot help but be able to say that what one is saying is untrue.
That's life.  The question is whether the logic becomes unsound in that
any DAML system which includes :or can then be used to proove anything.

Being an amateur at this, I had understtod that Goedel's theorem anyway
demonstarted that in any system of any basic power must necessarily have a
which was paradoxical.  So avoiding expressing a paradox is a waste of time.

So you feel that allowing reification -- or, presumably, allowing
sets of statements as first class objects in the syntax -- makes the system
such that one can necessarily deduce a contradiction from nothing?
The I need help understanding how.

The normal way you do it relies on the Princple of the Excluded middle,
which of course cannot be part of the semnatic web.

> Why is there a problem?  The problem arises, as Pat has stated, from the
> attempt to extend a representation formalism while not extending the
> syntax.  This cannot be done in many circumstances and can only be easily
> done in very limited circumstances.

I need to understand better where the problem lies

> Peter F. Patel-Schneider
> Bell Labs Research

Received on Friday, 11 January 2002 16:59:46 UTC