[foaf-dev] [foaf-protocols] fp:ping
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:object "Draft Special Document"@en .
This is indeed what you say here a bit further down on
> 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.
More information about the foaf-dev