You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2016/09/12 22:29:11 UTC
[1/5] incubator-commonsrdf git commit: AllToAllTest
Repository: incubator-commonsrdf
Updated Branches:
refs/heads/jena-jsonld-rdf4j-integration 97e3acd94 -> 2b51794e8
AllToAllTest
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/1828c2ab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/1828c2ab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/1828c2ab
Branch: refs/heads/jena-jsonld-rdf4j-integration
Commit: 1828c2abf584958bf25de48d0827c825fd3bb21a
Parents: 97e3acd
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 17:36:32 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 17:36:41 2016 +0100
----------------------------------------------------------------------
.../rdf/integrationtests/AllToAllTest.java | 99 ++++++++++++++++++++
.../rdf/integrationtests/JenaRDF4JTest.java | 78 ---------------
2 files changed, 99 insertions(+), 78 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1828c2ab/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
----------------------------------------------------------------------
diff --git a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
new file mode 100644
index 0000000..a8cd1cd
--- /dev/null
+++ b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
@@ -0,0 +1,99 @@
+package org.apache.commons.rdf.integrationtests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.Graph;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.jena.JenaRDFTermFactory;
+import org.apache.commons.rdf.jsonldjava.JsonLdRDFTermFactory;
+import org.apache.commons.rdf.rdf4j.RDF4JTermFactory;
+import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
+import org.junit.Test;
+
+public class AllToAllTest {
+
+ private RDFTermFactory simpleFactory = new SimpleRDFTermFactory();
+ private RDFTermFactory jenaFactory = new JenaRDFTermFactory();
+ private RDFTermFactory rdf4jFactory = new RDF4JTermFactory();
+ private RDFTermFactory jsonldFactory = new JsonLdRDFTermFactory();
+
+ @Test
+ public void jenaToRdf4j() throws Exception {
+ nodesIntoOther(jenaFactory, rdf4jFactory);
+ }
+ @Test
+ public void jenaToJsonLd() throws Exception {
+ nodesIntoOther(jenaFactory, jsonldFactory);
+ }
+ @Test
+ public void jenaToSimple() throws Exception {
+ nodesIntoOther(jenaFactory, simpleFactory);
+ }
+
+ @Test
+ public void rdf4jToJena() throws Exception {
+ nodesIntoOther(rdf4jFactory, jenaFactory);
+ }
+ @Test
+ public void rdf4jToJsonLd() throws Exception {
+ nodesIntoOther(rdf4jFactory, jsonldFactory);
+ }
+ @Test
+ public void rdf4jToSimple() throws Exception {
+ nodesIntoOther(rdf4jFactory, simpleFactory);
+ }
+
+ @Test
+ public void simpletoJena() throws Exception {
+ nodesIntoOther(simpleFactory, jenaFactory);
+ }
+ @Test
+ public void simpleToJsonLd() throws Exception {
+ nodesIntoOther(simpleFactory, jsonldFactory);
+ }
+ @Test
+ public void simpleToRdf4j() throws Exception {
+ nodesIntoOther(simpleFactory, rdf4jFactory);
+ }
+
+ public void nodesIntoOther(RDFTermFactory fromFactory, RDFTermFactory toFactory) throws Exception {
+ Graph g = fromFactory.createGraph();
+ BlankNode s = toFactory.createBlankNode();
+ IRI p = toFactory.createIRI("http://example.com/p");
+ Literal o = toFactory.createLiteral("Hello");
+
+ g.add(s, p, o);
+
+ // blankNode should still work with g.contains()
+ assertTrue(g.contains(s, p, o));
+ Triple t1 = g.stream().findAny().get();
+
+ // Can't make assumptions about mappegetPredicated BlankNode equality
+ // assertEquals(s, t.getSubject());
+ assertEquals(p, t1.getPredicate());
+ assertEquals(o, t1.getObject());
+
+ IRI s2 = toFactory.createIRI("http://example.com/s2");
+ g.add(s2, p, s);
+ assertTrue(g.contains(s2, p, s));
+
+ // This should be mapped to the same BlankNode
+ // (even if it has a different identifier), e.g.
+ // we should be able to do:
+
+ Triple t2 = g.stream(s2, p, null).findAny().get();
+
+ BlankNode bnode = (BlankNode) t2.getObject();
+ // And that (possibly adapted) BlankNode object should
+ // match the subject of t1 statement
+ assertEquals(bnode, t1.getSubject());
+ // And can be used as a key:
+ Triple t3 = g.stream(bnode, p, null).findAny().get();
+ assertEquals(t1, t3);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1828c2ab/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java
----------------------------------------------------------------------
diff --git a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java
deleted file mode 100644
index 50b5c68..0000000
--- a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.apache.commons.rdf.integrationtests;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.Literal;
-import org.apache.commons.rdf.api.RDFTermFactory;
-import org.apache.commons.rdf.api.Triple;
-import org.apache.commons.rdf.jena.RDFTermFactoryJena;
-import org.apache.commons.rdf.rdf4j.RDF4JTermFactory;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
-import org.junit.Test;
-
-public class JenaRDF4JTest {
-
- private RDFTermFactory simpleFactory = new SimpleRDFTermFactory();
- private RDFTermFactory jenaFactory = new RDFTermFactoryJena();
- private RDFTermFactory rdf4jFactory = new RDF4JTermFactory();
-
- @Test
- public void jenaToRdf4j() throws Exception {
- nodesIntoOther(jenaFactory, rdf4jFactory);
- }
-
- @Test
- public void rdf4jToJena() throws Exception {
- nodesIntoOther(rdf4jFactory, jenaFactory);
- }
-
- @Test
- public void simpletoJena() throws Exception {
- nodesIntoOther(simpleFactory, jenaFactory);
- }
-
- @Test
- public void simpleToRdf4j() throws Exception {
- nodesIntoOther(simpleFactory, rdf4jFactory);
- }
-
- public void nodesIntoOther(RDFTermFactory fromFactory, RDFTermFactory toFactory) throws Exception {
- Graph g = fromFactory.createGraph();
- BlankNode s = toFactory.createBlankNode();
- IRI p = toFactory.createIRI("http://example.com/p");
- Literal o = toFactory.createLiteral("Hello");
-
- g.add(s, p, o);
-
- // blankNode should still work with g.contains()
- assertTrue(g.contains(s, p, o));
- Triple t1 = g.stream().findAny().get();
-
- // Can't make assumptions about mappegetPredicated BlankNode equality
- // assertEquals(s, t.getSubject());
- assertEquals(p, t1.getPredicate());
- assertEquals(o, t1.getObject());
-
- IRI s2 = toFactory.createIRI("http://example.com/s2");
- g.add(s2, p, s);
- assertTrue(g.contains(s2, p, s));
-
- // This should be mapped to the same BlankNode
- // (even if it has a different identifier), e.g.
- // we should be able to do:
-
- Triple t2 = g.stream(s2, p, null).findAny().get();
-
- BlankNode bnode = (BlankNode) t2.getObject();
- // And that (possibly adapted) BlankNode object should
- // match the subject of t1 statement
- assertEquals(bnode, t1.getSubject());
- // And can be used as a key:
- Triple t3 = g.stream(bnode, p, null).findAny().get();
- assertEquals(t1, t3);
- }
-}
[5/5] incubator-commonsrdf git commit: Merge branch 'master' into
jena-jsonld-rdf4j-integration
Posted by st...@apache.org.
Merge branch 'master' into jena-jsonld-rdf4j-integration
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/2b51794e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/2b51794e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/2b51794e
Branch: refs/heads/jena-jsonld-rdf4j-integration
Commit: 2b51794e84caf64831c131f4cd84f34d3976dfa2
Parents: 112505d de7fe8a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Sep 12 19:03:47 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Sep 12 19:03:47 2016 +0100
----------------------------------------------------------------------
.../apache/commons/rdf/simple/GraphImpl.java | 39 +++++++++++---------
1 file changed, 21 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
[2/5] incubator-commonsrdf git commit: addTermsFromOtherFactory
Posted by st...@apache.org.
addTermsFromOtherFactory
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/b8ff697a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/b8ff697a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/b8ff697a
Branch: refs/heads/jena-jsonld-rdf4j-integration
Commit: b8ff697a9bab3804ac59d7764c26ab76fda4ba23
Parents: 1828c2a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 17:42:27 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 17:44:30 2016 +0100
----------------------------------------------------------------------
.../rdf/integrationtests/AllToAllTest.java | 46 ++++++++++++--------
1 file changed, 29 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/b8ff697a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
----------------------------------------------------------------------
diff --git a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
index a8cd1cd..b9ea397 100644
--- a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
+++ b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
@@ -7,6 +7,7 @@ import org.apache.commons.rdf.api.BlankNode;
import org.apache.commons.rdf.api.Graph;
import org.apache.commons.rdf.api.IRI;
import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.api.RDFTerm;
import org.apache.commons.rdf.api.RDFTermFactory;
import org.apache.commons.rdf.api.Triple;
import org.apache.commons.rdf.jena.JenaRDFTermFactory;
@@ -24,48 +25,57 @@ public class AllToAllTest {
@Test
public void jenaToRdf4j() throws Exception {
- nodesIntoOther(jenaFactory, rdf4jFactory);
+ addTermsFromOtherFactory(jenaFactory, rdf4jFactory);
}
@Test
public void jenaToJsonLd() throws Exception {
- nodesIntoOther(jenaFactory, jsonldFactory);
+ addTermsFromOtherFactory(jenaFactory, jsonldFactory);
}
@Test
public void jenaToSimple() throws Exception {
- nodesIntoOther(jenaFactory, simpleFactory);
+ addTermsFromOtherFactory(jenaFactory, simpleFactory);
}
@Test
public void rdf4jToJena() throws Exception {
- nodesIntoOther(rdf4jFactory, jenaFactory);
+ addTermsFromOtherFactory(rdf4jFactory, jenaFactory);
}
@Test
public void rdf4jToJsonLd() throws Exception {
- nodesIntoOther(rdf4jFactory, jsonldFactory);
+ addTermsFromOtherFactory(rdf4jFactory, jsonldFactory);
}
@Test
public void rdf4jToSimple() throws Exception {
- nodesIntoOther(rdf4jFactory, simpleFactory);
+ addTermsFromOtherFactory(rdf4jFactory, simpleFactory);
}
@Test
public void simpletoJena() throws Exception {
- nodesIntoOther(simpleFactory, jenaFactory);
+ addTermsFromOtherFactory(simpleFactory, jenaFactory);
}
@Test
public void simpleToJsonLd() throws Exception {
- nodesIntoOther(simpleFactory, jsonldFactory);
+ addTermsFromOtherFactory(simpleFactory, jsonldFactory);
}
@Test
public void simpleToRdf4j() throws Exception {
- nodesIntoOther(simpleFactory, rdf4jFactory);
+ addTermsFromOtherFactory(simpleFactory, rdf4jFactory);
}
- public void nodesIntoOther(RDFTermFactory fromFactory, RDFTermFactory toFactory) throws Exception {
- Graph g = fromFactory.createGraph();
- BlankNode s = toFactory.createBlankNode();
- IRI p = toFactory.createIRI("http://example.com/p");
- Literal o = toFactory.createLiteral("Hello");
+ /**
+ * This test creates a {@link Graph} with the first
+ * {@link RDFTermFactory}, then inserts/queries with
+ * triples using {@link RDFTerm}s created with the second factory.
+ *
+ * @param graphFactory Factory to create {@link Graph}
+ * @param nodeFactory
+ * @throws Exception
+ */
+ public void addTermsFromOtherFactory(RDFTermFactory nodeFactory, RDFTermFactory graphFactory) throws Exception {
+ Graph g = graphFactory.createGraph();
+ BlankNode s = nodeFactory.createBlankNode();
+ IRI p = nodeFactory.createIRI("http://example.com/p");
+ Literal o = nodeFactory.createLiteral("Hello");
g.add(s, p, o);
@@ -73,12 +83,14 @@ public class AllToAllTest {
assertTrue(g.contains(s, p, o));
Triple t1 = g.stream().findAny().get();
- // Can't make assumptions about mappegetPredicated BlankNode equality
+ // Can't make assumptions about BlankNode equality - it might
+ // have been mapped to a different BlankNode.uniqueReference()
// assertEquals(s, t.getSubject());
+
assertEquals(p, t1.getPredicate());
assertEquals(o, t1.getObject());
- IRI s2 = toFactory.createIRI("http://example.com/s2");
+ IRI s2 = nodeFactory.createIRI("http://example.com/s2");
g.add(s2, p, s);
assertTrue(g.contains(s2, p, s));
@@ -94,6 +106,6 @@ public class AllToAllTest {
assertEquals(bnode, t1.getSubject());
// And can be used as a key:
Triple t3 = g.stream(bnode, p, null).findAny().get();
- assertEquals(t1, t3);
+ assertEquals(t1, t3);
}
}
[4/5] incubator-commonsrdf git commit: internally map on simple
graph.contains()
Posted by st...@apache.org.
internally map on simple graph.contains()
.. so we get consistent BlankNode mapping
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/de7fe8a2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/de7fe8a2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/de7fe8a2
Branch: refs/heads/jena-jsonld-rdf4j-integration
Commit: de7fe8a2bfccc3619c87c7f3903a09f95870ab60
Parents: 9782a58
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Sep 12 19:01:17 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Sep 12 19:01:17 2016 +0100
----------------------------------------------------------------------
.../apache/commons/rdf/simple/GraphImpl.java | 39 +++++++++++---------
1 file changed, 21 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de7fe8a2/simple/src/main/java/org/apache/commons/rdf/simple/GraphImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/GraphImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/GraphImpl.java
index 1f19d57..779b1ad 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/GraphImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/GraphImpl.java
@@ -55,21 +55,7 @@ final class GraphImpl implements Graph {
@Override
public void add(Triple triple) {
- BlankNodeOrIRI newSubject = (BlankNodeOrIRI) internallyMap(triple
- .getSubject());
- IRI newPredicate = (IRI) internallyMap(triple.getPredicate());
- RDFTerm newObject = internallyMap(triple.getObject());
- // Check if any of the object references changed during the mapping, to
- // avoid creating a new Triple object if possible
- if (newSubject == triple.getSubject()
- && newPredicate == triple.getPredicate()
- && newObject == triple.getObject()) {
- triples.add(triple);
- } else {
- Triple result = factory.createTriple(newSubject, newPredicate,
- newObject);
- triples.add(result);
- }
+ triples.add(internallyMap(triple));
}
private <T extends RDFTerm> RDFTerm internallyMap(T object) {
@@ -103,6 +89,23 @@ final class GraphImpl implements Graph {
}
}
+ private Triple internallyMap(Triple triple) {
+ BlankNodeOrIRI newSubject = (BlankNodeOrIRI) internallyMap(triple
+ .getSubject());
+ IRI newPredicate = (IRI) internallyMap(triple.getPredicate());
+ RDFTerm newObject = internallyMap(triple.getObject());
+ // Check if any of the object references changed during the mapping, to
+ // avoid creating a new Triple object if possible
+ if (newSubject == triple.getSubject()
+ && newPredicate == triple.getPredicate()
+ && newObject == triple.getObject()) {
+ return triple;
+ } else {
+ return factory.createTriple(newSubject, newPredicate,
+ newObject);
+ }
+ }
+
@Override
public void clear() {
triples.clear();
@@ -116,10 +119,10 @@ final class GraphImpl implements Graph {
@Override
public boolean contains(Triple triple) {
- return triples.contains(Objects.requireNonNull(triple));
+ return triples.contains(internallyMap(triple));
}
-
- @Override
+
+ @Override
public Stream<Triple> stream() {
return triples.parallelStream().unordered();
}
[3/5] incubator-commonsrdf git commit: Also test adding Triple
instances
Posted by st...@apache.org.
Also test adding Triple instances
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/112505df
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/112505df
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/112505df
Branch: refs/heads/jena-jsonld-rdf4j-integration
Commit: 112505dfe488889b1ad16dca1120bd6c59ae8075
Parents: b8ff697
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Sep 12 18:59:33 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Sep 12 18:59:33 2016 +0100
----------------------------------------------------------------------
.../rdf/integrationtests/AllToAllTest.java | 64 +++++++++++++++++++-
1 file changed, 63 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/112505df/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
----------------------------------------------------------------------
diff --git a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
index b9ea397..0d65f05 100644
--- a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
+++ b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/AllToAllTest.java
@@ -26,40 +26,49 @@ public class AllToAllTest {
@Test
public void jenaToRdf4j() throws Exception {
addTermsFromOtherFactory(jenaFactory, rdf4jFactory);
+ addTriplesFromOtherFactory(jenaFactory, rdf4jFactory);
}
@Test
public void jenaToJsonLd() throws Exception {
addTermsFromOtherFactory(jenaFactory, jsonldFactory);
+ addTriplesFromOtherFactory( jenaFactory, jsonldFactory );
}
@Test
public void jenaToSimple() throws Exception {
addTermsFromOtherFactory(jenaFactory, simpleFactory);
+ addTriplesFromOtherFactory( jenaFactory, simpleFactory );
}
@Test
public void rdf4jToJena() throws Exception {
addTermsFromOtherFactory(rdf4jFactory, jenaFactory);
+ addTriplesFromOtherFactory( rdf4jFactory, jenaFactory );
}
@Test
public void rdf4jToJsonLd() throws Exception {
addTermsFromOtherFactory(rdf4jFactory, jsonldFactory);
+ addTriplesFromOtherFactory( rdf4jFactory, jenaFactory );
}
@Test
public void rdf4jToSimple() throws Exception {
addTermsFromOtherFactory(rdf4jFactory, simpleFactory);
+ addTriplesFromOtherFactory(rdf4jFactory, simpleFactory );
}
@Test
public void simpletoJena() throws Exception {
addTermsFromOtherFactory(simpleFactory, jenaFactory);
+ addTriplesFromOtherFactory( simpleFactory, jenaFactory);
}
@Test
public void simpleToJsonLd() throws Exception {
addTermsFromOtherFactory(simpleFactory, jsonldFactory);
+ addTriplesFromOtherFactory( simpleFactory, jsonldFactory );
}
@Test
public void simpleToRdf4j() throws Exception {
addTermsFromOtherFactory(simpleFactory, rdf4jFactory);
+ addTriplesFromOtherFactory( simpleFactory, rdf4jFactory );
}
/**
@@ -67,8 +76,8 @@ public class AllToAllTest {
* {@link RDFTermFactory}, then inserts/queries with
* triples using {@link RDFTerm}s created with the second factory.
*
+ * @param nodeFactory Factory to create {@link RDFTerm} instances
* @param graphFactory Factory to create {@link Graph}
- * @param nodeFactory
* @throws Exception
*/
public void addTermsFromOtherFactory(RDFTermFactory nodeFactory, RDFTermFactory graphFactory) throws Exception {
@@ -108,4 +117,57 @@ public class AllToAllTest {
Triple t3 = g.stream(bnode, p, null).findAny().get();
assertEquals(t1, t3);
}
+
+
+ /**
+ * This is a variation of {@link #addTermsFromOtherFactory(RDFTermFactory, RDFTermFactory)},
+ * but here {@link Triple} is created in the "foreign" nodeFactory before adding to the graph.
+ *
+ * @param nodeFactory Factory to create {@link RDFTerm} and {@link Triple}s
+ * @param graphFactory Factory to create {@link Graph}
+ * @throws Exception
+ */
+ public void addTriplesFromOtherFactory(RDFTermFactory nodeFactory, RDFTermFactory graphFactory) throws Exception {
+ Graph g = graphFactory.createGraph();
+ BlankNode s = nodeFactory.createBlankNode();
+ IRI p = nodeFactory.createIRI("http://example.com/p");
+ Literal o = nodeFactory.createLiteral("Hello");
+
+ Triple srcT1 = nodeFactory.createTriple(s, p, o);
+ // This should work even with BlankNode as they are from the same factory
+ assertEquals(s, srcT1.getSubject());
+ assertEquals(p, srcT1.getPredicate());
+ assertEquals(o, srcT1.getObject());
+ g.add(srcT1);
+
+ // what about the blankNode within?
+ assertTrue(g.contains(srcT1));
+ Triple t1 = g.stream().findAny().get();
+
+ // Can't make assumptions about BlankNode equality - it might
+ // have been mapped to a different BlankNode.uniqueReference()
+ //assertEquals(srcT1, t1);
+ //assertEquals(s, t1.getSubject());
+ assertEquals(p, t1.getPredicate());
+ assertEquals(o, t1.getObject());
+
+ IRI s2 = nodeFactory.createIRI("http://example.com/s2");
+ Triple srcT2 = nodeFactory.createTriple(s2, p, s);
+ g.add(srcT2);
+ assertTrue(g.contains(srcT2));
+
+ // This should be mapped to the same BlankNode
+ // (even if it has a different identifier), e.g.
+ // we should be able to do:
+
+ Triple t2 = g.stream(s2, p, null).findAny().get();
+
+ BlankNode bnode = (BlankNode) t2.getObject();
+ // And that (possibly adapted) BlankNode object should
+ // match the subject of t1 statement
+ assertEquals(bnode, t1.getSubject());
+ // And can be used as a key:
+ Triple t3 = g.stream(bnode, p, null).findAny().get();
+ assertEquals(t1, t3);
+ }
}