W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2005

Re: punctuationSyntax (let's drop reification shorthand)

From: Dan Connolly <connolly@w3.org>
Date: Fri, 08 Apr 2005 06:35:30 -0500
To: Jeen Broekstra <jeen@aduna.biz>
Cc: Dave Beckett <dave.beckett@bristol.ac.uk>, RDF Data Access Working Group <public-rdf-dawg@w3.org>
Message-Id: <1112960130.15073.961.camel@localhost>

On Fri, 2005-04-08 at 12:20 +0200, Jeen Broekstra wrote:
> Dave Beckett wrote:
> > As a particular criticism, I don't like the << ... >> reification
> > syntax, it has never been asked for as an addition to Turtle (a few
> > years experience)  and I don't need it for any of my applications.
> Actually we have had some examples of people using the reification
> shorthand syntax in SeRQL. Example case (actually a pretty exotic one
> where this is used in the CONSTRUCT to create new reifications):
> http://www.openrdf.org/forum/mvnforum/viewthread?lastpage=yes&thread=404


| construct {{xxx} aaa {yyy}} my:foo {my:bar}
| from {xxx} aaa {yyy}

No, let's please not use {} for rdf:subject/predicate/object
style reification. That style of reification does *not* quote
the terms; it's referentially transparent, which I think
causes all kinds of trouble.

Using the << >> syntax just for the sake of argument...

If we have
  :Mary a :Person.
  :Term owl:disjointWith :Person.
then with rdf:subject/predicate/object, we have

  << :Mary :hit [ a :Ball ] >> rdf:subject [ a :Person ].

and *not*
  << :Mary :hit [ a :Ball ] >> rdf:subject [ a :Term ].

While this is true...
  << :Mary :hit [ a :Ball ] >> a rdf:Statement.
I think it's misleading. I can almost make my peace
with it this way...
  << :Mary :hit [ a :Ball ] >> a :Situation.

To see why the rdf:Statement thing is misleading,
consider... it *does* follow from...

  :Lois :believes << :Superman a :Hero >>.
  :Superman owl:sameAs :ClarkKent.

by OWL entailment that

  :Lois :believes << :ClarkKent a :Hero >>.

In contrast, the N3 {}s do quote their contents, so it
does *not* follow from

  :Lois :believes { Superman a Hero }.
  :Superman owl:sameAs ClarkKent.


  :Lois :believes { :ClarkKent a :Hero }.

There's also the business of referring to multiple triples. Reifying
multiple triples was supposed to be done with rdf:Bag's, I think,
which are another construct that doesn't really work (they
don't have enough information to say "and there's nothing else
in this bag"). I don't think the grammar even allows stuff

  SELECT ?who
   WHERE ?who :said << ?anmial1 :eats ?animal2.
                       ?animal2 :eats ?animal3 >>.

Hmm... how do []s inside <<>> work? The grammar does allow
those... I think

  << Mary hit [ a Ball ] >> a FunnySituation

actually reduces to

  << Mary hit _:something >> a FunnySituation
  _:something a Ball.

i.e. the claim that Mary hit something is not
asserted at the top level, but the claim that the something
is a ball is.

I really wish RDF Core had deprecated rdfs:subject/predicate/object
because they don't get this quoting stuff right.
They/we didn't, but I'll make the same argument again here.
Let's please not encourage people to use rdfs:subject/predicate/object.

>  From a point of view of QL adequacy it seems a bit poor to not add
> some sort of convenience shortcut for reification. After all, the
> concept is part of the RDF abstract model.

Hmm... How so? I think it's just a utility vocabulary, like
rdf:value and rdfs:label. It's certainly not part
of the abstract syntax.

The SPARQL spec, in 2.2 Graph patterns,
imports the "RDF Data Model" from section  3.1 Graph Data Model
which refers to section 6. Abstract Syntax

"reification" occurs in neither section of rdf-concepts. In fact,
it occurs nowhere in rdf-concepts.

> That being said, I'm not particularly fond of the double angle bracket
> syntax either - yet more brackets to clutter up the syntax. So,
> neither a strong like nor strong dislike in my case, but I felt the
> additional data point might be useful.

Yes, it's good to have all the relevant experience on the table.

But we discussed this <<reificatoin shorthand>> on the teleconference,
and several spoke against it an noone spoke for it. The only known
advocate in the WG, Andy, wasn't there, so rather than put the question,
I took an action...

  ACTION: DanC to propose to close punctuationSyntax (again)
    sans <<reifiction shorthand>>"

so here we are. Let anyone who wants to keep <<subj pred obj>>
speak now/soon or forever hold your peace.

Dan Connolly, W3C http://www.w3.org/People/Connolly/
D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E
Received on Friday, 8 April 2005 11:35:31 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:00:47 UTC