BTW, I got a ping from LDP-WG about a patch format. That WG want something sub-SPARQL, this maybe a useful input.


I've looked before at RDF-encoded versions (Talis ChangeSets, using TriG) but without further syntax or processing rules, they don't stream and it needs a whole request read in before processing. That a severe limitation.

Example:

@prefix diff: <http://example/diff#> .
@prefix :     <http://example/data#> .

<#g2> { :s :p 456  }
<#g1> { :s :p 123  }

<#g1> { :x :q "foo" }

{ <> diff:delete <#g1> ;
     diff:insert <#g2> .
}

with the manifest default graph last, you can't tell anything about <#g1> or <#g2> so the best I can imagine is to stash them away somewhere.

And does not cope with datasets (a graph-grouped complex manifest would work but then any simplicity is lost and production of such patches is looking a bit troublesome)

And then there's blank nodes.

Restricted SPARQL Update(INSERT DATA, DELETE DATA) sort of works ... except bNodes. An advantage is adding naturally "DROP GRAPH" and "DELETE WHERE".

        Andy

Reply via email to