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

Re: N3 vs. XML

From: Drew McDermott <drew.mcdermott@yale.edu>
Date: Thu, 24 May 2001 10:47:35 -0400 (EDT)
Message-Id: <200105241447.KAA25513@pantheon-po03.its.yale.edu>
To: www-rdf-logic@w3.org

   > The point is that I would like to "quantify in" to the
   > pieces of an implication.

   [jos deroo]
   fine, see http://www.w3.org/DesignIssues/Anonymous.html and
   http://www.w3.org/2000/10/swap/Examples.html for examples

Okay, I've looked, and I find (at the first of your links) things

      <#premise> = {  <#p> daml:inverse <#q> } .
      <#conclusion> = { <#q> daml:inverse <#p> } .
      { <#premise> log:implies <#conclusion> } forall <#p>, <#q> .

without much explanation.

But this is where we came in.  I asked how braces worked.  Do they
provide a shorthand for reification, do they relax the rule of "triple
flattening"*, or (your possibility) do they indicate quoting eveything
inside them as a string?  

If we go with the third option, how exactly does it work?  It's just
not obvious.  Here are some particular questions:

> <#p> is just another URI.  Hence (I thought) it denoted a particular
thing in or described by the current document.  What might that thing
be?  A variable? Or are we "disconnecting" it from its "normal"
meaning and letting it play the role of a variable?

> What is the relationship between <#p> and the string 
{ <#p> daml:inverse <#q> }?  Presumably I have to substitute something
into the string; what exactly?

> What if the string doesn't actually parse correctly?  Say I forgot
an angle bracket, and write  {  <#p> daml:inverse #q> }.  It's still a
perfectly good string.  What is the meaning in this case?

> I assume that something like the following is going on: Given a
string in the proper context, we should run our RDF parser on it, get
out a set of triples, and then.... What?  We don't add them to the set
at the outer layer, because then we'd end up asserting the triples
from the pieces of an implication.  So what do we do with them?

I suspect that the official answer is something like this: We use
strings to evade the triple-flattening* rule.  However, we all know
that they're not really strings.  We're going to turn them back into
triples as soon as we can (and signal an error if the syntax doesn't
work). We're just not going to add them to our outer set of triples.

Why bother with this charade?  Why not just do away with the
triple-flattening* rule, and say that a context is ordinary RDF --- not
reified, not quoted --- but that triple flattening doesn't apply
across braces?  What would be the harm?

*("Triple flattening" is short for "the requirement to assert every
triple in a structure of triples.")

                                             -- Drew McDermott
Received on Thursday, 24 May 2001 10:47:38 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:45:38 UTC