- From: Reto Bachmann-Gmür <reto@gmuer.ch>
- Date: Sun, 08 Jan 2006 15:20:38 +0100
- 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