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

Re: punctuationSyntax (let's drop reification shorthand)

From: Seaborne, Andy <andy.seaborne@hp.com>
Date: Mon, 11 Apr 2005 13:22:38 +0100
Message-ID: <425A6C0E.6060606@hp.com>
To: Dan Connolly <connolly@w3.org>
CC: Jeen Broekstra <jeen@aduna.biz>, Dave Beckett <dave.beckett@bristol.ac.uk>, RDF Data Access Working Group <public-rdf-dawg@w3.org>



Dan Connolly wrote:
> 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
> 
> 
> Hmm...
> 
> | 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.
> 
> that
> 
>   :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
> like...
> 
>   SELECT ?who
>    WHERE ?who :said << ?anmial1 :eats ?animal2.
>                        ?animal2 :eats ?animal3 >>.

Never.  It's just support for one triple as per the RDF vocabulary.

> 
> 
> 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,
>   http://www.w3.org/2001/sw/DataAccess/rq23/#BasicGraphPatterns
> imports the "RDF Data Model" from section  3.1 Graph Data Model
> http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-data-model
> which refers to section 6. Abstract Syntax
> http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Graph-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>>"
>    http://www.w3.org/2005/04/05-dawg-minutes.html#item06
> 
> so here we are. Let anyone who wants to keep <<subj pred obj>>
> speak now/soon or forever hold your peace.

That's fine by me - I'm not a reification fan but I do note that some (not a 
lot) of people use and when they do, it is used very heavily.  Therefore, 
syntactic sugar to help them that other applications, not using reification will 
just not use seemed a fair compromise.

Not highlighting this issue especially but as a general comment:

When people propose something (add or remove), can we also have an outline draft 
text for the comments list that summarises the arguments that leads to the 
proposal?  DanC's text gives a strong argument as to why reification is complicated.

	Andy
Received on Monday, 11 April 2005 12:22:51 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:23 GMT