- From: Niklas Lindström <lindstream@gmail.com>
- Date: Tue, 1 Mar 2011 18:55:32 +0100
- To: nathan@webr3.org
- Cc: Ivan Shmakov <oneingray@gmail.com>, Ivan Shmakov <ivan@main.uusia.org>, semantic-web@w3.org
Yes, that case (cyclical references) works alright in RDFLib. I expect that algorithm to work fine for *almost* anything. But I just discovered it can smush two bnodes together in at least *one* particular case -- number 2 in this example test (requires Python 2.5+ and RDFLib 3.0+): from rdflib import Graph, compare for data in [ # 1. Ok. """ _:b1 :knows _:b2 . _:b2 :knownBy _:b1 . """, # 2. Fails - smushes these bnodes together. """ _:b1 :knows _:b2 . _:b2 :knows _:b1 . """, # 3. Ok again with some additional data. """ _:b1 :knows _:b2 . _:b2 :knows _:b1 . _:b1 :name "blank 1" . """, ]: g = Graph().parse(format='n3', data= "@prefix : <http://example.org/def/vocab#> . " + data) c14n = compare.to_canonical_graph(g).serialize(format='nt') print "Using:"; print data; print "Got:" print compare.to_canonical_graph(g).serialize(format='nt') Anyhow, I audaciously expect this to occur extremely rarely (probably only for this artificial case), and will keep using this module for comparisons. ;) Best regards, Niklas 2011/3/1 Nathan <nathan@webr3.org>: > can these two handle the case of: > > _:b1 :x _:b2 . > _:b2 :y _:b1 . > > + yes I agree, would be great to have a canonical representaion and > comparison method. > > Cheers, > > Nathan > > Niklas Lindström wrote: >> >> Hi Ivan, >> >> while this isn't based on this or any newer standard proposal, the >> Python-based RDFLib contains an implementation for canonicalizing and >> comparing graphs. See the the "rdflib.compare" module: >> >> http://code.google.com/p/rdflib/source/browse/trunk/rdflib/compare.py >> >> It would be interesting to standardize something like that; and >> certainly useful for some things. >> >> Best regards, >> Niklas >> >> >> >> On Tue, Mar 1, 2011 at 10:50 AM, Ivan Shmakov <ivan@main.uusia.org> wrote: >>> >>> The “The case for generating URIs by hashing RDF content” paper >>> [1], dating back to 2002, mentions that “there is no current >>> canonical serialization standard for RDF”. (Then, they suggest >>> their own canonical representation.) >>> >>> I wonder, has such a standard been since proposed? >>> >>> [1] http://www.hpl.hp.com/techreports/2002/HPL-2002-216.pdf >>> >>> -- >>> FSF associate member #7257 >>> >> >> >> > >
Received on Tuesday, 1 March 2011 17:56:25 UTC