W3C home > Mailing lists > Public > semantic-web@w3.org > January 2006

Re: rdf-utils 0.2: support for diff and patch

From: Reto Bachmann-Gmür <reto@gmuer.ch>
Date: Sun, 08 Jan 2006 15:20:38 +0100
Message-ID: <43C11FB6.4000007@gmuer.ch>
To: Giovanni Tummarello <g.tummarello@gmail.com>
CC: Danny Ayers <danny.ayers@gmail.com>, semantic-web@w3c.org

not sure if the diff/patch functionality of rdf-utils was misunderstood,
it is of course independent of serialization idiosyncrasy (i.e.
independent of the order of statements and b-node labels). The advantage
of the concept of rdf-molecules[1] over the concept of minimum self
contained graph is that it takes (inverse) functional property into account.

for example, given the graph g1:

[ foaf:firstName "reto ".
  foaf:family_name "gmür".
  foaf:mbox "reto@gmuer.ch".]

and the graph g2:

[ foaf:firstName "reto ".
  foaf:family_name "bachmann-gmür".
  foaf:mbox "reto@gmuer.ch".]

without knowing that foaf:mbox is inverse-functional (-D false, as
command line option) the diff would look like this (this are "contextual
molecule" which is basically the same as a minimum self contained graph):

onlyIn1:
[ foaf:firstName "reto ".
  foaf:family_name "gmür".
  foaf:mbox "reto@gmuer.ch".]

onlyIn2:
[ foaf:firstName "reto ".
  foaf:family_name "bachmann-gmür".
  foaf:mbox "reto@gmuer.ch".]

with considering the ifp the diff is smaller (a bit smaller here but
potentially a lot smaller):
onlyIn1:
[ foaf:family_name "gmür".
  foaf:mbox "reto@gmuer.ch".]

onlyIn2:
[ foaf:family_name "bachmann-gmür".
  foaf:mbox "reto@gmuer.ch".]

If you look at a unzipped diff, you will notice that the inverse
functional statement is not directly contained in the contextual or
terminal molecules but instead a serialization of all statements
grounding a node is referenced. This allows a diff to compactly say
something like "there is a node grounded with "foaf:mbox 'reto@gmuer.ch'
and foaf:homepage 'http://gmuer.ch/'" in one graph and with 'foaf:mbox
'reto@gmuer.ch' and foaf:blog 'http://gmuer.ch/blog' in the other",
leaving alone all shared non-functional statements about this node (such
a functionally grounded node (fg-node), grounded by different statements
in the two model is called cross-graph-fg-node, often such a node
corresponds to one fg-node per graph, it may however also correspond to
multiple fg-nodes in one or in both graph, in the more seldom latter
case the original fg-nodes are referred in the molecules, this assures
that the diff can be used for patch and unpatch operations, this was
different in 0.1 [2], potentially leading to a loss of information).

reto


1. http://www.ksl.stanford.edu/people/pp/papers/Ding_ISWC_2005.pdf
2. http://wymiwyg.org/2005/12/23/loss-of-information-when

Giovanni Tummarello schrieb:

>
> If model RSync is what you're looking for, the code in the 
> RDFContextTool lib ( http://www.dbin.org/RDFContextTools.php but the 
> code to use is really the one on the CVS) allows building a 
> fantastically efficent one for RDF graphs (RDF RSync or R2Sync). 
> Experimental results look really nice and the procedure is based 
> exclusively on RDF theory (and the Minimum Self contained Graph 
> theory  [1], also used for digitally signign such fragments), not on 
> the way some DB decides to store the graph (e.g. some DB specific 
> de/serialization idiosyncrasy).
> I just need to find some time after the DBin release to get it out in 
> in the public, but if someone is in urgent need of traffic efficient 
> syncronization, please msg me I might be able to help right away  :-)
> Giovanni
>
> [1] G. Tummarello, C. Morbidoni, P. Puliti, F. Piazza, "RDF signing 
> supporting resource centric requests" Proceedings of the Poster track, 
> ESWC 2005.
> http://semedia.deit.univpm.it/submissions/ESWC2005_Poster/ESWC2005_signignRDF.pdf 
>
>
> Danny Ayers wrote:
>
>> On 1/7/06, Reto Bachmann-Gmür <reto@gmuer.ch> wrote:
>>
>>  
>>
>>> rdf-utils 0.2: support for diff and patch Reto Bachmann-Gmür 2006-01-07
>>> 24:26
>>>   
>>
>>
>> Wonderful!
>>
>> Coincidentally I just ran into this, looks like you just covered 2/5 :
>>
>> http://www.daml.org/2001/04/iow/mit/index.htm.old
>> Semantic Web Development
>> Intent of Work
>> 23 March, 2001
>>
>> ·         Parsing and regeneration of DAML to/from a data store
>>
>> ·         Persistent RDF/DAML data repository module
>>
>> ·         In-memory RDF/DAML data store
>>
>> ·         Repository difference (delta) calculation module
>>
>> ·         Repository synchronization module
>>
>> ·         Basic Inference rule processor
>>
>>
>> Cheers,
>> Danny.
>>
>> -- 
>>
>> http://dannyayers.com
>>
>>
>>  
>>
>
>
>
Received on Sunday, 8 January 2006 14:56:21 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:44:55 UTC