[foaf-dev] [foaf-protocols] fp:ping

Story Henry henry.story at bblfish.net
Fri Apr 16 21:14:27 CEST 2010


Just reconsidered my position.
I think I can show, that your scheme is not going to work.

On 16 Apr 2010, at 15:41, Story Henry wrote:

> On 16 Apr 2010, at 15:19, Nathan wrote:
> 
>>> Looking at your proposal just makes my point that there is a lot of work to
>>> do in this area. From a quick perusal of your solution, it won't work. It may seem
>>> to, but that is an illusion, because you only have your own implementation to work in. Semantically though it is wrong. A patch needs to be done as a diff of graphs. It is not something you can do without named graphs. 
>> 
>> that's what this does; creates a diff then you use that diff to patch X
>> graph (using named graphs) and it has some additionals such as merging
>> multi graphs together and suchlike - tested and all works nicely. +
>> sparql-less. In short it's a full implementation of diff/patch for rdf
>> and is being used already (even by Ivan over at virtuoso who's using it
>> to test the new virtuoso delta engine)
> 
> Ah ok. I see. It is a doing some hidden reification really. I was worried the blank node was a blank node for the subject, which is a natural way to read _:d1 in
> 
> -------------------------------------------
@prefix guo: <http://webr3.org/owl/guo#> .
@prefix dcterms: <http://purl.org/dc/terms/> .

_:u1 a guo:UpdateInstruction ;
     guo:target_graph <http://webr3.org> ;
     guo:target_subject <http://webr3.org/r/Special_Document> ;
     guo:delete _:d1 ;
     guo:insert _:i2 .

_:d1 dcterms:title "Draft Special Document"@en .

_:i2 dcterms:title "Special Document"@en ;
     dcterms:published "2010-03-18T15:26:13Z" .
> -------------------------------------------


What the above seems to want to say with 

> _:u1 guo:delete _:d1 . 

Is that it should delete the statement named by _:d1, 
which traditionally we would have written out like this

_:d1 a rdf:Statement;
    rdf:subject <http://webr3.org/r/Special_Document> 
    rdf:predicate dcterms:title;
    rdf:object "Draft Special Document"@en .


This is indeed what you say here a bit further down on 
http://webr3.org/specs/guo/

> The above example describes the removal of a single triple:
> 
> <http://webr3.org/r/Special_Document> <http://purl.org/dc/terms/title> "Draft Special Document"@en .
> 

 
For this to make sense _:d1 has to be an rdf:statement. But it cannot be.
To prove it imagine that we had defined it as

_:d1 foaf:homepage <http://bblfish.net/> .

Now foaf:homepage is an inverse functional property relating an agent to a home page. 
_:d1 therefore is me, Henry Story, or <http://bblfish.net/#hjs>, and I am not a reified triple.

QED: You are not saying what you think you are.   



> 
> 
> I find the SPARUL version easier to read, and conceptually clearer - less likely to
> get people to go on to do the wrong thing.
> 
> But ok, thanks for pointing this out. Could indeed be useful.
> 
> Henry


More information about the foaf-dev mailing list