W3C home > Mailing lists > Public > www-rdf-logic@w3.org > February 2001

Re: universal languages

From: Drew McDermott <drew.mcdermott@yale.edu>
Date: Fri, 2 Feb 2001 16:50:57 -0500 (EST)
Message-Id: <200102022150.QAA03666@mr4.its.yale.edu>
To: connolly@w3.org
CC: www-rdf-logic@w3.org

   You get to decide whether my evidence is
   compelling/persuasive/interesting.

   But to refer to my research as "offhand remarks" is, well, rude, no?

I apologize.

Let me be more constructive.  Here are some issues we could talk about
instead of triples.  In each case, when I ask "Should the language
have X?" what I probably mean is "Should there be a subset of the
language that allows X?"

> Should the language have types?  I think the answer is a strong Yes,
but many AI languages have used sets instead.  The difference is that
types behave more like a syntactic restriction on variables and
predicates, whereas sets are objects in the domain.

> What sorts of quantifiers are allowed?  Do lambda-expressions appear
as explicit constructs?

> Should the language have functions?  They are often very handy.  In
PDDL, for instance, we have recently added functions that denote
fluents, so that volume_in(tank3) might denote the time-varying amount of
fluid in tank3.

> Is the language extensional or intensional?  This issue has been
raised in passing earlier in the discussion.  If we want to be able to
describe what an agent believes, then we will need a predicate 
believes(a, p).  The second argument is generally held to be "opaque,"
that is, impenetrable to equality substitution.  (So if Fred believes
that Bush is not really President, you can't conclude "Fred believes
Bush is not really Bush" from Bush = President.)  You also get funny
interactions with quantifiers.

The issue comes up in more mundane ways.  If we look at the term
volume_in(tank3), do we want to think of it as a function of time?  If
so, what does volume_in(tank3) + 5 mean?  Two choices:

   volume_in(tank3)(now) + 5
   lambda(t) (volume_in(tank3)(t) + 5)

The first is a number, the second a time-varying quantity, always
5 larger than volume_in(tank3).  

If the language is intensional, then presumably the second is the
intended meaning of volume_in(tank3) + 5.  Pat Hayes has often argued
that the overhead for extensionality is low, and we should just view
volume_in(tank3) + 5 as ill-formed.  You must always pick one of the
interpretations above and write it that way.

Some of the participants in a the discussion assume that
intensionality = quotation.  It's true that quotation is one way to
implement intensionality, but it's not the only way.  The other is
just to use possible-world semantics.  This tends to be more compact
but lets in a few too many inferences.

   > Don't get me wrong.  I'm not arguing in favor of another concrete
   > syntax.  I like XML for the same reasons I like Lisp: it provides a
   > level of hierarchical structure intermediate between characters and
   > syntax trees.  But, like Lisp, XML imposes almost no constraints on
   > what actually gets expressed in it.  Great!  Why don't we define a
   > language and then find a way to embed it in XML?

   That's what we're doing, I think.

   By they way... along with XML, don't forget URIs. The
   value of the Web is the network of URIs. Any language
   disconnected from that context is totally worthless to me.

Yes, you're right.  URIs are an orthogonal issue to XML (and RDF, for
that matter).  I'm not entirely sold on URIs, but they seem like a
good idea.

   As bad as RDF might seem, all the other languages I've
   seen in this design space are worse. Either (a) they don't
   connect to URI space, so why bother, or (b) they're
   even more baroque than RDF. Check out XMI, for example.
     http://www.oasis-open.org/cover/xmi.html
     http://www.google.com/search?q=XMI

I took a glance at it.  (Not easy; there are a lot of stale links
around XMI; is it dead?)  I'm not sure what makes XMI more baroque
than RDF.  It looks like they just took UML and XML-ified it.  That's
more or less what I'm advocating with respect to knowledge
representation. 

   >  (Step 2 should take
   > about 15 minutes.)

   Hah! I think you display a lack of experience in
   consensus building.

Not a complete lack.  I realize that there can be infinite discussion
over trivial syntactic issues.  The way to settle them is to appoint a
syntax czar whose decisions are final.

   >  What exactly is the role RDF plays in all this?

   It's a little teeny formal system based on URIs and XML:
   two place predicates only, conjunctions and existentials but no
   negation, disjunction, universals, etc.

The problem is that RDF is sometimes the small language we plan to
use, and other times it's just the medium in which the actual language
is going to be written.  What's driving me a little crazy is that its
advocates switch back and forth between these two positions.  When its
inadequacies as a language are pointed out, the RDFites say, "We can
implement any language we like."  But then the next day they're using
RDF as the actual language again.

I don't understand the power of "triples."  Doesn't XML already have
"triples"?  If I say

<foo u="x">
   <baz v="y"/>
</foo>

isn't there a triple x-baz-y?  What's the big deal?  I feel like I
must be in the presence of a mystery on a par with the Holy Trinity;
mere mortals can only genuflect, not understand.

Let me repeat the problem: If RDF is just a mechanism for describing
the syntax of some other language, then it's irrelevant.  If it is the
actual language, then it's inadequate.

                                             -- Drew 
Received on Friday, 2 February 2001 16:51:00 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:38 GMT