I ran into an issue when trying to insert some reification statements with new Blank Nodes.
Minimal test case below:
test:
This will create one BNode with 3 outgoing :a
edges and 3 outgoing :b
edges.
INSERT {
?bn :a ?a; :b ?b .
} WHERE {
BIND(Bnode() AS ?bn)
VALUES (?a ?b) {(1 "a") (2 "b") (3 "c")}
}
This will create 6 ?!? BNodes with 1 :a
and 1 :b
edge each:
INSERT {
?bn :a ?a; :b ?b .
} WHERE {
VALUES (?a ?b) {(1 "a") (2 "b") (3 "c")}
BIND(Bnode() AS ?bn)
}
Expected i think are 3 BNodes being created by the second query.
test on fuseki:
Fuseki seems to support that:
This creates 1 BNode with 3 outgoing :a
and 3 :b
edges:
PREFIX : <http://example.com/>
INSERT {
?bn :a ?a; :b ?b .
} WHERE {
BIND(Bnode() AS ?bn)
VALUES (?a ?b) {(1 "a") (2 "b") (3 "c")}
}
This will create 3 BNodes as expected with 1 :a
and one :b
edge each.
PREFIX : <http://example.com/>
INSERT {
?bn :a ?a; :b ?b .
} WHERE {
VALUES (?a ?b) {(1 "a") (2 "b") (3 "c")}
BIND(Bnode() AS ?bn)
}