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/09 15:23:04 UTC
[1/4] incubator-commonsrdf git commit: factory converter methods
called asSomething()
Repository: incubator-commonsrdf
Updated Branches:
refs/heads/jsonld-java e3a4fbaa5 -> ddbe6bfb0
factory converter methods called asSomething()
e.g. asGraph(rdfDataSet)
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/fd8dcefd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/fd8dcefd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/fd8dcefd
Branch: refs/heads/jsonld-java
Commit: fd8dcefd08170804ac80e24bc770fc7abfb5d1e7
Parents: e3a4fba
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 15:42:09 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 15:43:42 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/jsonldjava/JsonLdDataset.java | 10 +++---
.../commons/rdf/jsonldjava/JsonLdGraph.java | 12 ++++---
.../commons/rdf/jsonldjava/JsonLdGraphLike.java | 4 +--
.../rdf/jsonldjava/JsonLdParserBuilder.java | 5 ++-
.../commons/rdf/jsonldjava/JsonLdQuadLike.java | 10 +++---
.../rdf/jsonldjava/JsonLdRDFTermFactory.java | 33 ++++++++++++++------
.../rdf/jsonldjava/JsonLdUnionGraph.java | 8 ++---
7 files changed, 51 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd8dcefd/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdDataset.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdDataset.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdDataset.java
index 569180e..1ab4b11 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdDataset.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdDataset.java
@@ -32,9 +32,9 @@ import org.apache.commons.rdf.api.RDFTerm;
import com.github.jsonldjava.core.RDFDataset;
-public class JsonLdDataset extends JsonLdGraphLike<org.apache.commons.rdf.api.Quad> implements Dataset {
+class JsonLdDataset extends JsonLdGraphLike<org.apache.commons.rdf.api.Quad> implements Dataset {
- public JsonLdDataset(RDFDataset rdfDataSet) {
+ JsonLdDataset(RDFDataset rdfDataSet) {
super(rdfDataSet);
}
@@ -75,7 +75,7 @@ public class JsonLdDataset extends JsonLdGraphLike<org.apache.commons.rdf.api.Qu
public Stream<BlankNodeOrIRI> getGraphNames() {
return rdfDataSet.graphNames().parallelStream().filter(Predicate.isEqual("@default").negate())
.map(s -> s.startsWith("_:") ? new RDFDataset.BlankNode(s) : new RDFDataset.IRI(s))
- .map(n -> (BlankNodeOrIRI) factory.asTerm(n, bnodePrefix));
+ .map(n -> (BlankNodeOrIRI) factory.asRDFTerm(n));
}
@Override
@@ -95,7 +95,7 @@ public class JsonLdDataset extends JsonLdGraphLike<org.apache.commons.rdf.api.Qu
return filteredGraphs(graphName)
.flatMap(List::stream)
.filter(quadFilter(subject, predicate, object))
- .map(factory::createQuad);
+ .map(factory::asQuad);
}
@Override
@@ -105,7 +105,7 @@ public class JsonLdDataset extends JsonLdGraphLike<org.apache.commons.rdf.api.Qu
@Override
Quad asTripleOrQuad(com.github.jsonldjava.core.RDFDataset.Quad jsonldQuad) {
- return factory.createQuad(jsonldQuad);
+ return factory.asQuad(jsonldQuad);
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd8dcefd/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
index 5e13a4e..a07f9b1 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
@@ -30,11 +30,15 @@ import org.apache.commons.rdf.api.Triple;
import com.github.jsonldjava.core.RDFDataset;
-public class JsonLdGraph extends JsonLdGraphLike<org.apache.commons.rdf.api.Triple> implements Graph {
+/**
+ * A {@link Graph} view of a JsonLd {@link RDFDataset}.
+ *
+ */
+class JsonLdGraph extends JsonLdGraphLike<org.apache.commons.rdf.api.Triple> implements Graph {
private final Optional<BlankNodeOrIRI> graphName;
- public JsonLdGraph(RDFDataset rdfDataSet) {
+ JsonLdGraph(RDFDataset rdfDataSet) {
super(rdfDataSet);
this.graphName = Optional.empty();
}
@@ -99,12 +103,12 @@ public class JsonLdGraph extends JsonLdGraphLike<org.apache.commons.rdf.api.Trip
return filteredGraphs(graphName)
.flatMap(List::stream)
.filter(quadFilter(subject, predicate, object))
- .map(factory::createTriple);
+ .map(factory::asTriple);
}
@Override
JsonLdTriple asTripleOrQuad(com.github.jsonldjava.core.RDFDataset.Quad jsonldQuad) {
- return factory.createTriple(jsonldQuad);
+ return factory.asTriple(jsonldQuad);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd8dcefd/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
index ad2cc23..81f2ee7 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
@@ -175,8 +175,8 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm
* Convert JsonLd Quad to a Commons RDF {@link Triple} or {@link org.apache.commons.rdf.api.Quad}
*
*
- * @see JsonLdRDFTermFactory#createTriple(Quad)
- * @see JsonLdRDFTermFactory#createQuad(Quad)
+ * @see JsonLdRDFTermFactory#asTriple(Quad)
+ * @see JsonLdRDFTermFactory#asQuad(Quad)
* @param jsonldQuad jsonld quad to convert
* @return converted {@link TripleLike}
*/
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd8dcefd/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilder.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilder.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilder.java
index 4b6edfe..d609aa8 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilder.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilder.java
@@ -92,8 +92,7 @@ public class JsonLdParserBuilder extends AbstractRDFParserBuilder {
rdfDataset = (RDFDataset) JsonLdProcessor.toRDF(json, options);
} catch (JsonLdError e) {
throw new RDFParseException(e);
- }
-
+ }
Graph intoGraph = getIntoGraph().get();
if (intoGraph instanceof JsonLdGraph && ! intoGraph.contains(null, null, null)) {
// Empty graph, we can just move over the map content directly:
@@ -103,7 +102,7 @@ public class JsonLdParserBuilder extends AbstractRDFParserBuilder {
// TODO: Modify JsonLdProcessor to have an actual triple callback
try (JsonLdGraph parsedGraph = new JsonLdGraph(rdfDataset)) {
// sequential() as we don't know if intoGraph is thread safe :-/
- parsedGraph.getTriples().sequential().forEach(intoGraph::add);
+ parsedGraph.stream().sequential().forEach(intoGraph::add);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd8dcefd/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java
index 753e332..224dc30 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdQuadLike.java
@@ -30,6 +30,8 @@ public interface JsonLdQuadLike<S extends RDFTerm, P extends RDFTerm, O extends
class JsonLdQuadLikeImpl<S extends RDFTerm, P extends RDFTerm, O extends RDFTerm, G extends RDFTerm> implements JsonLdQuadLike<S,P,O,G> {
+ // Note: We always pass the blankNodePrefix and don't rely on the internal
+ // blankNodePrefix in this static factory
private static JsonLdRDFTermFactory rdfTermFactory = new JsonLdRDFTermFactory();
private final Quad quad;
@@ -43,26 +45,26 @@ public interface JsonLdQuadLike<S extends RDFTerm, P extends RDFTerm, O extends
@SuppressWarnings("unchecked")
@Override
public Optional<G> getGraphName() {
- G g = (G) rdfTermFactory.asTerm(quad.getGraph(), blankNodePrefix);
+ G g = (G) rdfTermFactory.asRDFTerm(quad.getGraph(), blankNodePrefix);
return Optional.ofNullable(g);
}
@SuppressWarnings("unchecked")
@Override
public S getSubject() {
- return (S) rdfTermFactory.asTerm(quad.getSubject(), blankNodePrefix);
+ return (S) rdfTermFactory.asRDFTerm(quad.getSubject(), blankNodePrefix);
}
@SuppressWarnings("unchecked")
@Override
public P getPredicate() {
- return (P) rdfTermFactory.asTerm(quad.getPredicate(), blankNodePrefix);
+ return (P) rdfTermFactory.asRDFTerm(quad.getPredicate(), blankNodePrefix);
}
@SuppressWarnings("unchecked")
@Override
public O getObject() {
- return (O) rdfTermFactory.asTerm(quad.getObject(), blankNodePrefix);
+ return (O) rdfTermFactory.asRDFTerm(quad.getObject(), blankNodePrefix);
}
public Quad asJsonLdQuad() {
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd8dcefd/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
index 1dff9fb..6d490b8 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
@@ -48,7 +48,7 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
// An "outside Graph" bnodePrefix
this("urn:uuid:" + UUID.randomUUID() + "#b");
}
-
+
JsonLdRDFTermFactory(String bnodePrefix) {
this.bnodePrefix = Objects.requireNonNull(bnodePrefix);
}
@@ -61,8 +61,7 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
if (term instanceof IRI) {
return new RDFDataset.IRI( ((IRI)term).getIRIString() );
}
- if (term instanceof BlankNode) {
-
+ if (term instanceof BlankNode) {
String ref = ((BlankNode)term).uniqueReference();
if (ref.startsWith(bnodePrefix)) {
// one of our own (but no longer a JsonLdBlankNode),
@@ -113,14 +112,26 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
// TODO: Check if name is valid JSON-LD BlankNode identifier
return new JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix);
}
-
+
@Override
- public Dataset createDataset() throws UnsupportedOperationException {
+ public Dataset createDataset() {
return new JsonLdDataset(bnodePrefix);
}
+
+ public Dataset asDataset(RDFDataset rdfDataSet) {
+ return new JsonLdDataset(rdfDataSet);
+ }
+ public Graph asGraph(RDFDataset rdfDataSet) {
+ return new JsonLdGraph(rdfDataSet);
+ }
+
+ public Graph asUnionGraph(RDFDataset rdfDataSet) {
+ return new JsonLdUnionGraph(rdfDataSet);
+ }
+
@Override
- public Graph createGraph() throws UnsupportedOperationException {
+ public Graph createGraph() {
return new JsonLdGraph(bnodePrefix);
}
@@ -151,7 +162,7 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
}
- public JsonLdQuad createQuad(final RDFDataset.Quad quad) {
+ public JsonLdQuad asQuad(final RDFDataset.Quad quad) {
return new JsonLdQuadImpl(quad, bnodePrefix);
}
@@ -160,11 +171,15 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
return new JsonLdTripleImpl(asJsonLdQuad(subject, predicate, object), bnodePrefix);
}
- public JsonLdTriple createTriple(final RDFDataset.Quad quad) {
+ public JsonLdTriple asTriple(final RDFDataset.Quad quad) {
return new JsonLdTripleImpl(quad, bnodePrefix);
}
- JsonLdTerm asTerm(final Node node, String blankNodePrefix) {
+ public JsonLdTerm asRDFTerm(final Node node) {
+ return asRDFTerm(node, bnodePrefix);
+ }
+
+ JsonLdTerm asRDFTerm(final Node node, String blankNodePrefix) {
if (node == null) {
return null; // e.g. default graph
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fd8dcefd/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
index 6b32f8c..46598ed 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdUnionGraph.java
@@ -46,13 +46,13 @@ import com.github.jsonldjava.core.RDFDataset;
* inefficient as they skip any duplicate triples from multiple
* graphs.
*/
-public class JsonLdUnionGraph extends JsonLdGraphLike<org.apache.commons.rdf.api.Triple> implements Graph {
+class JsonLdUnionGraph extends JsonLdGraphLike<org.apache.commons.rdf.api.Triple> implements Graph {
JsonLdUnionGraph(String bnodePrefix) {
super(bnodePrefix);
}
- public JsonLdUnionGraph(RDFDataset rdfDataSet) {
+ JsonLdUnionGraph(RDFDataset rdfDataSet) {
super(rdfDataSet);
}
@@ -88,7 +88,7 @@ public class JsonLdUnionGraph extends JsonLdGraphLike<org.apache.commons.rdf.api
return filteredGraphs(null)
.flatMap(List::stream)
.filter(quadFilter(subject, predicate, object))
- .map(factory::createTriple)
+ .map(factory::asTriple)
// Make sure we don't have duplicate triples
// NOTE: This can be quite inefficient
.distinct();
@@ -103,7 +103,7 @@ public class JsonLdUnionGraph extends JsonLdGraphLike<org.apache.commons.rdf.api
@Override
JsonLdTriple asTripleOrQuad(com.github.jsonldjava.core.RDFDataset.Quad jsonldQuad) {
- return factory.createTriple(jsonldQuad);
+ return factory.asTriple(jsonldQuad);
}
@Override
[2/4] incubator-commonsrdf git commit: Remove generalized triple/quad
support in factory
Posted by st...@apache.org.
Remove generalized triple/quad support in factory
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/02db403b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/02db403b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/02db403b
Branch: refs/heads/jsonld-java
Commit: 02db403b7d1fe638cf9881df5bfc07d0d72f4275
Parents: fd8dcef
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 16:14:25 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 16:14:25 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/jsonldjava/JsonLdLiteral.java | 2 +-
.../rdf/jsonldjava/JsonLdRDFTermFactory.java | 193 ++++++++++++++-----
.../commons/rdf/jsonldjava/JsonLdTerm.java | 4 +-
3 files changed, 150 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/02db403b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java
index befc410..8eba6e7 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdLiteral.java
@@ -85,7 +85,7 @@ public interface JsonLdLiteral extends JsonLdTerm, Literal {
public boolean equals(Object obj) {
if (obj instanceof JsonLdLiteral) {
JsonLdLiteral other = (JsonLdLiteral) obj;
- return asNode().compareTo(other.asNode()) == 0;
+ return asJsonLdNode().compareTo(other.asJsonLdNode()) == 0;
}
if (obj instanceof Literal) {
Literal other = (Literal) obj;
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/02db403b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
index 6d490b8..d436434 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
@@ -27,10 +27,9 @@ import org.apache.commons.rdf.api.Dataset;
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.QuadLike;
import org.apache.commons.rdf.api.RDFTerm;
import org.apache.commons.rdf.api.RDFTermFactory;
-import org.apache.commons.rdf.api.TripleLike;
+import org.apache.commons.rdf.api.Triple;
import org.apache.commons.rdf.jsonldjava.JsonLdBlankNode.JsonLdBlankNodeImpl;
import org.apache.commons.rdf.jsonldjava.JsonLdLiteral.JsonLdLiteralImpl;
import org.apache.commons.rdf.jsonldjava.JsonLdQuad.JsonLdQuadImpl;
@@ -41,75 +40,104 @@ import com.github.jsonldjava.core.RDFDataset;
import com.github.jsonldjava.core.RDFDataset.Node;
public final class JsonLdRDFTermFactory implements RDFTermFactory {
-
+
private final String bnodePrefix;
-
+
public JsonLdRDFTermFactory() {
// An "outside Graph" bnodePrefix
this("urn:uuid:" + UUID.randomUUID() + "#b");
}
-
+
JsonLdRDFTermFactory(String bnodePrefix) {
this.bnodePrefix = Objects.requireNonNull(bnodePrefix);
}
-
+
public Node asJsonLdNode(RDFTerm term) {
if (term instanceof JsonLdTerm) {
// Return original Node
- return ((JsonLdTerm)term).asNode();
+ return ((JsonLdTerm) term).asJsonLdNode();
}
if (term instanceof IRI) {
- return new RDFDataset.IRI( ((IRI)term).getIRIString() );
+ return new RDFDataset.IRI(((IRI) term).getIRIString());
}
- if (term instanceof BlankNode) {
- String ref = ((BlankNode)term).uniqueReference();
+ if (term instanceof BlankNode) {
+ String ref = ((BlankNode) term).uniqueReference();
if (ref.startsWith(bnodePrefix)) {
// one of our own (but no longer a JsonLdBlankNode),
// we can recover the label after our unique prefix
return new RDFDataset.BlankNode(ref.replace(bnodePrefix, ""));
- }
- // The "foreign" unique reference might not be a valid bnode string,
+ }
+ // The "foreign" unique reference might not be a valid bnode string,
// we'll convert to a UUID
UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8));
- return new RDFDataset.BlankNode( "_:" + uuid );
+ return new RDFDataset.BlankNode("_:" + uuid);
}
if (term instanceof Literal) {
Literal literal = (Literal) term;
- return new RDFDataset.Literal(literal.getLexicalForm(), literal.getDatatype().getIRIString(),
+ return new RDFDataset.Literal(literal.getLexicalForm(), literal.getDatatype().getIRIString(),
literal.getLanguageTag().orElse(null));
}
throw new IllegalArgumentException("RDFTerm not instanceof IRI, BlankNode or Literal: " + term);
}
-
- public RDFDataset.Quad asJsonLdQuad(RDFTerm subject, RDFTerm predicate, RDFTerm object) {
- return asJsonLdQuad(null, subject, predicate, object);
+
+ RDFDataset.Quad createJsonLdQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ return new RDFDataset.Quad(asJsonLdNode(subject), asJsonLdNode(predicate), asJsonLdNode(object), asJsonLdString(graphName));
}
-
- public RDFDataset.Quad asJsonLdQuad(RDFTerm graphName, RDFTerm subject, RDFTerm predicate, RDFTerm object) {
- String graph = null;
- return new RDFDataset.Quad(asJsonLdNode(subject), asJsonLdNode(predicate), asJsonLdNode(object), graph);
+
+ String asJsonLdString(BlankNodeOrIRI blankNodeOrIRI) {
+ if (blankNodeOrIRI == null) {
+ return null;
+ }
+ if (blankNodeOrIRI instanceof IRI) {
+ return ((IRI)blankNodeOrIRI).getIRIString();
+ } else if (blankNodeOrIRI instanceof BlankNode) {
+ BlankNode blankNode = (BlankNode) blankNodeOrIRI;
+ String ref = blankNode.uniqueReference();
+ if (ref.startsWith(bnodePrefix)) {
+ // One of ours (but possibly not a JsonLdBlankNode) -
+ // we can use the suffix directly
+ return ref.replace(bnodePrefix, "_:");
+ } else {
+ // Map to unique bnode identifier, e.g. _:0dbd92ee-ab1a-45e7-bba2-7ade54f87ec5
+ UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8));
+ return "_:"+ uuid;
+ }
+ } else {
+ throw new IllegalArgumentException("Expected a BlankNode or IRI, not: " + blankNodeOrIRI);
+ }
+ }
+
+ /**
+ * Adapt a Commons RDF {@link Triple} as a JsonLd {@link RDFDataset.Quad}.
+ *
+ * @param triple Commons RDF {@link Triple} to adapt
+ * @return Adapted JsonLd {@link RDFDataset.Quad}
+ */
+ public RDFDataset.Quad asJsonLdQuad(Triple triple) {
+ return createJsonLdQuad(null, triple.getSubject(), triple.getPredicate(), triple.getObject());
}
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public RDFDataset.Quad asJsonLdQuad(TripleLike tripleOrQuad) {
- RDFTerm g = null;
- if (tripleOrQuad instanceof QuadLike) {
- QuadLike quadLike = (QuadLike) tripleOrQuad;
- g = (RDFTerm) quadLike.getGraphName().orElse(null);
- }
- return asJsonLdQuad(g, tripleOrQuad.getSubject(), tripleOrQuad.getPredicate(), tripleOrQuad.getObject());
+ /**
+ * Adapt a Commons RDF {@link org.apache.commons.rdf.api.Quad} as a JsonLd {@link RDFDataset.Quad}.
+ *
+ * @param quad Commons RDF {@link org.apache.commons.rdf.api.Quad} to adapt
+ * @return Adapted JsonLd {@link RDFDataset.Quad}
+ */
+ public RDFDataset.Quad asJsonLdQuad(org.apache.commons.rdf.api.Quad quad) {
+ BlankNodeOrIRI g = quad.getGraphName().orElse(null);
+ return createJsonLdQuad(g, quad.getSubject(), quad.getPredicate(), quad.getObject());
}
-
+
@Override
public JsonLdBlankNode createBlankNode() {
String id = "_:" + UUID.randomUUID().toString();
return new JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix);
}
-
+
@Override
public JsonLdBlankNode createBlankNode(String name) {
String id = "_:" + name;
- // TODO: Check if name is valid JSON-LD BlankNode identifier
+ // TODO: Check if name is valid JSON-LD BlankNode identifier
return new JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix);
}
@@ -117,29 +145,72 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
public Dataset createDataset() {
return new JsonLdDataset(bnodePrefix);
}
-
+
+ /**
+ * Adapt a JsonLd {@link RDFDataset} as a Commons RDF {@link Dataset}.
+ * <p>
+ * Changes to the Commons RDF {@link Dataset} are reflected in the JsonLd
+ * {@link RDFDataset} and vice versa.
+ *
+ * @see #asGraph(RDFDataset)
+ * @param rdfDataSet JsonLd {@link RDFDataset} to adapt
+ * @return Adapted {@link Dataset}
+ */
public Dataset asDataset(RDFDataset rdfDataSet) {
return new JsonLdDataset(rdfDataSet);
}
+ /**
+ * Adapt a JsonLd {@link RDFDataset} as a Commons RDF {@link Graph}.
+ * <p>
+ * Only triples in the <em>default graph</em> are included. To retrieve
+ * any other graph, {@link #asDataset(RDFDataset)} together with
+ * {@link Dataset#getGraph(BlankNodeOrIRI)}.
+ * <p>
+ * Changes to the Commons RDF {@link Graph} are reflected in the JsonLd
+ * {@link RDFDataset} and vice versa.
+ *
+ * @see #asDataset(RDFDataset)
+ * @see #asUnionGraph(RDFDataset)
+ * @param rdfDataSet JsonLd {@link RDFDataset} to adapt
+ * @return Adapted {@link Graph} covering the <em>default graph</em>
+ */
public Graph asGraph(RDFDataset rdfDataSet) {
return new JsonLdGraph(rdfDataSet);
}
+ /**
+ * Adapt a JsonLd {@link RDFDataset} as a Commons RDF {@link Graph}.
+ * <p>
+ * The graph can be seen as a <em>union graph</em> as it will contains all the
+ * triples across all the graphs of the underlying {@link RDFDataset}.
+ * <p>
+ * Note that some triple operations on a union graph
+ * can be inefficient as they need to remove any duplicate
+ * triples across the graphs.
+ * <p>
+ * Changes to the Commons RDF {@link Graph} are reflected in the JsonLd
+ * {@link RDFDataset} and vice versa. Triples removed from the graph are
+ * removed from <strong>all</strong> graphs, while triples added
+ * are added to the <em>default graph</em>.
+ *
+ * @param rdfDataSet JsonLd {@link RDFDataset} to adapt
+ * @return Adapted {@link Dataset}
+ */
public Graph asUnionGraph(RDFDataset rdfDataSet) {
return new JsonLdUnionGraph(rdfDataSet);
}
-
+
@Override
public Graph createGraph() {
return new JsonLdGraph(bnodePrefix);
}
-
+
@Override
public JsonLdIRI createIRI(String iri) {
return new JsonLdIRI.JsonLdIRIImpl(iri);
}
-
+
@Override
public JsonLdLiteral createLiteral(String literal) {
return new JsonLdLiteralImpl(new RDFDataset.Literal(literal, null, null));
@@ -158,28 +229,59 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
@Override
public JsonLdQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
throws IllegalArgumentException, UnsupportedOperationException {
- return new JsonLdQuadImpl(asJsonLdQuad(graphName, subject, predicate, object), bnodePrefix);
+ return new JsonLdQuadImpl(createJsonLdQuad(graphName, subject, predicate, object), bnodePrefix);
}
-
+ /**
+ * Adapt a JsonLd {@link RDFDataset.Quad} as a Commons RDF
+ * {@link org.apache.commons.rdf.api.Quad}.
+ * <p>
+ * The underlying JsonLd quad can be retrieved with
+ * {@link JsonLdQuad#asJsonLdQuad()}.
+ *
+ * @param quad
+ * A JsonLd {@link RDFDataset.Quad} to adapt
+ * @return Adapted {@link JsonLdQuad}
+ */
public JsonLdQuad asQuad(final RDFDataset.Quad quad) {
return new JsonLdQuadImpl(quad, bnodePrefix);
}
@Override
public JsonLdTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- return new JsonLdTripleImpl(asJsonLdQuad(subject, predicate, object), bnodePrefix);
+ return new JsonLdTripleImpl(createJsonLdQuad(null, subject, predicate, object), bnodePrefix);
}
-
+
+ /**
+ * Adapt a JsonLd {@link RDFDataset.Quad} as a Commons RDF
+ * {@link org.apache.commons.rdf.api.Triple}.
+ * <p>
+ * The underlying JsonLd quad can be retrieved with
+ * {@link JsonLdTriple#asJsonLdQuad()}.
+ *
+ * @param quad
+ * A JsonLd {@link RDFDataset.Quad} to adapt
+ * @return Adapted {@link JsonLdTriple}
+ */
public JsonLdTriple asTriple(final RDFDataset.Quad quad) {
return new JsonLdTripleImpl(quad, bnodePrefix);
}
-
+
+ /**
+ * Adapt a JsonLd {@link RDFDataset.Node} as a Commons RDF {@link RDFTerm}.
+ * <p>
+ * The underlying node can be retrieved with
+ * {@link JsonLdTerm#asJsonLdNode()}.
+ *
+ * @param node
+ * A JsonLd {@link Node} to adapt
+ * @return Adapted {@link JsonLdTerm}
+ */
public JsonLdTerm asRDFTerm(final Node node) {
return asRDFTerm(node, bnodePrefix);
}
-
- JsonLdTerm asRDFTerm(final Node node, String blankNodePrefix) {
+
+ JsonLdTerm asRDFTerm(final Node node, String blankNodePrefix) {
if (node == null) {
return null; // e.g. default graph
}
@@ -197,7 +299,6 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
} else {
throw new IllegalArgumentException("Node is neither IRI, BlankNode nor Literal: " + node);
}
- }
-
-
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/02db403b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java
index 80a7b56..2f250b9 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdTerm.java
@@ -28,14 +28,14 @@ public interface JsonLdTerm extends RDFTerm {
*
* @return JsonLd {@link Node}
*/
- Node asNode();
+ Node asJsonLdNode();
abstract class JsonLdTermImpl implements JsonLdTerm {
final Node node;
JsonLdTermImpl(Node node) {
this.node = node;
}
- public Node asNode() {
+ public Node asJsonLdNode() {
return node;
}
}
[3/4] incubator-commonsrdf git commit: asJsonLdString moved to
JsonLdRDFTermFactory
Posted by st...@apache.org.
asJsonLdString moved to JsonLdRDFTermFactory
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/44a40d32
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/44a40d32
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/44a40d32
Branch: refs/heads/jsonld-java
Commit: 44a40d3252ff5bc0b4f8733e7f9f33431243805c
Parents: 02db403
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 16:22:11 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 16:22:11 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/jsonldjava/JsonLdGraph.java | 2 +-
.../commons/rdf/jsonldjava/JsonLdGraphLike.java | 78 ++++++--------------
2 files changed, 24 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/44a40d32/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
index a07f9b1..3b35c76 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraph.java
@@ -92,7 +92,7 @@ class JsonLdGraph extends JsonLdGraphLike<org.apache.commons.rdf.api.Triple> imp
@Override
public long size() {
- String g = graphName.map(this::asJsonLdString).orElse("@default");
+ String g = graphName.map(factory::asJsonLdString).orElse("@default");
return Optional.ofNullable(rdfDataSet.getQuads(g))
.map(List::size).orElse(0);
}
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/44a40d32/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
index 81f2ee7..cb8e568 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphLike.java
@@ -17,7 +17,6 @@
*/
package org.apache.commons.rdf.jsonldjava;
-import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@@ -25,7 +24,6 @@ import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.Stream;
-import org.apache.commons.rdf.api.BlankNode;
import org.apache.commons.rdf.api.BlankNodeOrIRI;
import org.apache.commons.rdf.api.GraphLike;
import org.apache.commons.rdf.api.IRI;
@@ -37,7 +35,6 @@ import org.apache.commons.rdf.api.TripleLike;
import com.github.jsonldjava.core.RDFDataset;
import com.github.jsonldjava.core.RDFDataset.Node;
-import com.github.jsonldjava.core.RDFDataset.Quad;
/**
* Common abstract {@link GraphLike}.
@@ -84,22 +81,31 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm
}
@Override
- public void add(T tripleOrQuad) {
- String g = graphNameAsJsonLdString(tripleOrQuad);
- String s = asJsonLdString(tripleOrQuad.getSubject());
- String p = asJsonLdString(tripleOrQuad.getPredicate());
-
- if (tripleOrQuad.getObject() instanceof BlankNodeOrIRI) {
- String o = asJsonLdString((BlankNodeOrIRI)tripleOrQuad.getObject());
+ public void add(T t) {
+ // add triples to default graph by default
+ BlankNodeOrIRI graphName = null;
+ if (t instanceof org.apache.commons.rdf.api.Quad) {
+ org.apache.commons.rdf.api.Quad q = (org.apache.commons.rdf.api.Quad)t;
+ graphName = q.getGraphName().orElse(null);
+ }
+ add(graphName, t.getSubject(), t.getPredicate(), t.getObject());
+ }
+
+ void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ String g = factory.asJsonLdString(graphName);
+ String s = factory.asJsonLdString(subject);
+ String p = factory.asJsonLdString(predicate);
+ if (object instanceof BlankNodeOrIRI) {
+ String o = factory.asJsonLdString((BlankNodeOrIRI)object);
rdfDataSet.addQuad(s,p,o,g);
- } else if(tripleOrQuad.getObject() instanceof Literal) {
- Literal literal = (Literal) tripleOrQuad.getObject();
+ } else if(object instanceof Literal) {
+ Literal literal = (Literal) object;
String language = literal.getLanguageTag().orElse(null);
String datatype = literal.getDatatype().getIRIString();
rdfDataSet.addQuad(s,p,literal.getLexicalForm(), datatype, language, g);
- }
+ }
}
-
+
public void close() {
// Drop the memory reference, but don't clear it
rdfDataSet = null;
@@ -133,44 +139,6 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm
.map(this::asTripleOrQuad);
}
- void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- String g = asJsonLdString(graphName);
- String s = asJsonLdString(subject);
- String p = asJsonLdString(predicate);
- if (object instanceof BlankNodeOrIRI) {
- String o = asJsonLdString((BlankNodeOrIRI)object);
- rdfDataSet.addQuad(s,p,o,g);
- } else if(object instanceof Literal) {
- Literal literal = (Literal) object;
- String language = literal.getLanguageTag().orElse(null);
- String datatype = literal.getDatatype().getIRIString();
- rdfDataSet.addQuad(s,p,literal.getLexicalForm(), datatype, language, g);
- }
- }
-
- String asJsonLdString(BlankNodeOrIRI blankNodeOrIRI) {
- if (blankNodeOrIRI == null) {
- return null;
- }
- if (blankNodeOrIRI instanceof IRI) {
- return ((IRI)blankNodeOrIRI).getIRIString();
- } else if (blankNodeOrIRI instanceof BlankNode) {
- BlankNode blankNode = (BlankNode) blankNodeOrIRI;
- String ref = blankNode.uniqueReference();
- if (ref.startsWith(bnodePrefix)) {
- // One of ours (but possibly not a JsonLdBlankNode) -
- // we can use the suffix directly
- return ref.replace(bnodePrefix, "_:");
- } else {
- // Map to unique bnode identifier, e.g. _:0dbd92ee-ab1a-45e7-bba2-7ade54f87ec5
- UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8));
- return "_:"+ uuid;
- }
- } else {
- throw new IllegalArgumentException("Expected a BlankNode or IRI, not: " + blankNodeOrIRI);
- }
- }
-
/**
* Convert JsonLd Quad to a Commons RDF {@link Triple} or {@link org.apache.commons.rdf.api.Quad}
*
@@ -188,13 +156,13 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm
return filteredGraphs(graphName).flatMap(List::stream).anyMatch(quadFilter(s,p,o));
}
- Stream<List<Quad>> filteredGraphs(Optional<BlankNodeOrIRI> graphName) {
+ Stream<List<RDFDataset.Quad>> filteredGraphs(Optional<BlankNodeOrIRI> graphName) {
return rdfDataSet.graphNames().parallelStream()
// if graphName == null (wildcard), select all graphs,
// otherwise check its jsonld string
// (including @default for default graph)
.filter(g -> graphName == null ||
- g.equals(graphName.map(this::asJsonLdString).orElse("@default")))
+ g.equals(graphName.map(factory::asJsonLdString).orElse("@default")))
// remove the quads which match our filter (which could have nulls as wildcards)
.map(rdfDataSet::getQuads);
}
@@ -202,7 +170,7 @@ abstract class JsonLdGraphLike<T extends TripleLike<BlankNodeOrIRI, IRI, RDFTerm
String graphNameAsJsonLdString(T tripleOrQuad) {
if (tripleOrQuad instanceof org.apache.commons.rdf.api.Quad) {
org.apache.commons.rdf.api.Quad quad = (org.apache.commons.rdf.api.Quad)tripleOrQuad;
- return quad.getGraphName().map(this::asJsonLdString).orElse("@default");
+ return quad.getGraphName().map(factory::asJsonLdString).orElse("@default");
}
return "@default";
}
[4/4] incubator-commonsrdf git commit: Sorted methods
Posted by st...@apache.org.
Sorted methods
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/ddbe6bfb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/ddbe6bfb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/ddbe6bfb
Branch: refs/heads/jsonld-java
Commit: ddbe6bfb0404f0da82062db3d48ae7cdccd166a0
Parents: 44a40d3
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Sep 9 16:22:33 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Sep 9 16:22:33 2016 +0100
----------------------------------------------------------------------
.../rdf/jsonldjava/JsonLdRDFTermFactory.java | 232 +++++++++----------
1 file changed, 116 insertions(+), 116 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ddbe6bfb/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
index d436434..fa60213 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTermFactory.java
@@ -52,6 +52,39 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
this.bnodePrefix = Objects.requireNonNull(bnodePrefix);
}
+ /**
+ * Adapt a JsonLd {@link RDFDataset} as a Commons RDF {@link Dataset}.
+ * <p>
+ * Changes to the Commons RDF {@link Dataset} are reflected in the JsonLd
+ * {@link RDFDataset} and vice versa.
+ *
+ * @see #asGraph(RDFDataset)
+ * @param rdfDataSet JsonLd {@link RDFDataset} to adapt
+ * @return Adapted {@link Dataset}
+ */
+ public Dataset asDataset(RDFDataset rdfDataSet) {
+ return new JsonLdDataset(rdfDataSet);
+ }
+
+ /**
+ * Adapt a JsonLd {@link RDFDataset} as a Commons RDF {@link Graph}.
+ * <p>
+ * Only triples in the <em>default graph</em> are included. To retrieve
+ * any other graph, {@link #asDataset(RDFDataset)} together with
+ * {@link Dataset#getGraph(BlankNodeOrIRI)}.
+ * <p>
+ * Changes to the Commons RDF {@link Graph} are reflected in the JsonLd
+ * {@link RDFDataset} and vice versa.
+ *
+ * @see #asDataset(RDFDataset)
+ * @see #asUnionGraph(RDFDataset)
+ * @param rdfDataSet JsonLd {@link RDFDataset} to adapt
+ * @return Adapted {@link Graph} covering the <em>default graph</em>
+ */
+ public Graph asGraph(RDFDataset rdfDataSet) {
+ return new JsonLdGraph(rdfDataSet);
+ }
+
public Node asJsonLdNode(RDFTerm term) {
if (term instanceof JsonLdTerm) {
// Return original Node
@@ -78,46 +111,9 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
literal.getLanguageTag().orElse(null));
}
throw new IllegalArgumentException("RDFTerm not instanceof IRI, BlankNode or Literal: " + term);
- }
-
- RDFDataset.Quad createJsonLdQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
- return new RDFDataset.Quad(asJsonLdNode(subject), asJsonLdNode(predicate), asJsonLdNode(object), asJsonLdString(graphName));
- }
-
- String asJsonLdString(BlankNodeOrIRI blankNodeOrIRI) {
- if (blankNodeOrIRI == null) {
- return null;
- }
- if (blankNodeOrIRI instanceof IRI) {
- return ((IRI)blankNodeOrIRI).getIRIString();
- } else if (blankNodeOrIRI instanceof BlankNode) {
- BlankNode blankNode = (BlankNode) blankNodeOrIRI;
- String ref = blankNode.uniqueReference();
- if (ref.startsWith(bnodePrefix)) {
- // One of ours (but possibly not a JsonLdBlankNode) -
- // we can use the suffix directly
- return ref.replace(bnodePrefix, "_:");
- } else {
- // Map to unique bnode identifier, e.g. _:0dbd92ee-ab1a-45e7-bba2-7ade54f87ec5
- UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8));
- return "_:"+ uuid;
- }
- } else {
- throw new IllegalArgumentException("Expected a BlankNode or IRI, not: " + blankNodeOrIRI);
- }
}
/**
- * Adapt a Commons RDF {@link Triple} as a JsonLd {@link RDFDataset.Quad}.
- *
- * @param triple Commons RDF {@link Triple} to adapt
- * @return Adapted JsonLd {@link RDFDataset.Quad}
- */
- public RDFDataset.Quad asJsonLdQuad(Triple triple) {
- return createJsonLdQuad(null, triple.getSubject(), triple.getPredicate(), triple.getObject());
- }
-
- /**
* Adapt a Commons RDF {@link org.apache.commons.rdf.api.Quad} as a JsonLd {@link RDFDataset.Quad}.
*
* @param quad Commons RDF {@link org.apache.commons.rdf.api.Quad} to adapt
@@ -127,56 +123,59 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
BlankNodeOrIRI g = quad.getGraphName().orElse(null);
return createJsonLdQuad(g, quad.getSubject(), quad.getPredicate(), quad.getObject());
}
-
- @Override
- public JsonLdBlankNode createBlankNode() {
- String id = "_:" + UUID.randomUUID().toString();
- return new JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix);
- }
-
- @Override
- public JsonLdBlankNode createBlankNode(String name) {
- String id = "_:" + name;
- // TODO: Check if name is valid JSON-LD BlankNode identifier
- return new JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix);
+
+ /**
+ * Adapt a Commons RDF {@link Triple} as a JsonLd {@link RDFDataset.Quad}.
+ *
+ * @param triple Commons RDF {@link Triple} to adapt
+ * @return Adapted JsonLd {@link RDFDataset.Quad}
+ */
+ public RDFDataset.Quad asJsonLdQuad(Triple triple) {
+ return createJsonLdQuad(null, triple.getSubject(), triple.getPredicate(), triple.getObject());
}
- @Override
- public Dataset createDataset() {
- return new JsonLdDataset(bnodePrefix);
+ /**
+ * Adapt a JsonLd {@link RDFDataset.Quad} as a Commons RDF
+ * {@link org.apache.commons.rdf.api.Quad}.
+ * <p>
+ * The underlying JsonLd quad can be retrieved with
+ * {@link JsonLdQuad#asJsonLdQuad()}.
+ *
+ * @param quad
+ * A JsonLd {@link RDFDataset.Quad} to adapt
+ * @return Adapted {@link JsonLdQuad}
+ */
+ public JsonLdQuad asQuad(final RDFDataset.Quad quad) {
+ return new JsonLdQuadImpl(quad, bnodePrefix);
}
/**
- * Adapt a JsonLd {@link RDFDataset} as a Commons RDF {@link Dataset}.
+ * Adapt a JsonLd {@link RDFDataset.Node} as a Commons RDF {@link RDFTerm}.
* <p>
- * Changes to the Commons RDF {@link Dataset} are reflected in the JsonLd
- * {@link RDFDataset} and vice versa.
+ * The underlying node can be retrieved with
+ * {@link JsonLdTerm#asJsonLdNode()}.
*
- * @see #asGraph(RDFDataset)
- * @param rdfDataSet JsonLd {@link RDFDataset} to adapt
- * @return Adapted {@link Dataset}
+ * @param node
+ * A JsonLd {@link Node} to adapt
+ * @return Adapted {@link JsonLdTerm}
*/
- public Dataset asDataset(RDFDataset rdfDataSet) {
- return new JsonLdDataset(rdfDataSet);
+ public JsonLdTerm asRDFTerm(final Node node) {
+ return asRDFTerm(node, bnodePrefix);
}
/**
- * Adapt a JsonLd {@link RDFDataset} as a Commons RDF {@link Graph}.
- * <p>
- * Only triples in the <em>default graph</em> are included. To retrieve
- * any other graph, {@link #asDataset(RDFDataset)} together with
- * {@link Dataset#getGraph(BlankNodeOrIRI)}.
+ * Adapt a JsonLd {@link RDFDataset.Quad} as a Commons RDF
+ * {@link org.apache.commons.rdf.api.Triple}.
* <p>
- * Changes to the Commons RDF {@link Graph} are reflected in the JsonLd
- * {@link RDFDataset} and vice versa.
+ * The underlying JsonLd quad can be retrieved with
+ * {@link JsonLdTriple#asJsonLdQuad()}.
*
- * @see #asDataset(RDFDataset)
- * @see #asUnionGraph(RDFDataset)
- * @param rdfDataSet JsonLd {@link RDFDataset} to adapt
- * @return Adapted {@link Graph} covering the <em>default graph</em>
- */
- public Graph asGraph(RDFDataset rdfDataSet) {
- return new JsonLdGraph(rdfDataSet);
+ * @param quad
+ * A JsonLd {@link RDFDataset.Quad} to adapt
+ * @return Adapted {@link JsonLdTriple}
+ */
+ public JsonLdTriple asTriple(final RDFDataset.Quad quad) {
+ return new JsonLdTripleImpl(quad, bnodePrefix);
}
/**
@@ -202,6 +201,24 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
}
@Override
+ public JsonLdBlankNode createBlankNode() {
+ String id = "_:" + UUID.randomUUID().toString();
+ return new JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix);
+ }
+
+ @Override
+ public JsonLdBlankNode createBlankNode(String name) {
+ String id = "_:" + name;
+ // TODO: Check if name is valid JSON-LD BlankNode identifier
+ return new JsonLdBlankNodeImpl(new RDFDataset.BlankNode(id), bnodePrefix);
+ }
+
+ @Override
+ public Dataset createDataset() {
+ return new JsonLdDataset(bnodePrefix);
+ }
+
+ @Override
public Graph createGraph() {
return new JsonLdGraph(bnodePrefix);
}
@@ -232,53 +249,32 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
return new JsonLdQuadImpl(createJsonLdQuad(graphName, subject, predicate, object), bnodePrefix);
}
- /**
- * Adapt a JsonLd {@link RDFDataset.Quad} as a Commons RDF
- * {@link org.apache.commons.rdf.api.Quad}.
- * <p>
- * The underlying JsonLd quad can be retrieved with
- * {@link JsonLdQuad#asJsonLdQuad()}.
- *
- * @param quad
- * A JsonLd {@link RDFDataset.Quad} to adapt
- * @return Adapted {@link JsonLdQuad}
- */
- public JsonLdQuad asQuad(final RDFDataset.Quad quad) {
- return new JsonLdQuadImpl(quad, bnodePrefix);
- }
-
@Override
public JsonLdTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
return new JsonLdTripleImpl(createJsonLdQuad(null, subject, predicate, object), bnodePrefix);
}
- /**
- * Adapt a JsonLd {@link RDFDataset.Quad} as a Commons RDF
- * {@link org.apache.commons.rdf.api.Triple}.
- * <p>
- * The underlying JsonLd quad can be retrieved with
- * {@link JsonLdTriple#asJsonLdQuad()}.
- *
- * @param quad
- * A JsonLd {@link RDFDataset.Quad} to adapt
- * @return Adapted {@link JsonLdTriple}
- */
- public JsonLdTriple asTriple(final RDFDataset.Quad quad) {
- return new JsonLdTripleImpl(quad, bnodePrefix);
- }
-
- /**
- * Adapt a JsonLd {@link RDFDataset.Node} as a Commons RDF {@link RDFTerm}.
- * <p>
- * The underlying node can be retrieved with
- * {@link JsonLdTerm#asJsonLdNode()}.
- *
- * @param node
- * A JsonLd {@link Node} to adapt
- * @return Adapted {@link JsonLdTerm}
- */
- public JsonLdTerm asRDFTerm(final Node node) {
- return asRDFTerm(node, bnodePrefix);
+ String asJsonLdString(BlankNodeOrIRI blankNodeOrIRI) {
+ if (blankNodeOrIRI == null) {
+ return null;
+ }
+ if (blankNodeOrIRI instanceof IRI) {
+ return ((IRI)blankNodeOrIRI).getIRIString();
+ } else if (blankNodeOrIRI instanceof BlankNode) {
+ BlankNode blankNode = (BlankNode) blankNodeOrIRI;
+ String ref = blankNode.uniqueReference();
+ if (ref.startsWith(bnodePrefix)) {
+ // One of ours (but possibly not a JsonLdBlankNode) -
+ // we can use the suffix directly
+ return ref.replace(bnodePrefix, "_:");
+ } else {
+ // Map to unique bnode identifier, e.g. _:0dbd92ee-ab1a-45e7-bba2-7ade54f87ec5
+ UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8));
+ return "_:"+ uuid;
+ }
+ } else {
+ throw new IllegalArgumentException("Expected a BlankNode or IRI, not: " + blankNodeOrIRI);
+ }
}
JsonLdTerm asRDFTerm(final Node node, String blankNodePrefix) {
@@ -301,4 +297,8 @@ public final class JsonLdRDFTermFactory implements RDFTermFactory {
}
}
+ RDFDataset.Quad createJsonLdQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+ return new RDFDataset.Quad(asJsonLdNode(subject), asJsonLdNode(predicate), asJsonLdNode(object), asJsonLdString(graphName));
+ }
+
}
\ No newline at end of file