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