summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoern Hees <dev@joernhees.de>2017-04-09 20:27:21 +0200
committerJoern Hees <dev@joernhees.de>2017-04-09 20:27:21 +0200
commitd80b313f97d4ce9c6441184704b56e143ff08118 (patch)
treea5dc67142c93d4deb99284bb58805295dde544c1
parent47b04545676fc953e96f189d3d312f42e3d64cc3 (diff)
downloadrdflib-d80b313f97d4ce9c6441184704b56e143ff08118.tar.gz
some merging cleanup
-rw-r--r--test/test_canonicalization.py190
1 files changed, 65 insertions, 125 deletions
diff --git a/test/test_canonicalization.py b/test/test_canonicalization.py
index bb856218..9b094ce6 100644
--- a/test/test_canonicalization.py
+++ b/test/test_canonicalization.py
@@ -158,130 +158,6 @@ def negative_graph_match_test():
for inputs in testInputs:
yield fn, inputs[0], inputs[1], inputs[2]
-def test_issue725_collapsing_bnodes():
- g = rdflib.Graph()
- g += [
- (rdflib.term.BNode('N0a76d42406b84fe4b8029d0a7fa04244'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#object'),
- rdflib.term.BNode('v2')),
- (rdflib.term.BNode('N0a76d42406b84fe4b8029d0a7fa04244'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate'),
- rdflib.term.BNode('v0')),
- (rdflib.term.BNode('N0a76d42406b84fe4b8029d0a7fa04244'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject'),
- rdflib.term.URIRef(u'urn:gp_learner:fixed_var:target')),
- (rdflib.term.BNode('N0a76d42406b84fe4b8029d0a7fa04244'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement')),
- (rdflib.term.BNode('N2f62af5936b94a8eb4b1e4bfa8e11d95'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#object'),
- rdflib.term.BNode('v1')),
- (rdflib.term.BNode('N2f62af5936b94a8eb4b1e4bfa8e11d95'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate'),
- rdflib.term.BNode('v0')),
- (rdflib.term.BNode('N2f62af5936b94a8eb4b1e4bfa8e11d95'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject'),
- rdflib.term.URIRef(u'urn:gp_learner:fixed_var:target')),
- (rdflib.term.BNode('N2f62af5936b94a8eb4b1e4bfa8e11d95'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement')),
- (rdflib.term.BNode('N5ae541f93e1d4e5880450b1bdceb6404'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#object'),
- rdflib.term.BNode('v5')),
- (rdflib.term.BNode('N5ae541f93e1d4e5880450b1bdceb6404'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate'),
- rdflib.term.BNode('v4')),
- (rdflib.term.BNode('N5ae541f93e1d4e5880450b1bdceb6404'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject'),
- rdflib.term.URIRef(u'urn:gp_learner:fixed_var:target')),
- (rdflib.term.BNode('N5ae541f93e1d4e5880450b1bdceb6404'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement')),
- (rdflib.term.BNode('N86ac7ca781f546ae939b8963895f672e'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#object'),
- rdflib.term.URIRef(u'urn:gp_learner:fixed_var:source')),
- (rdflib.term.BNode('N86ac7ca781f546ae939b8963895f672e'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate'),
- rdflib.term.BNode('v0')),
- (rdflib.term.BNode('N86ac7ca781f546ae939b8963895f672e'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject'),
- rdflib.term.URIRef(u'urn:gp_learner:fixed_var:target')),
- (rdflib.term.BNode('N86ac7ca781f546ae939b8963895f672e'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement')),
- (rdflib.term.BNode('Nac82b883ca3849b5ab6820b7ac15e490'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#object'),
- rdflib.term.BNode('v1')),
- (rdflib.term.BNode('Nac82b883ca3849b5ab6820b7ac15e490'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate'),
- rdflib.term.BNode('v3')),
- (rdflib.term.BNode('Nac82b883ca3849b5ab6820b7ac15e490'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject'),
- rdflib.term.URIRef(u'urn:gp_learner:fixed_var:target')),
- (rdflib.term.BNode('Nac82b883ca3849b5ab6820b7ac15e490'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),
- rdflib.term.URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement'))
- ]
-
- turtle = '''
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xml: <http://www.w3.org/XML/1998/namespace> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-[] a rdf:Statement ;
- rdf:object [ ] ;
- rdf:predicate _:v0 ;
- rdf:subject <urn:gp_learner:fixed_var:target> .
-
-[] a rdf:Statement ;
- rdf:object _:v1 ;
- rdf:predicate _:v0 ;
- rdf:subject <urn:gp_learner:fixed_var:target> .
-
-[] a rdf:Statement ;
- rdf:object [ ] ;
- rdf:predicate [ ] ;
- rdf:subject <urn:gp_learner:fixed_var:target> .
-
-[] a rdf:Statement ;
- rdf:object <urn:gp_learner:fixed_var:source> ;
- rdf:predicate _:v0 ;
- rdf:subject <urn:gp_learner:fixed_var:target> .
-
-[] a rdf:Statement ;
- rdf:object _:v1 ;
- rdf:predicate [ ] ;
- rdf:subject <urn:gp_learner:fixed_var:target> .'''
-
- #g = Graph()
- #g.parse(data=turtle, format='turtle')
-
- stats = {}
- cg = rdflib.compare.to_canonical_graph(g, stats=stats)
-
- print ('graph g length: %d, nodes: %d' % (len(g), len(g.all_nodes())))
- print ('triple_bnode degrees:')
- for triple_bnode in g.subjects(rdflib.RDF['type'], rdflib.RDF['Statement']):
- print (len(list(g.triples([triple_bnode, None, None]))))
- print ('all node out-degrees:')
- print (sorted([len(list(g.triples([node, None, None]))) for node in g.all_nodes()]))
- print ('all node in-degrees:')
- print (sorted([len(list(g.triples([None, None, node]))) for node in g.all_nodes()]))
- print(g.serialize(format='n3'))
-
- print ('graph cg length: %d, nodes: %d' % (len(cg), len(cg.all_nodes())))
- print ('triple_bnode degrees:')
- for triple_bnode in cg.subjects(rdflib.RDF['type'], rdflib.RDF['Statement']):
- print (len(list(cg.triples([triple_bnode, None, None]))))
- print ('all node out-degrees:')
- print (sorted([len(list(cg.triples([node, None, None]))) for node in cg.all_nodes()]))
- print ('all node in-degrees:')
- print (sorted([len(list(cg.triples([None, None, node]))) for node in cg.all_nodes()]))
- print(cg.serialize(format='n3'))
-
- assert(len(g.all_nodes()) == len(cg.all_nodes()))
-
def test_issue494_collapsing_bnodes():
"""Test for https://github.com/RDFLib/rdflib/issues/494 collapsing BNodes"""
g = Graph()
@@ -430,7 +306,7 @@ def test_issue682_signing_named_graphs():
assert ig.graph_digest() != igmary.graph_digest()
-def test_issue725_collapsing_bnodes():
+def test_issue725_collapsing_bnodes_2():
g = Graph()
g += [
(BNode('N0a76d42406b84fe4b8029d0a7fa04244'),
@@ -495,6 +371,70 @@ def test_issue725_collapsing_bnodes():
URIRef(u'http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement'))
]
+ turtle = '''
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+ @prefix xml: <http://www.w3.org/XML/1998/namespace> .
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+ [] a rdf:Statement ;
+ rdf:object [ ] ;
+ rdf:predicate _:v0 ;
+ rdf:subject <urn:gp_learner:fixed_var:target> .
+
+ [] a rdf:Statement ;
+ rdf:object _:v1 ;
+ rdf:predicate _:v0 ;
+ rdf:subject <urn:gp_learner:fixed_var:target> .
+
+ [] a rdf:Statement ;
+ rdf:object [ ] ;
+ rdf:predicate [ ] ;
+ rdf:subject <urn:gp_learner:fixed_var:target> .
+
+ [] a rdf:Statement ;
+ rdf:object <urn:gp_learner:fixed_var:source> ;
+ rdf:predicate _:v0 ;
+ rdf:subject <urn:gp_learner:fixed_var:target> .
+
+ [] a rdf:Statement ;
+ rdf:object _:v1 ;
+ rdf:predicate [ ] ;
+ rdf:subject <urn:gp_learner:fixed_var:target> .'''
+
+ # g = Graph()
+ # g.parse(data=turtle, format='turtle')
+
+ stats = {}
+ cg = rdflib.compare.to_canonical_graph(g, stats=stats)
+
+ # print ('graph g length: %d, nodes: %d' % (len(g), len(g.all_nodes())))
+ # print ('triple_bnode degrees:')
+ # for triple_bnode in g.subjects(rdflib.RDF['type'], rdflib.RDF['Statement']):
+ # print (len(list(g.triples([triple_bnode, None, None]))))
+ # print ('all node out-degrees:')
+ # print (sorted(
+ # [len(list(g.triples([node, None, None]))) for node in g.all_nodes()]))
+ # print ('all node in-degrees:')
+ # print (sorted(
+ # [len(list(g.triples([None, None, node]))) for node in g.all_nodes()]))
+ # print(g.serialize(format='n3'))
+ #
+ # print ('graph cg length: %d, nodes: %d' % (len(cg), len(cg.all_nodes())))
+ # print ('triple_bnode degrees:')
+ # for triple_bnode in cg.subjects(rdflib.RDF['type'],
+ # rdflib.RDF['Statement']):
+ # print (len(list(cg.triples([triple_bnode, None, None]))))
+ # print ('all node out-degrees:')
+ # print (sorted(
+ # [len(list(cg.triples([node, None, None]))) for node in cg.all_nodes()]))
+ # print ('all node in-degrees:')
+ # print (sorted(
+ # [len(list(cg.triples([None, None, node]))) for node in cg.all_nodes()]))
+ # print(cg.serialize(format='n3'))
+
+ assert (len(g.all_nodes()) == len(cg.all_nodes()))
+
cg = to_canonical_graph(g)
assert len(g) == len(cg), \
'canonicalization changed number of triples in graph'