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/10/23 00:59:44 UTC

[01/22] incubator-commonsrdf git commit: RDFTermFactory -> RDFFactory

Repository: incubator-commonsrdf
Updated Branches:
  refs/heads/COMMONSRDF-46 [created] fa27a1789


RDFTermFactory -> RDFFactory


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/c82f15ee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/c82f15ee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/c82f15ee

Branch: refs/heads/COMMONSRDF-46
Commit: c82f15ee25b0cbee4528a3a72b37503182bd01cc
Parents: 0bb9369
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:03:09 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:03:09 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/BlankNode.java   |   6 +-
 .../java/org/apache/commons/rdf/api/Quad.java   |   2 +-
 .../org/apache/commons/rdf/api/RDFFactory.java  | 278 +++++++++++++++++++
 .../apache/commons/rdf/api/RDFTermFactory.java  | 278 -------------------
 .../java/org/apache/commons/rdf/api/Triple.java |   2 +-
 .../apache/commons/rdf/api/package-info.java    |   2 +-
 .../commons/rdf/experimental/RDFParser.java     |  12 +-
 .../commons/rdf/api/AbstractGraphTest.java      |  14 +-
 .../rdf/api/AbstractRDFTermFactoryTest.java     |  14 +-
 .../rdf/api/DefaultRDFTermFactoryTest.java      |   6 +-
 examples/src/example/UserGuideTest.java         |   4 +-
 .../apache/commons/rdf/jena/JenaFactory.java    |  42 +--
 .../rdf/jena/experimental/JenaRDFParser.java    |   4 +-
 .../apache/commons/rdf/jena/TestGraphJena.java  |   4 +-
 .../jena/TestJenaGraphToCommonsRDFGraph.java    |   4 +-
 .../rdf/jena/TestRDFTermFactoryJena.java        |   4 +-
 .../commons/rdf/jsonldjava/JsonLdFactory.java   |   4 +-
 .../rdf/jsonldjava/JsonLdFactoryTest.java       |   4 +-
 .../commons/rdf/jsonldjava/JsonLdGraphTest.java |   4 +-
 .../apache/commons/rdf/rdf4j/RDF4JFactory.java  |   6 +-
 .../org/apache/commons/rdf/rdf4j/GraphTest.java |   4 +-
 .../commons/rdf/rdf4j/MemoryGraphTest.java      |   6 +-
 .../rdf/rdf4j/MemoryRDFTermFactoryTest.java     |   4 +-
 .../commons/rdf/rdf4j/NativeStoreGraphTest.java |   6 +-
 .../rdf/rdf4j/Rdf4JRDFTermFactoryTest.java      |   4 +-
 .../commons/rdf/simple/BlankNodeImpl.java       |   6 +-
 .../rdf/simple/SimpleRDFTermFactory.java        |   6 +-
 .../simple/experimental/AbstractRDFParser.java  |  26 +-
 .../commons/rdf/simple/DefaultGraphTest.java    |  10 +-
 .../rdf/simple/DummyRDFParserBuilder.java       |   4 +-
 .../commons/rdf/simple/SimpleGraphTest.java     |   4 +-
 .../SimpleNoRelativeIRIRDFTermFactoryTest.java  |   4 +-
 .../simple/SimpleRDFTermFactoryLookupTest.java  |   8 +-
 .../rdf/simple/SimpleRDFTermFactoryTest.java    |   6 +-
 .../commons/rdf/simple/TestWritingGraph.java    |   4 +-
 .../experimental/AbstractRDFParserTest.java     |   4 +-
 36 files changed, 400 insertions(+), 400 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
index 40a44e8..efa4dfb 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
@@ -50,8 +50,8 @@ import java.util.UUID;
  * A BlankNode SHOULD contain a {@link UUID}-derived string as part of its
  * universally unique {@link #uniqueReference()}.
  *
- * @see RDFTermFactory#createBlankNode()
- * @see RDFTermFactory#createBlankNode(String)
+ * @see RDFFactory#createBlankNode()
+ * @see RDFFactory#createBlankNode(String)
  * @see <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-blank-node">RDF-1.1
  * Blank Node</a>
  */
@@ -62,7 +62,7 @@ public interface BlankNode extends BlankNodeOrIRI {
      * <p>
      * The reference string MUST universally and uniquely identify this blank
      * node. That is, different blank nodes created separately in different JVMs
-     * or from different {@link RDFTermFactory} instances MUST NOT have the same
+     * or from different {@link RDFFactory} instances MUST NOT have the same
      * reference string.
      * <p>
      * The {@link #uniqueReference()} of two <code>BlankNode</code> instances

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/main/java/org/apache/commons/rdf/api/Quad.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Quad.java b/api/src/main/java/org/apache/commons/rdf/api/Quad.java
index 6ce9a95..494600f 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Quad.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Quad.java
@@ -30,7 +30,7 @@ import java.util.Optional;
  * 
  * @since 0.3.0-incubating
  * @see Dataset
- * @see RDFTermFactory#createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm)
+ * @see RDFFactory#createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm)
  * @see <a href="http://www.w3.org/TR/2014/NOTE-rdf11-datasets-20140225/">RDF
  *      1.1: On Semantics of RDF Datasets</a>
  * @see <a href="http://www.w3.org/TR/rdf11-concepts/#section-dataset"> </a>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java b/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
new file mode 100644
index 0000000..2e97a03
--- /dev/null
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
@@ -0,0 +1,278 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.api;
+
+import java.io.Serializable;
+import java.util.Locale;
+
+/**
+ * Factory for creating RDFTerm and Graph instances.
+ * <p>
+ * It is not specified how an implementation should provide a RDFFactory.
+ * <p>
+ * If an implementation does not support a particular method (e.g. it requires
+ * additional parameters or can't create graphs), then it MAY throw
+ * {@link UnsupportedOperationException}, as provided by the <code>default</code>
+ * implementations in this interface.
+ * <p>
+ * If a factory method does not allow or support a provided parameter, e.g.
+ * because an IRI is considered invalid, then it SHOULD throw
+ * {@link IllegalArgumentException}.
+ *
+ * @see RDFTerm
+ * @see Graph
+ * @see Quad
+ */
+public interface RDFFactory {
+
+    /**
+     * Create a new blank node.
+     * <p>
+     * The returned blank node MUST NOT be equal to any existing
+     * {@link BlankNode} instances according to {@link BlankNode#equals(Object)}.
+     *
+     * @return A new, unique {@link BlankNode}
+     * @throws UnsupportedOperationException
+     *             If the operation is not supported.
+     */
+    default BlankNode createBlankNode() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createBlankNode() not supported");
+    }
+
+    /**
+     * Create a blank node based on the given name.
+     * <p>
+     * All {@link BlankNode}s created with the given <code>name</code>
+     * <em>on a particular instance</em> of <code>RDFFactory</code> MUST be
+     * equivalent according to {@link BlankNode#equals(Object)},
+     * <p>
+     * The returned BlankNode MUST NOT be equal to <code>BlankNode</code>
+     * instances returned for any other <code>name</code> or those returned from
+     * {@link #createBlankNode()}.
+     * <p>
+     * The returned BlankNode SHOULD NOT be equivalent to any BlankNodes created
+     * on a <em>different</em> <code>RDFFactory</code> instance, e.g.
+     * different instances of <code>RDFFactory</code> should produce
+     * different blank nodes for the same <code>name</code> unless they
+     * purposely are intending to create equivalent {@link BlankNode}
+     * instances (e.g. a reinstated {@link Serializable} factory).
+     *
+     * @param name
+     *            A non-empty, non-null, String that is unique to this blank
+     *            node in the context of this {@link RDFFactory}.
+     * @return A BlankNode for the given name
+     * @throws UnsupportedOperationException
+     *             If the operation is not supported.
+     */
+    default BlankNode createBlankNode(String name)
+            throws UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createBlankNode(String) not supported");
+    }
+
+    /**
+     * Create a new graph.
+     *
+     * It is undefined if the graph will be persisted by any underlying storage
+     * mechanism.
+     *
+     * @return A new Graph
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Graph createGraph() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("createGraph() not supported");
+    }
+
+    /**
+     * Create a new dataset.
+     *
+     * It is undefined if the dataset will be persisted by any underlying storage
+     * mechanism.
+     *
+     * @return A new Dataset
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Dataset createDataset() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("createDataset() not supported");
+    }
+
+    /**
+     * Create an IRI from a (possibly escaped) String.
+     *
+     * The provided iri string MUST be valid according to the <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-iri">W3C RDF-1.1 IRI</a>
+     * definition.
+     *
+     * @param iri Internationalized Resource Identifier
+     * @return A new IRI
+     * @throws IllegalArgumentException      If the provided string is not acceptable, e.g. does not
+     *                                       conform to the RFC3987 syntax.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default IRI createIRI(String iri) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createIRI(String) not supported");
+    }
+
+    /**
+     * Create a simple literal.
+     *
+     * The provided lexical form should not be escaped in any sense, e.g. should
+     * not include "quotes" unless those are part of the literal value.
+     *
+     * The returned Literal MUST have a {@link Literal#getLexicalForm()} that is
+     * equal to the provided lexical form, MUST NOT have a
+     * {@link Literal#getLanguageTag()} present, and SHOULD return a
+     * {@link Literal#getDatatype()} that is equal to the IRI
+     * <code>http://www.w3.org/2001/XMLSchema#string</code>.
+     *
+     * @param lexicalForm The literal value in plain text
+     * @return The created Literal
+     * @throws IllegalArgumentException      If the provided lexicalForm is not acceptable, e.g. because
+     *                                       it is too large for an underlying storage.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Literal createLiteral(String lexicalForm)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String) not supported");
+    }
+
+    /**
+     * Create a literal with the specified data type.
+     *
+     * The provided lexical form should not be escaped in any sense, e.g. should
+     * not include "quotes" unless those are part of the literal value.
+     *
+     * It is RECOMMENDED that the provided dataType is one of the <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#xsd-datatypes">RDF-compatible
+     * XSD types</a>.
+     *
+     * The provided lexical form SHOULD be in the <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-space">lexical
+     * space</a> of the provided dataType.
+     *
+     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} that
+     * is equal to the provided lexicalForm, MUST NOT have a
+     * {@link Literal#getLanguageTag()} present, and MUST return a
+     * {@link Literal#getDatatype()} that is equivalent to the provided dataType
+     * IRI.
+     *
+     * @param lexicalForm The literal value
+     * @param dataType    The data type IRI for the literal value, e.g.
+     *                    <code>http://www.w3.org/2001/XMLSchema#integer</code>
+     * @return The created Literal
+     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
+     *                                       because the provided dataType is not permitted.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Literal createLiteral(String lexicalForm, IRI dataType)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String) not supported");
+    }
+
+    /**
+     * Create a language-tagged literal.
+     *
+     * The provided lexical form should not be escaped in any sense, e.g. should
+     * not include "quotes" unless those are part of the literal value.
+     *
+     * The provided language tag MUST be valid according to <a
+     * href="http://tools.ietf.org/html/bcp47">BCP47</a>, e.g. <code>en</code>.
+     *
+     * The provided language tag <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"
+     * >MAY be converted to lower case</a>.
+     *
+     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} which
+     * is equal to the provided lexicalForm, MUST return a
+     * {@link Literal#getDatatype()} that is equal to the IRI
+     * <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>, and
+     * MUST have a {@link Literal#getLanguageTag()} present which SHOULD be
+     * equal to the provided language tag (compared as
+     * {@link String#toLowerCase(Locale)} using {@link Locale#ENGLISH}).
+     *
+     * @param lexicalForm The literal value
+     * @param languageTag The non-empty language tag as defined by <a
+     *                    href="http://tools.ietf.org/html/bcp47">BCP47</a>
+     * @return The created Literal
+     * @throws IllegalArgumentException      If the provided values are not acceptable, e.g. because the
+     *                                       languageTag was syntactically invalid.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Literal createLiteral(String lexicalForm, String languageTag)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String,String) not supported");
+    }
+
+    /**
+     * Create a triple.
+     *
+     * The returned Triple SHOULD have a {@link Triple#getSubject()} that is
+     * equal to the provided subject, a {@link Triple#getPredicate()} that is
+     * equal to the provided predicate, and a {@link Triple#getObject()} that is
+     * equal to the provided object.
+     *
+     * @param subject   The IRI or BlankNode that is the subject of the triple
+     * @param predicate The IRI that is the predicate of the triple
+     * @param object    The IRI, BlankNode or Literal that is the object of the triple
+     * @return The created Triple
+     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
+     *                                       because a Literal has a lexicalForm that is too large for an
+     *                                       underlying storage.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");
+    }
+
+    /**
+     * Create a quad.
+     * <p>
+     * The returned Quad SHOULD have a
+     * {@link Quad#getGraphName()} that is equal to the provided graphName, a
+     * {@link Quad#getSubject()} that is
+     * equal to the provided subject, a {@link Quad#getPredicate()} that is
+     * equal to the provided predicate, and a {@link Quad#getObject()} that is
+     * equal to the provided object.
+     *
+     * @param graphName The IRI or BlankNode that this quad belongs to, or <code>null</code> for the default graph
+     * @param subject   The IRI or BlankNode that is the subject of the quad
+     * @param predicate The IRI that is the predicate of the quad
+     * @param object    The IRI, BlankNode or Literal that is the object of the quad
+     * @return The created Quad
+     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
+     *                                       because a Literal has a lexicalForm that is too large for an
+     *                                       underlying storage.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm) not supported");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java b/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
deleted file mode 100644
index 17758b6..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.api;
-
-import java.io.Serializable;
-import java.util.Locale;
-
-/**
- * Factory for creating RDFTerm and Graph instances.
- * <p>
- * It is not specified how an implementation should provide a RDFTermFactory.
- * <p>
- * If an implementation does not support a particular method (e.g. it requires
- * additional parameters or can't create graphs), then it MAY throw
- * {@link UnsupportedOperationException}, as provided by the <code>default</code>
- * implementations in this interface.
- * <p>
- * If a factory method does not allow or support a provided parameter, e.g.
- * because an IRI is considered invalid, then it SHOULD throw
- * {@link IllegalArgumentException}.
- *
- * @see RDFTerm
- * @see Graph
- * @see Quad
- */
-public interface RDFTermFactory {
-
-    /**
-     * Create a new blank node.
-     * <p>
-     * The returned blank node MUST NOT be equal to any existing
-     * {@link BlankNode} instances according to {@link BlankNode#equals(Object)}.
-     *
-     * @return A new, unique {@link BlankNode}
-     * @throws UnsupportedOperationException
-     *             If the operation is not supported.
-     */
-    default BlankNode createBlankNode() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode() not supported");
-    }
-
-    /**
-     * Create a blank node based on the given name.
-     * <p>
-     * All {@link BlankNode}s created with the given <code>name</code>
-     * <em>on a particular instance</em> of <code>RDFTermFactory</code> MUST be
-     * equivalent according to {@link BlankNode#equals(Object)},
-     * <p>
-     * The returned BlankNode MUST NOT be equal to <code>BlankNode</code>
-     * instances returned for any other <code>name</code> or those returned from
-     * {@link #createBlankNode()}.
-     * <p>
-     * The returned BlankNode SHOULD NOT be equivalent to any BlankNodes created
-     * on a <em>different</em> <code>RDFTermFactory</code> instance, e.g.
-     * different instances of <code>RDFTermFactory</code> should produce
-     * different blank nodes for the same <code>name</code> unless they
-     * purposely are intending to create equivalent {@link BlankNode}
-     * instances (e.g. a reinstated {@link Serializable} factory).
-     *
-     * @param name
-     *            A non-empty, non-null, String that is unique to this blank
-     *            node in the context of this {@link RDFTermFactory}.
-     * @return A BlankNode for the given name
-     * @throws UnsupportedOperationException
-     *             If the operation is not supported.
-     */
-    default BlankNode createBlankNode(String name)
-            throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode(String) not supported");
-    }
-
-    /**
-     * Create a new graph.
-     *
-     * It is undefined if the graph will be persisted by any underlying storage
-     * mechanism.
-     *
-     * @return A new Graph
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Graph createGraph() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createGraph() not supported");
-    }
-
-    /**
-     * Create a new dataset.
-     *
-     * It is undefined if the dataset will be persisted by any underlying storage
-     * mechanism.
-     *
-     * @return A new Dataset
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Dataset createDataset() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createDataset() not supported");
-    }
-
-    /**
-     * Create an IRI from a (possibly escaped) String.
-     *
-     * The provided iri string MUST be valid according to the <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-iri">W3C RDF-1.1 IRI</a>
-     * definition.
-     *
-     * @param iri Internationalized Resource Identifier
-     * @return A new IRI
-     * @throws IllegalArgumentException      If the provided string is not acceptable, e.g. does not
-     *                                       conform to the RFC3987 syntax.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default IRI createIRI(String iri) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createIRI(String) not supported");
-    }
-
-    /**
-     * Create a simple literal.
-     *
-     * The provided lexical form should not be escaped in any sense, e.g. should
-     * not include "quotes" unless those are part of the literal value.
-     *
-     * The returned Literal MUST have a {@link Literal#getLexicalForm()} that is
-     * equal to the provided lexical form, MUST NOT have a
-     * {@link Literal#getLanguageTag()} present, and SHOULD return a
-     * {@link Literal#getDatatype()} that is equal to the IRI
-     * <code>http://www.w3.org/2001/XMLSchema#string</code>.
-     *
-     * @param lexicalForm The literal value in plain text
-     * @return The created Literal
-     * @throws IllegalArgumentException      If the provided lexicalForm is not acceptable, e.g. because
-     *                                       it is too large for an underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Literal createLiteral(String lexicalForm)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
-
-    /**
-     * Create a literal with the specified data type.
-     *
-     * The provided lexical form should not be escaped in any sense, e.g. should
-     * not include "quotes" unless those are part of the literal value.
-     *
-     * It is RECOMMENDED that the provided dataType is one of the <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#xsd-datatypes">RDF-compatible
-     * XSD types</a>.
-     *
-     * The provided lexical form SHOULD be in the <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-space">lexical
-     * space</a> of the provided dataType.
-     *
-     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} that
-     * is equal to the provided lexicalForm, MUST NOT have a
-     * {@link Literal#getLanguageTag()} present, and MUST return a
-     * {@link Literal#getDatatype()} that is equivalent to the provided dataType
-     * IRI.
-     *
-     * @param lexicalForm The literal value
-     * @param dataType    The data type IRI for the literal value, e.g.
-     *                    <code>http://www.w3.org/2001/XMLSchema#integer</code>
-     * @return The created Literal
-     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
-     *                                       because the provided dataType is not permitted.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Literal createLiteral(String lexicalForm, IRI dataType)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
-
-    /**
-     * Create a language-tagged literal.
-     *
-     * The provided lexical form should not be escaped in any sense, e.g. should
-     * not include "quotes" unless those are part of the literal value.
-     *
-     * The provided language tag MUST be valid according to <a
-     * href="http://tools.ietf.org/html/bcp47">BCP47</a>, e.g. <code>en</code>.
-     *
-     * The provided language tag <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"
-     * >MAY be converted to lower case</a>.
-     *
-     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} which
-     * is equal to the provided lexicalForm, MUST return a
-     * {@link Literal#getDatatype()} that is equal to the IRI
-     * <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>, and
-     * MUST have a {@link Literal#getLanguageTag()} present which SHOULD be
-     * equal to the provided language tag (compared as
-     * {@link String#toLowerCase(Locale)} using {@link Locale#ENGLISH}).
-     *
-     * @param lexicalForm The literal value
-     * @param languageTag The non-empty language tag as defined by <a
-     *                    href="http://tools.ietf.org/html/bcp47">BCP47</a>
-     * @return The created Literal
-     * @throws IllegalArgumentException      If the provided values are not acceptable, e.g. because the
-     *                                       languageTag was syntactically invalid.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Literal createLiteral(String lexicalForm, String languageTag)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String,String) not supported");
-    }
-
-    /**
-     * Create a triple.
-     *
-     * The returned Triple SHOULD have a {@link Triple#getSubject()} that is
-     * equal to the provided subject, a {@link Triple#getPredicate()} that is
-     * equal to the provided predicate, and a {@link Triple#getObject()} that is
-     * equal to the provided object.
-     *
-     * @param subject   The IRI or BlankNode that is the subject of the triple
-     * @param predicate The IRI that is the predicate of the triple
-     * @param object    The IRI, BlankNode or Literal that is the object of the triple
-     * @return The created Triple
-     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
-     *                                       because a Literal has a lexicalForm that is too large for an
-     *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
-
-    /**
-     * Create a quad.
-     * <p>
-     * The returned Quad SHOULD have a
-     * {@link Quad#getGraphName()} that is equal to the provided graphName, a
-     * {@link Quad#getSubject()} that is
-     * equal to the provided subject, a {@link Quad#getPredicate()} that is
-     * equal to the provided predicate, and a {@link Quad#getObject()} that is
-     * equal to the provided object.
-     *
-     * @param graphName The IRI or BlankNode that this quad belongs to, or <code>null</code> for the default graph
-     * @param subject   The IRI or BlankNode that is the subject of the quad
-     * @param predicate The IRI that is the predicate of the quad
-     * @param object    The IRI, BlankNode or Literal that is the object of the quad
-     * @return The created Quad
-     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
-     *                                       because a Literal has a lexicalForm that is too large for an
-     *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/main/java/org/apache/commons/rdf/api/Triple.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Triple.java b/api/src/main/java/org/apache/commons/rdf/api/Triple.java
index 9e7f140..9e359d7 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Triple.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Triple.java
@@ -26,7 +26,7 @@ import java.util.Objects;
  * 25 February 2014.<br>
  *
  * @see Quad 
- * @see RDFTermFactory#createTriple(BlankNodeOrIRI,IRI,RDFTerm)
+ * @see RDFFactory#createTriple(BlankNodeOrIRI,IRI,RDFTerm)
  * @see <a href= "http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple" >RDF-1.1
  * Triple</a>
  */

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/main/java/org/apache/commons/rdf/api/package-info.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/package-info.java b/api/src/main/java/org/apache/commons/rdf/api/package-info.java
index 5fd5f5b..19d1462 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/package-info.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/package-info.java
@@ -30,7 +30,7 @@
  * {@link org.apache.commons.rdf.api.BlankNode}.
  * <p>
  * Implementations of this API should provide an
- * {@link org.apache.commons.rdf.api.RDFTermFactory} to facilitate
+ * {@link org.apache.commons.rdf.api.RDFFactory} to facilitate
  * creation of these objects.
  * <p>
  * All the {@link org.apache.commons.rdf.api.RDFTerm} objects are immutable,

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java b/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
index d0b8776..e77926d 100644
--- a/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
+++ b/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 
 /**
@@ -100,25 +100,25 @@ public interface RDFParser {
 	}
 
 	/**
-	 * Specify which {@link RDFTermFactory} to use for generating
+	 * Specify which {@link RDFFactory} to use for generating
 	 * {@link RDFTerm}s.
 	 * <p>
 	 * This option may be used together with {@link #target(Graph)} to
 	 * override the implementation's default factory and graph.
 	 * <p>
-	 * <strong>Warning:</strong> Using the same {@link RDFTermFactory} for 
+	 * <strong>Warning:</strong> Using the same {@link RDFFactory} for 
 	 * multiple {@link #parse()} calls  may accidentally merge 
 	 * {@link BlankNode}s having the same label, as the parser may 
-	 * use the {@link RDFTermFactory#createBlankNode(String)} method
+	 * use the {@link RDFFactory#createBlankNode(String)} method
 	 * from the parsed blank node labels.
 	 * 
 	 * @see #target(Graph)
 	 * @param rdfTermFactory
-	 *            {@link RDFTermFactory} to use for generating RDFTerms.
+	 *            {@link RDFFactory} to use for generating RDFTerms.
 	 * @return An {@link RDFParser} that will use the specified
 	 *         rdfTermFactory
 	 */
-	RDFParser rdfTermFactory(RDFTermFactory rdfTermFactory);
+	RDFParser rdfTermFactory(RDFFactory rdfTermFactory);
 
 	/**
 	 * Specify the content type of the RDF syntax to parse.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
index d7b3fbc..bd68f51 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
@@ -41,18 +41,18 @@ import org.junit.Test;
  * <p>
  * To add to your implementation's tests, create a subclass with a name ending
  * in <code>Test</code> and provide {@link #createFactory()} which minimally
- * must support {@link RDFTermFactory#createGraph()} and
- * {@link RDFTermFactory#createIRI(String)}, but ideally support all operations.
+ * must support {@link RDFFactory#createGraph()} and
+ * {@link RDFFactory#createIRI(String)}, but ideally support all operations.
  * <p>
  * This test uses try-with-resources blocks for calls to {@link Graph#stream()}
  * and {@link Graph#iterate()}.
  * 
  * @see Graph
- * @see RDFTermFactory
+ * @see RDFFactory
  */
 public abstract class AbstractGraphTest {
 
-    protected RDFTermFactory factory;
+    protected RDFFactory factory;
     protected Graph graph;
     protected IRI alice;
     protected IRI bob;
@@ -67,7 +67,7 @@ public abstract class AbstractGraphTest {
     protected Literal companyName;
     protected Triple bobNameTriple;
 
-    public abstract RDFTermFactory createFactory();
+    public abstract RDFFactory createFactory();
 
     @Before
     public void createGraphAndAdd() {
@@ -413,7 +413,7 @@ public abstract class AbstractGraphTest {
      * Make a new graph with two BlankNodes - each with a different uniqueReference
      */
     private Graph createGraph1() {
-        RDFTermFactory factory1 = createFactory();
+        RDFFactory factory1 = createFactory();
 
         IRI name = factory1.createIRI("http://xmlns.com/foaf/0.1/name");
         Graph g1 = factory1.createGraph();
@@ -465,7 +465,7 @@ public abstract class AbstractGraphTest {
 	}
 
     private Graph createGraph2() {
-        RDFTermFactory factory2 = createFactory();
+        RDFFactory factory2 = createFactory();
         IRI name = factory2.createIRI("http://xmlns.com/foaf/0.1/name");
 
         Graph g2 = factory2.createGraph();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
index 17dd05f..412b812 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
@@ -29,26 +29,26 @@ import org.junit.Before;
 import org.junit.Test;
 
 /**
- * Test RDFTermFactory implementation (and thus its RDFTerm implementations)
+ * Test RDFFactory implementation (and thus its RDFTerm implementations)
  * <p>
  * To add to your implementation's tests, create a subclass with a name ending
  * in <code>Test</code> and provide {@link #createFactory()} which minimally
  * supports one of the operations, but ideally supports all operations.
  *
- * @see RDFTermFactory
+ * @see RDFFactory
  */
 public abstract class AbstractRDFTermFactoryTest {
 
-    private RDFTermFactory factory;
+    private RDFFactory factory;
 
     /**
-     * testCreate a new, distinct {@link RDFTermFactory} object using the
+     * testCreate a new, distinct {@link RDFFactory} object using the
      * implementation being tested here.
      *
-     * @return a new, distinct {@link RDFTermFactory} object using the
+     * @return a new, distinct {@link RDFFactory} object using the
      * implementation being tested here
      */
-    public abstract RDFTermFactory createFactory();
+    public abstract RDFFactory createFactory();
 
     @Before
     public void setUp() {
@@ -126,7 +126,7 @@ public abstract class AbstractRDFTermFactoryTest {
             // only says:
             // 
             // * BlankNodes created using this method with the same parameter, for
-            // * different instances of RDFTermFactory, SHOULD NOT be equivalent.
+            // * different instances of RDFFactory, SHOULD NOT be equivalent.
             //
             // https://github.com/apache/incubator-commonsrdf/pull/7#issuecomment-92312779
         } catch (UnsupportedOperationException ex) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
index 674140d..d7db514 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
@@ -18,15 +18,15 @@
 package org.apache.commons.rdf.api;
 
 /**
- * The default RDFTermFactory might be useless (every method throws
+ * The default RDFFactory might be useless (every method throws
  * UnsupportedOperationException), but this test ensures that
  * AbstractRDFTermFactoryTest does not fall over on unsupported operations.
  */
 public class DefaultRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
     @Override
-    public RDFTermFactory createFactory() {
-        return new RDFTermFactory() {
+    public RDFFactory createFactory() {
+        return new RDFFactory() {
         };
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/examples/src/example/UserGuideTest.java
----------------------------------------------------------------------
diff --git a/examples/src/example/UserGuideTest.java b/examples/src/example/UserGuideTest.java
index ee8ad97..44623b3 100644
--- a/examples/src/example/UserGuideTest.java
+++ b/examples/src/example/UserGuideTest.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 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.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
@@ -42,7 +42,7 @@ import org.junit.Test;
 
 public class UserGuideTest {
 
-	private RDFTermFactory factory;
+	private RDFFactory factory;
 
 	@Before
 	public void factory() {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
index 0d735c7..0a5b44b 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
@@ -31,7 +31,7 @@ import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.QuadLike;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.jena.impl.InternalJenaFactory;
@@ -48,7 +48,7 @@ import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 /**
- * RDFTermFactory with Jena-backed objects.
+ * RDFFactory with Jena-backed objects.
  * <p>
  * This factory can also convert existing objects from/to Jena with methods like
  * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
@@ -56,9 +56,9 @@ import org.apache.jena.sparql.graph.GraphFactory;
  * For the purpose of {@link BlankNode} identity, this factory will use an internal
  * {@link UUID} as a salt. See {@link BlankNode#uniqueReference()} for details.
  * 
- * @see RDFTermFactory
+ * @see RDFFactory
  */
-public final class JenaFactory implements RDFTermFactory {
+public final class JenaFactory implements RDFFactory {
 
 	private static InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
 	
@@ -203,7 +203,7 @@ public final class JenaFactory implements RDFTermFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @see #fromJena(RDFTermFactory, Node)
+	 * @see #fromJena(RDFFactory, Node)
 	 * 
 	 * @param node
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
@@ -220,13 +220,13 @@ public final class JenaFactory implements RDFTermFactory {
 	 * Convert from Jena {@link Node} to any Commons RDF implementation.
 	 * <p>
 	 * Note that if the {@link Node#isBlank()}, then the factory's 
-	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDFTermFactory} instance
+	 * {@link RDFFactory#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDFFactory} instance
 	 * for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(Node)
 	 * 
-	 * @param factory {@link RDFTermFactory} to use for creating {@link RDFTerm}.
+	 * @param factory {@link RDFFactory} to use for creating {@link RDFTerm}.
 	 * @param node
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
 	 *            <code>true</code>.
@@ -234,7 +234,7 @@ public final class JenaFactory implements RDFTermFactory {
 	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
 	 *             if the node is not concrete or represents a variable in Jena.
 	 */
-	public static RDFTerm fromJena(RDFTermFactory factory, Node node) {
+	public static RDFTerm fromJena(RDFFactory factory, Node node) {
 		if (node == null) {
 			return null;
 		}
@@ -268,7 +268,7 @@ public final class JenaFactory implements RDFTermFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 *
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * @see #fromJena(RDFFactory, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
 	 *            Jena {@link org.apache.jena.graph.Triple} to adapt
@@ -293,7 +293,7 @@ public final class JenaFactory implements RDFTermFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 *
-	 * @see #fromJena(RDFTermFactory, org.apache.jena.graph.Triple)
+	 * @see #fromJena(RDFFactory, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
 	 *            Jena triple
@@ -342,13 +342,13 @@ public final class JenaFactory implements RDFTermFactory {
 	 * {@link Triple}.
 	 * <p>
 	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
-	 * {@link RDFTermFactory#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDFTermFactory} instance
+	 * {@link RDFFactory#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDFFactory} instance
 	 * for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(org.apache.jena.graph.Triple)
 	 *
-	 * @param factory {@link RDFTermFactory} to use for creating the {@link Triple} and its
+	 * @param factory {@link RDFFactory} to use for creating the {@link Triple} and its
 	 * {@link RDFTerm}s.
 	 * @param triple
 	 *            Jena triple
@@ -357,7 +357,7 @@ public final class JenaFactory implements RDFTermFactory {
 	 *             if any of the triple's nodes are not concrete or the triple
 	 *             is a generalized triple
 	 */
-	public static Triple fromJena(RDFTermFactory factory, org.apache.jena.graph.Triple triple) 
+	public static Triple fromJena(RDFFactory factory, org.apache.jena.graph.Triple triple) 
 			throws ConversionException{
 		if (factory instanceof JenaFactory) {
 			// No need to convert, just wrap
@@ -478,15 +478,15 @@ public final class JenaFactory implements RDFTermFactory {
 	 * RDF {@link Quad}.
 	 * <p>
 	 * Note that if any of the quad's nodes {@link Node#isBlank()}, then the
-	 * factory's {@link RDFTermFactory#createBlankNode(String)} will be used,
-	 * meaning that care should be taken if reusing an {@link RDFTermFactory}
+	 * factory's {@link RDFFactory#createBlankNode(String)} will be used,
+	 * meaning that care should be taken if reusing an {@link RDFFactory}
 	 * instance for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
 	 * @see #fromJenaGeneralized(org.apache.jena.sparql.core.Quad)
 	 *
 	 * @param factory
-	 *            {@link RDFTermFactory} to use for creating the {@link Triple}
+	 *            {@link RDFFactory} to use for creating the {@link Triple}
 	 *            and its {@link RDFTerm}s.
 	 * @param quad
 	 *            Jena {@link org.apache.jena.sparql.core.Quad} to adapt
@@ -495,7 +495,7 @@ public final class JenaFactory implements RDFTermFactory {
 	 *             if any of the quad's nodes are not concrete or the quad
 	 *             is a generalized quad
 	 */
-	public static Quad fromJena(RDFTermFactory factory, org.apache.jena.sparql.core.Quad quad) {
+	public static Quad fromJena(RDFFactory factory, org.apache.jena.sparql.core.Quad quad) {
 		if (factory instanceof JenaFactory) {
 			// No need to convert, just wrap
 			return ((JenaFactory) factory).fromJena(quad);
@@ -535,14 +535,14 @@ public final class JenaFactory implements RDFTermFactory {
 	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
 	 * 
 	 * @param factory
-	 *            {@link RDFTermFactory} to use for creating {@link RDFTerm}s
+	 *            {@link RDFFactory} to use for creating {@link RDFTerm}s
 	 *            and {@link Quad}s.
 	 * @param consumer
 	 *            A {@link Consumer} of {@link Quad}s
 	 * @return A {@link StreamRDF} that will stream converted quads to the
 	 *         consumer
 	 */
-	public static StreamRDF streamJenaToCommonsRDF(RDFTermFactory factory, Consumer<Quad> consumer) {
+	public static StreamRDF streamJenaToCommonsRDF(RDFFactory factory, Consumer<Quad> consumer) {
 		return new StreamRDFBase() {
 			@Override
 			public void quad(org.apache.jena.sparql.core.Quad quad) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
index 19a8a63..f14532c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
@@ -26,7 +26,7 @@ import java.util.function.Consumer;
 import org.apache.commons.rdf.api.IRI;
 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.RDFFactory;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.jena.JenaGraph;
@@ -43,7 +43,7 @@ public class JenaRDFParser extends AbstractRDFParser<JenaRDFParser> implements R
 	private Consumer<TripleLike> generalizedConsumerTriple;
 	private Consumer<QuadLike<RDFTerm>> generalizedConsumerQuad;
 
-	protected RDFTermFactory createRDFTermFactory() {
+	protected RDFFactory createRDFTermFactory() {
 		return new JenaFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
index ebccc6e..5690721 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
@@ -19,12 +19,12 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.AbstractGraphTest ;
-import org.apache.commons.rdf.api.RDFTermFactory ;
+import org.apache.commons.rdf.api.RDFFactory ;
 
 public class TestGraphJena extends AbstractGraphTest {
 
     @Override
-    public RDFTermFactory createFactory() {
+    public RDFFactory createFactory() {
         return new JenaFactory() ;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
index 1a7b4e0..7f08382 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
@@ -24,7 +24,7 @@ import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
 
 import org.apache.commons.rdf.api.Graph ;
-import org.apache.commons.rdf.api.RDFTermFactory ;
+import org.apache.commons.rdf.api.RDFFactory ;
 import org.apache.jena.riot.Lang ;
 import org.apache.jena.riot.RDFDataMgr ;
 import org.apache.jena.sparql.graph.GraphFactory ;
@@ -59,7 +59,7 @@ public class TestJenaGraphToCommonsRDFGraph {
         Graph graph = new JenaFactory().fromJena(jGraph) ;
         
         // Add to CommonsRDF Graph
-        RDFTermFactory rft = new JenaFactory() ;
+        RDFFactory rft = new JenaFactory() ;
         graph.add(rft.createIRI("http://example/s2"),
                   rft.createIRI("http://example/p2"),
                   rft.createLiteral("foo")) ;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
index ae423da..6ca14b7 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
@@ -19,12 +19,12 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest ;
-import org.apache.commons.rdf.api.RDFTermFactory ;
+import org.apache.commons.rdf.api.RDFFactory ;
 
 public class TestRDFTermFactoryJena extends AbstractRDFTermFactoryTest {
 	
     @Override
-    public RDFTermFactory createFactory() {
+    public RDFFactory createFactory() {
         return new JenaFactory() ;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
index a66fd3d..0dd8486 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
@@ -28,14 +28,14 @@ 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.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.simple.Types;
 
 import com.github.jsonldjava.core.RDFDataset;
 import com.github.jsonldjava.core.RDFDataset.Node;
 
-public final class JsonLdFactory implements RDFTermFactory {
+public final class JsonLdFactory implements RDFFactory {
 
 	final String bnodePrefix;
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
index e7c68ea..02b2695 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
@@ -18,14 +18,14 @@
 package org.apache.commons.rdf.jsonldjava;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.junit.Ignore;
 import org.junit.Test;
 
 public class JsonLdFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
-	public RDFTermFactory createFactory() {
+	public RDFFactory createFactory() {
 		return new JsonLdFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
index 46bc73e..1f98c74 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
@@ -18,12 +18,12 @@
 package org.apache.commons.rdf.jsonldjava;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 
 public class JsonLdGraphTest extends AbstractGraphTest {
 
 	@Override
-	public RDFTermFactory createFactory() {
+	public RDFFactory createFactory() {
 		return new JsonLdFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
index 7d4eabe..6b3717b 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.Dataset;
 import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.rdf4j.impl.InternalRDF4JFactory;
@@ -51,7 +51,7 @@ import org.eclipse.rdf4j.sail.Sail;
 import org.eclipse.rdf4j.sail.memory.MemoryStore;
 
 /**
- * RDF4J implementation of RDFTermFactory.
+ * RDF4J implementation of RDFFactory.
  * <p>
  * The {@link #RDF4JFactory()} constructor uses a {@link SimpleValueFactory}
  * to create corresponding RDF4J {@link Value} instances. Alternatively, this
@@ -99,7 +99,7 @@ import org.eclipse.rdf4j.sail.memory.MemoryStore;
  * therefore uses a unique {@link RDF4JFactory} internally.
  *
  */
-public final class RDF4JFactory implements RDFTermFactory {
+public final class RDF4JFactory implements RDFFactory {
 
 	/**
 	 * InternalRDF4JFactory is deliberately abstract

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
index 07b60c2..8cba53e 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
@@ -18,12 +18,12 @@
 package org.apache.commons.rdf.rdf4j;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 
 public class GraphTest extends AbstractGraphTest{
 
 	@Override
-	public RDFTermFactory createFactory() {
+	public RDFFactory createFactory() {
 		return new RDF4JFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
index c275e67..ce449bf 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
@@ -24,7 +24,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.eclipse.rdf4j.repository.Repository;
 import org.eclipse.rdf4j.repository.sail.SailRepository;
 import org.eclipse.rdf4j.sail.Sail;
@@ -33,7 +33,7 @@ import org.eclipse.rdf4j.sail.memory.model.MemValueFactory;
 
 public class MemoryGraphTest extends AbstractGraphTest {
 
-	public static final class MemoryStoreFactory implements RDFTermFactory {
+	public static final class MemoryStoreFactory implements RDFFactory {
 
 		RDF4JFactory rdf4jFactory = new RDF4JFactory(new MemValueFactory());
 
@@ -82,7 +82,7 @@ public class MemoryGraphTest extends AbstractGraphTest {
 	}
 
 	@Override
-	public RDFTermFactory createFactory() {
+	public RDFFactory createFactory() {
 		return new MemoryStoreFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
index 8ba235d..07d6a13 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
@@ -18,13 +18,13 @@
 package org.apache.commons.rdf.rdf4j;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.junit.Assume;
 
 public class MemoryRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
-	public RDFTermFactory createFactory() {
+	public RDFFactory createFactory() {
 		return new MemoryGraphTest.MemoryStoreFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
index 77ee128..9a5ab50 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
@@ -27,7 +27,7 @@ import org.apache.commons.rdf.api.BlankNodeOrIRI;
 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.RDFFactory;
 import org.eclipse.rdf4j.repository.RepositoryConnection;
 import org.eclipse.rdf4j.repository.RepositoryResult;
 import org.eclipse.rdf4j.repository.sail.SailRepository;
@@ -49,7 +49,7 @@ import org.junit.rules.Timeout;
  */
 public class NativeStoreGraphTest extends AbstractGraphTest {
 
-	public final class NativeStoreFactory implements RDFTermFactory {
+	public final class NativeStoreFactory implements RDFFactory {
 
 		RDF4JFactory rdf4jFactory = new RDF4JFactory(getRepository().getValueFactory());
 
@@ -145,7 +145,7 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
 //	}
 
 	@Override
-	public RDFTermFactory createFactory() {
+	public RDFFactory createFactory() {
 		return new NativeStoreFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
index 9dbbf4b..4e075ac 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
@@ -18,13 +18,13 @@
 package org.apache.commons.rdf.rdf4j;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.junit.Assume;
 
 public class Rdf4JRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
-	public RDFTermFactory createFactory() {
+	public RDFFactory createFactory() {
 		return new RDF4JFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
index 81c6848..dab2f12 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
@@ -47,13 +47,13 @@ final class BlankNodeImpl implements BlankNode, SimpleRDFTerm {
         // Build a semi-URN - to be hashed for a name-based UUID below
         // Both the scope and the id are used to create the UUID, ensuring that
         // a caller can reliably create the same bnode if necessary by sending
-        // in the same scope to RDFTermFactory.createBlankNode(String)
+        // in the same scope to RDFFactory.createBlankNode(String)
         String uuidInput = "urn:uuid:" + uuidSalt + "#" + name;
 
         // The above is not a good value for this.id, as the id
         // needs to be further escaped for
         // ntriplesString() (there are no restrictions on
-        // RDFTermFactory.createBlankNode(String) ).
+        // RDFFactory.createBlankNode(String) ).
 
 
         // Rather than implement ntriples escaping here, and knowing
@@ -63,7 +63,7 @@ final class BlankNodeImpl implements BlankNode, SimpleRDFTerm {
         //
         // A side-effect from this is that the blank node identifier
         // is not preserved or shown in ntriplesString. In a way
-        // this is a feature, not a bug. as the contract for RDFTermFactory
+        // this is a feature, not a bug. as the contract for RDFFactory
         // has no such requirement.
         this.uniqueReference = UUID.nameUUIDFromBytes(
                 uuidInput.getBytes(StandardCharsets.UTF_8)).toString();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
index 4f54d03..4aee07a 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
@@ -27,17 +27,17 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 
 /**
- * A simple implementation of RDFTermFactory.
+ * A simple implementation of RDFFactory.
  * <p>
  * The {@link RDFTerm} and {@link Graph} instances created by this factory are
  * simple in-memory Implementations that are not thread-safe or efficient, but
  * which may be useful for testing and prototyping purposes.
  */
-public class SimpleRDFTermFactory implements RDFTermFactory {
+public class SimpleRDFTermFactory implements RDFFactory {
 
 	/**
 	 * Marker interface to say that this RDFTerm is part of the 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
index 9b07699..ef93136 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
@@ -33,7 +33,7 @@ import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFSyntax;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
 
@@ -63,15 +63,15 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	private static final ExecutorService threadpool = Executors.newCachedThreadPool(r -> new Thread(threadGroup, r));
 
 	// Basically only used for creating IRIs
-	private static RDFTermFactory internalRdfTermFactory = new SimpleRDFTermFactory();
+	private static RDFFactory internalRdfTermFactory = new SimpleRDFTermFactory();
 
 	/**
-	 * Get the set {@link RDFTermFactory}, if any.
+	 * Get the set {@link RDFFactory}, if any.
 	 * 
-	 * @return The {@link RDFTermFactory} to use, or {@link Optional#empty()} if
+	 * @return The {@link RDFFactory} to use, or {@link Optional#empty()} if
 	 *         it has not been set
 	 */
-	public Optional<RDFTermFactory> getRdfTermFactory() {
+	public Optional<RDFFactory> getRdfTermFactory() {
 		return rdfTermFactory;
 	}
 
@@ -200,7 +200,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	}
 
 
-	private Optional<RDFTermFactory> rdfTermFactory = Optional.empty();
+	private Optional<RDFFactory> rdfTermFactory = Optional.empty();
 	private Optional<RDFSyntax> contentTypeSyntax = Optional.empty();
 	private Optional<String> contentType = Optional.empty();
 	private Optional<IRI> base = Optional.empty();
@@ -227,7 +227,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	}
 	
 	@Override
-	public T rdfTermFactory(RDFTermFactory rdfTermFactory) {
+	public T rdfTermFactory(RDFFactory rdfTermFactory) {
 		AbstractRDFParser<T> c = clone();
 		c.rdfTermFactory = Optional.ofNullable(rdfTermFactory);
 		return c.asT();
@@ -501,20 +501,20 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	
 
 	/**
-	 * Create a new {@link RDFTermFactory} for a parse session.
+	 * Create a new {@link RDFFactory} for a parse session.
 	 * <p>
 	 * This is called by {@link #parse()} to set 
-	 * {@link #rdfTermFactory(RDFTermFactory)} if it is
+	 * {@link #rdfTermFactory(RDFFactory)} if it is
 	 * {@link Optional#empty()}.
 	 * <p>
 	 * As parsed blank nodes might be made with 
-	 * {@link RDFTermFactory#createBlankNode(String)}, 
+	 * {@link RDFFactory#createBlankNode(String)}, 
 	 * each call to this method SHOULD return 
-	 * a new RDFTermFactory instance.
+	 * a new RDFFactory instance.
 	 * 
-	 * @return A new {@link RDFTermFactory}
+	 * @return A new {@link RDFFactory}
 	 */
-	protected RDFTermFactory createRDFTermFactory() {
+	protected RDFFactory createRDFTermFactory() {
 		return new SimpleRDFTermFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
index 57fec35..4b100b3 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
@@ -20,20 +20,20 @@ package org.apache.commons.rdf.simple;
 import org.apache.commons.rdf.api.AbstractGraphTest;
 import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 
 /**
- * Ensure AbstractGraphTest does not crash if the RDFTermFactory throws
+ * Ensure AbstractGraphTest does not crash if the RDFFactory throws
  * UnsupportedOperationException
  */
 
 public class DefaultGraphTest extends AbstractGraphTest {
 
     @Override
-    public RDFTermFactory createFactory() {
-        // The most minimal RDFTermFactory that would still
+    public RDFFactory createFactory() {
+        // The most minimal RDFFactory that would still
         // make sense with a Graph
-        return new RDFTermFactory() {
+        return new RDFFactory() {
             @Override
             public Graph createGraph() throws UnsupportedOperationException {
                 return new GraphImpl(new SimpleRDFTermFactory());

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java b/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
index 769202f..c635aff 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
@@ -23,7 +23,7 @@ import java.util.function.Consumer;
 
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Quad;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.experimental.AbstractRDFParser;
 import org.apache.commons.rdf.simple.experimental.RDFParseException;
@@ -50,7 +50,7 @@ public class DummyRDFParserBuilder extends AbstractRDFParser<DummyRDFParserBuild
 	@Override
 	protected void parseSynchronusly() throws IOException, IllegalStateException, RDFParseException {		
 		// From parseSynchronusly both of these are always present
-		RDFTermFactory factory = getRdfTermFactory().get();
+		RDFFactory factory = getRdfTermFactory().get();
 		Consumer<Quad> t = getTarget();
 				
 		// well - each parsing is unique. This should hopefully

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
index 14f14a6..e5de520 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
@@ -20,7 +20,7 @@ package org.apache.commons.rdf.simple;
 import static org.junit.Assert.assertTrue;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.junit.Assume;
 import org.junit.Test;
 
@@ -30,7 +30,7 @@ import org.junit.Test;
 public class SimpleGraphTest extends AbstractGraphTest {
 
     @Override
-    public RDFTermFactory createFactory() {
+    public RDFFactory createFactory() {
         return new SimpleRDFTermFactory();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
index 8e57d27..5c35de6 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
@@ -19,7 +19,7 @@ package org.apache.commons.rdf.simple;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
 import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 
 import java.net.URI;
 
@@ -32,7 +32,7 @@ import java.net.URI;
 public class SimpleNoRelativeIRIRDFTermFactoryTest extends
         AbstractRDFTermFactoryTest {
     @Override
-    public RDFTermFactory createFactory() {
+    public RDFFactory createFactory() {
         return new SimpleRDFTermFactory() {
             @Override
             public IRI createIRI(String iri) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
index 2fdeba7..96f64ca 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
@@ -24,17 +24,17 @@ import static org.junit.Assert.assertTrue;
 import java.util.Iterator;
 import java.util.ServiceLoader;
 
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.junit.Test;
 
 public class SimpleRDFTermFactoryLookupTest {
 
     @Test
     public void testServiceLoaderLookup() {
-        ServiceLoader<RDFTermFactory> loader = ServiceLoader.load(RDFTermFactory.class);
+        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
 
-        Iterator<RDFTermFactory> iterator = loader.iterator();
-        RDFTermFactory factory = iterator.next();
+        Iterator<RDFFactory> iterator = loader.iterator();
+        RDFFactory factory = iterator.next();
 
         assertTrue(factory instanceof SimpleRDFTermFactory);
         assertFalse(iterator.hasNext());

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
index 9ef2a35..0cfabb4 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
@@ -18,15 +18,15 @@
 package org.apache.commons.rdf.simple;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 
 /**
- * Simple RDFTermFactory Test
+ * Simple RDFFactory Test
  */
 public class SimpleRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
     @Override
-    public RDFTermFactory createFactory() {
+    public RDFFactory createFactory() {
         return new SimpleRDFTermFactory();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
index a674664..1ed2e8f 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
@@ -29,7 +29,7 @@ import java.util.stream.Stream;
 
 import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -53,7 +53,7 @@ public class TestWritingGraph {
 
     private static Graph graph;
 
-    private static RDFTermFactory factory;
+    private static RDFFactory factory;
 
     @BeforeClass
     public static void createGraph() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/c82f15ee/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
index 7f3822b..f003c09 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
@@ -34,7 +34,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.DummyRDFParserBuilder;
@@ -48,7 +48,7 @@ import org.junit.rules.ExpectedException;
 
 public class AbstractRDFParserTest {
 
-	private RDFTermFactory factory = new SimpleRDFTermFactory();
+	private RDFFactory factory = new SimpleRDFTermFactory();
 	
 	private DummyRDFParserBuilder dummyParser = new DummyRDFParserBuilder();
 	private Path testNt;


[02/22] incubator-commonsrdf git commit: Deprecated RDFTermFactory skeleton with 0.2.0 method signatures

Posted by st...@apache.org.
Deprecated RDFTermFactory skeleton with 0.2.0 method signatures


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/2f4a2769
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/2f4a2769
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/2f4a2769

Branch: refs/heads/COMMONSRDF-46
Commit: 2f4a2769112d9e53c63b87e01c8b8fe9d4d273ab
Parents: c82f15e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:04:34 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:04:34 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/api/RDFTermFactory.java  | 77 ++++++++++++++++++++
 1 file changed, 77 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2f4a2769/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java b/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
new file mode 100644
index 0000000..ef4e38e
--- /dev/null
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.api;
+
+/**
+ * Factory for creating RDFTerm instances..
+ * <p>
+ * This interface is <strong>deprecated</strong> in favour of
+ * the richer {@link RDFFactory}.
+ * 
+ * @see RDFFactory
+ */
+@Deprecated
+public interface RDFTermFactory {
+
+    default BlankNode createBlankNode() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createBlankNode() not supported");
+    }
+
+    default BlankNode createBlankNode(String name)
+            throws UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createBlankNode(String) not supported");
+    }
+
+    default Graph createGraph() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("createGraph() not supported");
+    }
+
+    default IRI createIRI(String iri) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createIRI(String) not supported");
+    }
+
+    default Literal createLiteral(String lexicalForm)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String) not supported");
+    }
+
+    default Literal createLiteral(String lexicalForm, IRI dataType)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String) not supported");
+    }
+
+    default Literal createLiteral(String lexicalForm, String languageTag)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String,String) not supported");
+    }
+
+    default Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");
+    }
+
+}


[06/22] incubator-commonsrdf git commit: SimpleRDFTermFactory -> SimpleRDFFactory

Posted by st...@apache.org.
SimpleRDFTermFactory -> SimpleRDFFactory


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/08fbb929
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/08fbb929
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/08fbb929

Branch: refs/heads/COMMONSRDF-46
Commit: 08fbb929286d96adb52dfa1946e346900d1f06c5
Parents: 2f4a276
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:37:56 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:37:56 2016 +0100

----------------------------------------------------------------------
 examples/src/example/UserGuideTest.java         |   6 +-
 .../commons/rdf/simple/BlankNodeImpl.java       |   2 +-
 .../apache/commons/rdf/simple/DatasetImpl.java  |   8 +-
 .../apache/commons/rdf/simple/GraphImpl.java    |   8 +-
 .../org/apache/commons/rdf/simple/IRIImpl.java  |   2 +-
 .../apache/commons/rdf/simple/LiteralImpl.java  |   2 +-
 .../org/apache/commons/rdf/simple/QuadImpl.java |   2 +-
 .../commons/rdf/simple/SimpleRDFFactory.java    | 114 +++++++++++++++++++
 .../rdf/simple/SimpleRDFTermFactory.java        | 113 ------------------
 .../apache/commons/rdf/simple/TripleImpl.java   |   2 +-
 .../org/apache/commons/rdf/simple/Types.java    |   2 +-
 .../simple/experimental/AbstractRDFParser.java  |   8 +-
 .../apache/commons/rdf/simple/package-info.java |   6 +-
 .../org.apache.commons.rdf.api.RDFTermFactory   |   2 +-
 .../commons/rdf/simple/DefaultGraphTest.java    |   2 +-
 .../commons/rdf/simple/SimpleGraphTest.java     |   4 +-
 .../SimpleNoRelativeIRIRDFTermFactoryTest.java  |   2 +-
 .../simple/SimpleRDFTermFactoryLookupTest.java  |   2 +-
 .../rdf/simple/SimpleRDFTermFactoryTest.java    |   2 +-
 .../commons/rdf/simple/TestWritingGraph.java    |   2 +-
 .../experimental/AbstractRDFParserTest.java     |   4 +-
 21 files changed, 148 insertions(+), 147 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/examples/src/example/UserGuideTest.java
----------------------------------------------------------------------
diff --git a/examples/src/example/UserGuideTest.java b/examples/src/example/UserGuideTest.java
index 44623b3..c9487e3 100644
--- a/examples/src/example/UserGuideTest.java
+++ b/examples/src/example/UserGuideTest.java
@@ -35,7 +35,7 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
+import org.apache.commons.rdf.simple.SimpleRDFFactory;
 import org.apache.commons.rdf.simple.Types;
 import org.junit.Before;
 import org.junit.Test;
@@ -46,7 +46,7 @@ public class UserGuideTest {
 
 	@Before
 	public void factory() {
-		factory = new SimpleRDFTermFactory();
+		factory = new SimpleRDFFactory();
 	}
 
 	@Test
@@ -89,7 +89,7 @@ public class UserGuideTest {
 		System.out.println(b1.ntriplesString());
 
 		System.out.println(b1.equals(factory.createBlankNode("b1")));
-		System.out.println(b1.equals(new SimpleRDFTermFactory().createBlankNode("b1")));
+		System.out.println(b1.equals(new SimpleRDFFactory().createBlankNode("b1")));
 
 		System.out.println(bnode.uniqueReference());
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
index dab2f12..fbbdb26 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
@@ -23,7 +23,7 @@ import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory.SimpleRDFTerm;
+import org.apache.commons.rdf.simple.SimpleRDFFactory.SimpleRDFTerm;
 
 /**
  * A simple implementation of BlankNode.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
index c372012..78f1981 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
@@ -33,7 +33,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory.SimpleRDFTerm;
+import org.apache.commons.rdf.simple.SimpleRDFFactory.SimpleRDFTerm;
 
 /**
  * A simple, memory-based implementation of Dataset.
@@ -46,10 +46,10 @@ final class DatasetImpl implements Dataset {
 	
     private static final int TO_STRING_MAX = 10;
     private final Set<Quad> quads = new HashSet<Quad>();
-    private final SimpleRDFTermFactory factory;
+    private final SimpleRDFFactory factory;
 
-    DatasetImpl(SimpleRDFTermFactory simpleRDFTermFactory) {
-        this.factory = simpleRDFTermFactory;
+    DatasetImpl(SimpleRDFFactory simpleRDFFactory) {
+        this.factory = simpleRDFFactory;
     }
     
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/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 779b1ad..1173d53 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
@@ -18,7 +18,7 @@
 package org.apache.commons.rdf.simple;
 
 import org.apache.commons.rdf.api.*;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory.SimpleRDFTerm;
+import org.apache.commons.rdf.simple.SimpleRDFFactory.SimpleRDFTerm;
 
 import java.util.HashSet;
 import java.util.Objects;
@@ -38,10 +38,10 @@ final class GraphImpl implements Graph {
 
     private static final int TO_STRING_MAX = 10;
     private final Set<Triple> triples = new HashSet<Triple>();
-    private final SimpleRDFTermFactory factory;
+    private final SimpleRDFFactory factory;
 
-    GraphImpl(SimpleRDFTermFactory simpleRDFTermFactory) {
-        this.factory = simpleRDFTermFactory;
+    GraphImpl(SimpleRDFFactory simpleRDFFactory) {
+        this.factory = simpleRDFFactory;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
index fdec0ac..c3ef547 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
@@ -24,7 +24,7 @@ import java.net.URI;
 /**
  * A simple implementation of IRI.
  */
-final class IRIImpl implements IRI, SimpleRDFTermFactory.SimpleRDFTerm {
+final class IRIImpl implements IRI, SimpleRDFFactory.SimpleRDFTerm {
 
     private final String iri;
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
index 3d6874a..b3f7042 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
@@ -28,7 +28,7 @@ import org.apache.commons.rdf.api.Literal;
 /**
  * A simple implementation of Literal.
  */
-final class LiteralImpl implements Literal, SimpleRDFTermFactory.SimpleRDFTerm {
+final class LiteralImpl implements Literal, SimpleRDFFactory.SimpleRDFTerm {
 
     private static final String QUOTE = "\"";
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
index 54921bb..54c5fc1 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
@@ -40,7 +40,7 @@ final class QuadImpl implements Quad {
      * Construct Quad from its constituent parts.
      * <p>
      * The objects are not changed. All mapping of BNode objects is done in
-     * {@link SimpleRDFTermFactory#createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)}.
+     * {@link SimpleRDFFactory#createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)}.
      *
      * @param graphName  graphName of triple
      * @param subject   subject of triple

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
new file mode 100644
index 0000000..4b89603
--- /dev/null
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
@@ -0,0 +1,114 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.simple;
+
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+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.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.Triple;
+
+/**
+ * A simple implementation of RDFFactory.
+ * <p>
+ * The {@link RDFTerm}, {@link Triple}, {@link Quad}, {@link Graph}
+ * and {@link Dataset} instances created by this factory are
+ * simple in-memory Implementations that are not thread-safe or efficient, but
+ * which may be useful for testing and prototyping purposes.
+ */
+public class SimpleRDFFactory implements RDFFactory {
+
+	/**
+	 * Marker interface to say that this RDFTerm is part of the 
+	 * Simple implementation. Used by {@link GraphImpl} to avoid
+	 * double remapping. 
+	 * <p>
+	 * This method is package protected to avoid any third-party
+	 * subclasses.
+	 *
+	 */
+	static interface SimpleRDFTerm extends RDFTerm {		
+	}
+	
+    /** Unique salt per instance, for {@link #createBlankNode(String)}
+     */
+    private final UUID SALT = UUID.randomUUID();
+
+    @Override
+    public BlankNode createBlankNode() {
+        return new BlankNodeImpl();
+    }
+
+    @Override
+    public BlankNode createBlankNode(String name) {
+        return new BlankNodeImpl(SALT, name);
+    }
+
+    @Override
+    public Graph createGraph() {
+        // Creates a GraphImpl object using this object as the factory for
+        // delegating all object creation to
+        return new GraphImpl(this);
+    }
+
+    @Override
+    public Dataset createDataset() throws UnsupportedOperationException {
+    	return new DatasetImpl(this);
+    }
+    
+    @Override
+    public IRI createIRI(String iri) {
+        IRI result = new IRIImpl(iri);
+        // Reuse any IRI objects already created in Types
+        return Types.get(result).orElse(result);
+    }
+
+    @Override
+    public Literal createLiteral(String literal) {
+        return new LiteralImpl(literal);
+    }
+
+    @Override
+    public Literal createLiteral(String literal, IRI dataType) {
+        return new LiteralImpl(literal, dataType);
+    }
+
+    @Override
+    public Literal createLiteral(String literal, String language) {
+        return new LiteralImpl(literal, language);
+    }
+
+    @Override
+    public Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
+                               RDFTerm object) {
+        return new TripleImpl(subject, predicate, object);
+    }
+    
+    @Override
+    public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+    		throws IllegalArgumentException {
+    	return new QuadImpl(graphName, subject, predicate, object);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
deleted file mode 100644
index 4aee07a..0000000
--- a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.simple;
-
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-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.Quad;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
-import org.apache.commons.rdf.api.Triple;
-
-/**
- * A simple implementation of RDFFactory.
- * <p>
- * The {@link RDFTerm} and {@link Graph} instances created by this factory are
- * simple in-memory Implementations that are not thread-safe or efficient, but
- * which may be useful for testing and prototyping purposes.
- */
-public class SimpleRDFTermFactory implements RDFFactory {
-
-	/**
-	 * Marker interface to say that this RDFTerm is part of the 
-	 * Simple implementation. Used by {@link GraphImpl} to avoid
-	 * double remapping. 
-	 * <p>
-	 * This method is package protected to avoid any third-party
-	 * subclasses.
-	 *
-	 */
-	static interface SimpleRDFTerm extends RDFTerm {		
-	}
-	
-    /** Unique salt per instance, for {@link #createBlankNode(String)}
-     */
-    private final UUID SALT = UUID.randomUUID();
-
-    @Override
-    public BlankNode createBlankNode() {
-        return new BlankNodeImpl();
-    }
-
-    @Override
-    public BlankNode createBlankNode(String name) {
-        return new BlankNodeImpl(SALT, name);
-    }
-
-    @Override
-    public Graph createGraph() {
-        // Creates a GraphImpl object using this object as the factory for
-        // delegating all object creation to
-        return new GraphImpl(this);
-    }
-
-    @Override
-    public Dataset createDataset() throws UnsupportedOperationException {
-    	return new DatasetImpl(this);
-    }
-    
-    @Override
-    public IRI createIRI(String iri) {
-        IRI result = new IRIImpl(iri);
-        // Reuse any IRI objects already created in Types
-        return Types.get(result).orElse(result);
-    }
-
-    @Override
-    public Literal createLiteral(String literal) {
-        return new LiteralImpl(literal);
-    }
-
-    @Override
-    public Literal createLiteral(String literal, IRI dataType) {
-        return new LiteralImpl(literal, dataType);
-    }
-
-    @Override
-    public Literal createLiteral(String literal, String language) {
-        return new LiteralImpl(literal, language);
-    }
-
-    @Override
-    public Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
-                               RDFTerm object) {
-        return new TripleImpl(subject, predicate, object);
-    }
-    
-    @Override
-    public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
-    		throws IllegalArgumentException, UnsupportedOperationException {
-    	return new QuadImpl(graphName, subject, predicate, object);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
index 9da2bed..bc7f103 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
@@ -37,7 +37,7 @@ final class TripleImpl implements Triple {
      * Construct Triple from its constituent parts.
      * <p>
      * The objects are not changed. All mapping of BNode objects is done in
-     * {@link SimpleRDFTermFactory#createTriple(BlankNodeOrIRI, IRI, RDFTerm)}.
+     * {@link SimpleRDFFactory#createTriple(BlankNodeOrIRI, IRI, RDFTerm)}.
      *
      * @param subject   subject of triple
      * @param predicate predicate of triple

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/Types.java b/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
index 3e3f640..8ad6df8 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
@@ -27,7 +27,7 @@ import java.util.Set;
 /**
  * Types from the RDF and XML Schema vocabularies.
  */
-public final class Types implements IRI, SimpleRDFTermFactory.SimpleRDFTerm {
+public final class Types implements IRI, SimpleRDFFactory.SimpleRDFTerm {
 
     /**
      * <tt>http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML</tt>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
index ef93136..a37a3c4 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
@@ -35,7 +35,7 @@ import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.experimental.RDFParser;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
+import org.apache.commons.rdf.simple.SimpleRDFFactory;
 
 /**
  * Abstract RDFParser
@@ -63,7 +63,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	private static final ExecutorService threadpool = Executors.newCachedThreadPool(r -> new Thread(threadGroup, r));
 
 	// Basically only used for creating IRIs
-	private static RDFFactory internalRdfTermFactory = new SimpleRDFTermFactory();
+	private static RDFFactory internalRdfTermFactory = new SimpleRDFFactory();
 
 	/**
 	 * Get the set {@link RDFFactory}, if any.
@@ -418,7 +418,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 		// parseSynchronously()
 		AbstractRDFParser<T> c = clone();
 
-		// Use a fresh SimpleRDFTermFactory for each parse
+		// Use a fresh SimpleRDFFactory for each parse
 		if (!c.rdfTermFactory.isPresent()) {
 			c.rdfTermFactory = Optional.of(createRDFTermFactory());
 		}
@@ -515,7 +515,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	 * @return A new {@link RDFFactory}
 	 */
 	protected RDFFactory createRDFTermFactory() {
-		return new SimpleRDFTermFactory();
+		return new SimpleRDFFactory();
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java b/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
index 626154f..5405cef 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
@@ -28,10 +28,10 @@
  * testing and simple usage (e.g. prototyping).
  * <p>
  * To use this implementation, create an instance of
- * {@link org.apache.commons.rdf.simple.SimpleRDFTermFactory}
+ * {@link org.apache.commons.rdf.simple.SimpleRDFFactory}
  * and use methods like
- * {@link org.apache.commons.rdf.simple.SimpleRDFTermFactory#createGraph} and
- * {@link org.apache.commons.rdf.simple.SimpleRDFTermFactory#createIRI(String)}.
+ * {@link org.apache.commons.rdf.simple.SimpleRDFFactory#createGraph} and
+ * {@link org.apache.commons.rdf.simple.SimpleRDFFactory#createIRI(String)}.
  * <p>
  * The {@link org.apache.commons.rdf.simple.Types} class provide constant
  * {@link org.apache.commons.rdf.api.IRI}s of the common RDF XML datatypes.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
----------------------------------------------------------------------
diff --git a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
index cc53468..17d9680 100644
--- a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
+++ b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
@@ -1 +1 @@
-org.apache.commons.rdf.simple.SimpleRDFTermFactory
\ No newline at end of file
+org.apache.commons.rdf.simple.SimpleRDFFactory
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
index 4b100b3..ab2cf50 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
@@ -36,7 +36,7 @@ public class DefaultGraphTest extends AbstractGraphTest {
         return new RDFFactory() {
             @Override
             public Graph createGraph() throws UnsupportedOperationException {
-                return new GraphImpl(new SimpleRDFTermFactory());
+                return new GraphImpl(new SimpleRDFFactory());
             }
 
             @Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
index e5de520..3872f11 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
@@ -25,13 +25,13 @@ import org.junit.Assume;
 import org.junit.Test;
 
 /**
- * Test SimpleRDFTermFactory with AbstractGraphTest
+ * Test SimpleRDFFactory with AbstractGraphTest
  */
 public class SimpleGraphTest extends AbstractGraphTest {
 
     @Override
     public RDFFactory createFactory() {
-        return new SimpleRDFTermFactory();
+        return new SimpleRDFFactory();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
index 5c35de6..752c465 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
@@ -33,7 +33,7 @@ public class SimpleNoRelativeIRIRDFTermFactoryTest extends
         AbstractRDFTermFactoryTest {
     @Override
     public RDFFactory createFactory() {
-        return new SimpleRDFTermFactory() {
+        return new SimpleRDFFactory() {
             @Override
             public IRI createIRI(String iri) {
                 if (!URI.create(iri).isAbsolute()) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
index 96f64ca..179b7ef 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
@@ -36,7 +36,7 @@ public class SimpleRDFTermFactoryLookupTest {
         Iterator<RDFFactory> iterator = loader.iterator();
         RDFFactory factory = iterator.next();
 
-        assertTrue(factory instanceof SimpleRDFTermFactory);
+        assertTrue(factory instanceof SimpleRDFFactory);
         assertFalse(iterator.hasNext());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
index 0cfabb4..bd3b5ad 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
@@ -27,7 +27,7 @@ public class SimpleRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
     @Override
     public RDFFactory createFactory() {
-        return new SimpleRDFTermFactory();
+        return new SimpleRDFFactory();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
index 1ed2e8f..57ee24a 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
@@ -57,7 +57,7 @@ public class TestWritingGraph {
 
     @BeforeClass
     public static void createGraph() throws Exception {
-        factory = new SimpleRDFTermFactory();
+        factory = new SimpleRDFFactory();
         graph = factory.createGraph();
         IRI subject = factory.createIRI("subj");
         IRI predicate = factory.createIRI("pred");

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/08fbb929/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
index f003c09..ee26a2c 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
@@ -38,7 +38,7 @@ import org.apache.commons.rdf.api.RDFFactory;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.DummyRDFParserBuilder;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
+import org.apache.commons.rdf.simple.SimpleRDFFactory;
 import org.apache.commons.rdf.simple.Types;
 import org.junit.After;
 import org.junit.Before;
@@ -48,7 +48,7 @@ import org.junit.rules.ExpectedException;
 
 public class AbstractRDFParserTest {
 
-	private RDFFactory factory = new SimpleRDFTermFactory();
+	private RDFFactory factory = new SimpleRDFFactory();
 	
 	private DummyRDFParserBuilder dummyParser = new DummyRDFParserBuilder();
 	private Path testNt;


[04/22] incubator-commonsrdf git commit: explain why relative IRI test can be ignored

Posted by st...@apache.org.
explain why relative IRI test can be ignored


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/2a6fefa1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/2a6fefa1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/2a6fefa1

Branch: refs/heads/COMMONSRDF-46
Commit: 2a6fefa17c6048881dacc994a82d766308a9be7e
Parents: 518eacb
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:25:44 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:25:44 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2a6fefa1/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
index 5afa9f2..f1bcf8e 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
@@ -173,7 +173,7 @@ public abstract class AbstractRDFTermFactoryTest {
         try {
             factory.createIRI("../relative");
         } catch (IllegalArgumentException ex) {
-            Assume.assumeNoException(ex);
+            Assume.assumeNoException("Relative IRIs not supported - ignore this test", ex);
             return;
         }
         IRI relative = factory.createIRI("../relative");


[16/22] incubator-commonsrdf git commit: RDF4JFactory -> RDF4J

Posted by st...@apache.org.
RDF4JFactory -> RDF4J


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/defb7d81
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/defb7d81
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/defb7d81

Branch: refs/heads/COMMONSRDF-46
Commit: defb7d81ca349f1403ff261cff0acf08275e61b7
Parents: 790b605
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:46:53 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 00:46:53 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/rdf4j/RDF4J.java     | 601 +++++++++++++++++++
 .../commons/rdf/rdf4j/RDF4JBlankNode.java       |   2 +-
 .../apache/commons/rdf/rdf4j/RDF4JDataset.java  |   4 +-
 .../apache/commons/rdf/rdf4j/RDF4JFactory.java  | 601 -------------------
 .../apache/commons/rdf/rdf4j/RDF4JGraph.java    |  10 +-
 .../org/apache/commons/rdf/rdf4j/RDF4JIRI.java  |   2 +-
 .../apache/commons/rdf/rdf4j/RDF4JLiteral.java  |   2 +-
 .../org/apache/commons/rdf/rdf4j/RDF4JQuad.java |   2 +-
 .../apache/commons/rdf/rdf4j/RDF4JTriple.java   |   2 +-
 .../rdf/rdf4j/experimental/RDF4JParser.java     |  12 +-
 .../rdf4j/impl/AbstractRepositoryGraphLike.java |   6 +-
 .../rdf/rdf4j/impl/InternalRDF4JFactory.java    |  14 +-
 .../commons/rdf/rdf4j/impl/ModelGraphImpl.java  |   6 +-
 .../apache/commons/rdf/rdf4j/impl/QuadImpl.java |  10 +-
 .../commons/rdf/rdf4j/impl/TripleImpl.java      |   8 +-
 .../apache/commons/rdf/rdf4j/package-info.java  |   8 +-
 .../org.apache.commons.rdf.api.RDFFactory       |   2 +-
 .../apache/commons/rdf/rdf4j/BlankNodeTest.java |   2 +-
 .../org/apache/commons/rdf/rdf4j/GraphTest.java |   2 +-
 .../commons/rdf/rdf4j/MemoryGraphTest.java      |   6 +-
 .../rdf/rdf4j/MemoryRDFTermFactoryTest.java     |   2 +-
 .../commons/rdf/rdf4j/NativeStoreGraphTest.java |   6 +-
 .../rdf/rdf4j/RDF4JServiceLoaderTest.java       |   4 +-
 .../rdf/rdf4j/Rdf4JRDFTermFactoryTest.java      |   2 +-
 24 files changed, 658 insertions(+), 658 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java
new file mode 100644
index 0000000..37dd7a2
--- /dev/null
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java
@@ -0,0 +1,601 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.rdf4j;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.Objects;
+import java.util.Set;
+import java.util.UUID;
+
+// To avoid confusion, avoid importing
+// classes that are in both
+// commons.rdf and openrdf.model (e.g. IRI, Literal)
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.Dataset;
+import org.apache.commons.rdf.api.Graph;
+import org.apache.commons.rdf.api.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.RDF;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.api.TripleLike;
+import org.apache.commons.rdf.rdf4j.impl.InternalRDF4JFactory;
+import org.eclipse.rdf4j.model.BNode;
+import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.model.Resource;
+import org.eclipse.rdf4j.model.Statement;
+import org.eclipse.rdf4j.model.Value;
+import org.eclipse.rdf4j.model.ValueFactory;
+import org.eclipse.rdf4j.model.impl.LinkedHashModel;
+import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
+import org.eclipse.rdf4j.repository.Repository;
+import org.eclipse.rdf4j.repository.RepositoryConnection;
+import org.eclipse.rdf4j.repository.sail.SailRepository;
+import org.eclipse.rdf4j.sail.Sail;
+import org.eclipse.rdf4j.sail.memory.MemoryStore;
+
+/**
+ * RDF4J implementation of RDF.
+ * <p>
+ * The {@link #RDF4J()} constructor uses a {@link SimpleValueFactory}
+ * to create corresponding RDF4J {@link Value} instances. Alternatively, this
+ * factory can be constructed with a different {@link ValueFactory} using
+ * {@link #RDF4J(ValueFactory)}.
+ * <p>
+ * {@link #asRDFTerm(Value)} can be used to convert any RDF4J {@link Value} to
+ * an RDFTerm. Note that adapted {@link BNode}s are considered equal if they are
+ * converted with the same {@link RDF4J} instance and have the same
+ * {@link BNode#getID()}.
+ * <p>
+ * {@link #createGraph()} creates a new Graph backed by {@link LinkedHashModel}.
+ * To use other models, see {@link #asRDFTermGraph(Model)}.
+ * <p>
+ * To adapt a RDF4J {@link Repository} as a {@link Dataset} or {@link Graph},
+ * use {@link #asRDFTermDataset(Repository, Option...)} 
+ * or 
+ * {@link #asRDFTermGraph(Repository, Option...)}.
+ * <p>
+ * {@link #asTriple(Statement)} can be used to convert a RDF4J {@link Statement}
+ * to a Commons RDF {@link Triple}, and equivalent {@link #asQuad(Statement)} to
+ * convert a {@link Quad}.
+ * <p>
+ * To convert any {@link Triple} or {@link Quad} to to RDF4J {@link Statement},
+ * use {@link #asStatement(TripleLike)}. This recognises previously converted
+ * {@link RDF4JTriple}s and {@link RDF4JQuad}s without re-converting their
+ * {@link RDF4JTripleLike#asStatement()}.
+ * <p>
+ * Likewise, {@link #asValue(RDFTerm)} can be used to convert any Commons RDF
+ * {@link RDFTerm} to a corresponding RDF4J {@link Value}. This recognises
+ * previously converted {@link RDF4JTerm}s without re-converting their
+ * {@link RDF4JTerm#asValue()}.
+ * <p>
+ * For the purpose of {@link BlankNode} equivalence, this factory contains an
+ * internal {@link UUID} salt that is used by adapter methods like
+ * {@link #asQuad(Statement)}, {@link #asTriple(Statement)},
+ * {@link #asRDFTerm(Value)} as well as {@link #createBlankNode(String)}. As
+ * RDF4J {@link BNode} instances from multiple repositories or models may have
+ * the same {@link BNode#getID()}, converting them with the above methods might
+ * cause accidental {@link BlankNode} equivalence. Note that the {@link Graph}
+ * and {@link Dataset} adapter methods like
+ * {@link #asRDFTermDataset(Repository, Option...)}
+ * and 
+ * {@link #asRDFTermGraph(Repository, Option...)}
+ * therefore uses a unique {@link RDF4J} internally.
+ *
+ */
+public final class RDF4J implements RDF {
+
+	/**
+	 * InternalRDF4JFactory is deliberately abstract
+	 */
+	private static InternalRDF4JFactory rdf4j = new InternalRDF4JFactory() {
+	};
+
+	public enum Option { 
+		/** 
+		 * The Graph/Dataset should include any inferred statements 
+		 */
+		includeInferred,
+		/**
+		 * The graph/dataset should handle {@link Repository#initialize()} (if
+		 * needed) and {@link Repository#shutDown()} on {@link Graph#close()} /
+		 * {@link Dataset#close()}.
+		 */
+		handleInitAndShutdown
+	}
+
+	private final UUID salt;
+
+	private final ValueFactory valueFactory;
+
+	/**
+	 * Construct an {@link RDF4J}.
+	 * 
+	 */
+	public RDF4J() {
+		this(SimpleValueFactory.getInstance(), UUID.randomUUID());
+	}
+
+	/**
+	 * Construct an {@link RDF4J}.
+	 * <p>
+	 * This constructor is intended for use with the value factory from
+	 * {@link Repository#getValueFactory()} when using 
+	 * Repository-based graphs and datasets.
+	 * 
+	 * @param valueFactory
+	 *            The RDF4J {@link ValueFactory} to use
+	 */
+	public RDF4J(ValueFactory valueFactory) {
+		this(valueFactory, UUID.randomUUID());
+	}
+
+	/**
+	 * Construct an {@link RDF4J}.
+	 * <p>
+	 * This constructor may be used if reproducible
+	 * {@link BlankNode#uniqueReference()} in {@link BlankNode} is desirable.
+	 * 
+	 * @param salt
+	 *            An {@link UUID} salt to be used by any created
+	 *            {@link BlankNode}s for the purpose of
+	 *            {@link BlankNode#uniqueReference()}
+	 */	
+	public RDF4J(UUID salt) {
+		this(SimpleValueFactory.getInstance(), salt);
+	}
+	/**
+	 * Construct an {@link RDF4J}.
+	 * <p>
+	 * This constructor may be used if reproducible
+	 * {@link BlankNode#uniqueReference()} in {@link BlankNode} is desirable.
+	 * 
+	 * @param valueFactory
+	 *            The RDF4J {@link ValueFactory} to use
+	 * @param salt
+	 *            An {@link UUID} salt to be used by any created
+	 *            {@link BlankNode}s for the purpose of
+	 *            {@link BlankNode#uniqueReference()}
+	 */	
+	public RDF4J(ValueFactory valueFactory, UUID salt) {
+		this.valueFactory = valueFactory;
+		this.salt = salt;
+	}
+
+	/**
+	 * Adapt a RDF4J {@link Statement} as a Commons RDF {@link Quad}.
+	 * <p>
+	 * For the purpose of {@link BlankNode} equivalence, this method will use an
+	 * internal salt UUID that is unique per instance of
+	 * {@link RDF4J}.
+	 * <p>
+	 * <strong>NOTE:</strong> If combining RDF4J {@link Statement}s multiple
+	 * repositories or models, then their {@link BNode}s may have the same
+	 * {@link BNode#getID()}, which with this method would become equivalent
+	 * according to {@link BlankNode#equals(Object)} and
+	 * {@link BlankNode#uniqueReference()}, unless a separate
+	 * {@link RDF4J} instance is used per RDF4J repository/model.
+	 *
+	 * @param statement
+	 *            The statement to convert
+	 * @return A {@link RDF4JQuad} that is equivalent to the statement
+	 */
+	public RDF4JQuad asQuad(final Statement statement) {
+		return rdf4j.createQuadImpl(statement, salt);
+	}
+
+	/**
+	 *
+	 * Adapt a RDF4J {@link Value} as a Commons RDF {@link RDFTerm}.
+	 * <p>
+	 * The value will be of the same kind as the term, e.g. a
+	 * {@link org.eclipse.rdf4j.model.BNode} is converted to a
+	 * {@link org.apache.commons.rdf.api.BlankNode}, a
+	 * {@link org.eclipse.rdf4j.model.IRI} is converted to a
+	 * {@link org.apache.commons.rdf.api.IRI} and a
+	 * {@link org.eclipse.rdf4j.model.Literal}. is converted to a
+	 * {@link org.apache.commons.rdf.api.Literal}
+	 * <p>
+	 * For the purpose of {@link BlankNode} equivalence, this method will use an
+	 * internal salt UUID that is unique per instance of
+	 * {@link RDF4J}.
+	 * <p>
+	 * <strong>NOTE:</strong> If combining RDF4J values from multiple
+	 * repositories or models, then their {@link BNode}s may have the same
+	 * {@link BNode#getID()}, which with this method would become equivalent
+	 * according to {@link BlankNode#equals(Object)} and
+	 * {@link BlankNode#uniqueReference()}, unless a separate
+	 * {@link RDF4J} instance is used per RDF4J repository/model.
+	 *
+	 * @param value
+	 *            The RDF4J {@link Value} to convert.
+	 * @return A {@link RDFTerm} that corresponds to the RDF4J value
+	 * @throws IllegalArgumentException
+	 *             if the value is not a BNode, Literal or IRI
+	 */
+	public RDF4JTerm asRDFTerm(Value value) {
+		return asRDFTerm(value, salt);
+	}
+	
+	/**
+	 * Adapt a RDF4J {@link Value} as a Commons RDF {@link RDFTerm}.
+	 * <p>
+	 * The value will be of the same kind as the term, e.g. a
+	 * {@link org.eclipse.rdf4j.model.BNode} is converted to a
+	 * {@link org.apache.commons.rdf.api.BlankNode}, a
+	 * {@link org.eclipse.rdf4j.model.IRI} is converted to a
+	 * {@link org.apache.commons.rdf.api.IRI} and a
+	 * {@link org.eclipse.rdf4j.model.Literal}. is converted to a
+	 * {@link org.apache.commons.rdf.api.Literal}
+	 *
+	 * @param value
+	 *            The RDF4J {@link Value} to convert.
+	 * @param salt
+	 *            A {@link UUID} salt to use for uniquely mapping any
+	 *            {@link BNode}s. The salt should typically be the same for
+	 *            multiple statements in the same {@link Repository} or
+	 *            {@link Model} to ensure {@link BlankNode#equals(Object)} and
+	 *            {@link BlankNode#uniqueReference()} works as intended.
+	 * @return A {@link RDFTerm} that corresponds to the RDF4J value
+	 * @throws IllegalArgumentException
+	 *             if the value is not a BNode, Literal or IRI
+	 */
+	public static RDF4JTerm asRDFTerm(final Value value, UUID salt) {
+		if (value instanceof BNode) {
+			return rdf4j.createBlankNodeImpl((BNode) value, salt);
+		}
+		if (value instanceof org.eclipse.rdf4j.model.Literal) {
+			return rdf4j.createLiteralImpl((org.eclipse.rdf4j.model.Literal) value);
+		}
+		if (value instanceof org.eclipse.rdf4j.model.IRI) {
+			return rdf4j.createIRIImpl((org.eclipse.rdf4j.model.IRI) value);
+		}
+		throw new IllegalArgumentException("Value is not a BNode, Literal or IRI: " + value.getClass());
+	}	
+
+	/**
+	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Dataset}.
+	 * <p>
+	 * Changes to the dataset are reflected in the repository, and vice versa.
+	 * <p>
+	 * <strong>Note:</strong> Some operations on the {@link RDF4JDataset}
+	 * requires the use of try-with-resources to close underlying
+	 * {@link RepositoryConnection}s, including
+	 * {@link RDF4JDataset#iterate()}, 
+	 * {@link RDF4JDataset#stream()} and {@link RDF4JDataset#getGraphNames()}.
+	 *
+	 * @param repository
+	 *            RDF4J {@link Repository} to connect to.
+	 * @param options
+	 *            Zero or more {@link Option}
+	 * @return A {@link Dataset} backed by the RDF4J repository.
+	 */
+	public RDF4JDataset asRDFTermDataset(Repository repository, Option... options) {
+		EnumSet<Option> opts = optionSet(options);
+		return rdf4j.createRepositoryDatasetImpl(repository, 
+				opts.contains(Option.handleInitAndShutdown), 
+				opts.contains(Option.includeInferred));
+	}
+
+	/**
+	 * Adapt an RDF4J {@link Model} as a Commons RDF {@link Graph}.
+	 * <p>
+	 * Changes to the graph are reflected in the model, and vice versa.
+	 *
+	 * @param model
+	 *            RDF4J {@link Model} to adapt.
+	 * @return Adapted {@link Graph}.
+	 */
+	public RDF4JGraph asRDFTermGraph(Model model) {
+		return rdf4j.createModelGraphImpl(model, this);
+	}
+
+	/**
+	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
+	 * <p>
+	 * The graph will only include triples in the default graph (equivalent to
+	 * context <code>new Resource[0]{null})</code> in RDF4J).
+	 * <p>
+	 * Changes to the graph are reflected in the repository, and vice versa.
+	 * <p>
+	 * <strong>Note:</strong> Some operations on the {@link RDF4JGraph}
+	 * requires the use of try-with-resources to close underlying
+	 * {@link RepositoryConnection}s, including
+	 * {@link RDF4JGraph#iterate()} and 
+	 * {@link RDF4JGraph#stream()}.
+	 *
+	 * @param repository
+	 *            RDF4J {@link Repository} to connect to.
+	 * @param options
+	 *            Zero or more {@link Option}
+	 * @return A {@link Graph} backed by the RDF4J repository.
+	 */
+	public RDF4JGraph asRDFTermGraph(Repository repository, Option... options) {
+		EnumSet<Option> opts = optionSet(options);
+		return rdf4j.createRepositoryGraphImpl(repository, 
+				opts.contains(Option.handleInitAndShutdown), 
+				opts.contains(Option.includeInferred), 
+				new Resource[]{null}); // default graph
+	}
+
+	/**
+	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
+	 * <p>
+	 * The graph will include triples in any contexts (e.g. the union graph).
+	 * <p>
+	 * Changes to the graph are reflected in the repository, and vice versa.
+	 *
+	 * @param repository
+	 *            RDF4J {@link Repository} to connect to.
+	 * @param options
+	 *            Zero or more {@link Option}
+	 * @return A union {@link Graph} backed by the RDF4J repository.
+	 */
+	public RDF4JGraph asRDFTermGraphUnion(Repository repository, Option... options) {
+		EnumSet<Option> opts = optionSet(options);
+		return rdf4j.createRepositoryGraphImpl(repository, 
+				opts.contains(Option.handleInitAndShutdown), 
+				opts.contains(Option.includeInferred),
+				new Resource[]{}); // union graph 
+		
+	}
+
+	/**
+	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
+	 * <p>
+	 * The graph will include triples in the specified contexts.
+	 * <p>
+	 * Changes to the graph are reflected in the repository, and vice versa.
+	 * Triples added/removed to the graph are reflected in all the specified
+	 * contexts.
+	 * <p>
+	 * <strong>Note:</strong> Some operations on the {@link RDF4JGraph}
+	 * requires the use of try-with-resources to close underlying
+	 * {@link RepositoryConnection}s, including
+	 * {@link RDF4JGraph#iterate()} and 
+	 * {@link RDF4JGraph#stream()}.
+	 *
+	 * @param repository
+	 *            RDF4J {@link Repository} to connect to.
+	 * @param contexts
+	 *            A {@link Set} of {@link BlankNodeOrIRI} specifying the graph
+	 *            names to use as a context. The set may include the value
+	 *            <code>null</code> to indicate the default graph. The empty set
+	 *            indicates any context, e.g. the <em>union graph</em>.
+	 * @param option
+	 *            Zero or more {@link Option}s
+	 * @return A {@link Graph} backed by the RDF4J repository.
+	 */
+	public RDF4JGraph asRDFTermGraph(Repository repository, Set<? extends BlankNodeOrIRI> contexts,
+			Option... option) {
+		EnumSet<Option> opts = optionSet(option);
+		/** NOTE: asValue() deliberately CAN handle <code>null</code> */
+		Resource[] resources = contexts.stream().map(g -> (Resource) asValue(g)).toArray(Resource[]::new);
+		return rdf4j.createRepositoryGraphImpl(Objects.requireNonNull(repository), 
+				opts.contains(Option.handleInitAndShutdown),
+				opts.contains(Option.includeInferred),
+				resources);
+	}
+
+	/**
+	 * Adapt a Commons RDF {@link Triple} or {@link Quad} as a RDF4J
+	 * {@link Statement}.
+	 * <p>
+	 * If the <code>tripleLike</code> argument is an {@link RDF4JTriple} or a
+	 * {@link RDF4JQuad}, then its {@link RDF4JTripleLike#asStatement()} is
+	 * returned as-is. Note that this means that a {@link RDF4JTriple} would
+	 * preserve its {@link Statement#getContext()}, and that any
+	 * {@link BlankNode}s would be deemed equivalent in RDF4J if they have the
+	 * same {@link BNode#getID()}.
+	 *
+	 * @param tripleLike
+	 *            A {@link Triple} or {@link Quad} to adapt
+	 * @return A corresponding {@link Statement}
+	 */
+	public Statement asStatement(TripleLike tripleLike) {
+		if (tripleLike instanceof RDF4JTripleLike) {
+			// Return original statement - this covers both RDF4JQuad and
+			// RDF4JTriple
+			return ((RDF4JTripleLike) tripleLike).asStatement();
+		}
+
+		org.eclipse.rdf4j.model.Resource subject = (org.eclipse.rdf4j.model.Resource) asValue(tripleLike.getSubject());
+		org.eclipse.rdf4j.model.IRI predicate = (org.eclipse.rdf4j.model.IRI) asValue(tripleLike.getPredicate());
+		Value object = asValue(tripleLike.getObject());
+
+		org.eclipse.rdf4j.model.Resource context = null;
+		if (tripleLike instanceof Quad) {
+			Quad quad = (Quad) tripleLike;
+			context = (org.eclipse.rdf4j.model.Resource) asValue(quad.getGraphName().orElse(null));
+		}
+
+		return getValueFactory().createStatement(subject, predicate, object, context);
+	}
+
+	/**
+	 * Adapt a RDF4J {@link Statement} as a Commons RDF {@link Triple}.
+	 * <p>
+	 * For the purpose of {@link BlankNode} equivalence, this method will use an
+	 * internal salt UUID that is unique per instance of
+	 * {@link RDF4J}.
+	 * <p>
+	 * <strong>NOTE:</strong> If combining RDF4J statements from multiple
+	 * repositories or models, then their {@link BNode}s may have the same
+	 * {@link BNode#getID()}, which with this method would become equivalent
+	 * according to {@link BlankNode#equals(Object)} and
+	 * {@link BlankNode#uniqueReference()}, unless a separate
+	 * {@link RDF4J} instance is used per RDF4J repository/model.
+	 *
+	 * @param statement
+	 *            The RDF4J {@link Statement} to adapt.
+	 * @return A {@link RDF4JTriple} that is equivalent to the statement
+	 */
+	public RDF4JTriple asTriple(final Statement statement) {
+		return rdf4j.createTripleImpl(statement, salt);
+	}
+
+	/**
+	 * Adapt a Commons RDF {@link RDFTerm} as a RDF4J {@link Value}.
+	 * <p>
+	 * The value will be of the same kind as the term, e.g. a
+	 * {@link org.apache.commons.rdf.api.BlankNode} is converted to a
+	 * {@link org.eclipse.rdf4j.model.BNode}, a
+	 * {@link org.apache.commons.rdf.api.IRI} is converted to a
+	 * {@link org.eclipse.rdf4j.model.IRI} and a
+	 * {@link org.apache.commons.rdf.api.Literal} is converted to a
+	 * {@link org.eclipse.rdf4j.model.Literal}.
+	 * <p>
+	 * If the provided {@link RDFTerm} is <code>null</code>, then the returned
+	 * value is <code>null</code>.
+	 * <p>
+	 * If the provided term is an instance of {@link RDF4JTerm}, then the
+	 * {@link RDF4JTerm#asValue()} is returned without any conversion. Note that
+	 * this could mean that a {@link Value} from a different kind of
+	 * {@link ValueFactory} could be returned.
+	 *
+	 * @param term
+	 *            RDFTerm to adapt to RDF4J Value
+	 * @return Adapted RDF4J {@link Value}
+	 */
+	public Value asValue(RDFTerm term) {
+		if (term == null) {
+			return null;
+		}
+		if (term instanceof RDF4JTerm) {
+			// One of our own - avoid converting again.
+			// (This is crucial to avoid double-escaping in BlankNode)
+			return ((RDF4JTerm) term).asValue();
+		}
+		if (term instanceof org.apache.commons.rdf.api.IRI) {
+			org.apache.commons.rdf.api.IRI iri = (org.apache.commons.rdf.api.IRI) term;
+			return getValueFactory().createIRI(iri.getIRIString());
+		}
+		if (term instanceof org.apache.commons.rdf.api.Literal) {
+			org.apache.commons.rdf.api.Literal literal = (org.apache.commons.rdf.api.Literal) term;
+			String label = literal.getLexicalForm();
+			if (literal.getLanguageTag().isPresent()) {
+				String lang = literal.getLanguageTag().get();
+				return getValueFactory().createLiteral(label, lang);
+			}
+			org.eclipse.rdf4j.model.IRI dataType = (org.eclipse.rdf4j.model.IRI) asValue(literal.getDatatype());
+			return getValueFactory().createLiteral(label, dataType);
+		}
+		if (term instanceof BlankNode) {
+			// This is where it gets tricky to support round trips!
+			BlankNode blankNode = (BlankNode) term;
+			// FIXME: The uniqueReference might not be a valid BlankNode
+			// identifier..
+			// does it have to be in RDF4J?
+			return getValueFactory().createBNode(blankNode.uniqueReference());
+		}
+		throw new IllegalArgumentException("RDFTerm was not an IRI, Literal or BlankNode: " + term.getClass());
+	}
+
+	@Override
+	public RDF4JBlankNode createBlankNode() {
+		BNode bnode = getValueFactory().createBNode();
+		return (RDF4JBlankNode) asRDFTerm(bnode);
+	}
+
+	@Override
+	public RDF4JBlankNode createBlankNode(String name) {
+		BNode bnode = getValueFactory().createBNode(name);
+		return (RDF4JBlankNode) asRDFTerm(bnode);
+	}
+	
+	/**
+	 * {@inheritDoc}
+	 * <p>
+	 * <strong>Note:</strong> Some operations on the {@link RDF4JDataset}
+	 * requires the use of try-with-resources to close underlying
+	 * {@link RepositoryConnection}s, including
+	 * {@link RDF4JDataset#iterate()}, 
+	 * {@link RDF4JDataset#stream()} and {@link RDF4JDataset#getGraphNames()}.
+	 * 
+	 */
+	@Override
+	public RDF4JDataset createDataset() {
+		Sail sail = new MemoryStore();
+		Repository repository = new SailRepository(sail);
+		return rdf4j.createRepositoryDatasetImpl(repository, true, false);
+	}
+
+	@Override
+	public RDF4JGraph createGraph() {
+		return asRDFTermGraph(new LinkedHashModel());
+	}
+
+	@Override
+	public RDF4JIRI createIRI(String iri) throws IllegalArgumentException {
+		return (RDF4JIRI) asRDFTerm(getValueFactory().createIRI(iri));
+	}
+
+	@Override
+	public RDF4JLiteral createLiteral(String lexicalForm)
+			throws IllegalArgumentException {
+		org.eclipse.rdf4j.model.Literal lit = getValueFactory().createLiteral(lexicalForm);
+		return (RDF4JLiteral) asRDFTerm(lit);
+	}
+
+	@Override
+	public org.apache.commons.rdf.api.Literal createLiteral(String lexicalForm, org.apache.commons.rdf.api.IRI dataType)
+			throws IllegalArgumentException {
+		org.eclipse.rdf4j.model.IRI iri = getValueFactory().createIRI(dataType.getIRIString());
+		org.eclipse.rdf4j.model.Literal lit = getValueFactory().createLiteral(lexicalForm, iri);
+		return (org.apache.commons.rdf.api.Literal) asRDFTerm(lit);
+	}
+
+	@Override
+	public org.apache.commons.rdf.api.Literal createLiteral(String lexicalForm, String languageTag)
+			throws IllegalArgumentException {
+		org.eclipse.rdf4j.model.Literal lit = getValueFactory().createLiteral(lexicalForm, languageTag);
+		return (org.apache.commons.rdf.api.Literal) asRDFTerm(lit);
+	}
+
+	@Override
+	public RDF4JTriple createTriple(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object)
+			throws IllegalArgumentException {
+		final Statement statement = getValueFactory().createStatement(
+				(org.eclipse.rdf4j.model.Resource) asValue(subject), (org.eclipse.rdf4j.model.IRI) asValue(predicate),
+				asValue(object));
+		return asTriple(statement);
+	}
+
+	@Override
+	public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate,
+			RDFTerm object) throws IllegalArgumentException {
+		final Statement statement = getValueFactory().createStatement(
+				(org.eclipse.rdf4j.model.Resource) asValue(subject), (org.eclipse.rdf4j.model.IRI) asValue(predicate),
+				asValue(object), (org.eclipse.rdf4j.model.Resource) asValue(graphName));
+		return asQuad(statement);
+	}
+
+	public ValueFactory getValueFactory() {
+		return valueFactory;
+	}
+
+	private EnumSet<Option> optionSet(Option... options) {
+		EnumSet<Option> opts = EnumSet.noneOf(Option.class);
+		opts.addAll(Arrays.asList(options));
+		return opts;
+	}
+	
+	
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JBlankNode.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JBlankNode.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JBlankNode.java
index 2ed616f..15ca381 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JBlankNode.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JBlankNode.java
@@ -27,7 +27,7 @@ import org.eclipse.rdf4j.model.BNode;
  * The underlying RDF4J {@link BNode} instance can 
  * be retrieved with {@link #asValue()}.
  * 
- * @see RDF4JFactory#createBlankNode() 
+ * @see RDF4J#createBlankNode() 
  */
 public interface RDF4JBlankNode extends RDF4JBlankNodeOrIRI, BlankNode {
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java
index 2066c34..28c2659 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JDataset.java
@@ -30,8 +30,8 @@ import org.apache.commons.rdf.api.RDFTerm;
 /**
  * Marker interface for RDF4J implementations of Dataset.
  * 
- * @see RDF4JFactory#createDataset()
- * @see RDF4JFactory#asRDFTermDataset(org.eclipse.rdf4j.repository.Repository, org.apache.commons.rdf.rdf4j.RDF4JFactory.Option...)
+ * @see RDF4J#createDataset()
+ * @see RDF4J#asRDFTermDataset(org.eclipse.rdf4j.repository.Repository, org.apache.commons.rdf.rdf4j.RDF4J.Option...)
  */
 public interface RDF4JDataset extends Dataset, RDF4JGraphLike<Quad> {
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
deleted file mode 100644
index 8dd9745..0000000
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
+++ /dev/null
@@ -1,601 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.rdf4j;
-
-import java.util.Arrays;
-import java.util.EnumSet;
-import java.util.Objects;
-import java.util.Set;
-import java.util.UUID;
-
-// To avoid confusion, avoid importing
-// classes that are in both
-// commons.rdf and openrdf.model (e.g. IRI, Literal)
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-import org.apache.commons.rdf.api.Dataset;
-import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.Quad;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDF;
-import org.apache.commons.rdf.api.Triple;
-import org.apache.commons.rdf.api.TripleLike;
-import org.apache.commons.rdf.rdf4j.impl.InternalRDF4JFactory;
-import org.eclipse.rdf4j.model.BNode;
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.model.Resource;
-import org.eclipse.rdf4j.model.Statement;
-import org.eclipse.rdf4j.model.Value;
-import org.eclipse.rdf4j.model.ValueFactory;
-import org.eclipse.rdf4j.model.impl.LinkedHashModel;
-import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
-import org.eclipse.rdf4j.repository.Repository;
-import org.eclipse.rdf4j.repository.RepositoryConnection;
-import org.eclipse.rdf4j.repository.sail.SailRepository;
-import org.eclipse.rdf4j.sail.Sail;
-import org.eclipse.rdf4j.sail.memory.MemoryStore;
-
-/**
- * RDF4J implementation of RDF.
- * <p>
- * The {@link #RDF4JFactory()} constructor uses a {@link SimpleValueFactory}
- * to create corresponding RDF4J {@link Value} instances. Alternatively, this
- * factory can be constructed with a different {@link ValueFactory} using
- * {@link #RDF4JFactory(ValueFactory)}.
- * <p>
- * {@link #asRDFTerm(Value)} can be used to convert any RDF4J {@link Value} to
- * an RDFTerm. Note that adapted {@link BNode}s are considered equal if they are
- * converted with the same {@link RDF4JFactory} instance and have the same
- * {@link BNode#getID()}.
- * <p>
- * {@link #createGraph()} creates a new Graph backed by {@link LinkedHashModel}.
- * To use other models, see {@link #asRDFTermGraph(Model)}.
- * <p>
- * To adapt a RDF4J {@link Repository} as a {@link Dataset} or {@link Graph},
- * use {@link #asRDFTermDataset(Repository, Option...)} 
- * or 
- * {@link #asRDFTermGraph(Repository, Option...)}.
- * <p>
- * {@link #asTriple(Statement)} can be used to convert a RDF4J {@link Statement}
- * to a Commons RDF {@link Triple}, and equivalent {@link #asQuad(Statement)} to
- * convert a {@link Quad}.
- * <p>
- * To convert any {@link Triple} or {@link Quad} to to RDF4J {@link Statement},
- * use {@link #asStatement(TripleLike)}. This recognises previously converted
- * {@link RDF4JTriple}s and {@link RDF4JQuad}s without re-converting their
- * {@link RDF4JTripleLike#asStatement()}.
- * <p>
- * Likewise, {@link #asValue(RDFTerm)} can be used to convert any Commons RDF
- * {@link RDFTerm} to a corresponding RDF4J {@link Value}. This recognises
- * previously converted {@link RDF4JTerm}s without re-converting their
- * {@link RDF4JTerm#asValue()}.
- * <p>
- * For the purpose of {@link BlankNode} equivalence, this factory contains an
- * internal {@link UUID} salt that is used by adapter methods like
- * {@link #asQuad(Statement)}, {@link #asTriple(Statement)},
- * {@link #asRDFTerm(Value)} as well as {@link #createBlankNode(String)}. As
- * RDF4J {@link BNode} instances from multiple repositories or models may have
- * the same {@link BNode#getID()}, converting them with the above methods might
- * cause accidental {@link BlankNode} equivalence. Note that the {@link Graph}
- * and {@link Dataset} adapter methods like
- * {@link #asRDFTermDataset(Repository, Option...)}
- * and 
- * {@link #asRDFTermGraph(Repository, Option...)}
- * therefore uses a unique {@link RDF4JFactory} internally.
- *
- */
-public final class RDF4JFactory implements RDF {
-
-	/**
-	 * InternalRDF4JFactory is deliberately abstract
-	 */
-	private static InternalRDF4JFactory rdf4j = new InternalRDF4JFactory() {
-	};
-
-	public enum Option { 
-		/** 
-		 * The Graph/Dataset should include any inferred statements 
-		 */
-		includeInferred,
-		/**
-		 * The graph/dataset should handle {@link Repository#initialize()} (if
-		 * needed) and {@link Repository#shutDown()} on {@link Graph#close()} /
-		 * {@link Dataset#close()}.
-		 */
-		handleInitAndShutdown
-	}
-
-	private final UUID salt;
-
-	private final ValueFactory valueFactory;
-
-	/**
-	 * Construct an {@link RDF4JFactory}.
-	 * 
-	 */
-	public RDF4JFactory() {
-		this(SimpleValueFactory.getInstance(), UUID.randomUUID());
-	}
-
-	/**
-	 * Construct an {@link RDF4JFactory}.
-	 * <p>
-	 * This constructor is intended for use with the value factory from
-	 * {@link Repository#getValueFactory()} when using 
-	 * Repository-based graphs and datasets.
-	 * 
-	 * @param valueFactory
-	 *            The RDF4J {@link ValueFactory} to use
-	 */
-	public RDF4JFactory(ValueFactory valueFactory) {
-		this(valueFactory, UUID.randomUUID());
-	}
-
-	/**
-	 * Construct an {@link RDF4JFactory}.
-	 * <p>
-	 * This constructor may be used if reproducible
-	 * {@link BlankNode#uniqueReference()} in {@link BlankNode} is desirable.
-	 * 
-	 * @param salt
-	 *            An {@link UUID} salt to be used by any created
-	 *            {@link BlankNode}s for the purpose of
-	 *            {@link BlankNode#uniqueReference()}
-	 */	
-	public RDF4JFactory(UUID salt) {
-		this(SimpleValueFactory.getInstance(), salt);
-	}
-	/**
-	 * Construct an {@link RDF4JFactory}.
-	 * <p>
-	 * This constructor may be used if reproducible
-	 * {@link BlankNode#uniqueReference()} in {@link BlankNode} is desirable.
-	 * 
-	 * @param valueFactory
-	 *            The RDF4J {@link ValueFactory} to use
-	 * @param salt
-	 *            An {@link UUID} salt to be used by any created
-	 *            {@link BlankNode}s for the purpose of
-	 *            {@link BlankNode#uniqueReference()}
-	 */	
-	public RDF4JFactory(ValueFactory valueFactory, UUID salt) {
-		this.valueFactory = valueFactory;
-		this.salt = salt;
-	}
-
-	/**
-	 * Adapt a RDF4J {@link Statement} as a Commons RDF {@link Quad}.
-	 * <p>
-	 * For the purpose of {@link BlankNode} equivalence, this method will use an
-	 * internal salt UUID that is unique per instance of
-	 * {@link RDF4JFactory}.
-	 * <p>
-	 * <strong>NOTE:</strong> If combining RDF4J {@link Statement}s multiple
-	 * repositories or models, then their {@link BNode}s may have the same
-	 * {@link BNode#getID()}, which with this method would become equivalent
-	 * according to {@link BlankNode#equals(Object)} and
-	 * {@link BlankNode#uniqueReference()}, unless a separate
-	 * {@link RDF4JFactory} instance is used per RDF4J repository/model.
-	 *
-	 * @param statement
-	 *            The statement to convert
-	 * @return A {@link RDF4JQuad} that is equivalent to the statement
-	 */
-	public RDF4JQuad asQuad(final Statement statement) {
-		return rdf4j.createQuadImpl(statement, salt);
-	}
-
-	/**
-	 *
-	 * Adapt a RDF4J {@link Value} as a Commons RDF {@link RDFTerm}.
-	 * <p>
-	 * The value will be of the same kind as the term, e.g. a
-	 * {@link org.eclipse.rdf4j.model.BNode} is converted to a
-	 * {@link org.apache.commons.rdf.api.BlankNode}, a
-	 * {@link org.eclipse.rdf4j.model.IRI} is converted to a
-	 * {@link org.apache.commons.rdf.api.IRI} and a
-	 * {@link org.eclipse.rdf4j.model.Literal}. is converted to a
-	 * {@link org.apache.commons.rdf.api.Literal}
-	 * <p>
-	 * For the purpose of {@link BlankNode} equivalence, this method will use an
-	 * internal salt UUID that is unique per instance of
-	 * {@link RDF4JFactory}.
-	 * <p>
-	 * <strong>NOTE:</strong> If combining RDF4J values from multiple
-	 * repositories or models, then their {@link BNode}s may have the same
-	 * {@link BNode#getID()}, which with this method would become equivalent
-	 * according to {@link BlankNode#equals(Object)} and
-	 * {@link BlankNode#uniqueReference()}, unless a separate
-	 * {@link RDF4JFactory} instance is used per RDF4J repository/model.
-	 *
-	 * @param value
-	 *            The RDF4J {@link Value} to convert.
-	 * @return A {@link RDFTerm} that corresponds to the RDF4J value
-	 * @throws IllegalArgumentException
-	 *             if the value is not a BNode, Literal or IRI
-	 */
-	public RDF4JTerm asRDFTerm(Value value) {
-		return asRDFTerm(value, salt);
-	}
-	
-	/**
-	 * Adapt a RDF4J {@link Value} as a Commons RDF {@link RDFTerm}.
-	 * <p>
-	 * The value will be of the same kind as the term, e.g. a
-	 * {@link org.eclipse.rdf4j.model.BNode} is converted to a
-	 * {@link org.apache.commons.rdf.api.BlankNode}, a
-	 * {@link org.eclipse.rdf4j.model.IRI} is converted to a
-	 * {@link org.apache.commons.rdf.api.IRI} and a
-	 * {@link org.eclipse.rdf4j.model.Literal}. is converted to a
-	 * {@link org.apache.commons.rdf.api.Literal}
-	 *
-	 * @param value
-	 *            The RDF4J {@link Value} to convert.
-	 * @param salt
-	 *            A {@link UUID} salt to use for uniquely mapping any
-	 *            {@link BNode}s. The salt should typically be the same for
-	 *            multiple statements in the same {@link Repository} or
-	 *            {@link Model} to ensure {@link BlankNode#equals(Object)} and
-	 *            {@link BlankNode#uniqueReference()} works as intended.
-	 * @return A {@link RDFTerm} that corresponds to the RDF4J value
-	 * @throws IllegalArgumentException
-	 *             if the value is not a BNode, Literal or IRI
-	 */
-	public static RDF4JTerm asRDFTerm(final Value value, UUID salt) {
-		if (value instanceof BNode) {
-			return rdf4j.createBlankNodeImpl((BNode) value, salt);
-		}
-		if (value instanceof org.eclipse.rdf4j.model.Literal) {
-			return rdf4j.createLiteralImpl((org.eclipse.rdf4j.model.Literal) value);
-		}
-		if (value instanceof org.eclipse.rdf4j.model.IRI) {
-			return rdf4j.createIRIImpl((org.eclipse.rdf4j.model.IRI) value);
-		}
-		throw new IllegalArgumentException("Value is not a BNode, Literal or IRI: " + value.getClass());
-	}	
-
-	/**
-	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Dataset}.
-	 * <p>
-	 * Changes to the dataset are reflected in the repository, and vice versa.
-	 * <p>
-	 * <strong>Note:</strong> Some operations on the {@link RDF4JDataset}
-	 * requires the use of try-with-resources to close underlying
-	 * {@link RepositoryConnection}s, including
-	 * {@link RDF4JDataset#iterate()}, 
-	 * {@link RDF4JDataset#stream()} and {@link RDF4JDataset#getGraphNames()}.
-	 *
-	 * @param repository
-	 *            RDF4J {@link Repository} to connect to.
-	 * @param options
-	 *            Zero or more {@link Option}
-	 * @return A {@link Dataset} backed by the RDF4J repository.
-	 */
-	public RDF4JDataset asRDFTermDataset(Repository repository, Option... options) {
-		EnumSet<Option> opts = optionSet(options);
-		return rdf4j.createRepositoryDatasetImpl(repository, 
-				opts.contains(Option.handleInitAndShutdown), 
-				opts.contains(Option.includeInferred));
-	}
-
-	/**
-	 * Adapt an RDF4J {@link Model} as a Commons RDF {@link Graph}.
-	 * <p>
-	 * Changes to the graph are reflected in the model, and vice versa.
-	 *
-	 * @param model
-	 *            RDF4J {@link Model} to adapt.
-	 * @return Adapted {@link Graph}.
-	 */
-	public RDF4JGraph asRDFTermGraph(Model model) {
-		return rdf4j.createModelGraphImpl(model, this);
-	}
-
-	/**
-	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
-	 * <p>
-	 * The graph will only include triples in the default graph (equivalent to
-	 * context <code>new Resource[0]{null})</code> in RDF4J).
-	 * <p>
-	 * Changes to the graph are reflected in the repository, and vice versa.
-	 * <p>
-	 * <strong>Note:</strong> Some operations on the {@link RDF4JGraph}
-	 * requires the use of try-with-resources to close underlying
-	 * {@link RepositoryConnection}s, including
-	 * {@link RDF4JGraph#iterate()} and 
-	 * {@link RDF4JGraph#stream()}.
-	 *
-	 * @param repository
-	 *            RDF4J {@link Repository} to connect to.
-	 * @param options
-	 *            Zero or more {@link Option}
-	 * @return A {@link Graph} backed by the RDF4J repository.
-	 */
-	public RDF4JGraph asRDFTermGraph(Repository repository, Option... options) {
-		EnumSet<Option> opts = optionSet(options);
-		return rdf4j.createRepositoryGraphImpl(repository, 
-				opts.contains(Option.handleInitAndShutdown), 
-				opts.contains(Option.includeInferred), 
-				new Resource[]{null}); // default graph
-	}
-
-	/**
-	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
-	 * <p>
-	 * The graph will include triples in any contexts (e.g. the union graph).
-	 * <p>
-	 * Changes to the graph are reflected in the repository, and vice versa.
-	 *
-	 * @param repository
-	 *            RDF4J {@link Repository} to connect to.
-	 * @param options
-	 *            Zero or more {@link Option}
-	 * @return A union {@link Graph} backed by the RDF4J repository.
-	 */
-	public RDF4JGraph asRDFTermGraphUnion(Repository repository, Option... options) {
-		EnumSet<Option> opts = optionSet(options);
-		return rdf4j.createRepositoryGraphImpl(repository, 
-				opts.contains(Option.handleInitAndShutdown), 
-				opts.contains(Option.includeInferred),
-				new Resource[]{}); // union graph 
-		
-	}
-
-	/**
-	 * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
-	 * <p>
-	 * The graph will include triples in the specified contexts.
-	 * <p>
-	 * Changes to the graph are reflected in the repository, and vice versa.
-	 * Triples added/removed to the graph are reflected in all the specified
-	 * contexts.
-	 * <p>
-	 * <strong>Note:</strong> Some operations on the {@link RDF4JGraph}
-	 * requires the use of try-with-resources to close underlying
-	 * {@link RepositoryConnection}s, including
-	 * {@link RDF4JGraph#iterate()} and 
-	 * {@link RDF4JGraph#stream()}.
-	 *
-	 * @param repository
-	 *            RDF4J {@link Repository} to connect to.
-	 * @param contexts
-	 *            A {@link Set} of {@link BlankNodeOrIRI} specifying the graph
-	 *            names to use as a context. The set may include the value
-	 *            <code>null</code> to indicate the default graph. The empty set
-	 *            indicates any context, e.g. the <em>union graph</em>.
-	 * @param option
-	 *            Zero or more {@link Option}s
-	 * @return A {@link Graph} backed by the RDF4J repository.
-	 */
-	public RDF4JGraph asRDFTermGraph(Repository repository, Set<? extends BlankNodeOrIRI> contexts,
-			Option... option) {
-		EnumSet<Option> opts = optionSet(option);
-		/** NOTE: asValue() deliberately CAN handle <code>null</code> */
-		Resource[] resources = contexts.stream().map(g -> (Resource) asValue(g)).toArray(Resource[]::new);
-		return rdf4j.createRepositoryGraphImpl(Objects.requireNonNull(repository), 
-				opts.contains(Option.handleInitAndShutdown),
-				opts.contains(Option.includeInferred),
-				resources);
-	}
-
-	/**
-	 * Adapt a Commons RDF {@link Triple} or {@link Quad} as a RDF4J
-	 * {@link Statement}.
-	 * <p>
-	 * If the <code>tripleLike</code> argument is an {@link RDF4JTriple} or a
-	 * {@link RDF4JQuad}, then its {@link RDF4JTripleLike#asStatement()} is
-	 * returned as-is. Note that this means that a {@link RDF4JTriple} would
-	 * preserve its {@link Statement#getContext()}, and that any
-	 * {@link BlankNode}s would be deemed equivalent in RDF4J if they have the
-	 * same {@link BNode#getID()}.
-	 *
-	 * @param tripleLike
-	 *            A {@link Triple} or {@link Quad} to adapt
-	 * @return A corresponding {@link Statement}
-	 */
-	public Statement asStatement(TripleLike tripleLike) {
-		if (tripleLike instanceof RDF4JTripleLike) {
-			// Return original statement - this covers both RDF4JQuad and
-			// RDF4JTriple
-			return ((RDF4JTripleLike) tripleLike).asStatement();
-		}
-
-		org.eclipse.rdf4j.model.Resource subject = (org.eclipse.rdf4j.model.Resource) asValue(tripleLike.getSubject());
-		org.eclipse.rdf4j.model.IRI predicate = (org.eclipse.rdf4j.model.IRI) asValue(tripleLike.getPredicate());
-		Value object = asValue(tripleLike.getObject());
-
-		org.eclipse.rdf4j.model.Resource context = null;
-		if (tripleLike instanceof Quad) {
-			Quad quad = (Quad) tripleLike;
-			context = (org.eclipse.rdf4j.model.Resource) asValue(quad.getGraphName().orElse(null));
-		}
-
-		return getValueFactory().createStatement(subject, predicate, object, context);
-	}
-
-	/**
-	 * Adapt a RDF4J {@link Statement} as a Commons RDF {@link Triple}.
-	 * <p>
-	 * For the purpose of {@link BlankNode} equivalence, this method will use an
-	 * internal salt UUID that is unique per instance of
-	 * {@link RDF4JFactory}.
-	 * <p>
-	 * <strong>NOTE:</strong> If combining RDF4J statements from multiple
-	 * repositories or models, then their {@link BNode}s may have the same
-	 * {@link BNode#getID()}, which with this method would become equivalent
-	 * according to {@link BlankNode#equals(Object)} and
-	 * {@link BlankNode#uniqueReference()}, unless a separate
-	 * {@link RDF4JFactory} instance is used per RDF4J repository/model.
-	 *
-	 * @param statement
-	 *            The RDF4J {@link Statement} to adapt.
-	 * @return A {@link RDF4JTriple} that is equivalent to the statement
-	 */
-	public RDF4JTriple asTriple(final Statement statement) {
-		return rdf4j.createTripleImpl(statement, salt);
-	}
-
-	/**
-	 * Adapt a Commons RDF {@link RDFTerm} as a RDF4J {@link Value}.
-	 * <p>
-	 * The value will be of the same kind as the term, e.g. a
-	 * {@link org.apache.commons.rdf.api.BlankNode} is converted to a
-	 * {@link org.eclipse.rdf4j.model.BNode}, a
-	 * {@link org.apache.commons.rdf.api.IRI} is converted to a
-	 * {@link org.eclipse.rdf4j.model.IRI} and a
-	 * {@link org.apache.commons.rdf.api.Literal} is converted to a
-	 * {@link org.eclipse.rdf4j.model.Literal}.
-	 * <p>
-	 * If the provided {@link RDFTerm} is <code>null</code>, then the returned
-	 * value is <code>null</code>.
-	 * <p>
-	 * If the provided term is an instance of {@link RDF4JTerm}, then the
-	 * {@link RDF4JTerm#asValue()} is returned without any conversion. Note that
-	 * this could mean that a {@link Value} from a different kind of
-	 * {@link ValueFactory} could be returned.
-	 *
-	 * @param term
-	 *            RDFTerm to adapt to RDF4J Value
-	 * @return Adapted RDF4J {@link Value}
-	 */
-	public Value asValue(RDFTerm term) {
-		if (term == null) {
-			return null;
-		}
-		if (term instanceof RDF4JTerm) {
-			// One of our own - avoid converting again.
-			// (This is crucial to avoid double-escaping in BlankNode)
-			return ((RDF4JTerm) term).asValue();
-		}
-		if (term instanceof org.apache.commons.rdf.api.IRI) {
-			org.apache.commons.rdf.api.IRI iri = (org.apache.commons.rdf.api.IRI) term;
-			return getValueFactory().createIRI(iri.getIRIString());
-		}
-		if (term instanceof org.apache.commons.rdf.api.Literal) {
-			org.apache.commons.rdf.api.Literal literal = (org.apache.commons.rdf.api.Literal) term;
-			String label = literal.getLexicalForm();
-			if (literal.getLanguageTag().isPresent()) {
-				String lang = literal.getLanguageTag().get();
-				return getValueFactory().createLiteral(label, lang);
-			}
-			org.eclipse.rdf4j.model.IRI dataType = (org.eclipse.rdf4j.model.IRI) asValue(literal.getDatatype());
-			return getValueFactory().createLiteral(label, dataType);
-		}
-		if (term instanceof BlankNode) {
-			// This is where it gets tricky to support round trips!
-			BlankNode blankNode = (BlankNode) term;
-			// FIXME: The uniqueReference might not be a valid BlankNode
-			// identifier..
-			// does it have to be in RDF4J?
-			return getValueFactory().createBNode(blankNode.uniqueReference());
-		}
-		throw new IllegalArgumentException("RDFTerm was not an IRI, Literal or BlankNode: " + term.getClass());
-	}
-
-	@Override
-	public RDF4JBlankNode createBlankNode() {
-		BNode bnode = getValueFactory().createBNode();
-		return (RDF4JBlankNode) asRDFTerm(bnode);
-	}
-
-	@Override
-	public RDF4JBlankNode createBlankNode(String name) {
-		BNode bnode = getValueFactory().createBNode(name);
-		return (RDF4JBlankNode) asRDFTerm(bnode);
-	}
-	
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * <strong>Note:</strong> Some operations on the {@link RDF4JDataset}
-	 * requires the use of try-with-resources to close underlying
-	 * {@link RepositoryConnection}s, including
-	 * {@link RDF4JDataset#iterate()}, 
-	 * {@link RDF4JDataset#stream()} and {@link RDF4JDataset#getGraphNames()}.
-	 * 
-	 */
-	@Override
-	public RDF4JDataset createDataset() {
-		Sail sail = new MemoryStore();
-		Repository repository = new SailRepository(sail);
-		return rdf4j.createRepositoryDatasetImpl(repository, true, false);
-	}
-
-	@Override
-	public RDF4JGraph createGraph() {
-		return asRDFTermGraph(new LinkedHashModel());
-	}
-
-	@Override
-	public RDF4JIRI createIRI(String iri) throws IllegalArgumentException {
-		return (RDF4JIRI) asRDFTerm(getValueFactory().createIRI(iri));
-	}
-
-	@Override
-	public RDF4JLiteral createLiteral(String lexicalForm)
-			throws IllegalArgumentException {
-		org.eclipse.rdf4j.model.Literal lit = getValueFactory().createLiteral(lexicalForm);
-		return (RDF4JLiteral) asRDFTerm(lit);
-	}
-
-	@Override
-	public org.apache.commons.rdf.api.Literal createLiteral(String lexicalForm, org.apache.commons.rdf.api.IRI dataType)
-			throws IllegalArgumentException {
-		org.eclipse.rdf4j.model.IRI iri = getValueFactory().createIRI(dataType.getIRIString());
-		org.eclipse.rdf4j.model.Literal lit = getValueFactory().createLiteral(lexicalForm, iri);
-		return (org.apache.commons.rdf.api.Literal) asRDFTerm(lit);
-	}
-
-	@Override
-	public org.apache.commons.rdf.api.Literal createLiteral(String lexicalForm, String languageTag)
-			throws IllegalArgumentException {
-		org.eclipse.rdf4j.model.Literal lit = getValueFactory().createLiteral(lexicalForm, languageTag);
-		return (org.apache.commons.rdf.api.Literal) asRDFTerm(lit);
-	}
-
-	@Override
-	public RDF4JTriple createTriple(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object)
-			throws IllegalArgumentException {
-		final Statement statement = getValueFactory().createStatement(
-				(org.eclipse.rdf4j.model.Resource) asValue(subject), (org.eclipse.rdf4j.model.IRI) asValue(predicate),
-				asValue(object));
-		return asTriple(statement);
-	}
-
-	@Override
-	public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate,
-			RDFTerm object) throws IllegalArgumentException {
-		final Statement statement = getValueFactory().createStatement(
-				(org.eclipse.rdf4j.model.Resource) asValue(subject), (org.eclipse.rdf4j.model.IRI) asValue(predicate),
-				asValue(object), (org.eclipse.rdf4j.model.Resource) asValue(graphName));
-		return asQuad(statement);
-	}
-
-	public ValueFactory getValueFactory() {
-		return valueFactory;
-	}
-
-	private EnumSet<Option> optionSet(Option... options) {
-		EnumSet<Option> opts = EnumSet.noneOf(Option.class);
-		opts.addAll(Arrays.asList(options));
-		return opts;
-	}
-	
-	
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
index b7ef9a2..68978ce 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JGraph.java
@@ -33,10 +33,10 @@ import org.eclipse.rdf4j.repository.Repository;
 /**
  * Marker interface for RDF4J implementations of Graph.
  * 
- * @see RDF4JFactory#createGraph()
- * @see RDF4JFactory#asRDFTermGraph(Model)
- * @see RDF4JFactory#asRDFTermGraph(Repository, org.apache.commons.rdf.rdf4j.RDF4JFactory.Option...)
- * @see RDF4JFactory#asRDFTermGraphUnion(Repository, org.apache.commons.rdf.rdf4j.RDF4JFactory.Option...)
+ * @see RDF4J#createGraph()
+ * @see RDF4J#asRDFTermGraph(Model)
+ * @see RDF4J#asRDFTermGraph(Repository, org.apache.commons.rdf.rdf4j.RDF4J.Option...)
+ * @see RDF4J#asRDFTermGraphUnion(Repository, org.apache.commons.rdf.rdf4j.RDF4J.Option...)
  * @see RDF4JDataset#getGraph()
  * @see RDF4JDataset#getGraph(BlankNodeOrIRI)
  */
@@ -64,7 +64,7 @@ public interface RDF4JGraph extends Graph, RDF4JGraphLike<Triple> {
 	 * Note that the context mask itself cannot be <code>null</code>.
 	 * <p>
 	 * The returned set is an immutable copy; to specify a different mask, use
-	 * {@link RDF4JFactory#asRDFTermGraph(Repository, Set, org.apache.commons.rdf.rdf4j.RDF4JFactory.Option...)}
+	 * {@link RDF4J#asRDFTermGraph(Repository, Set, org.apache.commons.rdf.rdf4j.RDF4J.Option...)}
 	 *
 	 * @return The context mask as a set of {@link BlankNodeOrIRI} graph names, which
 	 *         may contain the value <code>null</code>.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JIRI.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JIRI.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JIRI.java
index 270567b..72c83fa 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JIRI.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JIRI.java
@@ -24,7 +24,7 @@ package org.apache.commons.rdf.rdf4j;
  * The underlying RDF4J {@link org.eclipse.rdf4j.model.IRI} 
  * instance can be retrieved with {@link #asValue()}.
  * 
- * @see RDF4JFactory#createIRI(String)
+ * @see RDF4J#createIRI(String)
  */
 public interface RDF4JIRI 
 	extends RDF4JBlankNodeOrIRI, org.apache.commons.rdf.api.IRI {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JLiteral.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JLiteral.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JLiteral.java
index f6b0349..6022da7 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JLiteral.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JLiteral.java
@@ -24,7 +24,7 @@ package org.apache.commons.rdf.rdf4j;
  * The underlying RDF4J {@link org.eclipse.rdf4j.model.Literal} instance can be
  * retrieved with {@link #asValue()}.
  * 
- * @see RDF4JFactory#createLiteral(String)
+ * @see RDF4J#createLiteral(String)
  */
 public interface RDF4JLiteral extends RDF4JTerm, org.apache.commons.rdf.api.Literal {
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JQuad.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JQuad.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JQuad.java
index d3fbcf0..23b6cdf 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JQuad.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JQuad.java
@@ -22,7 +22,7 @@ import org.apache.commons.rdf.api.Quad;
 /**
  * Marker interface for RDF4J implementations of Quad.
  * 
- * @see RDF4JFactory#createQuad(org.apache.commons.rdf.api.BlankNodeOrIRI, org.apache.commons.rdf.api.BlankNodeOrIRI, org.apache.commons.rdf.api.IRI, org.apache.commons.rdf.api.RDFTerm)
+ * @see RDF4J#createQuad(org.apache.commons.rdf.api.BlankNodeOrIRI, org.apache.commons.rdf.api.BlankNodeOrIRI, org.apache.commons.rdf.api.IRI, org.apache.commons.rdf.api.RDFTerm)
  */
 public interface RDF4JQuad extends Quad, RDF4JTripleLike {
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTriple.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTriple.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTriple.java
index e475a08..ca32d94 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTriple.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTriple.java
@@ -22,7 +22,7 @@ import org.apache.commons.rdf.api.Triple;
 /**
  * Marker interface for RDF4J implementations of Triple.
  * 
- * @see RDF4JFactory#createTriple(org.apache.commons.rdf.api.BlankNodeOrIRI, org.apache.commons.rdf.api.IRI, org.apache.commons.rdf.api.RDFTerm)
+ * @see RDF4J#createTriple(org.apache.commons.rdf.api.BlankNodeOrIRI, org.apache.commons.rdf.api.IRI, org.apache.commons.rdf.api.RDFTerm)
  */
 public interface RDF4JTriple extends Triple, RDF4JTripleLike {
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/experimental/RDF4JParser.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/experimental/RDF4JParser.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/experimental/RDF4JParser.java
index f9a1e74..558108b 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/experimental/RDF4JParser.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/experimental/RDF4JParser.java
@@ -34,7 +34,7 @@ import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.rdf4j.RDF4JBlankNodeOrIRI;
 import org.apache.commons.rdf.rdf4j.RDF4JDataset;
 import org.apache.commons.rdf.rdf4j.RDF4JGraph;
-import org.apache.commons.rdf.rdf4j.RDF4JFactory;
+import org.apache.commons.rdf.rdf4j.RDF4J;
 import org.apache.commons.rdf.simple.experimental.AbstractRDFParser;
 import org.eclipse.rdf4j.model.Model;
 import org.eclipse.rdf4j.model.Resource;
@@ -101,20 +101,20 @@ public class RDF4JParser extends AbstractRDFParser<RDF4JParser> implements RDFPa
 		}
 	}
 
-	private RDF4JFactory rdf4jTermFactory;
+	private RDF4J rdf4jTermFactory;
 	private ParserConfig parserConfig = new ParserConfig();
 
 	@Override
-	protected RDF4JFactory createRDFTermFactory() {
-		return new RDF4JFactory();
+	protected RDF4J createRDFTermFactory() {
+		return new RDF4J();
 	}
 
 	@Override
 	protected RDF4JParser prepareForParsing() throws IOException, IllegalStateException {
 		RDF4JParser c = prepareForParsing();
-		// Ensure we have an RDF4JFactory for conversion.
+		// Ensure we have an RDF4J for conversion.
 		// We'll make a new one if user has provided a non-RDF4J factory
-		c.rdf4jTermFactory = (RDF4JFactory) getRdfTermFactory().filter(RDF4JFactory.class::isInstance)
+		c.rdf4jTermFactory = (RDF4J) getRdfTermFactory().filter(RDF4J.class::isInstance)
 				.orElseGet(c::createRDFTermFactory);
 		return c;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
index 1948a32..37487b4 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java
@@ -22,7 +22,7 @@ import java.util.UUID;
 
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.rdf4j.RDF4JGraphLike;
-import org.apache.commons.rdf.rdf4j.RDF4JFactory;
+import org.apache.commons.rdf.rdf4j.RDF4J;
 import org.eclipse.rdf4j.model.Model;
 import org.eclipse.rdf4j.model.Statement;
 import org.eclipse.rdf4j.repository.Repository;
@@ -34,7 +34,7 @@ abstract class AbstractRepositoryGraphLike<T extends TripleLike>
 	protected final Repository repository;
 	protected final boolean includeInferred;
 	protected final boolean handleInitAndShutdown;
-	protected final RDF4JFactory rdf4jTermFactory;
+	protected final RDF4J rdf4jTermFactory;
 	protected final UUID salt;
 
 	AbstractRepositoryGraphLike(Repository repository, UUID salt, boolean handleInitAndShutdown, boolean includeInferred) {
@@ -45,7 +45,7 @@ abstract class AbstractRepositoryGraphLike<T extends TripleLike>
 		if (handleInitAndShutdown && !repository.isInitialized()) {
 			repository.initialize();
 		}
-		rdf4jTermFactory = new RDF4JFactory(repository.getValueFactory(), salt);
+		rdf4jTermFactory = new RDF4J(repository.getValueFactory(), salt);
 	}	
 	
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java
index 7744e01..b1cd419 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java
@@ -27,7 +27,7 @@ import org.apache.commons.rdf.rdf4j.RDF4JIRI;
 import org.apache.commons.rdf.rdf4j.RDF4JLiteral;
 import org.apache.commons.rdf.rdf4j.RDF4JQuad;
 import org.apache.commons.rdf.rdf4j.RDF4JTerm;
-import org.apache.commons.rdf.rdf4j.RDF4JFactory;
+import org.apache.commons.rdf.rdf4j.RDF4J;
 import org.apache.commons.rdf.rdf4j.RDF4JTriple;
 import org.eclipse.rdf4j.model.BNode;
 import org.eclipse.rdf4j.model.IRI;
@@ -42,17 +42,17 @@ import org.eclipse.rdf4j.repository.Repository;
  * <p>
  * <strong>Internal class:</strong> This "abstract" class is intended for
  * internal use by Commons RDF and may change in any minor update. Use instead
- * {@link RDF4JFactory} methods like
- * {@link RDF4JFactory#createBlankNode()},
- * {@link RDF4JFactory#asRDFTerm(org.eclipse.rdf4j.model.Value)} and
- * {@link RDF4JFactory#asRDFTermGraph(Repository, org.apache.commons.rdf.rdf4j.RDF4JFactory.Option...)}
+ * {@link RDF4J} methods like
+ * {@link RDF4J#createBlankNode()},
+ * {@link RDF4J#asRDFTerm(org.eclipse.rdf4j.model.Value)} and
+ * {@link RDF4J#asRDFTermGraph(Repository, org.apache.commons.rdf.rdf4j.RDF4J.Option...)}
  * <p>
  * This class exists as a <code>public</code> bridge between the packages
  * {@link org.apache.commons.rdf.rdf4j} and
  * {@link org.apache.commons.rdf.rdf4j.impl} by exposing the package-public
  * constructors.
  * 
- * @see RDF4JFactory
+ * @see RDF4J
  */
 public abstract class InternalRDF4JFactory {
 
@@ -103,7 +103,7 @@ public abstract class InternalRDF4JFactory {
 	 *            factory to use for adapting graph triples
 	 * @return Adapted {@link RDF4JGraph}
 	 */
-	public RDF4JGraph createModelGraphImpl(Model model, RDF4JFactory rdf4jTermFactory) {
+	public RDF4JGraph createModelGraphImpl(Model model, RDF4J rdf4jTermFactory) {
 		return new ModelGraphImpl(model, rdf4jTermFactory);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java
index 0d2695e..ced9c99 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java
@@ -31,7 +31,7 @@ import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.rdf4j.ClosableIterable;
 import org.apache.commons.rdf.rdf4j.RDF4JBlankNodeOrIRI;
 import org.apache.commons.rdf.rdf4j.RDF4JGraph;
-import org.apache.commons.rdf.rdf4j.RDF4JFactory;
+import org.apache.commons.rdf.rdf4j.RDF4J;
 import org.apache.commons.rdf.rdf4j.RDF4JTriple;
 import org.eclipse.rdf4j.model.Model;
 import org.eclipse.rdf4j.model.Resource;
@@ -40,9 +40,9 @@ import org.eclipse.rdf4j.repository.Repository;
 final class ModelGraphImpl implements RDF4JGraph {
 	
 	private Model model;
-	private RDF4JFactory rdf4jTermFactory;
+	private RDF4J rdf4jTermFactory;
 
-	ModelGraphImpl(Model model, RDF4JFactory rdf4jTermFactory) {
+	ModelGraphImpl(Model model, RDF4J rdf4jTermFactory) {
 		this.model = model;	
 		this.rdf4jTermFactory = rdf4jTermFactory;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
index cf60883..8da29b6 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java
@@ -26,7 +26,7 @@ import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.rdf4j.RDF4JQuad;
-import org.apache.commons.rdf.rdf4j.RDF4JFactory;
+import org.apache.commons.rdf.rdf4j.RDF4J;
 import org.eclipse.rdf4j.model.Statement;
 
 final class QuadImpl implements Quad, RDF4JQuad {
@@ -65,23 +65,23 @@ final class QuadImpl implements Quad, RDF4JQuad {
 			if (statement.getContext() == null) { 
 				return Optional.empty();
 			}			
-			BlankNodeOrIRI g = (BlankNodeOrIRI) RDF4JFactory.asRDFTerm(statement.getContext(), salt);
+			BlankNodeOrIRI g = (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getContext(), salt);
 			return Optional.of(g);
 		}
 		
 		@Override
 		public RDFTerm getObject() {
-			return RDF4JFactory.asRDFTerm(statement.getObject(), salt);
+			return RDF4J.asRDFTerm(statement.getObject(), salt);
 		}
 	
 		@Override
 		public org.apache.commons.rdf.api.IRI getPredicate() {
-			return (org.apache.commons.rdf.api.IRI) RDF4JFactory.asRDFTerm(statement.getPredicate(), null);
+			return (org.apache.commons.rdf.api.IRI) RDF4J.asRDFTerm(statement.getPredicate(), null);
 		}
 		
 		@Override
 		public BlankNodeOrIRI getSubject() {
-			return (BlankNodeOrIRI) RDF4JFactory.asRDFTerm(statement.getSubject(), salt);
+			return (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getSubject(), salt);
 		}
 
 		@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
index 23041c4..0526c77 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java
@@ -23,7 +23,7 @@ import java.util.UUID;
 import org.apache.commons.rdf.api.BlankNodeOrIRI;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.Triple;
-import org.apache.commons.rdf.rdf4j.RDF4JFactory;
+import org.apache.commons.rdf.rdf4j.RDF4J;
 import org.apache.commons.rdf.rdf4j.RDF4JTriple;
 import org.eclipse.rdf4j.model.Statement;
 
@@ -54,17 +54,17 @@ final class TripleImpl implements Triple, RDF4JTriple {
 	
 		@Override
 		public RDFTerm getObject() {
-			return RDF4JFactory.asRDFTerm(statement.getObject(), salt);
+			return RDF4J.asRDFTerm(statement.getObject(), salt);
 		}
 	
 		@Override
 		public org.apache.commons.rdf.api.IRI getPredicate() {
-			return (org.apache.commons.rdf.api.IRI) RDF4JFactory.asRDFTerm(statement.getPredicate(), null);
+			return (org.apache.commons.rdf.api.IRI) RDF4J.asRDFTerm(statement.getPredicate(), null);
 		}
 		
 		@Override
 		public BlankNodeOrIRI getSubject() {
-			return (BlankNodeOrIRI) RDF4JFactory.asRDFTerm(statement.getSubject(), salt);
+			return (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getSubject(), salt);
 		}
 	
 		@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java
index f17a499..51556bc 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java
@@ -18,9 +18,9 @@
 /**
  * Commons RDF integration with <a href="http://rdf4j.org/">RDF4J</a>.
  * <p>
- * Use the {@link org.apache.commons.rdf.rdf4j.RDF4JFactory} to convert
+ * Use the {@link org.apache.commons.rdf.rdf4j.RDF4J} to convert
  * between Commons RDF and RDF4J types, for instance
- * {@link org.apache.commons.rdf.rdf4j.RDF4JFactory#asQuad(org.eclipse.rdf4j.model.Statement)}
+ * {@link org.apache.commons.rdf.rdf4j.RDF4J#asQuad(org.eclipse.rdf4j.model.Statement)}
  * converts a RDF4J {@link org.eclipse.rdf4j.model.Statement} to a
  * {@link org.apache.commons.rdf.api.Quad}. Converted RDF terms implement the
  * {@link org.apache.commons.rdf.rdf4j.RDF4JTerm} interface, and converted
@@ -32,9 +32,9 @@
  * {@link org.eclipse.rdf4j.repository.Repository} instances can be adapted to
  * Commons RDF {@link org.apache.commons.rdf.api.Graph} and
  * {@link org.apache.commons.rdf.api.Dataset}, e.g. using
- * {@link org.apache.commons.rdf.rdf4j.RDF4JFactory#asRDFTermGraph(org.eclipse.rdf4j.model.Model)}
+ * {@link org.apache.commons.rdf.rdf4j.RDF4J#asRDFTermGraph(org.eclipse.rdf4j.model.Model)}
  * or
- * {@link org.apache.commons.rdf.rdf4j.RDF4JFactory#asRDFTermDataset(org.eclipse.rdf4j.repository.Repository, org.apache.commons.rdf.rdf4j.RDF4JFactory.Option...)}
+ * {@link org.apache.commons.rdf.rdf4j.RDF4J#asRDFTermDataset(org.eclipse.rdf4j.repository.Repository, org.apache.commons.rdf.rdf4j.RDF4J.Option...)}
  * The returned adapted graph/dataset is directly mapped, so changes are
  * propagated both ways. For convenience, the marker interface
  * {@link org.apache.commons.rdf.rdf4j.RDF4JGraph} and

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
index bfcdc12..f8a94bb 100644
--- a/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
+++ b/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -1 +1 @@
-org.apache.commons.rdf.rdf4j.RDF4JFactory
+org.apache.commons.rdf.rdf4j.RDF4J

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java
index 1da3c11..d31c24d 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java
@@ -22,7 +22,7 @@ import org.apache.commons.rdf.api.BlankNode;
 
 public class BlankNodeTest extends AbstractBlankNodeTest {
 
-	RDF4JFactory factory = new RDF4JFactory();
+	RDF4J factory = new RDF4J();
 	
 	@Override
 	protected BlankNode getBlankNode() {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
index 7d6104d..4ad8969 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
@@ -24,7 +24,7 @@ public class GraphTest extends AbstractGraphTest{
 
 	@Override
 	public RDF createFactory() {
-		return new RDF4JFactory();
+		return new RDF4J();
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
index 5377983..37ba0ff 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
@@ -33,9 +33,9 @@ import org.eclipse.rdf4j.sail.memory.model.MemValueFactory;
 
 public class MemoryGraphTest extends AbstractGraphTest {
 
-	public static final class MemoryStoreFactory implements RDF {
+	public static final class MemoryStoreRDF implements RDF {
 
-		RDF4JFactory rdf4jFactory = new RDF4JFactory(new MemValueFactory());
+		RDF4J rdf4jFactory = new RDF4J(new MemValueFactory());
 
 		public RDF4JBlankNode createBlankNode() {
 			return rdf4jFactory.createBlankNode();
@@ -83,7 +83,7 @@ public class MemoryGraphTest extends AbstractGraphTest {
 
 	@Override
 	public RDF createFactory() {
-		return new MemoryStoreFactory();
+		return new MemoryStoreRDF();
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
index 73ea05e..83968ee 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
@@ -25,7 +25,7 @@ public class MemoryRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
 	public RDF createFactory() {
-		return new MemoryGraphTest.MemoryStoreFactory();
+		return new MemoryGraphTest.MemoryStoreRDF();
 	}
 	
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
index 7b31738..bedea22 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
@@ -49,9 +49,9 @@ import org.junit.rules.Timeout;
  */
 public class NativeStoreGraphTest extends AbstractGraphTest {
 
-	public final class NativeStoreFactory implements RDF {
+	public final class NativeStoreRDF implements RDF {
 
-		RDF4JFactory rdf4jFactory = new RDF4JFactory(getRepository().getValueFactory());
+		RDF4J rdf4jFactory = new RDF4J(getRepository().getValueFactory());
 
 		@Override
 		public RDF4JGraph createGraph() {
@@ -146,7 +146,7 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
 
 	@Override
 	public RDF createFactory() {
-		return new NativeStoreFactory();
+		return new NativeStoreRDF();
 	}
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
index 46da04a..cbd85f1 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
@@ -31,10 +31,10 @@ public class RDF4JServiceLoaderTest {
     public void testServiceLoaderLookup() {
         ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
         for (RDF impl : loader) {
-        	if (impl instanceof RDF4JFactory) {
+        	if (impl instanceof RDF4J) {
         		return; // yay
         	}
         }
-        fail("RDF4JFactory not found in ServiceLoader");        
+        fail("RDF4J not found in ServiceLoader");        
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/defb7d81/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
index 24283c3..502d9ac 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
@@ -25,7 +25,7 @@ public class Rdf4JRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
 	public RDF createFactory() {
-		return new RDF4JFactory();
+		return new RDF4J();
 	}
 	
 	@Override


[21/22] incubator-commonsrdf git commit: avoid UnsupportedOperationException

Posted by st...@apache.org.
avoid UnsupportedOperationException


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/3ed42722
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/3ed42722
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/3ed42722

Branch: refs/heads/COMMONSRDF-46
Commit: 3ed4272245535ed2fdb4b29ca074964734ea24ce
Parents: 417963f
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 01:32:24 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 01:32:24 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/api/RDF.java    | 74 +++++---------------
 .../rdf/api/DefaultRDFTermFactoryTest.java      | 33 ---------
 .../commons/rdf/rdf4j/NativeStoreGraphTest.java | 14 ++++
 .../commons/rdf/simple/DefaultGraphTest.java    | 51 --------------
 4 files changed, 30 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3ed42722/api/src/main/java/org/apache/commons/rdf/api/RDF.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDF.java b/api/src/main/java/org/apache/commons/rdf/api/RDF.java
index bd405d0..0565ba4 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDF.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDF.java
@@ -60,10 +60,7 @@ public interface RDF {
      * @throws UnsupportedOperationException
      *             If the operation is not supported.
      */
-    default BlankNode createBlankNode() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode() not supported");
-    }
+	 public BlankNode createBlankNode();
 
     /**
      * Create a blank node based on the given name.
@@ -87,14 +84,8 @@ public interface RDF {
      *            A non-empty, non-null, String that is unique to this blank
      *            node in the context of this {@link RDF}.
      * @return A BlankNode for the given name
-     * @throws UnsupportedOperationException
-     *             If the operation is not supported.
      */
-    default BlankNode createBlankNode(String name)
-            throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode(String) not supported");
-    }
+	public BlankNode createBlankNode(String name);
 
     /**
      * Create a new graph.
@@ -103,11 +94,8 @@ public interface RDF {
      * mechanism.
      *
      * @return A new Graph
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Graph createGraph() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createGraph() not supported");
-    }
+	 public Graph createGraph();
 
     /**
      * Create a new dataset.
@@ -116,11 +104,8 @@ public interface RDF {
      * mechanism.
      *
      * @return A new Dataset
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Dataset createDataset() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createDataset() not supported");
-    }
+	public Dataset createDataset();
 
     /**
      * Create an IRI from a (possibly escaped) String.
@@ -133,13 +118,8 @@ public interface RDF {
      * @return A new IRI
      * @throws IllegalArgumentException      If the provided string is not acceptable, e.g. does not
      *                                       conform to the RFC3987 syntax.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default IRI createIRI(String iri) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createIRI(String) not supported");
-    }
+	public IRI createIRI(String iri) throws IllegalArgumentException;
 
     /**
      * Create a simple literal.
@@ -157,13 +137,9 @@ public interface RDF {
      * @return The created Literal
      * @throws IllegalArgumentException      If the provided lexicalForm is not acceptable, e.g. because
      *                                       it is too large for an underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Literal createLiteral(String lexicalForm)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
+    public Literal createLiteral(String lexicalForm)
+            throws IllegalArgumentException;
 
     /**
      * Create a literal with the specified data type.
@@ -191,13 +167,9 @@ public interface RDF {
      * @return The created Literal
      * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
      *                                       because the provided dataType is not permitted.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Literal createLiteral(String lexicalForm, IRI dataType)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
+    public Literal createLiteral(String lexicalForm, IRI dataType)
+            throws IllegalArgumentException;
 
     /**
      * Create a language-tagged literal.
@@ -226,13 +198,9 @@ public interface RDF {
      * @return The created Literal
      * @throws IllegalArgumentException      If the provided values are not acceptable, e.g. because the
      *                                       languageTag was syntactically invalid.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Literal createLiteral(String lexicalForm, String languageTag)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String,String) not supported");
-    }
+    public Literal createLiteral(String lexicalForm, String languageTag)
+            throws IllegalArgumentException;
 
     /**
      * Create a triple.
@@ -249,14 +217,9 @@ public interface RDF {
      * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
      *                                       because a Literal has a lexicalForm that is too large for an
      *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
+    public Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException;
 
     /**
      * Create a quad.
@@ -268,7 +231,7 @@ public interface RDF {
      * equal to the provided predicate, and a {@link Quad#getObject()} that is
      * equal to the provided object.
      *
-     * @param graphName The IRI or BlankNode that this quad belongs to, or <code>null</code> for the default graph
+     * @param graphName The IRI or BlankNode that this quad belongs to, or <code>null</code> for the public graph
      * @param subject   The IRI or BlankNode that is the subject of the quad
      * @param predicate The IRI that is the predicate of the quad
      * @param object    The IRI, BlankNode or Literal that is the object of the quad
@@ -276,13 +239,8 @@ public interface RDF {
      * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
      *                                       because a Literal has a lexicalForm that is too large for an
      *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
+    public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException;
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3ed42722/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
deleted file mode 100644
index a800191..0000000
--- a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.api;
-
-/**
- * The default RDF might be useless (every method throws
- * UnsupportedOperationException), but this test ensures that
- * AbstractRDFTermFactoryTest does not fall over on unsupported operations.
- */
-public class DefaultRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
-
-    @Override
-    public RDF createFactory() {
-        return new RDF() {
-        };
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3ed42722/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
index bedea22..e5a9772 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
@@ -24,8 +24,10 @@ import java.util.Set;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
 import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.Dataset;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.RDF;
 import org.eclipse.rdf4j.repository.RepositoryConnection;
@@ -59,7 +61,14 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
 			Set<RDF4JBlankNode> context = Collections.singleton(rdf4jFactory.createBlankNode());
 			return rdf4jFactory.asRDFTermGraph(getRepository(), context);
 		}
+		@Override
+		public Dataset createDataset() {
+			throw new UnsupportedOperationException("Can't create more than one Dataset in this test");
+			// ...as the below would re-use the same repository:
+			//return rdf4jFactory.asRDFTermDataset(getRepository()); 
+		}
 
+		
 		// Delegate methods 
 		public RDF4JBlankNode createBlankNode() {
 			return rdf4jFactory.createBlankNode();
@@ -82,6 +91,11 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
 		public RDF4JTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 			return rdf4jFactory.createTriple(subject, predicate, object);
 		}
+		@Override
+		public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+				throws IllegalArgumentException {
+			return rdf4jFactory.createQuad(graphName, subject, predicate, object);
+		}
 	}
 
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/3ed42722/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
deleted file mode 100644
index 3d3aad1..0000000
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.simple;
-
-import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDF;
-
-/**
- * Ensure AbstractGraphTest does not crash if the RDF throws
- * UnsupportedOperationException
- */
-
-public class DefaultGraphTest extends AbstractGraphTest {
-
-    @Override
-    public RDF createFactory() {
-        // The most minimal RDF that would still
-        // make sense with a Graph
-        return new RDF() {
-            @Override
-            public Graph createGraph() throws UnsupportedOperationException {
-                return new GraphImpl(new SimpleRDF());
-            }
-
-            @Override
-            public IRI createIRI(String iri)
-                    throws UnsupportedOperationException,
-                    IllegalArgumentException {
-                return new IRIImpl(iri);
-            }
-        };
-    }
-
-}


[05/22] incubator-commonsrdf git commit: Tweaks for ignored tests

Posted by st...@apache.org.
Tweaks for ignored tests


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/17c0d271
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/17c0d271
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/17c0d271

Branch: refs/heads/COMMONSRDF-46
Commit: 17c0d271cc17b61806ec8735ca2f82e0c4bd6050
Parents: 2a6fefa
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:26:11 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:26:11 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java     | 1 +
 .../org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java   | 6 ++++--
 .../org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java | 2 +-
 .../org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java  | 2 +-
 4 files changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/17c0d271/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java
index b079c14..0a7d59c 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdBlankNode.java
@@ -37,6 +37,7 @@ public interface JsonLdBlankNode extends JsonLdTerm, BlankNode {
 	
 		@Override
 		public String ntriplesString() {
+			// TODO: Escape if this is not valid ntriples string (e.g. contains :)
 			return node.getValue();
 		}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/17c0d271/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
index 02b2695..fd65c2a 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
@@ -19,6 +19,7 @@ package org.apache.commons.rdf.jsonldjava;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
 import org.apache.commons.rdf.api.RDFFactory;
+import org.junit.Assume;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -31,17 +32,17 @@ public class JsonLdFactoryTest extends AbstractRDFTermFactoryTest {
 	
 	// TODO: Add support for checking for invalid lang/iri/blanknode IDs
 	
-	@Ignore
 	@Test
 	@Override
 	public void testInvalidLiteralLang() throws Exception {
+		Assume.assumeFalse("JSONLD-Java does not validate lang strings", false);		
 		super.testInvalidLiteralLang();
 	}
 	
-	@Ignore
 	@Test
 	@Override
 	public void testInvalidIRI() throws Exception {
+		Assume.assumeFalse("JSONLD-Java does not validate IRIs", false);
 		super.testInvalidIRI();
 	}
 	
@@ -49,6 +50,7 @@ public class JsonLdFactoryTest extends AbstractRDFTermFactoryTest {
 	@Test
 	@Override
 	public void testPossiblyInvalidBlankNode() throws Exception {
+		// TODO: Fix blank node in ntriplesString()
 		super.testPossiblyInvalidBlankNode();
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/17c0d271/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
index 07d6a13..99beb54 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
@@ -30,7 +30,7 @@ public class MemoryRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 	
 	@Override
 	public void testInvalidLiteralLang() throws Exception {
-		Assume.assumeTrue("Sesame doesn't check Lang strings",false);
+		Assume.assumeTrue("RDF4J doesn't check Lang strings",false);
 		super.testInvalidLiteralLang();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/17c0d271/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
index 4e075ac..1185bc5 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
@@ -30,7 +30,7 @@ public class Rdf4JRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 	
 	@Override
 	public void testInvalidLiteralLang() throws Exception {
-		Assume.assumeTrue("Sesame doesn't check Lang strings",false);
+		Assume.assumeTrue("RDD4J doesn't check Lang strings",false);
 		super.testInvalidLiteralLang();
 	}
 	


[08/22] incubator-commonsrdf git commit: Updated META-INF/services

Posted by st...@apache.org.
Updated META-INF/services


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/2c62adad
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/2c62adad
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/2c62adad

Branch: refs/heads/COMMONSRDF-46
Commit: 2c62adad2f6e5a055e208345c0aa7f42ba8ebcc6
Parents: 374bb0f
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:48:19 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:48:19 2016 +0100

----------------------------------------------------------------------
 .../META-INF/services/org.apache.commons.rdf.api.RDFFactory        | 1 +
 .../META-INF/services/org.apache.commons.rdf.api.RDFTermFactory    | 1 -
 .../META-INF/services/org.apache.commons.rdf.api.RDFFactory        | 1 +
 .../META-INF/services/org.apache.commons.rdf.api.RDFTermFactory    | 1 -
 .../META-INF/services/org.apache.commons.rdf.api.RDFFactory        | 1 +
 .../META-INF/services/org.apache.commons.rdf.api.RDFFactory        | 2 +-
 .../META-INF/services/org.apache.commons.rdf.api.RDFTermFactory    | 2 +-
 7 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2c62adad/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
new file mode 100644
index 0000000..f39e71d
--- /dev/null
+++ b/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -0,0 +1 @@
+org.apache.commons.rdf.jena.JenaFactory

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2c62adad/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
----------------------------------------------------------------------
diff --git a/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory b/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
deleted file mode 100644
index 50e08bb..0000000
--- a/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.commons.rdf.jena.RDFTermFactoryJena

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2c62adad/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
new file mode 100644
index 0000000..ecb7535
--- /dev/null
+++ b/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -0,0 +1 @@
+org.apache.commons.rdf.jsonldjava.JsonLdFactory

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2c62adad/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory b/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
deleted file mode 100644
index 9bf95f8..0000000
--- a/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.commons.rdf.jsonldjava.JsonLdFactory
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2c62adad/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
new file mode 100644
index 0000000..bfcdc12
--- /dev/null
+++ b/rdf4j/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -0,0 +1 @@
+org.apache.commons.rdf.rdf4j.RDF4JFactory

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2c62adad/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
index 17d9680..67557cf 100644
--- a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
+++ b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -1 +1 @@
-org.apache.commons.rdf.simple.SimpleRDFFactory
\ No newline at end of file
+org.apache.commons.rdf.simple.SimpleRDFFactory

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/2c62adad/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
----------------------------------------------------------------------
diff --git a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
index cc53468..5a56ae6 100644
--- a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
+++ b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
@@ -1 +1 @@
-org.apache.commons.rdf.simple.SimpleRDFTermFactory
\ No newline at end of file
+org.apache.commons.rdf.simple.SimpleRDFTermFactory


[15/22] incubator-commonsrdf git commit: SimpleFactory -> SimpleRDF

Posted by st...@apache.org.
SimpleFactory -> SimpleRDF


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/790b6059
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/790b6059
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/790b6059

Branch: refs/heads/COMMONSRDF-46
Commit: 790b60591d23e5a332932d530f4e98c7e162eb59
Parents: 384a833
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:44:53 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 00:44:53 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jsonldjava/JsonLdFactory.java   | 306 -------------------
 .../commons/rdf/jsonldjava/JsonLdRDF.java       | 306 +++++++++++++++++++
 .../commons/rdf/simple/BlankNodeImpl.java       |   2 +-
 .../apache/commons/rdf/simple/DatasetImpl.java  |   8 +-
 .../apache/commons/rdf/simple/GraphImpl.java    |   8 +-
 .../org/apache/commons/rdf/simple/IRIImpl.java  |   2 +-
 .../apache/commons/rdf/simple/LiteralImpl.java  |   2 +-
 .../org/apache/commons/rdf/simple/QuadImpl.java |   2 +-
 .../apache/commons/rdf/simple/SimpleRDF.java    | 114 +++++++
 .../commons/rdf/simple/SimpleRDFFactory.java    | 114 -------
 .../rdf/simple/SimpleRDFTermFactory.java        |   4 +-
 .../apache/commons/rdf/simple/TripleImpl.java   |   2 +-
 .../org/apache/commons/rdf/simple/Types.java    |   2 +-
 .../simple/experimental/AbstractRDFParser.java  |   8 +-
 .../apache/commons/rdf/simple/package-info.java |   6 +-
 .../org.apache.commons.rdf.api.RDFFactory       |   2 +-
 .../commons/rdf/simple/DefaultGraphTest.java    |   2 +-
 .../commons/rdf/simple/SimpleGraphTest.java     |   4 +-
 .../SimpleNoRelativeIRIRDFTermFactoryTest.java  |   2 +-
 .../rdf/simple/SimpleRDFTermFactoryTest.java    |   2 +-
 .../rdf/simple/SimpleServiceLoaderTest.java     |   4 +-
 .../commons/rdf/simple/TestWritingGraph.java    |   2 +-
 .../experimental/AbstractRDFParserTest.java     |   4 +-
 23 files changed, 454 insertions(+), 454 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
deleted file mode 100644
index d5c49f8..0000000
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.jsonldjava;
-
-import java.nio.charset.StandardCharsets;
-import java.util.Objects;
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-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.RDFTerm;
-import org.apache.commons.rdf.api.RDF;
-import org.apache.commons.rdf.api.Triple;
-import org.apache.commons.rdf.simple.Types;
-
-import com.github.jsonldjava.core.RDFDataset;
-import com.github.jsonldjava.core.RDFDataset.Node;
-
-public final class JsonLdFactory implements RDF {
-
-	final String bnodePrefix;
-
-	public JsonLdFactory() {
-		// An "outside Graph" bnodePrefix
-		this("urn:uuid:" + UUID.randomUUID() + "#b");
-	}
-
-	JsonLdFactory(String bnodePrefix) {
-		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 JsonLdDataset asDataset(RDFDataset rdfDataSet) {
-		return new JsonLdDatasetImpl(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 JsonLdGraph asGraph(RDFDataset rdfDataSet) {
-		return new JsonLdGraphImpl(rdfDataSet);
-	}
-
-	public Node asJsonLdNode(RDFTerm term) {
-		if (term instanceof JsonLdBlankNode) {
-			JsonLdBlankNode jsonLdBlankNode = (JsonLdBlankNode) term;
-			if (jsonLdBlankNode.uniqueReference().startsWith(bnodePrefix)) {
-				// Only return blank nodes 'as is' if they have the same prefix
-				return jsonLdBlankNode.asJsonLdNode();
-			}
-		} else if (term instanceof JsonLdTerm) {
-			// non-Bnodes can always be return as-is
-			return ((JsonLdTerm) term).asJsonLdNode();
-		}
-		if (term instanceof IRI) {
-			return new RDFDataset.IRI(((IRI) term).getIRIString());
-		}
-		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,
-			// we'll convert to a UUID
-			UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8));
-			return new RDFDataset.BlankNode("_:" + uuid);
-		}
-		if (term instanceof Literal) {
-			Literal literal = (Literal) term;
-			return new RDFDataset.Literal(literal.getLexicalForm(), literal.getDatatype().getIRIString(),
-					literal.getLanguageTag().orElse(null));
-		}
-		throw new IllegalArgumentException("RDFTerm not instanceof IRI, BlankNode or Literal: " + term);
-	}	
-
-	/**
-	 * Adapt a Commons RDF {@link org.apache.commons.rdf.api.Quad} as a JsonLd {@link com.github.jsonldjava.core.RDFDataset.Quad}.
-	 * 
-	 * @param quad Commons RDF {@link org.apache.commons.rdf.api.Quad}  to adapt
-	 * @return Adapted JsonLd {@link com.github.jsonldjava.core.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());
-	}
-	
-	/**
-	 * Adapt a Commons RDF {@link Triple} as a JsonLd {@link com.github.jsonldjava.core.RDFDataset.Quad}.
-	 * 
-	 * @param triple Commons RDF {@link Triple} to adapt
-	 * @return Adapted JsonLd {@link com.github.jsonldjava.core.RDFDataset.Quad}
-	 */
-	public RDFDataset.Quad asJsonLdQuad(Triple triple) {
-		return createJsonLdQuad(null, triple.getSubject(), triple.getPredicate(), triple.getObject());
-	}
-
-	/**
-	 * Adapt a JsonLd {@link com.github.jsonldjava.core.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 com.github.jsonldjava.core.RDFDataset.Quad} to adapt
-	 * @return Adapted {@link JsonLdQuad}
-	 */
-	public JsonLdQuad asQuad(final RDFDataset.Quad quad) {
-		return new JsonLdQuadImpl(quad, bnodePrefix);
-	}
-
-	/**
-	 * Adapt a JsonLd {@link 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);
-	}
-
-	/**
-	 * Adapt a JsonLd {@link com.github.jsonldjava.core.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 com.github.jsonldjava.core.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} 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 JsonLdUnionGraph asUnionGraph(RDFDataset rdfDataSet) {
-		return new JsonLdUnionGraphImpl(rdfDataSet);
-	}
-
-	@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 JsonLdDataset createDataset() {
-		return new JsonLdDatasetImpl(bnodePrefix);
-	}
-
-	@Override
-	public JsonLdGraph createGraph() {
-		return new JsonLdGraphImpl(bnodePrefix);
-	}
-
-	@Override
-	public JsonLdIRI createIRI(String iri) {
-		return new JsonLdIRIImpl(iri);
-	}
-
-	@Override
-	public JsonLdLiteral createLiteral(String literal) {
-		return new JsonLdLiteralImpl(new RDFDataset.Literal(literal, null, null));
-	}
-
-	@Override
-	public JsonLdLiteral createLiteral(String literal, IRI dataType) {
-		return new JsonLdLiteralImpl(new RDFDataset.Literal(literal, dataType.getIRIString(), null));
-	}
-
-	@Override
-	public JsonLdLiteral createLiteral(String literal, String language) {
-		return new JsonLdLiteralImpl(new RDFDataset.Literal(literal, Types.RDF_LANGSTRING.getIRIString(), language));
-	}
-
-	@Override
-	public JsonLdQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
-			throws IllegalArgumentException, UnsupportedOperationException {
-		return new JsonLdQuadImpl(createJsonLdQuad(graphName, subject, predicate, object), bnodePrefix);
-	}
-
-	@Override
-	public JsonLdTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return new JsonLdTripleImpl(createJsonLdQuad(null, subject, predicate, object), 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) {
-		if (node == null) {
-			return null; // e.g. default graph
-		}
-		if (node.isIRI()) {
-			return new JsonLdIRIImpl(node);
-		} else if (node.isBlankNode()) {
-			return new JsonLdBlankNodeImpl(node, blankNodePrefix);
-		} else if (node.isLiteral()) {
-			// TODO: Our own JsonLdLiteral
-			if (node.getLanguage() != null) {
-				return createLiteral(node.getValue(), node.getLanguage());
-			} else {
-				return createLiteral(node.getValue(), createIRI(node.getDatatype()));
-			}
-		} else {
-			throw new IllegalArgumentException("Node is neither IRI, BlankNode nor Literal: " + node);
-		}
-	}
-
-	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

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
new file mode 100644
index 0000000..d5c49f8
--- /dev/null
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
@@ -0,0 +1,306 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.jsonldjava;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+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.RDFTerm;
+import org.apache.commons.rdf.api.RDF;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.simple.Types;
+
+import com.github.jsonldjava.core.RDFDataset;
+import com.github.jsonldjava.core.RDFDataset.Node;
+
+public final class JsonLdFactory implements RDF {
+
+	final String bnodePrefix;
+
+	public JsonLdFactory() {
+		// An "outside Graph" bnodePrefix
+		this("urn:uuid:" + UUID.randomUUID() + "#b");
+	}
+
+	JsonLdFactory(String bnodePrefix) {
+		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 JsonLdDataset asDataset(RDFDataset rdfDataSet) {
+		return new JsonLdDatasetImpl(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 JsonLdGraph asGraph(RDFDataset rdfDataSet) {
+		return new JsonLdGraphImpl(rdfDataSet);
+	}
+
+	public Node asJsonLdNode(RDFTerm term) {
+		if (term instanceof JsonLdBlankNode) {
+			JsonLdBlankNode jsonLdBlankNode = (JsonLdBlankNode) term;
+			if (jsonLdBlankNode.uniqueReference().startsWith(bnodePrefix)) {
+				// Only return blank nodes 'as is' if they have the same prefix
+				return jsonLdBlankNode.asJsonLdNode();
+			}
+		} else if (term instanceof JsonLdTerm) {
+			// non-Bnodes can always be return as-is
+			return ((JsonLdTerm) term).asJsonLdNode();
+		}
+		if (term instanceof IRI) {
+			return new RDFDataset.IRI(((IRI) term).getIRIString());
+		}
+		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,
+			// we'll convert to a UUID
+			UUID uuid = UUID.nameUUIDFromBytes(ref.getBytes(StandardCharsets.UTF_8));
+			return new RDFDataset.BlankNode("_:" + uuid);
+		}
+		if (term instanceof Literal) {
+			Literal literal = (Literal) term;
+			return new RDFDataset.Literal(literal.getLexicalForm(), literal.getDatatype().getIRIString(),
+					literal.getLanguageTag().orElse(null));
+		}
+		throw new IllegalArgumentException("RDFTerm not instanceof IRI, BlankNode or Literal: " + term);
+	}	
+
+	/**
+	 * Adapt a Commons RDF {@link org.apache.commons.rdf.api.Quad} as a JsonLd {@link com.github.jsonldjava.core.RDFDataset.Quad}.
+	 * 
+	 * @param quad Commons RDF {@link org.apache.commons.rdf.api.Quad}  to adapt
+	 * @return Adapted JsonLd {@link com.github.jsonldjava.core.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());
+	}
+	
+	/**
+	 * Adapt a Commons RDF {@link Triple} as a JsonLd {@link com.github.jsonldjava.core.RDFDataset.Quad}.
+	 * 
+	 * @param triple Commons RDF {@link Triple} to adapt
+	 * @return Adapted JsonLd {@link com.github.jsonldjava.core.RDFDataset.Quad}
+	 */
+	public RDFDataset.Quad asJsonLdQuad(Triple triple) {
+		return createJsonLdQuad(null, triple.getSubject(), triple.getPredicate(), triple.getObject());
+	}
+
+	/**
+	 * Adapt a JsonLd {@link com.github.jsonldjava.core.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 com.github.jsonldjava.core.RDFDataset.Quad} to adapt
+	 * @return Adapted {@link JsonLdQuad}
+	 */
+	public JsonLdQuad asQuad(final RDFDataset.Quad quad) {
+		return new JsonLdQuadImpl(quad, bnodePrefix);
+	}
+
+	/**
+	 * Adapt a JsonLd {@link 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);
+	}
+
+	/**
+	 * Adapt a JsonLd {@link com.github.jsonldjava.core.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 com.github.jsonldjava.core.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} 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 JsonLdUnionGraph asUnionGraph(RDFDataset rdfDataSet) {
+		return new JsonLdUnionGraphImpl(rdfDataSet);
+	}
+
+	@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 JsonLdDataset createDataset() {
+		return new JsonLdDatasetImpl(bnodePrefix);
+	}
+
+	@Override
+	public JsonLdGraph createGraph() {
+		return new JsonLdGraphImpl(bnodePrefix);
+	}
+
+	@Override
+	public JsonLdIRI createIRI(String iri) {
+		return new JsonLdIRIImpl(iri);
+	}
+
+	@Override
+	public JsonLdLiteral createLiteral(String literal) {
+		return new JsonLdLiteralImpl(new RDFDataset.Literal(literal, null, null));
+	}
+
+	@Override
+	public JsonLdLiteral createLiteral(String literal, IRI dataType) {
+		return new JsonLdLiteralImpl(new RDFDataset.Literal(literal, dataType.getIRIString(), null));
+	}
+
+	@Override
+	public JsonLdLiteral createLiteral(String literal, String language) {
+		return new JsonLdLiteralImpl(new RDFDataset.Literal(literal, Types.RDF_LANGSTRING.getIRIString(), language));
+	}
+
+	@Override
+	public JsonLdQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+			throws IllegalArgumentException, UnsupportedOperationException {
+		return new JsonLdQuadImpl(createJsonLdQuad(graphName, subject, predicate, object), bnodePrefix);
+	}
+
+	@Override
+	public JsonLdTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		return new JsonLdTripleImpl(createJsonLdQuad(null, subject, predicate, object), 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) {
+		if (node == null) {
+			return null; // e.g. default graph
+		}
+		if (node.isIRI()) {
+			return new JsonLdIRIImpl(node);
+		} else if (node.isBlankNode()) {
+			return new JsonLdBlankNodeImpl(node, blankNodePrefix);
+		} else if (node.isLiteral()) {
+			// TODO: Our own JsonLdLiteral
+			if (node.getLanguage() != null) {
+				return createLiteral(node.getValue(), node.getLanguage());
+			} else {
+				return createLiteral(node.getValue(), createIRI(node.getDatatype()));
+			}
+		} else {
+			throw new IllegalArgumentException("Node is neither IRI, BlankNode nor Literal: " + node);
+		}
+	}
+
+	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

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
index 7147322..4b20618 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
@@ -23,7 +23,7 @@ import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.simple.SimpleRDFFactory.SimpleRDFTerm;
+import org.apache.commons.rdf.simple.SimpleRDF.SimpleRDFTerm;
 
 /**
  * A simple implementation of BlankNode.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
index 78f1981..a23f27e 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java
@@ -33,7 +33,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.simple.SimpleRDFFactory.SimpleRDFTerm;
+import org.apache.commons.rdf.simple.SimpleRDF.SimpleRDFTerm;
 
 /**
  * A simple, memory-based implementation of Dataset.
@@ -46,10 +46,10 @@ final class DatasetImpl implements Dataset {
 	
     private static final int TO_STRING_MAX = 10;
     private final Set<Quad> quads = new HashSet<Quad>();
-    private final SimpleRDFFactory factory;
+    private final SimpleRDF factory;
 
-    DatasetImpl(SimpleRDFFactory simpleRDFFactory) {
-        this.factory = simpleRDFFactory;
+    DatasetImpl(SimpleRDF simpleRDF) {
+        this.factory = simpleRDF;
     }
     
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/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 1173d53..fb95577 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
@@ -18,7 +18,7 @@
 package org.apache.commons.rdf.simple;
 
 import org.apache.commons.rdf.api.*;
-import org.apache.commons.rdf.simple.SimpleRDFFactory.SimpleRDFTerm;
+import org.apache.commons.rdf.simple.SimpleRDF.SimpleRDFTerm;
 
 import java.util.HashSet;
 import java.util.Objects;
@@ -38,10 +38,10 @@ final class GraphImpl implements Graph {
 
     private static final int TO_STRING_MAX = 10;
     private final Set<Triple> triples = new HashSet<Triple>();
-    private final SimpleRDFFactory factory;
+    private final SimpleRDF factory;
 
-    GraphImpl(SimpleRDFFactory simpleRDFFactory) {
-        this.factory = simpleRDFFactory;
+    GraphImpl(SimpleRDF simpleRDF) {
+        this.factory = simpleRDF;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
index c3ef547..8c81913 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/IRIImpl.java
@@ -24,7 +24,7 @@ import java.net.URI;
 /**
  * A simple implementation of IRI.
  */
-final class IRIImpl implements IRI, SimpleRDFFactory.SimpleRDFTerm {
+final class IRIImpl implements IRI, SimpleRDF.SimpleRDFTerm {
 
     private final String iri;
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
index b3f7042..d477e43 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/LiteralImpl.java
@@ -28,7 +28,7 @@ import org.apache.commons.rdf.api.Literal;
 /**
  * A simple implementation of Literal.
  */
-final class LiteralImpl implements Literal, SimpleRDFFactory.SimpleRDFTerm {
+final class LiteralImpl implements Literal, SimpleRDF.SimpleRDFTerm {
 
     private static final String QUOTE = "\"";
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
index 54c5fc1..00f8fa8 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/QuadImpl.java
@@ -40,7 +40,7 @@ final class QuadImpl implements Quad {
      * Construct Quad from its constituent parts.
      * <p>
      * The objects are not changed. All mapping of BNode objects is done in
-     * {@link SimpleRDFFactory#createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)}.
+     * {@link SimpleRDF#createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)}.
      *
      * @param graphName  graphName of triple
      * @param subject   subject of triple

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java
new file mode 100644
index 0000000..91bd7da
--- /dev/null
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java
@@ -0,0 +1,114 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.simple;
+
+import java.util.UUID;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+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.Quad;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.RDF;
+import org.apache.commons.rdf.api.Triple;
+
+/**
+ * A simple implementation of RDF.
+ * <p>
+ * The {@link RDFTerm}, {@link Triple}, {@link Quad}, {@link Graph}
+ * and {@link Dataset} instances created by this factory are
+ * simple in-memory Implementations that are not thread-safe or efficient, but
+ * which may be useful for testing and prototyping purposes.
+ */
+public class SimpleRDF implements RDF {
+
+	/**
+	 * Marker interface to say that this RDFTerm is part of the 
+	 * Simple implementation. Used by {@link GraphImpl} to avoid
+	 * double remapping. 
+	 * <p>
+	 * This method is package protected to avoid any third-party
+	 * subclasses.
+	 *
+	 */
+	static interface SimpleRDFTerm extends RDFTerm {		
+	}
+	
+    /** Unique salt per instance, for {@link #createBlankNode(String)}
+     */
+    private final UUID SALT = UUID.randomUUID();
+
+    @Override
+    public BlankNode createBlankNode() {
+        return new BlankNodeImpl();
+    }
+
+    @Override
+    public BlankNode createBlankNode(String name) {
+        return new BlankNodeImpl(SALT, name);
+    }
+
+    @Override
+    public Graph createGraph() {
+        // Creates a GraphImpl object using this object as the factory for
+        // delegating all object creation to
+        return new GraphImpl(this);
+    }
+
+    @Override
+    public Dataset createDataset() throws UnsupportedOperationException {
+    	return new DatasetImpl(this);
+    }
+    
+    @Override
+    public IRI createIRI(String iri) {
+        IRI result = new IRIImpl(iri);
+        // Reuse any IRI objects already created in Types
+        return Types.get(result).orElse(result);
+    }
+
+    @Override
+    public Literal createLiteral(String literal) {
+        return new LiteralImpl(literal);
+    }
+
+    @Override
+    public Literal createLiteral(String literal, IRI dataType) {
+        return new LiteralImpl(literal, dataType);
+    }
+
+    @Override
+    public Literal createLiteral(String literal, String language) {
+        return new LiteralImpl(literal, language);
+    }
+
+    @Override
+    public Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
+                               RDFTerm object) {
+        return new TripleImpl(subject, predicate, object);
+    }
+    
+    @Override
+    public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+    		throws IllegalArgumentException {
+    	return new QuadImpl(graphName, subject, predicate, object);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
deleted file mode 100644
index d8103fe..0000000
--- a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.simple;
-
-import java.util.UUID;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-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.Quad;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDF;
-import org.apache.commons.rdf.api.Triple;
-
-/**
- * A simple implementation of RDF.
- * <p>
- * The {@link RDFTerm}, {@link Triple}, {@link Quad}, {@link Graph}
- * and {@link Dataset} instances created by this factory are
- * simple in-memory Implementations that are not thread-safe or efficient, but
- * which may be useful for testing and prototyping purposes.
- */
-public class SimpleRDFFactory implements RDF {
-
-	/**
-	 * Marker interface to say that this RDFTerm is part of the 
-	 * Simple implementation. Used by {@link GraphImpl} to avoid
-	 * double remapping. 
-	 * <p>
-	 * This method is package protected to avoid any third-party
-	 * subclasses.
-	 *
-	 */
-	static interface SimpleRDFTerm extends RDFTerm {		
-	}
-	
-    /** Unique salt per instance, for {@link #createBlankNode(String)}
-     */
-    private final UUID SALT = UUID.randomUUID();
-
-    @Override
-    public BlankNode createBlankNode() {
-        return new BlankNodeImpl();
-    }
-
-    @Override
-    public BlankNode createBlankNode(String name) {
-        return new BlankNodeImpl(SALT, name);
-    }
-
-    @Override
-    public Graph createGraph() {
-        // Creates a GraphImpl object using this object as the factory for
-        // delegating all object creation to
-        return new GraphImpl(this);
-    }
-
-    @Override
-    public Dataset createDataset() throws UnsupportedOperationException {
-    	return new DatasetImpl(this);
-    }
-    
-    @Override
-    public IRI createIRI(String iri) {
-        IRI result = new IRIImpl(iri);
-        // Reuse any IRI objects already created in Types
-        return Types.get(result).orElse(result);
-    }
-
-    @Override
-    public Literal createLiteral(String literal) {
-        return new LiteralImpl(literal);
-    }
-
-    @Override
-    public Literal createLiteral(String literal, IRI dataType) {
-        return new LiteralImpl(literal, dataType);
-    }
-
-    @Override
-    public Literal createLiteral(String literal, String language) {
-        return new LiteralImpl(literal, language);
-    }
-
-    @Override
-    public Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
-                               RDFTerm object) {
-        return new TripleImpl(subject, predicate, object);
-    }
-    
-    @Override
-    public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
-    		throws IllegalArgumentException {
-    	return new QuadImpl(graphName, subject, predicate, object);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
index 5f6f5fe..fa242b1 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
@@ -29,12 +29,12 @@ import org.apache.commons.rdf.api.Triple;
 /**
  * A Simple implementation of {@link RDFTermFactory}
  * <p>
- * This class is <strong>deprecated</strong>, use instead {@link SimpleRDFFactory}.
+ * This class is <strong>deprecated</strong>, use instead {@link SimpleRDF}.
  */
 @Deprecated
 public class SimpleRDFTermFactory implements RDFTermFactory {
 
-	private SimpleRDFFactory factory = new SimpleRDFFactory();
+	private SimpleRDF factory = new SimpleRDF();
 
 	public BlankNode createBlankNode() {
 		return factory.createBlankNode();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
index bc7f103..1abd905 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/TripleImpl.java
@@ -37,7 +37,7 @@ final class TripleImpl implements Triple {
      * Construct Triple from its constituent parts.
      * <p>
      * The objects are not changed. All mapping of BNode objects is done in
-     * {@link SimpleRDFFactory#createTriple(BlankNodeOrIRI, IRI, RDFTerm)}.
+     * {@link SimpleRDF#createTriple(BlankNodeOrIRI, IRI, RDFTerm)}.
      *
      * @param subject   subject of triple
      * @param predicate predicate of triple

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/Types.java b/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
index 8ad6df8..b6dd8ee 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/Types.java
@@ -27,7 +27,7 @@ import java.util.Set;
 /**
  * Types from the RDF and XML Schema vocabularies.
  */
-public final class Types implements IRI, SimpleRDFFactory.SimpleRDFTerm {
+public final class Types implements IRI, SimpleRDF.SimpleRDFTerm {
 
     /**
      * <tt>http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML</tt>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
index b34bc4d..e478c39 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
@@ -35,7 +35,7 @@ import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.experimental.RDFParser;
-import org.apache.commons.rdf.simple.SimpleRDFFactory;
+import org.apache.commons.rdf.simple.SimpleRDF;
 
 /**
  * Abstract RDFParser
@@ -63,7 +63,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	private static final ExecutorService threadpool = Executors.newCachedThreadPool(r -> new Thread(threadGroup, r));
 
 	// Basically only used for creating IRIs
-	private static RDF internalRdfTermFactory = new SimpleRDFFactory();
+	private static RDF internalRdfTermFactory = new SimpleRDF();
 
 	/**
 	 * Get the set {@link RDF}, if any.
@@ -418,7 +418,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 		// parseSynchronously()
 		AbstractRDFParser<T> c = clone();
 
-		// Use a fresh SimpleRDFFactory for each parse
+		// Use a fresh SimpleRDF for each parse
 		if (!c.rdfTermFactory.isPresent()) {
 			c.rdfTermFactory = Optional.of(createRDFTermFactory());
 		}
@@ -515,7 +515,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	 * @return A new {@link RDF}
 	 */
 	protected RDF createRDFTermFactory() {
-		return new SimpleRDFFactory();
+		return new SimpleRDF();
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java b/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
index 5405cef..f536594 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/package-info.java
@@ -28,10 +28,10 @@
  * testing and simple usage (e.g. prototyping).
  * <p>
  * To use this implementation, create an instance of
- * {@link org.apache.commons.rdf.simple.SimpleRDFFactory}
+ * {@link org.apache.commons.rdf.simple.SimpleRDF}
  * and use methods like
- * {@link org.apache.commons.rdf.simple.SimpleRDFFactory#createGraph} and
- * {@link org.apache.commons.rdf.simple.SimpleRDFFactory#createIRI(String)}.
+ * {@link org.apache.commons.rdf.simple.SimpleRDF#createGraph} and
+ * {@link org.apache.commons.rdf.simple.SimpleRDF#createIRI(String)}.
  * <p>
  * The {@link org.apache.commons.rdf.simple.Types} class provide constant
  * {@link org.apache.commons.rdf.api.IRI}s of the common RDF XML datatypes.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
index 67557cf..4003034 100644
--- a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
+++ b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -1 +1 @@
-org.apache.commons.rdf.simple.SimpleRDFFactory
+org.apache.commons.rdf.simple.SimpleRDF

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
index 64f5acd..3d3aad1 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
@@ -36,7 +36,7 @@ public class DefaultGraphTest extends AbstractGraphTest {
         return new RDF() {
             @Override
             public Graph createGraph() throws UnsupportedOperationException {
-                return new GraphImpl(new SimpleRDFFactory());
+                return new GraphImpl(new SimpleRDF());
             }
 
             @Override

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
index e4cdf8e..ebfdc6b 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
@@ -25,13 +25,13 @@ import org.junit.Assume;
 import org.junit.Test;
 
 /**
- * Test SimpleRDFFactory with AbstractGraphTest
+ * Test SimpleRDF with AbstractGraphTest
  */
 public class SimpleGraphTest extends AbstractGraphTest {
 
     @Override
     public RDF createFactory() {
-        return new SimpleRDFFactory();
+        return new SimpleRDF();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
index 527d7b9..3167243 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
@@ -33,7 +33,7 @@ public class SimpleNoRelativeIRIRDFTermFactoryTest extends
         AbstractRDFTermFactoryTest {
     @Override
     public RDF createFactory() {
-        return new SimpleRDFFactory() {
+        return new SimpleRDF() {
             @Override
             public IRI createIRI(String iri) {
                 if (!URI.create(iri).isAbsolute()) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
index e308f00..816eef9 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
@@ -27,7 +27,7 @@ public class SimpleRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
     @Override
     public RDF createFactory() {
-        return new SimpleRDFFactory();
+        return new SimpleRDF();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
index 08930ac..8ec0649 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
@@ -31,10 +31,10 @@ public class SimpleServiceLoaderTest {
     public void testServiceLoaderLookup() {
         ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
         for (RDF impl : loader) {
-        	if (impl instanceof SimpleRDFFactory) {
+        	if (impl instanceof SimpleRDF) {
         		return; // yay
         	}
         }
-        fail("SimpleRDFFactory not found in ServiceLoader");        
+        fail("SimpleRDF not found in ServiceLoader");        
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
index 8af3034..ca4925f 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
@@ -57,7 +57,7 @@ public class TestWritingGraph {
 
     @BeforeClass
     public static void createGraph() throws Exception {
-        factory = new SimpleRDFFactory();
+        factory = new SimpleRDF();
         graph = factory.createGraph();
         IRI subject = factory.createIRI("subj");
         IRI predicate = factory.createIRI("pred");

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/790b6059/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
index 732df71..fed76b3 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
@@ -38,7 +38,7 @@ import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.DummyRDFParserBuilder;
-import org.apache.commons.rdf.simple.SimpleRDFFactory;
+import org.apache.commons.rdf.simple.SimpleRDF;
 import org.apache.commons.rdf.simple.Types;
 import org.junit.After;
 import org.junit.Before;
@@ -48,7 +48,7 @@ import org.junit.rules.ExpectedException;
 
 public class AbstractRDFParserTest {
 
-	private RDF factory = new SimpleRDFFactory();
+	private RDF factory = new SimpleRDF();
 	
 	private DummyRDFParserBuilder dummyParser = new DummyRDFParserBuilder();
 	private Path testNt;


[10/22] incubator-commonsrdf git commit: RDFFactory documentation

Posted by st...@apache.org.
RDFFactory documentation


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/f229c171
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/f229c171
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/f229c171

Branch: refs/heads/COMMONSRDF-46
Commit: f229c1711fb70ad934d24b1d7530ecfd5cac5ba3
Parents: 102a9fc
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 18:03:24 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 18:03:24 2016 +0100

----------------------------------------------------------------------
 src/site/markdown/userguide.md | 74 ++++++++++++++++++-------------------
 1 file changed, 37 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/f229c171/src/site/markdown/userguide.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/userguide.md b/src/site/markdown/userguide.md
index a18436d..8451ab9 100644
--- a/src/site/markdown/userguide.md
+++ b/src/site/markdown/userguide.md
@@ -28,8 +28,8 @@ Commons RDF [API](apidocs/).
     * [RDF concepts](#RDF_concepts)
 * [Using Commons RDF from Maven](#Using_Commons_RDF_from_Maven)
 * [Creating Commons RDF instances](#Creating_Commons_RDF_instances)
-  * [Creating a RDFTermFactory](#Creating_a_RDFTermFactory)
-  * [Using a RDFTermFactory](#Using_a_RDFTermFactory)
+  * [Creating a RDFFactory](#Creating_a_RDFFactory)
+  * [Using a RDFFactory](#Using_a_RDFFactory)
 * [RDF terms](#RDF_terms)
     * [N-Triples string](#N-Triples_string)
     * [IRI](#IRI)
@@ -146,25 +146,25 @@ see the [download page](download.html) for the latest version._
 To create instances of Commons RDF interfaces like
 [`Graph`](apidocs/org/apache/commons/rdf/api/Graph.html) and
 [`IRI`](apidocs/org/apache/commons/rdf/api/IRI.html) you will need a
-[RDFTermFactory](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html).
+[RDFFactory](apidocs/org/apache/commons/rdf/api/RDFFactory.html).
 
-### Creating a RDFTermFactory
+### Creating a RDFFactory
 
 How to get an instance of this factory is implementation-specific, for the
 _simple_ implementation, you can construct the
-[SimpleRDFTermFactory](apidocs/org/apache/commons/rdf/simple/SimpleRDFTermFactory.html):
+[SimpleRDFFactory](apidocs/org/apache/commons/rdf/simple/SimpleRDFFactory.html):
 
 ```java
 import org.apache.commons.rdf.api.*;
-import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
+import org.apache.commons.rdf.simple.SimpleRDFFactory;
 // ...
-RDFTermFactory factory = new SimpleRDFTermFactory();
+RDFFactory factory = new SimpleRDFFactory();
 ```
 
 If you don't want to depend on instantiating a concrete implementation,
 you can alternatively use the
 [ServiceLoader](http://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html)
-to lookup any `RDFTermFactory` implementations found on the classpath:
+to lookup any `RDFFactory` implementations found on the classpath:
 
 ```java
 import java.util.Iterator;
@@ -172,16 +172,16 @@ import java.util.ServiceLoader;
 
 import org.apache.commons.rdf.api.*;
 // ...
-ServiceLoader<RDFTermFactory> loader = ServiceLoader.load(RDFTermFactory.class);
-Iterator<RDFTermFactory> iterator = loader.iterator();
-RDFTermFactory factory = iterator.next();
+ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
+Iterator<RDFFactory> iterator = loader.iterator();
+RDFFactory factory = iterator.next();
 ```
 
 Note that the `ServiceLoader` approach above might not work well within
 split classloader systems like OSGi.
 
 
-### Using a RDFTermFactory
+### Using a RDFFactory
 
 Using the factory you can construct
 any [RDFTerm](apidocs/org/apache/commons/rdf/api/RDFTerm.html), e.g. to create a
@@ -201,12 +201,12 @@ You can also create a stand-alone [Triple](apidocs/org/apache/commons/rdf/api/Tr
 Triple triple = factory.createTriple(aliceBlankNode, nameIri, aliceLiteral);
 ```
 
-The [RDFTermFactory](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html) also
+The [RDFFactory](apidocs/org/apache/commons/rdf/api/RDFFactory.html) also
 contains more specific variants of some of the methods above, e.g. to create a
 typed literal.
 
 Note that for any given implementation, `RDFTerm` instances need not be created
-using a `RDFTermFactory`. More likely, implementation-specific methods might create these
+using a `RDFFactory`. More likely, implementation-specific methods might create these
 objects as part of data parsing, storage lookup and queries.
 
 
@@ -292,7 +292,7 @@ _predicate_ or _object_ of a [Triple](apidocs/org/apache/commons/rdf/api/Triple.
 [Quad](apidocs/org/apache/commons/rdf/api/Quad.html),
 where it can also be used a _graph name_.
 
-To create an `IRI` instance from a `RDFTermFactory`, use [createIRI](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createIRI-java.lang.String-):
+To create an `IRI` instance from a `RDFFactory`, use [createIRI](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createIRI-java.lang.String-):
 
 ```java
 IRI iri = factory.createIRI("http://example.com/alice");
@@ -353,8 +353,8 @@ where it can also be used a _graph name_.
 
 To create a new
 [BlankNode](apidocs/org/apache/commons/rdf/api/BlankNode.html) instance from a
-`RDFTermFactory`, use
-[createBlankNode](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createBlankNode--):
+`RDFFactory`, use
+[createBlankNode](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createBlankNode--):
 
 ```java
 BlankNode bnode = factory.createBlankNode();
@@ -377,9 +377,9 @@ System.out.println(bnode.equals(factory.createBlankNode()));
 
 Sometimes it can be beneficial to create a blank node based on a
 localized _name_, without needing to keep object references
-to earlier `BlankNode` instances. For that purpose, `RDFTermFactory`
+to earlier `BlankNode` instances. For that purpose, `RDFFactory`
 may support the
-[expanded createBlankNode](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createBlankNode-java.lang.String-)
+[expanded createBlankNode](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createBlankNode-java.lang.String-)
 method:
 
 ```java
@@ -408,12 +408,12 @@ System.out.println(b1.equals(factory.createBlankNode("b1")));
 ```
 > `true`
 
-That means that care should be taken to create a new `RDFTermFactory` if making
+That means that care should be taken to create a new `RDFFactory` if making
 "different" blank nodes (e.g. parsed from a different RDF file)
 which accidfentally might have the same name:
 
 ```java
-System.out.println(b1.equals(new SimpleRDFTermFactory().createBlankNode("b1")));
+System.out.println(b1.equals(new SimpleRDFFactory().createBlankNode("b1")));
 ```
 > `false`
 
@@ -455,8 +455,8 @@ an _object_ of a [Triple](apidocs/org/apache/commons/rdf/api/Triple.html#getObje
 or [Quad](apidocs/org/apache/commons/rdf/api/Quad.html#getObject--)
 
 To create a [Literal](apidocs/org/apache/commons/rdf/api/Literal.html) instance
-from an `RDFTermFactory`, use
-[createLiteral](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createLiteral-java.lang.String-):
+from an `RDFFactory`, use
+[createLiteral](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createLiteral-java.lang.String-):
 
 ```java
 Literal literal = factory.createLiteral("Hello world!");
@@ -515,7 +515,7 @@ literal</a> data type.
 To create a literal with any other
 [datatype](http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri) (e.g. `xsd:double`),
 then create the datatype `IRI` and pass it to the expanded
-[createLiteral](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createLiteral-java.lang.String-org.apache.commons.rdf.api.IRI-):
+[createLiteral](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createLiteral-java.lang.String-org.apache.commons.rdf.api.IRI-):
 
 ```java
 IRI xsdDouble = factory.createIRI("http://www.w3.org/2001/XMLSchema#double");
@@ -552,7 +552,7 @@ System.out.println(Types.XSD_STRING.equals(literal.getDatatype()));
 
 Literals may be created with an associated
 [language tag](http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string)
-using the expanded [createLiteral](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createLiteral-java.lang.String-java.lang.String-):
+using the expanded [createLiteral](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createLiteral-java.lang.String-java.lang.String-):
 
 ```java
 Literal inSpanish = factory.createLiteral("�Hola, Mundo!", "es");
@@ -610,8 +610,8 @@ RDF 1.1 consists of:
 
 
 To construct a [Triple](apidocs/org/apache/commons/rdf/api/Triple.html) from a
-`RDFTermFactory`, use
-[createTriple](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createTriple-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-):
+`RDFFactory`, use
+[createTriple](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createTriple-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-):
 
 ```java
 BlankNodeOrIRI subject = factory.createBlankNode();
@@ -700,7 +700,7 @@ Commons RDF represents such statements using the class [Quad](apidocs/org/apache
 * The [graph name](apidocs/org/apache/commons/rdf/api/Quad.html#getGraphName--), which is an [IRI](apidocs/org/apache/commons/rdf/api/IRI.html) or a [BlankNode](apidocs/org/apache/commons/rdf/api/BlankNode.html); wrapped as an `java.util.Optional`
 
 
-To create a `Quad`, use [createQuad](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createQuad-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-):
+To create a `Quad`, use [createQuad](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createQuad-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-):
 
 ```
 BlankNodeOrIRI graph = factory.createIRI("http://example.com/graph");
@@ -810,7 +810,7 @@ System.out.println(quadAsTriple.equals(otherQuad.asTriple());
 > `true`
 
 To create a triple from a quad, you will need to use
-[RDFTermFactory.createQuad](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createQuad-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-)
+[RDFFactory.createQuad](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createQuad-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-)
 providing the desired graph name:
 
 ```
@@ -867,8 +867,8 @@ A [graph](http://www.w3.org/TR/rdf11-concepts/#section-rdf-graph)
 is a collection of triples.
 
 To create a [Graph](apidocs/org/apache/commons/rdf/api/Graph.html) instance
-from a `RDFTermFactory`, use
-[createGraph()](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createGraph--):
+from a `RDFFactory`, use
+[createGraph()](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createGraph--):
 
 ```java
 Graph graph = factory.createGraph();
@@ -1037,8 +1037,8 @@ A [dataset](https://www.w3.org/TR/rdf11-concepts/#section-dataset)
 is a collection of quads, or if you like, a collection of `Graph`s.
 
 To create a [Dataset](apidocs/org/apache/commons/rdf/api/Dataset.html) instance
-from a `RDFTermFactory`, use
-[createDataset()](apidocs/org/apache/commons/rdf/api/RDFTermFactory.html#createDataset--):
+from a `RDFFactory`, use
+[createDataset()](apidocs/org/apache/commons/rdf/api/RDFFactory.html#createDataset--):
 
 ```java
 Dataset dataset = factory.createDataset();
@@ -1065,7 +1065,7 @@ dataset.remove(quad);
 
 
 The convenience method [add(g,s,p,o)](apidocs/org/apache/commons/rdf/api/Dataset.html#add-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-) take an additional `BlankNodeOrIRI` parameter for the
-graph name - matching `RDFTermFactory.createQuad(g,s,p,o)`.
+graph name - matching `RDFFactory.createQuad(g,s,p,o)`.
 
 Note that the expanded pattern methods like [contains(g,s,p,o)](apidocs/org/apache/commons/rdf/api/Dataset.html#contains-java.util.Optional-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-) and
 [stream(g,s,p,o)](apidocs/org/apache/commons/rdf/api/Dataset.html#stream-java.util.Optional-org.apache.commons.rdf.api.BlankNodeOrIRI-org.apache.commons.rdf.api.IRI-org.apache.commons.rdf.api.RDFTerm-) uses `null` as a wildcard pattern, and
@@ -1206,7 +1206,7 @@ implementations provided by Commons RDF
 Different RDF frameworks might have different mechanisms to retrieve a Commons
 RDF objects like `Graph` or `Triple` (e.g. returned from a query).
 
-Commons RDF provides a `RDFTermFactory` interface as an interoperable
+Commons RDF provides a `RDFFactory` interface as an interoperable
 way to create new instances, but does not mandate how the factory
 itself should be instantiated (e.g. a factory might be returned for an
 open network connection).
@@ -1219,10 +1219,10 @@ RDF interfaces, Commons RDF objects are intended to be cross-compatible. Thus a
 client would be able to mix and match objects from multiple implementations:
 
 ```java
-import com.example.foo.FooRDFTermFactory;
+import com.example.foo.FooRDFFactory;
 import net.example.bar.BarGraph;
 
-RDFTermFactory fooFactory = new FooRDFTermFactory();
+RDFFactory fooFactory = new FooRDFFactory();
 FooGraph g1 = (FooGraph) fooFactory.createGraph();
 // Foo-specific load method
 g1.load("dataset.ttl");


[14/22] incubator-commonsrdf git commit: JenaFactory -> JenaRDF

Posted by st...@apache.org.
JenaFactory -> JenaRDF


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/384a8337
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/384a8337
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/384a8337

Branch: refs/heads/COMMONSRDF-46
Commit: 384a83377e8f643d61ffc91d202e84053450fa55
Parents: ff94b9d
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:44:43 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 00:44:43 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jena/JenaFactory.java    | 727 -------------------
 .../org/apache/commons/rdf/jena/JenaRDF.java    | 727 +++++++++++++++++++
 .../rdf/jena/experimental/JenaRDFParser.java    |  20 +-
 .../commons/rdf/jena/impl/AbstractQuadLike.java |   6 +-
 .../rdf/jena/impl/InternalJenaFactory.java      |   4 +-
 .../commons/rdf/jena/impl/JenaDatasetImpl.java  |  14 +-
 .../commons/rdf/jena/impl/JenaGraphImpl.java    |  12 +-
 .../org.apache.commons.rdf.api.RDFFactory       |   2 +-
 .../commons/rdf/jena/JenaServiceLoaderTest.java |   4 +-
 .../apache/commons/rdf/jena/TestGraphJena.java  |   2 +-
 .../jena/TestJenaGraphToCommonsRDFGraph.java    |   4 +-
 .../commons/rdf/jena/TestRDFParserBuilder.java  |   2 +-
 .../rdf/jena/TestRDFTermFactoryJena.java        |   2 +-
 13 files changed, 763 insertions(+), 763 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
deleted file mode 100644
index 4832e44..0000000
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
+++ /dev/null
@@ -1,727 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.jena;
-
-import java.util.Optional;
-import java.util.UUID;
-import java.util.function.Consumer;
-
-import org.apache.commons.rdf.api.BlankNode;
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-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.Quad;
-import org.apache.commons.rdf.api.QuadLike;
-import org.apache.commons.rdf.api.RDFSyntax;
-import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDF;
-import org.apache.commons.rdf.api.Triple;
-import org.apache.commons.rdf.api.TripleLike;
-import org.apache.commons.rdf.jena.impl.InternalJenaFactory;
-import org.apache.jena.datatypes.RDFDatatype;
-import org.apache.jena.datatypes.xsd.XSDDatatype;
-import org.apache.jena.graph.Node;
-import org.apache.jena.graph.NodeFactory;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.riot.RDFLanguages;
-import org.apache.jena.riot.system.StreamRDF;
-import org.apache.jena.riot.system.StreamRDFBase;
-import org.apache.jena.sparql.core.DatasetGraph;
-import org.apache.jena.sparql.graph.GraphFactory;
-
-/**
- * RDF with Jena-backed objects.
- * <p>
- * This factory can also convert existing objects from/to Jena with methods like
- * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
- * <p>
- * For the purpose of {@link BlankNode} identity, this factory will use an internal
- * {@link UUID} as a salt. See {@link BlankNode#uniqueReference()} for details.
- * 
- * @see RDF
- */
-public final class JenaFactory implements RDF {
-
-	private static InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
-	
-	private final UUID salt;
-
-	/**
-	 * Create a JenaFactory.
-	 * <p>
-	 * This constructor will use a randomly generated {@link UUID} as a salt 
-	 * for the purposes of {@link BlankNode} identity, see {@link #getSalt()}.
-	 */
-	public JenaFactory() {
-		this.salt = UUID.randomUUID();
-	}
-
-	/**
-	 * Create a JenaFactory.
-	 * <p>
-	 * This constructor will use the specified {@link UUID} as a salt for
-	 * the purposes of {@link BlankNode} identity, and should only be used in
-	 * cases where predictable and consistent
-	 * {@link BlankNode#uniqueReference()} are important.
-	 * 
-	 * @param salt
-	 *            {@link UUID} to use as salt for {@link BlankNode} equality
-	 */	
-	public JenaFactory(UUID salt) {
-		this.salt = salt;
-	}
-
-	@Override
-	public JenaBlankNode createBlankNode() {
-		return internalJenaFactory.createBlankNode(getSalt());
-	}
-
-	@Override
-	public JenaBlankNode createBlankNode(String name) {
-		return internalJenaFactory.createBlankNode(name, getSalt());
-	}
-	
-	@Override
-	public JenaDataset createDataset() {
-		return internalJenaFactory.createDataset(getSalt());
-	}
-
-	@Override
-	public JenaGraph createGraph() {
-		return internalJenaFactory.createGraph(getSalt());
-	}
-
-	@Override
-	public JenaIRI createIRI(String iri) {
-		validateIRI(iri);
-		return internalJenaFactory.createIRI(iri);
-	}
-
-	@Override
-	public JenaLiteral createLiteral(String lexicalForm) {
-		return internalJenaFactory.createLiteral(lexicalForm);
-	}
-
-	@Override
-	public JenaLiteral createLiteral(String lexicalForm, IRI dataType) {
-		return internalJenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
-	}
-
-	@Override
-	public JenaLiteral createLiteral(String lexicalForm, String languageTag) {
-		validateLang(languageTag);
-		return internalJenaFactory.createLiteralLang(lexicalForm, languageTag);
-	}
-
-	@Override
-	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
-		return internalJenaFactory.createTriple(subject, predicate, object);
-	}
-	
-	@Override
-	public JenaQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
-			throws IllegalArgumentException, UnsupportedOperationException {
-		return internalJenaFactory.createQuad(subject, predicate, object, graphName);
-	}
-
-	/**
-	 * Create a generalized Jena triple.
-	 * <p>
-	 * The <em>generalized triple</em> supports any {@link RDFTerm} as its
-	 * {@link TripleLike#getSubject()} {@link TripleLike#getPredicate()} or
-	 * {@link TripleLike#getObject()}.
-	 *
-	 * @see #createTriple(BlankNodeOrIRI, IRI, RDFTerm)
-	 * @see #createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
-	 * 
-	 * @param subject
-	 *            The subject of the statement
-	 * @param predicate
-	 *            The predicate of the statement
-	 * @param object
-	 *            The object of the statement
-	 * @return Generalized {@link TripleLike}. Note that the generalized triple
-	 *         does <strong>not</strong> implement {@link Triple#equals(Object)}
-	 *         or {@link Triple#hashCode()}.
-	 */
-	public JenaGeneralizedTripleLike createGeneralizedTriple(
-			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
-		return internalJenaFactory.createGeneralizedTriple(subject, predicate, object);
-	}
-
-	/**
-	 * Create a generalized Jena quad.
-	 * <p>
-	 * The <em>generalized quad</em> supports any {@link RDFTerm} as its
-	 * {@link QuadLike#getSubject()} {@link QuadLike#getPredicate()},
-	 * {@link QuadLike#getObject()} or {@link QuadLike#getObject()}.
-	 * 
-	 * @see #createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)
-	 * @see #createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
-	 * 
-	 * @param subject
-	 *            The subject of the statement
-	 * @param predicate
-	 *            The predicate of the statement
-	 * @param object
-	 *            The object of the statement
-	 * @param graphName
-	 *            The graph name of the statement
-	 * @return Generalized {@link QuadLike}. Note that the generalized quad does
-	 *         <strong>not</strong> implement {@link Quad#equals(Object)} or
-	 *         {@link Quad#hashCode()}.
-	 */
-	public JenaGeneralizedQuadLike createGeneralizedQuad(
-			RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
-		return internalJenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
-	}	
-	/**
-	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
-	 * <p>
-	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
-	 * If {@link Node#isURI()}, the returned value is a IRI. If {$@link Node#isBlank()},
-	 * the returned value is a {@link BlankNode}, which will use a {@link UUID}
-	 * salt from this {@link JenaFactory} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @see #fromJena(RDF, Node)
-	 * 
-	 * @param node
-	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
-	 *            <code>true</code>.
-	 * @return Adapted {@link JenaRDFTerm}
-	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
-	 *             if the node is not concrete or represents a variable in Jena.
-	 */
-	public JenaRDFTerm fromJena(Node node) throws ConversionException {
-		return internalJenaFactory.fromJena(node, getSalt());
-	}
-
-	/**
-	 * Convert from Jena {@link Node} to any Commons RDF implementation.
-	 * <p>
-	 * Note that if the {@link Node#isBlank()}, then the factory's 
-	 * {@link RDF#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDF} instance
-	 * for multiple conversion sessions.
-	 * 
-	 * @see #fromJena(Node)
-	 * 
-	 * @param factory {@link RDF} to use for creating {@link RDFTerm}.
-	 * @param node
-	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
-	 *            <code>true</code>.
-	 * @return Adapted {@link RDFTerm}
-	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
-	 *             if the node is not concrete or represents a variable in Jena.
-	 */
-	public static RDFTerm fromJena(RDF factory, Node node) {
-		if (node == null) {
-			return null;
-		}
-		if (factory instanceof JenaFactory) {
-			// No need to convert, just wrap
-			return ((JenaFactory) factory).fromJena(node);
-		}
-		if (node.isURI())
-			return factory.createIRI(node.getURI());
-		if (node.isLiteral()) {
-			String lang = node.getLiteralLanguage();
-			if (lang != null && !lang.isEmpty())
-				return factory.createLiteral(node.getLiteralLexicalForm(), lang);
-			if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring))
-				return factory.createLiteral(node.getLiteralLexicalForm());
-			IRI dt = factory.createIRI(node.getLiteralDatatype().getURI());
-			return factory.createLiteral(node.getLiteralLexicalForm(), dt);
-		}
-		if (node.isBlank())
-			// The factory
-			return factory.createBlankNode(node.getBlankNodeLabel());
-		throw new ConversionException("Node is not a concrete RDF Term: " + node);
-	}	
-	
-	/**
-	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
-	 * <p>
-	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link JenaFactory} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(RDF, org.apache.jena.graph.Triple)
-	 * 
-	 * @param triple
-	 *            Jena {@link org.apache.jena.graph.Triple} to adapt
-	 * @return Adapted {@link JenaTriple}
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete or the triple
-	 *             is a generalized triple
-	 */
-	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return internalJenaFactory.fromJena(triple, getSalt());
-	}
-
-	/**
-	 * Adapt a generalized Jena {@link org.apache.jena.graph.Triple} to a CommonsRDF {@link TripleLike}.
-	 * <p>
-	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
-	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}.
-	 * <p>
-	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link JenaFactory} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(RDF, org.apache.jena.graph.Triple)
-	 * 
-	 * @param triple
-	 *            Jena triple
-	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
-	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
-	 *         {@link Triple#hashCode()}.
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete
-	 */
-	public JenaTripleLike fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
-		return internalJenaFactory.fromJenaGeneralized(triple, getSalt());
-	}
-
-	/**
-	 * Adapt a generalized Jena {@link org.apache.jena.sparql.core.Quad} to a CommonsRDF {@link QuadLike}.
-	 * <p>
-	 * The generalized quad supports any {@link RDFTerm} as its 
-	 * {@link QuadLike#getGraphName()}, 
-	 * {@link QuadLike#getSubject()}
-	 * {@link QuadLike#getPredicate()} or 
-	 * {@link QuadLike#getObject()}. 
-	 * <p>
-	 * If the Jena quad contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link JenaFactory} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 *
-	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
-	 * @see #fromJenaGeneralized(org.apache.jena.graph.Triple)
-	 * 
-	 * @param quad
-	 *            Jena quad
-	 * @return Adapted {@link QuadLike}. Note that the generalized quad does
-	 *         <strong>not</strong> implement {@link Quad#equals(Object)} or
-	 *         {@link Quad#hashCode()}.
-	 * @throws ConversionException
-	 *             if any of the quad nodes are not concrete
-	 */
-	public JenaQuadLike<RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad) throws ConversionException {
-		return internalJenaFactory.fromJenaGeneralized(quad, getSalt());
-	}
-	
-	/**
-	 * Convert from Jena {@link org.apache.jena.graph.Triple} to a Commons RDF
-	 * {@link Triple}.
-	 * <p>
-	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
-	 * {@link RDF#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDF} instance
-	 * for multiple conversion sessions.
-	 * 
-	 * @see #fromJena(org.apache.jena.graph.Triple)
-	 *
-	 * @param factory {@link RDF} to use for creating the {@link Triple} and its
-	 * {@link RDFTerm}s.
-	 * @param triple
-	 *            Jena triple
-	 * @return Converted triple
-	 * @throws ConversionException
-	 *             if any of the triple's nodes are not concrete or the triple
-	 *             is a generalized triple
-	 */
-	public static Triple fromJena(RDF factory, org.apache.jena.graph.Triple triple) 
-			throws ConversionException{
-		if (factory instanceof JenaFactory) {
-			// No need to convert, just wrap
-			return ((JenaFactory) factory).fromJena(triple);
-		}
-		final BlankNodeOrIRI subject;
-		final IRI predicate;
-		try {
-			subject = (BlankNodeOrIRI) fromJena(factory, triple.getSubject());
-			predicate = (IRI) fromJena(factory, triple.getPredicate());
-		} catch (ClassCastException ex) {
-			throw new ConversionException("Can't convert generalized triple: " + triple, ex);
-		}
-		RDFTerm object = fromJena(factory, triple.getObject());
-		return factory.createTriple(subject, predicate, object);
-	}
-
-	/**
-	 * Adapt an existing Jena {@link org.apache.jena.sparql.core.Quad} to CommonsRDF {@link Quad}.
-	 * <p>
-	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link JenaFactory} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param quad
-	 *            Jena quad
-	 * @return Adapted quad
-	 */	
-	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad) {
-		return internalJenaFactory.fromJena(quad, getSalt());
-	}
-
-	/**
-	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF
-	 * {@link Graph}.
-	 * <p>
-	 * This does not take a copy, changes to the CommonsRDF Graph are reflected
-	 * in the jena graph, which is accessible from
-	 * {@link JenaGraph#asJenaGraph()}.
-	 * <p>
-	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this
-	 * {@link JenaFactory} instance in combination with
-	 * {@link Node#getBlankNodeId()} for the purpose of its
-	 * {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param graph
-	 *            Jena {@link org.apache.jena.graph.Graph} to adapt
-	 * @return Adapted {@link JenaGraph}
-	 */
-	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
-		return internalJenaFactory.fromJena(graph, getSalt());
-	}
-
-	/**
-	 * Adapt an existing Jena {@link org.apache.jena.rdf.model.Model} to CommonsRDF {@link Graph}. 
-	 * <p>
-	 * This does not ake a copy, changes to the CommonsRDF Graph are reflected in the jena
-	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
-	 * <p>
-	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link JenaFactory} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-	 * @param model
-	 *            Jena {@link org.apache.jena.rdf.model.Model} to adapt
-	 * @return Adapted {@link JenaGraph}
-	 */
-	public JenaGraph fromJena(org.apache.jena.rdf.model.Model model) {
-		return internalJenaFactory.fromJena(model, getSalt());
-	}	
-
-	/**
-	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
-	 * <p>
-	 * This does not
-	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
-	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
-	 * <p>
-	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link JenaFactory} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param datasetGraph Jena {@link DatasetGraph} to adapt
-	 * @return Adapted {@link JenaDataset} 
-	 */
-	public JenaDataset fromJena(DatasetGraph datasetGraph) {
-		return internalJenaFactory.fromJena(datasetGraph, getSalt());
-	}	
-	
-	/**
-	 * Adapt an existing Jena {@link org.apache.jena.query.Dataset} to CommonsRDF {@link Dataset}. 
-	 * <p>
-	 * This does not
-	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
-	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
-	 * <p>
-	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
-	 * {@link BlankNode} will use a {@link UUID} salt from this 
-	 * {@link JenaFactory} instance
-	 * in combination with {@link Node#getBlankNodeId()} 
-	 * for the purpose of its {@link BlankNode#uniqueReference()}.
-	 * 
-	 * @param datasetGraph Jena {@link org.apache.jena.query.Dataset} to adapt
-	 * @return Adapted {@link JenaDataset} 
-	 */
-	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
-		return internalJenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
-	}		
-
-	/**
-	 * Convert from Jena {@link org.apache.jena.sparql.core.Quad} to a Commons
-	 * RDF {@link Quad}.
-	 * <p>
-	 * Note that if any of the quad's nodes {@link Node#isBlank()}, then the
-	 * factory's {@link RDF#createBlankNode(String)} will be used,
-	 * meaning that care should be taken if reusing an {@link RDF}
-	 * instance for multiple conversion sessions.
-	 * 
-	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
-	 * @see #fromJenaGeneralized(org.apache.jena.sparql.core.Quad)
-	 *
-	 * @param factory
-	 *            {@link RDF} to use for creating the {@link Triple}
-	 *            and its {@link RDFTerm}s.
-	 * @param quad
-	 *            Jena {@link org.apache.jena.sparql.core.Quad} to adapt
-	 * @return Converted {@link Quad}
-	 * @throws ConversionException
-	 *             if any of the quad's nodes are not concrete or the quad
-	 *             is a generalized quad
-	 */
-	public static Quad fromJena(RDF factory, org.apache.jena.sparql.core.Quad quad) {
-		if (factory instanceof JenaFactory) {
-			// No need to convert, just wrap
-			return ((JenaFactory) factory).fromJena(quad);
-		}
-		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
-		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));
-		IRI predicate = (IRI) (fromJena(factory, quad.getPredicate()));
-		RDFTerm object = fromJena(factory, quad.getObject());
-		return factory.createQuad(graphName, subject, predicate, object);
-	}
-
-	/**
-	 * Return {@link RDFSyntax} corresponding to a Jena {@link Lang}.
-	 * 
-	 * @param lang {@link Lang} to convert
-	 * @return Matched {@link RDFSyntax}, otherwise {@link Optional#empty()}
-	 */
-	public Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
-		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
-	}
-
-	/**
-	 * Return Jena {@link Lang} corresponding to a {@link RDFSyntax}.
-	 * 
-	 * @param rdfSyntax {@link RDFSyntax} to convert
-	 * @return Matched {@link Lang}, otherwise {@link Optional#empty()}
-	 */
-	public Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
-		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
-	}
-
-	/**
-	 * Create a {@link StreamRDF} instance that inserts the converted
-	 * {@link Quad}s. into a the provided {@link Consumer}.
-	 * <p>
-	 * The returned {@link StreamRDF} can be used for instance with Jena's
-	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
-	 * 
-	 * @param factory
-	 *            {@link RDF} to use for creating {@link RDFTerm}s
-	 *            and {@link Quad}s.
-	 * @param consumer
-	 *            A {@link Consumer} of {@link Quad}s
-	 * @return A {@link StreamRDF} that will stream converted quads to the
-	 *         consumer
-	 */
-	public static StreamRDF streamJenaToCommonsRDF(RDF factory, Consumer<Quad> consumer) {
-		return new StreamRDFBase() {
-			@Override
-			public void quad(org.apache.jena.sparql.core.Quad quad) {
-				consumer.accept(fromJena(factory, quad));
-			}
-		};
-	}
-	
-	/**
-	 * Create a {@link StreamRDF} instance that inserts generalized
-	 * {@link TripleLike}s. into a the provided {@link Consumer}.
-	 * <p>
-	 * A generalized triple allows any {@link RDFTerm} for
-	 * {@link TripleLike#getSubject()}, {@link TripleLike#getPredicate()} and
-	 * {@link TripleLike#getObject()}.
-	 * <p>
-	 * The returned {@link StreamRDF} can be used for instance with Jena's
-	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
-	 * 
-	 * @param generalizedConsumer
-	 *            A {@link Consumer} of generalized {@link TripleLike}s
-	 * @return A {@link StreamRDF} that will stream generalized triples to the
-	 *         consumer
-	 */
-	public StreamRDF streamJenaToGeneralizedTriple(Consumer<TripleLike> generalizedConsumer) {
-		return new StreamRDFBase() {			
-			@Override
-			public void triple(org.apache.jena.graph.Triple triple) {
-				generalizedConsumer.accept(fromJenaGeneralized(triple));
-			}
-		};
-	}	
-
-	/**
-	 * Create a {@link StreamRDF} instance that inserts generalized
-	 * {@link QuadLike}s. into a the provided {@link Consumer}.
-	 * <p>
-	 * A generalized quad allows any {@link RDFTerm} for
-	 * {@link QuadLike#getSubject()}, {@link TripleLike#getPredicate()},
-	 * {@link QuadLike#getObject()} and {@link QuadLike#getGraphName()} .
-	 * <p>
-	 * The returned {@link StreamRDF} can be used for instance with Jena's
-	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
-	 * 
-	 * @param generalizedConsumer
-	 *            A {@link Consumer} of generalized {@link QuadLike}s
-	 * @return A {@link StreamRDF} that will stream generalized quads to the
-	 *         consumer
-	 */
-	public StreamRDF streamJenaToGeneralizedQuad(Consumer<QuadLike<RDFTerm>> generalizedConsumer) {
-		return new StreamRDFBase() {
-			@Override
-			public void quad(org.apache.jena.sparql.core.Quad quad) {
-				generalizedConsumer.accept(fromJenaGeneralized(quad));
-			}
-		};
-	}	
-	
-	/**
-	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
-	 * originally, return that original object else create a copy using Jena
-	 * objects.
-	 * 
-	 * @param graph Commons RDF {@link Graph} to convert
-	 * @return Converted Jena {@link org.apache.jena.graph.Graph}
-	 */
-	public org.apache.jena.graph.Graph toJena(Graph graph) {
-		if (graph instanceof JenaGraph)
-			return ((JenaGraph) graph).asJenaGraph();
-		org.apache.jena.graph.Graph g = GraphFactory.createGraphMem();
-		graph.stream().forEach(t -> g.add(toJena(t)));
-		return g;
-	}
-
-	/**
-	 * Convert a CommonsRDF RDFTerm to a Jena Node. If the RDFTerm was from Jena
-	 * originally, return that original object, else create a copy using Jena
-	 * objects.
-	 * 
-	 * @param term Commons RDF {@link RDFTerm} to convert
-	 * @return Converted Jena {@link Node}
-	 */
-	public Node toJena(RDFTerm term) {
-		if (term == null) {
-			return null;
-		}
-		if (term instanceof JenaRDFTerm)
-			// TODO: What if it's a JenaBlankNodeImpl with
-			// a different salt? Do we need to rewrite the
-			// jena blanknode identifier?
-			return ((JenaRDFTerm) term).asJenaNode();
-
-		if (term instanceof IRI)
-			return NodeFactory.createURI(((IRI) term).getIRIString());
-
-		if (term instanceof Literal) {
-			Literal lit = (Literal) term;
-			RDFDatatype dt = NodeFactory.getType(lit.getDatatype().getIRIString());
-			String lang = lit.getLanguageTag().orElse("");
-			return NodeFactory.createLiteral(lit.getLexicalForm(), lang, dt);
-		}
-
-		if (term instanceof BlankNode) {
-			String id = ((BlankNode) term).uniqueReference();
-			return NodeFactory.createBlankNode(id);
-		}
-		throw new ConversionException("Not a concrete RDF Term: " + term);
-	}
-
-	/**
-	 * Convert a CommonsRDF {@link Triple} to a Jena
-	 * {@link org.apache.jena.graph.Triple}.
-	 * <p>
-	 * If the triple was from Jena originally, return that original object, else
-	 * create a copy using Jena objects.
-	 * 
-	 * @param triple Commons RDF {@link Triple} to convert
-	 * @return Converted Jena {@link org.apache.jena.graph.Triple}
-	 */
-	public org.apache.jena.graph.Triple toJena(Triple triple) {
-		if (triple instanceof JenaTriple)
-			return ((JenaTriple) triple).asJenaTriple();
-		return org.apache.jena.graph.Triple.create(
-				toJena(triple.getSubject()), 
-				toJena(triple.getPredicate()),
-				toJena(triple.getObject()));
-	}
-
-
-	/**
-	 * Convert a CommonsRDF {@link Quad} to a Jena
-	 * {@link org.apache.jena.sparql.core.Quad}.
-	 * <p>
-	 * If the quad was from Jena originally, return that original object,
-	 * otherwise create a copy using Jena objects.
-	 *
-	 * @param quad Commons RDF {@link Quad} to convert
-	 * @return Converted Jena {@link org.apache.jena.sparql.core.Quad}
-	 */
-	public org.apache.jena.sparql.core.Quad toJena(Quad quad) {
-		if (quad instanceof JenaQuad) {
-			return ((JenaQuad) quad).asJenaQuad();
-		}
-		return org.apache.jena.sparql.core.Quad.create(
-				toJena(quad.getGraphName().orElse(null)),
-				toJena(quad.getSubject()), 
-				toJena(quad.getPredicate()), 
-				toJena(quad.getObject()));
-	}
-
-	// Some simple validations - full IRI parsing is not cheap.
-	private void validateIRI(String iri) {
-		if (iri.contains(" "))
-			throw new IllegalArgumentException();
-		if (iri.contains("<"))
-			throw new IllegalArgumentException();
-		if (iri.contains(">"))
-			throw new IllegalArgumentException();
-	}
-
-	private static void validateLang(String languageTag) {
-		if (languageTag.contains(" "))
-			throw new IllegalArgumentException("Invalid language tag: " + languageTag);
-	}
-
-	/**
-	 * Return the {@link UUID} salt used by this factory.
-	 * <p>
-	 * The salt is used for the purposes of {@link BlankNode} identity, see
-	 * {@link BlankNode#uniqueReference()} for details.
-	 * <p>
-	 * This salt can be used with the constructor 
-	 * {@link JenaFactory#JenaFactory(UUID)}
-	 * if consistent or reproducible {@link BlankNode}s are desirable. 
-	 * 
-	 * @return The {@link UUID} used as salt
-	 */
-	public UUID getSalt() {
-		return salt;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
new file mode 100644
index 0000000..e3c2a86
--- /dev/null
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
@@ -0,0 +1,727 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.jena;
+
+import java.util.Optional;
+import java.util.UUID;
+import java.util.function.Consumer;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+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.Quad;
+import org.apache.commons.rdf.api.QuadLike;
+import org.apache.commons.rdf.api.RDFSyntax;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.RDF;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.api.TripleLike;
+import org.apache.commons.rdf.jena.impl.InternalJenaFactory;
+import org.apache.jena.datatypes.RDFDatatype;
+import org.apache.jena.datatypes.xsd.XSDDatatype;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.riot.RDFLanguages;
+import org.apache.jena.riot.system.StreamRDF;
+import org.apache.jena.riot.system.StreamRDFBase;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.graph.GraphFactory;
+
+/**
+ * RDF with Jena-backed objects.
+ * <p>
+ * This factory can also convert existing objects from/to Jena with methods like
+ * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
+ * <p>
+ * For the purpose of {@link BlankNode} identity, this factory will use an internal
+ * {@link UUID} as a salt. See {@link BlankNode#uniqueReference()} for details.
+ * 
+ * @see RDF
+ */
+public final class JenaRDF implements RDF {
+
+	private static InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
+	
+	private final UUID salt;
+
+	/**
+	 * Create a JenaRDF.
+	 * <p>
+	 * This constructor will use a randomly generated {@link UUID} as a salt 
+	 * for the purposes of {@link BlankNode} identity, see {@link #getSalt()}.
+	 */
+	public JenaRDF() {
+		this.salt = UUID.randomUUID();
+	}
+
+	/**
+	 * Create a JenaRDF.
+	 * <p>
+	 * This constructor will use the specified {@link UUID} as a salt for
+	 * the purposes of {@link BlankNode} identity, and should only be used in
+	 * cases where predictable and consistent
+	 * {@link BlankNode#uniqueReference()} are important.
+	 * 
+	 * @param salt
+	 *            {@link UUID} to use as salt for {@link BlankNode} equality
+	 */	
+	public JenaRDF(UUID salt) {
+		this.salt = salt;
+	}
+
+	@Override
+	public JenaBlankNode createBlankNode() {
+		return internalJenaFactory.createBlankNode(getSalt());
+	}
+
+	@Override
+	public JenaBlankNode createBlankNode(String name) {
+		return internalJenaFactory.createBlankNode(name, getSalt());
+	}
+	
+	@Override
+	public JenaDataset createDataset() {
+		return internalJenaFactory.createDataset(getSalt());
+	}
+
+	@Override
+	public JenaGraph createGraph() {
+		return internalJenaFactory.createGraph(getSalt());
+	}
+
+	@Override
+	public JenaIRI createIRI(String iri) {
+		validateIRI(iri);
+		return internalJenaFactory.createIRI(iri);
+	}
+
+	@Override
+	public JenaLiteral createLiteral(String lexicalForm) {
+		return internalJenaFactory.createLiteral(lexicalForm);
+	}
+
+	@Override
+	public JenaLiteral createLiteral(String lexicalForm, IRI dataType) {
+		return internalJenaFactory.createLiteralDT(lexicalForm, dataType.getIRIString());
+	}
+
+	@Override
+	public JenaLiteral createLiteral(String lexicalForm, String languageTag) {
+		validateLang(languageTag);
+		return internalJenaFactory.createLiteralLang(lexicalForm, languageTag);
+	}
+
+	@Override
+	public JenaTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		return internalJenaFactory.createTriple(subject, predicate, object);
+	}
+	
+	@Override
+	public JenaQuad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+			throws IllegalArgumentException, UnsupportedOperationException {
+		return internalJenaFactory.createQuad(subject, predicate, object, graphName);
+	}
+
+	/**
+	 * Create a generalized Jena triple.
+	 * <p>
+	 * The <em>generalized triple</em> supports any {@link RDFTerm} as its
+	 * {@link TripleLike#getSubject()} {@link TripleLike#getPredicate()} or
+	 * {@link TripleLike#getObject()}.
+	 *
+	 * @see #createTriple(BlankNodeOrIRI, IRI, RDFTerm)
+	 * @see #createGeneralizedQuad(RDFTerm, RDFTerm, RDFTerm, RDFTerm)
+	 * 
+	 * @param subject
+	 *            The subject of the statement
+	 * @param predicate
+	 *            The predicate of the statement
+	 * @param object
+	 *            The object of the statement
+	 * @return Generalized {@link TripleLike}. Note that the generalized triple
+	 *         does <strong>not</strong> implement {@link Triple#equals(Object)}
+	 *         or {@link Triple#hashCode()}.
+	 */
+	public JenaGeneralizedTripleLike createGeneralizedTriple(
+			RDFTerm subject, RDFTerm predicate, RDFTerm object) {
+		return internalJenaFactory.createGeneralizedTriple(subject, predicate, object);
+	}
+
+	/**
+	 * Create a generalized Jena quad.
+	 * <p>
+	 * The <em>generalized quad</em> supports any {@link RDFTerm} as its
+	 * {@link QuadLike#getSubject()} {@link QuadLike#getPredicate()},
+	 * {@link QuadLike#getObject()} or {@link QuadLike#getObject()}.
+	 * 
+	 * @see #createQuad(BlankNodeOrIRI, BlankNodeOrIRI, IRI, RDFTerm)
+	 * @see #createGeneralizedTriple(RDFTerm, RDFTerm, RDFTerm)
+	 * 
+	 * @param subject
+	 *            The subject of the statement
+	 * @param predicate
+	 *            The predicate of the statement
+	 * @param object
+	 *            The object of the statement
+	 * @param graphName
+	 *            The graph name of the statement
+	 * @return Generalized {@link QuadLike}. Note that the generalized quad does
+	 *         <strong>not</strong> implement {@link Quad#equals(Object)} or
+	 *         {@link Quad#hashCode()}.
+	 */
+	public JenaGeneralizedQuadLike createGeneralizedQuad(
+			RDFTerm subject, RDFTerm predicate, RDFTerm object, RDFTerm graphName) {
+		return internalJenaFactory.createGeneralizedQuad(subject, predicate, object, graphName);
+	}	
+	/**
+	 * Adapt an existing Jena Node to CommonsRDF {@link RDFTerm}.
+	 * <p>
+	 * If {@link Node#isLiteral()}, then the returned value is a {@link Literal}.
+	 * If {@link Node#isURI()}, the returned value is a IRI. If {$@link Node#isBlank()},
+	 * the returned value is a {@link BlankNode}, which will use a {@link UUID}
+	 * salt from this {@link JenaRDF} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @see #fromJena(RDF, Node)
+	 * 
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @return Adapted {@link JenaRDFTerm}
+	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
+	 *             if the node is not concrete or represents a variable in Jena.
+	 */
+	public JenaRDFTerm fromJena(Node node) throws ConversionException {
+		return internalJenaFactory.fromJena(node, getSalt());
+	}
+
+	/**
+	 * Convert from Jena {@link Node} to any Commons RDF implementation.
+	 * <p>
+	 * Note that if the {@link Node#isBlank()}, then the factory's 
+	 * {@link RDF#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDF} instance
+	 * for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(Node)
+	 * 
+	 * @param factory {@link RDF} to use for creating {@link RDFTerm}.
+	 * @param node
+	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
+	 *            <code>true</code>.
+	 * @return Adapted {@link RDFTerm}
+	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
+	 *             if the node is not concrete or represents a variable in Jena.
+	 */
+	public static RDFTerm fromJena(RDF factory, Node node) {
+		if (node == null) {
+			return null;
+		}
+		if (factory instanceof JenaRDF) {
+			// No need to convert, just wrap
+			return ((JenaRDF) factory).fromJena(node);
+		}
+		if (node.isURI())
+			return factory.createIRI(node.getURI());
+		if (node.isLiteral()) {
+			String lang = node.getLiteralLanguage();
+			if (lang != null && !lang.isEmpty())
+				return factory.createLiteral(node.getLiteralLexicalForm(), lang);
+			if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring))
+				return factory.createLiteral(node.getLiteralLexicalForm());
+			IRI dt = factory.createIRI(node.getLiteralDatatype().getURI());
+			return factory.createLiteral(node.getLiteralLexicalForm(), dt);
+		}
+		if (node.isBlank())
+			// The factory
+			return factory.createBlankNode(node.getBlankNodeLabel());
+		throw new ConversionException("Node is not a concrete RDF Term: " + node);
+	}	
+	
+	/**
+	 * Adapt an existing Jena Triple to CommonsRDF {@link Triple}.
+	 * <p>
+	 * If the triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDF} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(RDF, org.apache.jena.graph.Triple)
+	 * 
+	 * @param triple
+	 *            Jena {@link org.apache.jena.graph.Triple} to adapt
+	 * @return Adapted {@link JenaTriple}
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
+	 */
+	public JenaTriple fromJena(org.apache.jena.graph.Triple triple) throws ConversionException {
+		return internalJenaFactory.fromJena(triple, getSalt());
+	}
+
+	/**
+	 * Adapt a generalized Jena {@link org.apache.jena.graph.Triple} to a CommonsRDF {@link TripleLike}.
+	 * <p>
+	 * The generalized triple supports any {@link RDFTerm} as its {@link TripleLike#getSubject()}
+	 * {@link TripleLike#getPredicate()} or {@link TripleLike#getObject()}.
+	 * <p>
+	 * If the Jena triple contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDF} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(RDF, org.apache.jena.graph.Triple)
+	 * 
+	 * @param triple
+	 *            Jena triple
+	 * @return Adapted {@link TripleLike}. Note that the generalized triple does
+	 *         <strong>not</strong> implement {@link Triple#equals(Object)} or
+	 *         {@link Triple#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete
+	 */
+	public JenaTripleLike fromJenaGeneralized(org.apache.jena.graph.Triple triple) throws ConversionException {
+		return internalJenaFactory.fromJenaGeneralized(triple, getSalt());
+	}
+
+	/**
+	 * Adapt a generalized Jena {@link org.apache.jena.sparql.core.Quad} to a CommonsRDF {@link QuadLike}.
+	 * <p>
+	 * The generalized quad supports any {@link RDFTerm} as its 
+	 * {@link QuadLike#getGraphName()}, 
+	 * {@link QuadLike#getSubject()}
+	 * {@link QuadLike#getPredicate()} or 
+	 * {@link QuadLike#getObject()}. 
+	 * <p>
+	 * If the Jena quad contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDF} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 *
+	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
+	 * @see #fromJenaGeneralized(org.apache.jena.graph.Triple)
+	 * 
+	 * @param quad
+	 *            Jena quad
+	 * @return Adapted {@link QuadLike}. Note that the generalized quad does
+	 *         <strong>not</strong> implement {@link Quad#equals(Object)} or
+	 *         {@link Quad#hashCode()}.
+	 * @throws ConversionException
+	 *             if any of the quad nodes are not concrete
+	 */
+	public JenaQuadLike<RDFTerm> fromJenaGeneralized(org.apache.jena.sparql.core.Quad quad) throws ConversionException {
+		return internalJenaFactory.fromJenaGeneralized(quad, getSalt());
+	}
+	
+	/**
+	 * Convert from Jena {@link org.apache.jena.graph.Triple} to a Commons RDF
+	 * {@link Triple}.
+	 * <p>
+	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
+	 * {@link RDF#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDF} instance
+	 * for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(org.apache.jena.graph.Triple)
+	 *
+	 * @param factory {@link RDF} to use for creating the {@link Triple} and its
+	 * {@link RDFTerm}s.
+	 * @param triple
+	 *            Jena triple
+	 * @return Converted triple
+	 * @throws ConversionException
+	 *             if any of the triple's nodes are not concrete or the triple
+	 *             is a generalized triple
+	 */
+	public static Triple fromJena(RDF factory, org.apache.jena.graph.Triple triple) 
+			throws ConversionException{
+		if (factory instanceof JenaRDF) {
+			// No need to convert, just wrap
+			return ((JenaRDF) factory).fromJena(triple);
+		}
+		final BlankNodeOrIRI subject;
+		final IRI predicate;
+		try {
+			subject = (BlankNodeOrIRI) fromJena(factory, triple.getSubject());
+			predicate = (IRI) fromJena(factory, triple.getPredicate());
+		} catch (ClassCastException ex) {
+			throw new ConversionException("Can't convert generalized triple: " + triple, ex);
+		}
+		RDFTerm object = fromJena(factory, triple.getObject());
+		return factory.createTriple(subject, predicate, object);
+	}
+
+	/**
+	 * Adapt an existing Jena {@link org.apache.jena.sparql.core.Quad} to CommonsRDF {@link Quad}.
+	 * <p>
+	 * If the quad contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDF} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param quad
+	 *            Jena quad
+	 * @return Adapted quad
+	 */	
+	public JenaQuad fromJena(org.apache.jena.sparql.core.Quad quad) {
+		return internalJenaFactory.fromJena(quad, getSalt());
+	}
+
+	/**
+	 * Adapt an existing Jena {@link org.apache.jena.graph.Graph} to CommonsRDF
+	 * {@link Graph}.
+	 * <p>
+	 * This does not take a copy, changes to the CommonsRDF Graph are reflected
+	 * in the jena graph, which is accessible from
+	 * {@link JenaGraph#asJenaGraph()}.
+	 * <p>
+	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this
+	 * {@link JenaRDF} instance in combination with
+	 * {@link Node#getBlankNodeId()} for the purpose of its
+	 * {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param graph
+	 *            Jena {@link org.apache.jena.graph.Graph} to adapt
+	 * @return Adapted {@link JenaGraph}
+	 */
+	public JenaGraph fromJena(org.apache.jena.graph.Graph graph) {
+		return internalJenaFactory.fromJena(graph, getSalt());
+	}
+
+	/**
+	 * Adapt an existing Jena {@link org.apache.jena.rdf.model.Model} to CommonsRDF {@link Graph}. 
+	 * <p>
+	 * This does not ake a copy, changes to the CommonsRDF Graph are reflected in the jena
+	 * graph, which is accessible from {@link JenaGraph#asJenaGraph()}.
+	 * <p>
+	 * If the graph contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDF} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * @param model
+	 *            Jena {@link org.apache.jena.rdf.model.Model} to adapt
+	 * @return Adapted {@link JenaGraph}
+	 */
+	public JenaGraph fromJena(org.apache.jena.rdf.model.Model model) {
+		return internalJenaFactory.fromJena(model, getSalt());
+	}	
+
+	/**
+	 * Adapt an existing Jena {@link DatasetGraph} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDF} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena {@link DatasetGraph} to adapt
+	 * @return Adapted {@link JenaDataset} 
+	 */
+	public JenaDataset fromJena(DatasetGraph datasetGraph) {
+		return internalJenaFactory.fromJena(datasetGraph, getSalt());
+	}	
+	
+	/**
+	 * Adapt an existing Jena {@link org.apache.jena.query.Dataset} to CommonsRDF {@link Dataset}. 
+	 * <p>
+	 * This does not
+	 * take a copy, changes to the CommonsRDF Dataset are reflected in the jena
+	 * dataset graph, which is accessible from {@link JenaDataset#asJenaDatasetGraph()}.
+	 * <p>
+	 * If the dataset contains any {@link Node#isBlank()}, then any corresponding
+	 * {@link BlankNode} will use a {@link UUID} salt from this 
+	 * {@link JenaRDF} instance
+	 * in combination with {@link Node#getBlankNodeId()} 
+	 * for the purpose of its {@link BlankNode#uniqueReference()}.
+	 * 
+	 * @param datasetGraph Jena {@link org.apache.jena.query.Dataset} to adapt
+	 * @return Adapted {@link JenaDataset} 
+	 */
+	public JenaDataset fromJena(org.apache.jena.query.Dataset datasetGraph) {
+		return internalJenaFactory.fromJena(datasetGraph.asDatasetGraph(), getSalt());
+	}		
+
+	/**
+	 * Convert from Jena {@link org.apache.jena.sparql.core.Quad} to a Commons
+	 * RDF {@link Quad}.
+	 * <p>
+	 * Note that if any of the quad's nodes {@link Node#isBlank()}, then the
+	 * factory's {@link RDF#createBlankNode(String)} will be used,
+	 * meaning that care should be taken if reusing an {@link RDF}
+	 * instance for multiple conversion sessions.
+	 * 
+	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
+	 * @see #fromJenaGeneralized(org.apache.jena.sparql.core.Quad)
+	 *
+	 * @param factory
+	 *            {@link RDF} to use for creating the {@link Triple}
+	 *            and its {@link RDFTerm}s.
+	 * @param quad
+	 *            Jena {@link org.apache.jena.sparql.core.Quad} to adapt
+	 * @return Converted {@link Quad}
+	 * @throws ConversionException
+	 *             if any of the quad's nodes are not concrete or the quad
+	 *             is a generalized quad
+	 */
+	public static Quad fromJena(RDF factory, org.apache.jena.sparql.core.Quad quad) {
+		if (factory instanceof JenaRDF) {
+			// No need to convert, just wrap
+			return ((JenaRDF) factory).fromJena(quad);
+		}
+		BlankNodeOrIRI graphName = (BlankNodeOrIRI) (fromJena(factory, quad.getGraph()));
+		BlankNodeOrIRI subject = (BlankNodeOrIRI) (fromJena(factory, quad.getSubject()));
+		IRI predicate = (IRI) (fromJena(factory, quad.getPredicate()));
+		RDFTerm object = fromJena(factory, quad.getObject());
+		return factory.createQuad(graphName, subject, predicate, object);
+	}
+
+	/**
+	 * Return {@link RDFSyntax} corresponding to a Jena {@link Lang}.
+	 * 
+	 * @param lang {@link Lang} to convert
+	 * @return Matched {@link RDFSyntax}, otherwise {@link Optional#empty()}
+	 */
+	public Optional<RDFSyntax> langToRdfSyntax(Lang lang) {
+		return RDFSyntax.byMediaType(lang.getContentType().getContentType());
+	}
+
+	/**
+	 * Return Jena {@link Lang} corresponding to a {@link RDFSyntax}.
+	 * 
+	 * @param rdfSyntax {@link RDFSyntax} to convert
+	 * @return Matched {@link Lang}, otherwise {@link Optional#empty()}
+	 */
+	public Optional<Lang> rdfSyntaxToLang(RDFSyntax rdfSyntax) {
+		return Optional.ofNullable(RDFLanguages.contentTypeToLang(rdfSyntax.mediaType));
+	}
+
+	/**
+	 * Create a {@link StreamRDF} instance that inserts the converted
+	 * {@link Quad}s. into a the provided {@link Consumer}.
+	 * <p>
+	 * The returned {@link StreamRDF} can be used for instance with Jena's
+	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
+	 * 
+	 * @param factory
+	 *            {@link RDF} to use for creating {@link RDFTerm}s
+	 *            and {@link Quad}s.
+	 * @param consumer
+	 *            A {@link Consumer} of {@link Quad}s
+	 * @return A {@link StreamRDF} that will stream converted quads to the
+	 *         consumer
+	 */
+	public static StreamRDF streamJenaToCommonsRDF(RDF factory, Consumer<Quad> consumer) {
+		return new StreamRDFBase() {
+			@Override
+			public void quad(org.apache.jena.sparql.core.Quad quad) {
+				consumer.accept(fromJena(factory, quad));
+			}
+		};
+	}
+	
+	/**
+	 * Create a {@link StreamRDF} instance that inserts generalized
+	 * {@link TripleLike}s. into a the provided {@link Consumer}.
+	 * <p>
+	 * A generalized triple allows any {@link RDFTerm} for
+	 * {@link TripleLike#getSubject()}, {@link TripleLike#getPredicate()} and
+	 * {@link TripleLike#getObject()}.
+	 * <p>
+	 * The returned {@link StreamRDF} can be used for instance with Jena's
+	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
+	 * 
+	 * @param generalizedConsumer
+	 *            A {@link Consumer} of generalized {@link TripleLike}s
+	 * @return A {@link StreamRDF} that will stream generalized triples to the
+	 *         consumer
+	 */
+	public StreamRDF streamJenaToGeneralizedTriple(Consumer<TripleLike> generalizedConsumer) {
+		return new StreamRDFBase() {			
+			@Override
+			public void triple(org.apache.jena.graph.Triple triple) {
+				generalizedConsumer.accept(fromJenaGeneralized(triple));
+			}
+		};
+	}	
+
+	/**
+	 * Create a {@link StreamRDF} instance that inserts generalized
+	 * {@link QuadLike}s. into a the provided {@link Consumer}.
+	 * <p>
+	 * A generalized quad allows any {@link RDFTerm} for
+	 * {@link QuadLike#getSubject()}, {@link TripleLike#getPredicate()},
+	 * {@link QuadLike#getObject()} and {@link QuadLike#getGraphName()} .
+	 * <p>
+	 * The returned {@link StreamRDF} can be used for instance with Jena's
+	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
+	 * 
+	 * @param generalizedConsumer
+	 *            A {@link Consumer} of generalized {@link QuadLike}s
+	 * @return A {@link StreamRDF} that will stream generalized quads to the
+	 *         consumer
+	 */
+	public StreamRDF streamJenaToGeneralizedQuad(Consumer<QuadLike<RDFTerm>> generalizedConsumer) {
+		return new StreamRDFBase() {
+			@Override
+			public void quad(org.apache.jena.sparql.core.Quad quad) {
+				generalizedConsumer.accept(fromJenaGeneralized(quad));
+			}
+		};
+	}	
+	
+	/**
+	 * Convert a CommonsRDF Graph to a Jena Graph. If the Graph was from Jena
+	 * originally, return that original object else create a copy using Jena
+	 * objects.
+	 * 
+	 * @param graph Commons RDF {@link Graph} to convert
+	 * @return Converted Jena {@link org.apache.jena.graph.Graph}
+	 */
+	public org.apache.jena.graph.Graph toJena(Graph graph) {
+		if (graph instanceof JenaGraph)
+			return ((JenaGraph) graph).asJenaGraph();
+		org.apache.jena.graph.Graph g = GraphFactory.createGraphMem();
+		graph.stream().forEach(t -> g.add(toJena(t)));
+		return g;
+	}
+
+	/**
+	 * Convert a CommonsRDF RDFTerm to a Jena Node. If the RDFTerm was from Jena
+	 * originally, return that original object, else create a copy using Jena
+	 * objects.
+	 * 
+	 * @param term Commons RDF {@link RDFTerm} to convert
+	 * @return Converted Jena {@link Node}
+	 */
+	public Node toJena(RDFTerm term) {
+		if (term == null) {
+			return null;
+		}
+		if (term instanceof JenaRDFTerm)
+			// TODO: What if it's a JenaBlankNodeImpl with
+			// a different salt? Do we need to rewrite the
+			// jena blanknode identifier?
+			return ((JenaRDFTerm) term).asJenaNode();
+
+		if (term instanceof IRI)
+			return NodeFactory.createURI(((IRI) term).getIRIString());
+
+		if (term instanceof Literal) {
+			Literal lit = (Literal) term;
+			RDFDatatype dt = NodeFactory.getType(lit.getDatatype().getIRIString());
+			String lang = lit.getLanguageTag().orElse("");
+			return NodeFactory.createLiteral(lit.getLexicalForm(), lang, dt);
+		}
+
+		if (term instanceof BlankNode) {
+			String id = ((BlankNode) term).uniqueReference();
+			return NodeFactory.createBlankNode(id);
+		}
+		throw new ConversionException("Not a concrete RDF Term: " + term);
+	}
+
+	/**
+	 * Convert a CommonsRDF {@link Triple} to a Jena
+	 * {@link org.apache.jena.graph.Triple}.
+	 * <p>
+	 * If the triple was from Jena originally, return that original object, else
+	 * create a copy using Jena objects.
+	 * 
+	 * @param triple Commons RDF {@link Triple} to convert
+	 * @return Converted Jena {@link org.apache.jena.graph.Triple}
+	 */
+	public org.apache.jena.graph.Triple toJena(Triple triple) {
+		if (triple instanceof JenaTriple)
+			return ((JenaTriple) triple).asJenaTriple();
+		return org.apache.jena.graph.Triple.create(
+				toJena(triple.getSubject()), 
+				toJena(triple.getPredicate()),
+				toJena(triple.getObject()));
+	}
+
+
+	/**
+	 * Convert a CommonsRDF {@link Quad} to a Jena
+	 * {@link org.apache.jena.sparql.core.Quad}.
+	 * <p>
+	 * If the quad was from Jena originally, return that original object,
+	 * otherwise create a copy using Jena objects.
+	 *
+	 * @param quad Commons RDF {@link Quad} to convert
+	 * @return Converted Jena {@link org.apache.jena.sparql.core.Quad}
+	 */
+	public org.apache.jena.sparql.core.Quad toJena(Quad quad) {
+		if (quad instanceof JenaQuad) {
+			return ((JenaQuad) quad).asJenaQuad();
+		}
+		return org.apache.jena.sparql.core.Quad.create(
+				toJena(quad.getGraphName().orElse(null)),
+				toJena(quad.getSubject()), 
+				toJena(quad.getPredicate()), 
+				toJena(quad.getObject()));
+	}
+
+	// Some simple validations - full IRI parsing is not cheap.
+	private void validateIRI(String iri) {
+		if (iri.contains(" "))
+			throw new IllegalArgumentException();
+		if (iri.contains("<"))
+			throw new IllegalArgumentException();
+		if (iri.contains(">"))
+			throw new IllegalArgumentException();
+	}
+
+	private static void validateLang(String languageTag) {
+		if (languageTag.contains(" "))
+			throw new IllegalArgumentException("Invalid language tag: " + languageTag);
+	}
+
+	/**
+	 * Return the {@link UUID} salt used by this factory.
+	 * <p>
+	 * The salt is used for the purposes of {@link BlankNode} identity, see
+	 * {@link BlankNode#uniqueReference()} for details.
+	 * <p>
+	 * This salt can be used with the constructor 
+	 * {@link JenaRDF#JenaFactory(UUID)}
+	 * if consistent or reproducible {@link BlankNode}s are desirable. 
+	 * 
+	 * @return The {@link UUID} used as salt
+	 */
+	public UUID getSalt() {
+		return salt;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
index ffbb61c..d78870c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
@@ -30,7 +30,7 @@ import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.jena.JenaGraph;
-import org.apache.commons.rdf.jena.JenaFactory;
+import org.apache.commons.rdf.jena.JenaRDF;
 import org.apache.commons.rdf.simple.experimental.AbstractRDFParser;
 import org.apache.jena.graph.Graph;
 import org.apache.jena.riot.Lang;
@@ -44,7 +44,7 @@ public class JenaRDFParser extends AbstractRDFParser<JenaRDFParser> implements R
 	private Consumer<QuadLike<RDFTerm>> generalizedConsumerQuad;
 
 	protected RDF createRDFTermFactory() {
-		return new JenaFactory();
+		return new JenaRDF();
 	}
 
 	public JenaRDFParser targetGeneralizedTriple(Consumer<TripleLike> consumer) {
@@ -71,21 +71,21 @@ public class JenaRDFParser extends AbstractRDFParser<JenaRDFParser> implements R
 	@Override
 	protected void parseSynchronusly() throws IOException {
 		StreamRDF dest;
-		JenaFactory jenaFactory = getJenaFactory();
+		JenaRDF jenaRDF = getJenaFactory();
 		if (getTargetGraph().isPresent() && getTargetGraph().get() instanceof JenaGraph) {
 			Graph jenaGraph = ((JenaGraph) getTargetGraph().get()).asJenaGraph();
 			dest = StreamRDFLib.graph(jenaGraph);
 		} else {
 			if (generalizedConsumerQuad != null) {				
-				dest = jenaFactory.streamJenaToGeneralizedQuad(generalizedConsumerQuad);			
+				dest = jenaRDF.streamJenaToGeneralizedQuad(generalizedConsumerQuad);			
 			} else if (generalizedConsumerTriple != null) {				
-				dest = jenaFactory.streamJenaToGeneralizedTriple(generalizedConsumerTriple);			
+				dest = jenaRDF.streamJenaToGeneralizedTriple(generalizedConsumerTriple);			
 			} else {
-				dest = JenaFactory.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
+				dest = JenaRDF.streamJenaToCommonsRDF(getRdfTermFactory().get(), getTarget());
 			}
 		}
 
-		Lang lang = getContentTypeSyntax().flatMap(jenaFactory::rdfSyntaxToLang).orElse(null);
+		Lang lang = getContentTypeSyntax().flatMap(jenaRDF::rdfSyntaxToLang).orElse(null);
 		String baseStr = getBase().map(IRI::getIRIString).orElse(null);
 
 		if (getSourceIri().isPresent()) {
@@ -99,9 +99,9 @@ public class JenaRDFParser extends AbstractRDFParser<JenaRDFParser> implements R
 		}
 	}
 
-	private JenaFactory getJenaFactory() {
-		return (JenaFactory) getRdfTermFactory()
-				.filter(JenaFactory.class::isInstance)
+	private JenaRDF getJenaFactory() {
+		return (JenaRDF) getRdfTermFactory()
+				.filter(JenaRDF.class::isInstance)
 				.orElseGet(this::createRDFTermFactory);		
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
index c66a1da..d538076 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
@@ -26,7 +26,7 @@ import org.apache.commons.rdf.api.QuadLike;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.JenaQuad;
 import org.apache.commons.rdf.jena.JenaQuadLike;
-import org.apache.commons.rdf.jena.JenaFactory;
+import org.apache.commons.rdf.jena.JenaRDF;
 import org.apache.commons.rdf.jena.JenaTriple;
 import org.apache.jena.graph.Triple;
 import org.apache.jena.sparql.core.Quad;
@@ -86,7 +86,7 @@ abstract class AbstractQuadLike<S extends RDFTerm, P extends RDFTerm, O extends
 
 	@Override
 	public org.apache.jena.sparql.core.Quad asJenaQuad() {
-		JenaFactory factory = new JenaFactory();
+		JenaRDF factory = new JenaRDF();
 		if (quad == null) {
 			quad = org.apache.jena.sparql.core.Quad.create(
 					factory.toJena(graphName.orElse(null)),
@@ -99,7 +99,7 @@ abstract class AbstractQuadLike<S extends RDFTerm, P extends RDFTerm, O extends
 
 	@Override
 	public org.apache.jena.graph.Triple asJenaTriple() {
-		JenaFactory factory = new JenaFactory();
+		JenaRDF factory = new JenaRDF();
 		if (triple == null) {
 			triple = org.apache.jena.graph.Triple.create(
 				factory.toJena(subject), 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java
index 67fccb7..66ef867 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/InternalJenaFactory.java
@@ -35,7 +35,7 @@ import org.apache.commons.rdf.jena.JenaIRI;
 import org.apache.commons.rdf.jena.JenaLiteral;
 import org.apache.commons.rdf.jena.JenaQuad;
 import org.apache.commons.rdf.jena.JenaRDFTerm;
-import org.apache.commons.rdf.jena.JenaFactory;
+import org.apache.commons.rdf.jena.JenaRDF;
 import org.apache.commons.rdf.jena.JenaTriple;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
@@ -49,7 +49,7 @@ import org.apache.jena.sparql.graph.GraphFactory;
  * <p>
  * This class is deliberately an abstract class, as it is an internal helper
  * which <strong>may change</strong> in any minor version update; users should
- * instead use {@link JenaFactory}.
+ * instead use {@link JenaRDF}.
  * <p>
  * For the purpose of blank node identity, some of these methods require a
  * {@link UUID} to use as a salt. See {@link BlankNode#uniqueReference()} for

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
index 67b2988..81c9a07 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaDatasetImpl.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.jena.JenaDataset;
 import org.apache.commons.rdf.jena.JenaGraph;
-import org.apache.commons.rdf.jena.JenaFactory;
+import org.apache.commons.rdf.jena.JenaRDF;
 import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.graph.Node;
 import org.apache.jena.riot.Lang;
@@ -44,12 +44,12 @@ class JenaDatasetImpl implements JenaDataset {
 
 	private DatasetGraph graph;
 	private UUID salt;
-	private JenaFactory factory;
+	private JenaRDF factory;
 
 	JenaDatasetImpl(DatasetGraph graph, UUID salt) {
 		this.graph = graph;
 		this.salt = salt;
-		this.factory = new JenaFactory(salt);
+		this.factory = new JenaRDF(salt);
 	}
 
 	@Override
@@ -136,14 +136,14 @@ class JenaDatasetImpl implements JenaDataset {
 
 	@Override
 	public Stream<? extends Quad> stream() {
-		JenaFactory factory = new JenaFactory(salt);
+		JenaRDF factory = new JenaRDF(salt);
 		return Iter.asStream(graph.find(ANY, ANY, ANY, ANY), true)
 				.map(factory::fromJena);
 	}
 
 	@Override
 	public Stream<? extends Quad> stream(Optional<BlankNodeOrIRI> g, BlankNodeOrIRI s, IRI p, RDFTerm o) {
-		JenaFactory factory = new JenaFactory(salt);
+		JenaRDF factory = new JenaRDF(salt);
 		return Iter.asStream(graph.find(toJenaPattern(g), toJenaPattern(s), toJenaPattern(p), toJenaPattern(o)), true)
 				.map(factory::fromJena);
 	}
@@ -175,14 +175,14 @@ class JenaDatasetImpl implements JenaDataset {
 
 	@Override
 	public Stream<BlankNodeOrIRI> getGraphNames() {
-		JenaFactory factory = new JenaFactory(salt);
+		JenaRDF factory = new JenaRDF(salt);
 		return Iter.asStream(graph.listGraphNodes()).map(node -> 
 			(BlankNodeOrIRI) factory.fromJena(node));		
 	}
 
 	@Override
 	public Iterable<Quad> iterate() {
-		final JenaFactory factory = new JenaFactory(salt);
+		final JenaRDF factory = new JenaRDF(salt);
 		return Iter.asStream(graph.find(), false)
 				.map(q -> (Quad) factory.fromJena(q))
 				::iterator;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
index bad996a..eab4089 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/JenaGraphImpl.java
@@ -27,7 +27,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.jena.JenaGraph;
-import org.apache.commons.rdf.jena.JenaFactory;
+import org.apache.commons.rdf.jena.JenaRDF;
 import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.graph.Node;
 import org.apache.jena.rdf.model.Model;
@@ -39,20 +39,20 @@ class JenaGraphImpl implements JenaGraph {
 
 	private final org.apache.jena.graph.Graph graph;
 	private final UUID salt;
-	private final transient JenaFactory factory;
+	private final transient JenaRDF factory;
 	private Model model;
 
 	JenaGraphImpl(org.apache.jena.graph.Graph graph, UUID salt) {
 		this.graph = graph;
 		this.salt = salt;
-		this.factory = new JenaFactory(salt);
+		this.factory = new JenaRDF(salt);
 	}
 
 	JenaGraphImpl(Model model, UUID salt) {
 		this.model = model;
 		this.graph = model.getGraph();
 		this.salt = salt;
-		this.factory = new JenaFactory(salt);
+		this.factory = new JenaRDF(salt);
 	}
 
 	@Override
@@ -116,13 +116,13 @@ class JenaGraphImpl implements JenaGraph {
 
 	@Override
 	public Stream<? extends Triple> stream() {
-		JenaFactory factory = new JenaFactory(salt);
+		JenaRDF factory = new JenaRDF(salt);
 		return Iter.asStream(graph.find(null, null, null), true).map(factory::fromJena);
 	}
 
 	@Override
 	public Stream<? extends Triple> stream(BlankNodeOrIRI s, IRI p, RDFTerm o) {
-		JenaFactory factory = new JenaFactory(salt);
+		JenaRDF factory = new JenaRDF(salt);
 		return Iter.asStream(graph.find(toJenaAny(s), toJenaAny(p), toJenaAny(o)), true)
 				.map(factory::fromJena);
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
index f39e71d..afe6af3 100644
--- a/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
+++ b/jena/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -1 +1 @@
-org.apache.commons.rdf.jena.JenaFactory
+org.apache.commons.rdf.jena.JenaRDF

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java b/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
index 87ce543..836e2ec 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
@@ -31,10 +31,10 @@ public class JenaServiceLoaderTest {
     public void testServiceLoaderLookup() {
         ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
         for (RDF impl : loader) {
-        	if (impl instanceof JenaFactory) {
+        	if (impl instanceof JenaRDF) {
         		return; // yay
         	}
         }
-        fail("JenaFactory not found in ServiceLoader");        
+        fail("JenaRDF not found in ServiceLoader");        
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
index 3c7caa8..a11fdc6 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
@@ -25,7 +25,7 @@ public class TestGraphJena extends AbstractGraphTest {
 
     @Override
     public RDF createFactory() {
-        return new JenaFactory() ;
+        return new JenaRDF() ;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
index ad71a58..16e3e67 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
@@ -56,10 +56,10 @@ public class TestJenaGraphToCommonsRDFGraph {
         RDFDataMgr.read(jGraph, turtleFile.toUri().toString()) ;
         
         // "graph" is a CommonsRDF graph 
-        Graph graph = new JenaFactory().fromJena(jGraph) ;
+        Graph graph = new JenaRDF().fromJena(jGraph) ;
         
         // Add to CommonsRDF Graph
-        RDF rft = new JenaFactory() ;
+        RDF rft = new JenaRDF() ;
         graph.add(rft.createIRI("http://example/s2"),
                   rft.createIRI("http://example/p2"),
                   rft.createLiteral("foo")) ;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
index b5b3363..7760e1f 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFParserBuilder.java
@@ -54,7 +54,7 @@ public class TestRDFParserBuilder {
 
 	@Test
 	public void parseTurtle() throws Exception {
-		Graph g = new JenaFactory().createGraph();
+		Graph g = new JenaRDF().createGraph();
 		Future<ParseResult> gFuture = new JenaRDFParser().contentType(RDFSyntax.TURTLE).source(turtleFile)
 				.target(g).parse();
 		gFuture.get(5, TimeUnit.SECONDS);

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/384a8337/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
index f917a68..327f218 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
@@ -25,7 +25,7 @@ public class TestRDFTermFactoryJena extends AbstractRDFTermFactoryTest {
 	
     @Override
     public RDF createFactory() {
-        return new JenaFactory() ;
+        return new JenaRDF() ;
     }
 
 }


[07/22] incubator-commonsrdf git commit: Deprecated SimpleRDFTermFactory

Posted by st...@apache.org.
Deprecated SimpleRDFTermFactory


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/374bb0f8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/374bb0f8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/374bb0f8

Branch: refs/heads/COMMONSRDF-46
Commit: 374bb0f84a60bcaab5813d49bc7427f7441e5c7d
Parents: 08fbb92
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:43:19 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:43:19 2016 +0100

----------------------------------------------------------------------
 .../rdf/simple/SimpleRDFTermFactory.java        | 70 ++++++++++++++++++++
 .../org.apache.commons.rdf.api.RDFFactory       |  1 +
 .../org.apache.commons.rdf.api.RDFTermFactory   |  2 +-
 3 files changed, 72 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/374bb0f8/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
new file mode 100644
index 0000000..5f6f5fe
--- /dev/null
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFTermFactory.java
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.simple;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
+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;
+
+/**
+ * A Simple implementation of {@link RDFTermFactory}
+ * <p>
+ * This class is <strong>deprecated</strong>, use instead {@link SimpleRDFFactory}.
+ */
+@Deprecated
+public class SimpleRDFTermFactory implements RDFTermFactory {
+
+	private SimpleRDFFactory factory = new SimpleRDFFactory();
+
+	public BlankNode createBlankNode() {
+		return factory.createBlankNode();
+	}
+
+	public BlankNode createBlankNode(String name) {
+		return factory.createBlankNode(name);
+	}
+
+	public Graph createGraph() {
+		return factory.createGraph();
+	}
+
+	public IRI createIRI(String iri) {
+		return factory.createIRI(iri);
+	}
+
+	public Literal createLiteral(String literal) {
+		return factory.createLiteral(literal);
+	}
+
+	public Literal createLiteral(String literal, IRI dataType) {
+		return factory.createLiteral(literal, dataType);
+	}
+
+	public Literal createLiteral(String literal, String language) {
+		return factory.createLiteral(literal, language);
+	}
+
+	public Triple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
+		return factory.createTriple(subject, predicate, object);
+	} 
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/374bb0f8/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
new file mode 100644
index 0000000..17d9680
--- /dev/null
+++ b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -0,0 +1 @@
+org.apache.commons.rdf.simple.SimpleRDFFactory
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/374bb0f8/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
----------------------------------------------------------------------
diff --git a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
index 17d9680..cc53468 100644
--- a/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
+++ b/simple/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFTermFactory
@@ -1 +1 @@
-org.apache.commons.rdf.simple.SimpleRDFFactory
\ No newline at end of file
+org.apache.commons.rdf.simple.SimpleRDFTermFactory
\ No newline at end of file


[19/22] incubator-commonsrdf git commit: SimpleRDFFactory -> SimpleRDF

Posted by st...@apache.org.
SimpleRDFFactory -> SimpleRDF


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/d261f64f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/d261f64f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/d261f64f

Branch: refs/heads/COMMONSRDF-46
Commit: d261f64f78e1c458d1c81b345a6869b53b5c1497
Parents: a1112a8
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:49:59 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 00:49:59 2016 +0100

----------------------------------------------------------------------
 examples/src/example/UserGuideTest.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/d261f64f/examples/src/example/UserGuideTest.java
----------------------------------------------------------------------
diff --git a/examples/src/example/UserGuideTest.java b/examples/src/example/UserGuideTest.java
index 7b423cf..fe884dd 100644
--- a/examples/src/example/UserGuideTest.java
+++ b/examples/src/example/UserGuideTest.java
@@ -35,7 +35,7 @@ import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
-import org.apache.commons.rdf.simple.SimpleRDFFactory;
+import org.apache.commons.rdf.simple.SimpleRDF;
 import org.apache.commons.rdf.simple.Types;
 import org.junit.Before;
 import org.junit.Test;
@@ -46,7 +46,7 @@ public class UserGuideTest {
 
 	@Before
 	public void factory() {
-		factory = new SimpleRDFFactory();
+		factory = new SimpleRDF();
 	}
 
 	@Test
@@ -89,7 +89,7 @@ public class UserGuideTest {
 		System.out.println(b1.ntriplesString());
 
 		System.out.println(b1.equals(factory.createBlankNode("b1")));
-		System.out.println(b1.equals(new SimpleRDFFactory().createBlankNode("b1")));
+		System.out.println(b1.equals(new SimpleRDF().createBlankNode("b1")));
 
 		System.out.println(bnode.uniqueReference());
 	}


[17/22] incubator-commonsrdf git commit: JsonLDFactory -> JsonLDRDF

Posted by st...@apache.org.
JsonLDFactory -> JsonLDRDF


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/430bc4d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/430bc4d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/430bc4d7

Branch: refs/heads/COMMONSRDF-46
Commit: 430bc4d7c253ab9a023c39ff0afe9e750ff422e0
Parents: defb7d8
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:47:13 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 00:47:13 2016 +0100

----------------------------------------------------------------------
 .../apache/commons/rdf/jsonldjava/JsonLdGraphLike.java  |  8 ++++----
 .../apache/commons/rdf/jsonldjava/JsonLdQuadLike.java   |  2 +-
 .../org/apache/commons/rdf/jsonldjava/JsonLdRDF.java    |  6 +++---
 .../rdf/jsonldjava/experimental/JsonLdParser.java       | 12 ++++++------
 .../org/apache/commons/rdf/jsonldjava/package-info.java |  2 +-
 .../services/org.apache.commons.rdf.api.RDFFactory      |  2 +-
 .../commons/rdf/jsonldjava/JsonLdFactoryTest.java       |  2 +-
 .../apache/commons/rdf/jsonldjava/JsonLdGraphTest.java  |  2 +-
 .../commons/rdf/jsonldjava/JsonLdParserBuilderTest.java |  2 +-
 .../commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java |  4 ++--
 10 files changed, 21 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/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 401de1f..d4417ec 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
@@ -72,7 +72,7 @@ abstract class AbstractJsonLdGraphLike<T extends TripleLike>
 	 */
 	final String bnodePrefix;
 
-	final JsonLdFactory factory;
+	final JsonLdRDF factory;
 
 	/**
 	 * The underlying JSON-LD {@link RDFDataset}.
@@ -89,7 +89,7 @@ abstract class AbstractJsonLdGraphLike<T extends TripleLike>
 	AbstractJsonLdGraphLike(RDFDataset rdfDataSet, String bnodePrefix) {
 		this.rdfDataSet = Objects.requireNonNull(rdfDataSet);
 		this.bnodePrefix = Objects.requireNonNull(bnodePrefix);
-		this.factory = new JsonLdFactory(bnodePrefix);
+		this.factory = new JsonLdRDF(bnodePrefix);
 	}
 	
 	AbstractJsonLdGraphLike(String bnodePrefix) {
@@ -161,8 +161,8 @@ abstract class AbstractJsonLdGraphLike<T extends TripleLike>
 	 * Convert JsonLd Quad to a Commons RDF {@link Triple} or {@link org.apache.commons.rdf.api.Quad}
 	 * 
 	 * 
-	 * @see JsonLdFactory#asTriple(Quad)
-	 * @see JsonLdFactory#asQuad(Quad)
+	 * @see JsonLdRDF#asTriple(Quad)
+	 * @see JsonLdRDF#asQuad(Quad)
 	 * @param jsonldQuad jsonld quad to convert
 	 * @return converted {@link TripleLike}
 	 */

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/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 acb429a..1584f9e 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
@@ -32,7 +32,7 @@ public interface JsonLdQuadLike<G extends RDFTerm> extends QuadLike<G>, JsonLdTr
 		
 		// Note: We always pass the blankNodePrefix and don't rely on the internal
 		// blankNodePrefix in this static factory
-		private static JsonLdFactory rdfTermFactory = new JsonLdFactory();
+		private static JsonLdRDF rdfTermFactory = new JsonLdRDF();
 		
 		private final Quad quad;
 		private String blankNodePrefix;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
index d5c49f8..bb57b1a 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
@@ -35,16 +35,16 @@ import org.apache.commons.rdf.simple.Types;
 import com.github.jsonldjava.core.RDFDataset;
 import com.github.jsonldjava.core.RDFDataset.Node;
 
-public final class JsonLdFactory implements RDF {
+public final class JsonLdRDF implements RDF {
 
 	final String bnodePrefix;
 
-	public JsonLdFactory() {
+	public JsonLdRDF() {
 		// An "outside Graph" bnodePrefix
 		this("urn:uuid:" + UUID.randomUUID() + "#b");
 	}
 
-	JsonLdFactory(String bnodePrefix) {
+	JsonLdRDF(String bnodePrefix) {
 		this.bnodePrefix = Objects.requireNonNull(bnodePrefix);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/experimental/JsonLdParser.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/experimental/JsonLdParser.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/experimental/JsonLdParser.java
index 464015f..ff3ffe8 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/experimental/JsonLdParser.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/experimental/JsonLdParser.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.jsonldjava.JsonLdDataset;
 import org.apache.commons.rdf.jsonldjava.JsonLdGraph;
-import org.apache.commons.rdf.jsonldjava.JsonLdFactory;
+import org.apache.commons.rdf.jsonldjava.JsonLdRDF;
 import org.apache.commons.rdf.simple.experimental.AbstractRDFParser;
 
 import com.github.jsonldjava.core.JsonLdError;
@@ -44,8 +44,8 @@ import com.github.jsonldjava.utils.JsonUtils;
 public class JsonLdParser extends AbstractRDFParser<JsonLdParser> {
 
 	@Override
-	protected JsonLdFactory createRDFTermFactory() {
-		return new JsonLdFactory();
+	protected JsonLdRDF createRDFTermFactory() {
+		return new JsonLdRDF();
 	}
 
 	@Override
@@ -129,9 +129,9 @@ public class JsonLdParser extends AbstractRDFParser<JsonLdParser> {
 		}
 	}
 	
-	private JsonLdFactory getJsonLdFactory() {
-		if (getRdfTermFactory().isPresent() && getRdfTermFactory().get() instanceof JsonLdFactory) {
-			return (JsonLdFactory) getRdfTermFactory().get();
+	private JsonLdRDF getJsonLdFactory() {
+		if (getRdfTermFactory().isPresent() && getRdfTermFactory().get() instanceof JsonLdRDF) {
+			return (JsonLdRDF) getRdfTermFactory().get();
 		}
 		return createRDFTermFactory();		
 	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/package-info.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/package-info.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/package-info.java
index 1cb5c77..7eb323b 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/package-info.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/package-info.java
@@ -18,7 +18,7 @@
 /**
  * Integration with jsonld-java
  * 
- * @see org.apache.commons.rdf.jsonldjava.JsonLdFactory
+ * @see org.apache.commons.rdf.jsonldjava.JsonLdRDF
  * @see org.apache.commons.rdf.jsonldjava.JsonLdGraph
  * @see org.apache.commons.rdf.jsonldjava.JsonLdUnionGraph
  * @see org.apache.commons.rdf.jsonldjava.JsonLdDataset

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory b/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
index ecb7535..2c97ca5 100644
--- a/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
+++ b/jsonld-java/src/main/resources/META-INF/services/org.apache.commons.rdf.api.RDFFactory
@@ -1 +1 @@
-org.apache.commons.rdf.jsonldjava.JsonLdFactory
+org.apache.commons.rdf.jsonldjava.JsonLdRDF

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
index ea87fa8..81fb532 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
@@ -26,7 +26,7 @@ public class JsonLdFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
 	public RDF createFactory() {
-		return new JsonLdFactory();
+		return new JsonLdRDF();
 	}
 	
 	// TODO: Add support for checking for invalid lang/iri/blanknode IDs

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
index 51c768f..64e94e5 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
@@ -24,7 +24,7 @@ public class JsonLdGraphTest extends AbstractGraphTest {
 
 	@Override
 	public RDF createFactory() {
-		return new JsonLdFactory();
+		return new JsonLdRDF();
 	}
 	
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilderTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilderTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilderTest.java
index bd3c6bb..6cdb841 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilderTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdParserBuilderTest.java
@@ -39,7 +39,7 @@ import org.junit.Test;
 public class JsonLdParserBuilderTest {	
 	private static final String TEST_JSONLD = "/test.jsonld";
 	
-	static JsonLdFactory factory = new JsonLdFactory();
+	static JsonLdRDF factory = new JsonLdRDF();
 	IRI test = factory.createIRI("http://example.com/test");
 	IRI Type = factory.createIRI("http://example.com/Type");
 	IRI type = factory.createIRI("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/430bc4d7/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
index f35a41b..dd44586 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
@@ -31,10 +31,10 @@ public class JsonLdServiceLoaderTest {
     public void testServiceLoaderLookup() {
         ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
         for (RDF impl : loader) {
-        	if (impl instanceof JsonLdFactory) {
+        	if (impl instanceof JsonLdRDF) {
         		return; // yay
         	}
         }
-        fail("JsonLdFactory not found in ServiceLoader");        
+        fail("JsonLdRDF not found in ServiceLoader");        
     }
  }


[13/22] incubator-commonsrdf git commit: RDFFactory -> RDF

Posted by st...@apache.org.
RDFFactory -> RDF


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/ff94b9da
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/ff94b9da
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/ff94b9da

Branch: refs/heads/COMMONSRDF-46
Commit: ff94b9da54f1176816c48cb95edd12928eb0b035
Parents: 9addc8c
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:17:49 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 00:17:49 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/BlankNode.java   |   6 +-
 .../org/apache/commons/rdf/api/Dataset.java     |   2 +-
 .../java/org/apache/commons/rdf/api/Graph.java  |   2 +-
 .../java/org/apache/commons/rdf/api/IRI.java    |   2 +-
 .../org/apache/commons/rdf/api/Literal.java     |   6 +-
 .../java/org/apache/commons/rdf/api/Quad.java   |   2 +-
 .../java/org/apache/commons/rdf/api/RDF.java    | 277 ++++++++++++++++++
 .../org/apache/commons/rdf/api/RDFFactory.java  | 279 -------------------
 .../apache/commons/rdf/api/RDFTermFactory.java  |   4 +-
 .../java/org/apache/commons/rdf/api/Triple.java |   2 +-
 .../apache/commons/rdf/api/package-info.java    |   2 +-
 .../commons/rdf/experimental/RDFParser.java     |  12 +-
 .../commons/rdf/api/AbstractGraphTest.java      |  14 +-
 .../rdf/api/AbstractRDFTermFactoryTest.java     |  14 +-
 .../rdf/api/DefaultRDFTermFactoryTest.java      |   6 +-
 examples/src/example/UserGuideTest.java         |   4 +-
 .../apache/commons/rdf/jena/JenaFactory.java    |  42 +--
 .../rdf/jena/experimental/JenaRDFParser.java    |   4 +-
 .../commons/rdf/jena/JenaServiceLoaderTest.java |   6 +-
 .../apache/commons/rdf/jena/TestGraphJena.java  |   4 +-
 .../jena/TestJenaGraphToCommonsRDFGraph.java    |   4 +-
 .../rdf/jena/TestRDFTermFactoryJena.java        |   4 +-
 .../commons/rdf/jsonldjava/JsonLdFactory.java   |   4 +-
 .../rdf/jsonldjava/JsonLdFactoryTest.java       |   4 +-
 .../commons/rdf/jsonldjava/JsonLdGraphTest.java |   4 +-
 .../rdf/jsonldjava/JsonLdServiceLoaderTest.java |   6 +-
 .../apache/commons/rdf/rdf4j/RDF4JFactory.java  |   6 +-
 .../org/apache/commons/rdf/rdf4j/GraphTest.java |   4 +-
 .../commons/rdf/rdf4j/MemoryGraphTest.java      |   6 +-
 .../rdf/rdf4j/MemoryRDFTermFactoryTest.java     |   4 +-
 .../commons/rdf/rdf4j/NativeStoreGraphTest.java |   6 +-
 .../rdf/rdf4j/RDF4JServiceLoaderTest.java       |   6 +-
 .../rdf/rdf4j/Rdf4JRDFTermFactoryTest.java      |   4 +-
 .../commons/rdf/simple/BlankNodeImpl.java       |   6 +-
 .../commons/rdf/simple/SimpleRDFFactory.java    |   6 +-
 .../simple/experimental/AbstractRDFParser.java  |  26 +-
 .../commons/rdf/simple/DefaultGraphTest.java    |  10 +-
 .../rdf/simple/DummyRDFParserBuilder.java       |   4 +-
 .../commons/rdf/simple/SimpleGraphTest.java     |   4 +-
 .../SimpleNoRelativeIRIRDFTermFactoryTest.java  |   4 +-
 .../rdf/simple/SimpleRDFTermFactoryTest.java    |   6 +-
 .../rdf/simple/SimpleServiceLoaderTest.java     |   6 +-
 .../commons/rdf/simple/TestWritingGraph.java    |   4 +-
 .../experimental/AbstractRDFParserTest.java     |   4 +-
 44 files changed, 415 insertions(+), 417 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
index efa4dfb..f8e6e05 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/BlankNode.java
@@ -50,8 +50,8 @@ import java.util.UUID;
  * A BlankNode SHOULD contain a {@link UUID}-derived string as part of its
  * universally unique {@link #uniqueReference()}.
  *
- * @see RDFFactory#createBlankNode()
- * @see RDFFactory#createBlankNode(String)
+ * @see RDF#createBlankNode()
+ * @see RDF#createBlankNode(String)
  * @see <a href="http://www.w3.org/TR/rdf11-concepts/#dfn-blank-node">RDF-1.1
  * Blank Node</a>
  */
@@ -62,7 +62,7 @@ public interface BlankNode extends BlankNodeOrIRI {
      * <p>
      * The reference string MUST universally and uniquely identify this blank
      * node. That is, different blank nodes created separately in different JVMs
-     * or from different {@link RDFFactory} instances MUST NOT have the same
+     * or from different {@link RDF} instances MUST NOT have the same
      * reference string.
      * <p>
      * The {@link #uniqueReference()} of two <code>BlankNode</code> instances

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Dataset.java b/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
index 9e6f6d7..03aff91 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
@@ -29,7 +29,7 @@ import java.util.stream.Stream;
  * Syntax</a>, a W3C Recommendation published on 25 February 2014.
  * 
  * @since 0.3.0-incubating
- * @see RDFFactory#createDataset()
+ * @see RDF#createDataset()
  */
 public interface Dataset extends AutoCloseable, GraphLike<Quad> {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/Graph.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Graph.java b/api/src/main/java/org/apache/commons/rdf/api/Graph.java
index ccf9c9d..4e0ed4c 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Graph.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Graph.java
@@ -27,7 +27,7 @@ import java.util.stream.Stream;
  * href="http://www.w3.org/TR/rdf11-concepts/" >RDF-1.1 Concepts and Abstract
  * Syntax</a>, a W3C Recommendation published on 25 February 2014.
  * 
- * @see RDFFactory#createGraph()
+ * @see RDF#createGraph()
  */
 public interface Graph extends AutoCloseable,GraphLike<Triple> {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/IRI.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/IRI.java b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
index f3588cb..152bffd 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/IRI.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
@@ -23,7 +23,7 @@ package org.apache.commons.rdf.api;
  * Concepts and Abstract Syntax</a>, a W3C Recommendation published on 25
  * February 2014.
  * 
- * @see RDFFactory#createIRI(String)
+ * @see RDF#createIRI(String)
  */
 public interface IRI extends BlankNodeOrIRI {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/Literal.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Literal.java b/api/src/main/java/org/apache/commons/rdf/api/Literal.java
index 29b7f77..4e3c003 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Literal.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Literal.java
@@ -27,9 +27,9 @@ import java.util.Optional;
  * Concepts and Abstract Syntax</a>, a W3C Recommendation published on 25
  * February 2014
  * 
- * @see RDFFactory#createLiteral(String)
- * @see RDFFactory#createLiteral(String, IRI)
- * @see RDFFactory#createLiteral(String, String)
+ * @see RDF#createLiteral(String)
+ * @see RDF#createLiteral(String, IRI)
+ * @see RDF#createLiteral(String, String)
  */
 public interface Literal extends RDFTerm {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/Quad.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Quad.java b/api/src/main/java/org/apache/commons/rdf/api/Quad.java
index 494600f..ba89823 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Quad.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Quad.java
@@ -30,7 +30,7 @@ import java.util.Optional;
  * 
  * @since 0.3.0-incubating
  * @see Dataset
- * @see RDFFactory#createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm)
+ * @see RDF#createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm)
  * @see <a href="http://www.w3.org/TR/2014/NOTE-rdf11-datasets-20140225/">RDF
  *      1.1: On Semantics of RDF Datasets</a>
  * @see <a href="http://www.w3.org/TR/rdf11-concepts/#section-dataset"> </a>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/RDF.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDF.java b/api/src/main/java/org/apache/commons/rdf/api/RDF.java
new file mode 100644
index 0000000..4314568
--- /dev/null
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDF.java
@@ -0,0 +1,277 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.rdf.api;
+
+import java.io.Serializable;
+import java.util.Locale;
+
+/**
+ * Factory for creating RDFTerm and Graph instances.
+ * <p>
+ * If an implementation does not support a particular method (e.g. it requires
+ * additional parameters or can't create graphs), then it MAY throw
+ * {@link UnsupportedOperationException}, as provided by the <code>default</code>
+ * implementations in this interface.
+ * <p>
+ * If a factory method does not allow or support a provided parameter, e.g.
+ * because an IRI is considered invalid, then it SHOULD throw
+ * {@link IllegalArgumentException}.
+ *
+ * @since 0.3.0-incubating
+ * @see RDFTerm
+ * @see Graph
+ * @see Quad
+ */
+public interface RDF {
+
+    /**
+     * Create a new blank node.
+     * <p>
+     * The returned blank node MUST NOT be equal to any existing
+     * {@link BlankNode} instances according to {@link BlankNode#equals(Object)}.
+     *
+     * @return A new, unique {@link BlankNode}
+     * @throws UnsupportedOperationException
+     *             If the operation is not supported.
+     */
+    default BlankNode createBlankNode() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createBlankNode() not supported");
+    }
+
+    /**
+     * Create a blank node based on the given name.
+     * <p>
+     * All {@link BlankNode}s created with the given <code>name</code>
+     * <em>on a particular instance</em> of <code>RDF</code> MUST be
+     * equivalent according to {@link BlankNode#equals(Object)},
+     * <p>
+     * The returned BlankNode MUST NOT be equal to <code>BlankNode</code>
+     * instances returned for any other <code>name</code> or those returned from
+     * {@link #createBlankNode()}.
+     * <p>
+     * The returned BlankNode SHOULD NOT be equivalent to any BlankNodes created
+     * on a <em>different</em> <code>RDF</code> instance, e.g.
+     * different instances of <code>RDF</code> should produce
+     * different blank nodes for the same <code>name</code> unless they
+     * purposely are intending to create equivalent {@link BlankNode}
+     * instances (e.g. a reinstated {@link Serializable} factory).
+     *
+     * @param name
+     *            A non-empty, non-null, String that is unique to this blank
+     *            node in the context of this {@link RDF}.
+     * @return A BlankNode for the given name
+     * @throws UnsupportedOperationException
+     *             If the operation is not supported.
+     */
+    default BlankNode createBlankNode(String name)
+            throws UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createBlankNode(String) not supported");
+    }
+
+    /**
+     * Create a new graph.
+     *
+     * It is undefined if the graph will be persisted by any underlying storage
+     * mechanism.
+     *
+     * @return A new Graph
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Graph createGraph() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("createGraph() not supported");
+    }
+
+    /**
+     * Create a new dataset.
+     *
+     * It is undefined if the dataset will be persisted by any underlying storage
+     * mechanism.
+     *
+     * @return A new Dataset
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Dataset createDataset() throws UnsupportedOperationException {
+        throw new UnsupportedOperationException("createDataset() not supported");
+    }
+
+    /**
+     * Create an IRI from a (possibly escaped) String.
+     *
+     * The provided iri string MUST be valid according to the <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-iri">W3C RDF-1.1 IRI</a>
+     * definition.
+     *
+     * @param iri Internationalized Resource Identifier
+     * @return A new IRI
+     * @throws IllegalArgumentException      If the provided string is not acceptable, e.g. does not
+     *                                       conform to the RFC3987 syntax.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default IRI createIRI(String iri) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createIRI(String) not supported");
+    }
+
+    /**
+     * Create a simple literal.
+     *
+     * The provided lexical form should not be escaped in any sense, e.g. should
+     * not include "quotes" unless those are part of the literal value.
+     *
+     * The returned Literal MUST have a {@link Literal#getLexicalForm()} that is
+     * equal to the provided lexical form, MUST NOT have a
+     * {@link Literal#getLanguageTag()} present, and SHOULD return a
+     * {@link Literal#getDatatype()} that is equal to the IRI
+     * <code>http://www.w3.org/2001/XMLSchema#string</code>.
+     *
+     * @param lexicalForm The literal value in plain text
+     * @return The created Literal
+     * @throws IllegalArgumentException      If the provided lexicalForm is not acceptable, e.g. because
+     *                                       it is too large for an underlying storage.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Literal createLiteral(String lexicalForm)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String) not supported");
+    }
+
+    /**
+     * Create a literal with the specified data type.
+     *
+     * The provided lexical form should not be escaped in any sense, e.g. should
+     * not include "quotes" unless those are part of the literal value.
+     *
+     * It is RECOMMENDED that the provided dataType is one of the <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#xsd-datatypes">RDF-compatible
+     * XSD types</a>.
+     *
+     * The provided lexical form SHOULD be in the <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-space">lexical
+     * space</a> of the provided dataType.
+     *
+     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} that
+     * is equal to the provided lexicalForm, MUST NOT have a
+     * {@link Literal#getLanguageTag()} present, and MUST return a
+     * {@link Literal#getDatatype()} that is equivalent to the provided dataType
+     * IRI.
+     *
+     * @param lexicalForm The literal value
+     * @param dataType    The data type IRI for the literal value, e.g.
+     *                    <code>http://www.w3.org/2001/XMLSchema#integer</code>
+     * @return The created Literal
+     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
+     *                                       because the provided dataType is not permitted.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Literal createLiteral(String lexicalForm, IRI dataType)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String) not supported");
+    }
+
+    /**
+     * Create a language-tagged literal.
+     *
+     * The provided lexical form should not be escaped in any sense, e.g. should
+     * not include "quotes" unless those are part of the literal value.
+     *
+     * The provided language tag MUST be valid according to <a
+     * href="http://tools.ietf.org/html/bcp47">BCP47</a>, e.g. <code>en</code>.
+     *
+     * The provided language tag <a
+     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"
+     * >MAY be converted to lower case</a>.
+     *
+     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} which
+     * is equal to the provided lexicalForm, MUST return a
+     * {@link Literal#getDatatype()} that is equal to the IRI
+     * <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>, and
+     * MUST have a {@link Literal#getLanguageTag()} present which SHOULD be
+     * equal to the provided language tag (compared as
+     * {@link String#toLowerCase(Locale)} using {@link Locale#ENGLISH}).
+     *
+     * @param lexicalForm The literal value
+     * @param languageTag The non-empty language tag as defined by <a
+     *                    href="http://tools.ietf.org/html/bcp47">BCP47</a>
+     * @return The created Literal
+     * @throws IllegalArgumentException      If the provided values are not acceptable, e.g. because the
+     *                                       languageTag was syntactically invalid.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Literal createLiteral(String lexicalForm, String languageTag)
+            throws IllegalArgumentException, UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createLiteral(String,String) not supported");
+    }
+
+    /**
+     * Create a triple.
+     *
+     * The returned Triple SHOULD have a {@link Triple#getSubject()} that is
+     * equal to the provided subject, a {@link Triple#getPredicate()} that is
+     * equal to the provided predicate, and a {@link Triple#getObject()} that is
+     * equal to the provided object.
+     *
+     * @param subject   The IRI or BlankNode that is the subject of the triple
+     * @param predicate The IRI that is the predicate of the triple
+     * @param object    The IRI, BlankNode or Literal that is the object of the triple
+     * @return The created Triple
+     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
+     *                                       because a Literal has a lexicalForm that is too large for an
+     *                                       underlying storage.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");
+    }
+
+    /**
+     * Create a quad.
+     * <p>
+     * The returned Quad SHOULD have a
+     * {@link Quad#getGraphName()} that is equal to the provided graphName, a
+     * {@link Quad#getSubject()} that is
+     * equal to the provided subject, a {@link Quad#getPredicate()} that is
+     * equal to the provided predicate, and a {@link Quad#getObject()} that is
+     * equal to the provided object.
+     *
+     * @param graphName The IRI or BlankNode that this quad belongs to, or <code>null</code> for the default graph
+     * @param subject   The IRI or BlankNode that is the subject of the quad
+     * @param predicate The IRI that is the predicate of the quad
+     * @param object    The IRI, BlankNode or Literal that is the object of the quad
+     * @return The created Quad
+     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
+     *                                       because a Literal has a lexicalForm that is too large for an
+     *                                       underlying storage.
+     * @throws UnsupportedOperationException If the operation is not supported.
+     */
+    default Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException,
+            UnsupportedOperationException {
+        throw new UnsupportedOperationException(
+                "createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm) not supported");
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java b/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
deleted file mode 100644
index a116153..0000000
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.api;
-
-import java.io.Serializable;
-import java.util.Locale;
-
-/**
- * Factory for creating RDFTerm and Graph instances.
- * <p>
- * It is not specified how an implementation should provide a RDFFactory.
- * <p>
- * If an implementation does not support a particular method (e.g. it requires
- * additional parameters or can't create graphs), then it MAY throw
- * {@link UnsupportedOperationException}, as provided by the <code>default</code>
- * implementations in this interface.
- * <p>
- * If a factory method does not allow or support a provided parameter, e.g.
- * because an IRI is considered invalid, then it SHOULD throw
- * {@link IllegalArgumentException}.
- *
- * @since 0.3.0-incubating
- * @see RDFTerm
- * @see Graph
- * @see Quad
- */
-public interface RDFFactory {
-
-    /**
-     * Create a new blank node.
-     * <p>
-     * The returned blank node MUST NOT be equal to any existing
-     * {@link BlankNode} instances according to {@link BlankNode#equals(Object)}.
-     *
-     * @return A new, unique {@link BlankNode}
-     * @throws UnsupportedOperationException
-     *             If the operation is not supported.
-     */
-    default BlankNode createBlankNode() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode() not supported");
-    }
-
-    /**
-     * Create a blank node based on the given name.
-     * <p>
-     * All {@link BlankNode}s created with the given <code>name</code>
-     * <em>on a particular instance</em> of <code>RDFFactory</code> MUST be
-     * equivalent according to {@link BlankNode#equals(Object)},
-     * <p>
-     * The returned BlankNode MUST NOT be equal to <code>BlankNode</code>
-     * instances returned for any other <code>name</code> or those returned from
-     * {@link #createBlankNode()}.
-     * <p>
-     * The returned BlankNode SHOULD NOT be equivalent to any BlankNodes created
-     * on a <em>different</em> <code>RDFFactory</code> instance, e.g.
-     * different instances of <code>RDFFactory</code> should produce
-     * different blank nodes for the same <code>name</code> unless they
-     * purposely are intending to create equivalent {@link BlankNode}
-     * instances (e.g. a reinstated {@link Serializable} factory).
-     *
-     * @param name
-     *            A non-empty, non-null, String that is unique to this blank
-     *            node in the context of this {@link RDFFactory}.
-     * @return A BlankNode for the given name
-     * @throws UnsupportedOperationException
-     *             If the operation is not supported.
-     */
-    default BlankNode createBlankNode(String name)
-            throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode(String) not supported");
-    }
-
-    /**
-     * Create a new graph.
-     *
-     * It is undefined if the graph will be persisted by any underlying storage
-     * mechanism.
-     *
-     * @return A new Graph
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Graph createGraph() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createGraph() not supported");
-    }
-
-    /**
-     * Create a new dataset.
-     *
-     * It is undefined if the dataset will be persisted by any underlying storage
-     * mechanism.
-     *
-     * @return A new Dataset
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Dataset createDataset() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createDataset() not supported");
-    }
-
-    /**
-     * Create an IRI from a (possibly escaped) String.
-     *
-     * The provided iri string MUST be valid according to the <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-iri">W3C RDF-1.1 IRI</a>
-     * definition.
-     *
-     * @param iri Internationalized Resource Identifier
-     * @return A new IRI
-     * @throws IllegalArgumentException      If the provided string is not acceptable, e.g. does not
-     *                                       conform to the RFC3987 syntax.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default IRI createIRI(String iri) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createIRI(String) not supported");
-    }
-
-    /**
-     * Create a simple literal.
-     *
-     * The provided lexical form should not be escaped in any sense, e.g. should
-     * not include "quotes" unless those are part of the literal value.
-     *
-     * The returned Literal MUST have a {@link Literal#getLexicalForm()} that is
-     * equal to the provided lexical form, MUST NOT have a
-     * {@link Literal#getLanguageTag()} present, and SHOULD return a
-     * {@link Literal#getDatatype()} that is equal to the IRI
-     * <code>http://www.w3.org/2001/XMLSchema#string</code>.
-     *
-     * @param lexicalForm The literal value in plain text
-     * @return The created Literal
-     * @throws IllegalArgumentException      If the provided lexicalForm is not acceptable, e.g. because
-     *                                       it is too large for an underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Literal createLiteral(String lexicalForm)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
-
-    /**
-     * Create a literal with the specified data type.
-     *
-     * The provided lexical form should not be escaped in any sense, e.g. should
-     * not include "quotes" unless those are part of the literal value.
-     *
-     * It is RECOMMENDED that the provided dataType is one of the <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#xsd-datatypes">RDF-compatible
-     * XSD types</a>.
-     *
-     * The provided lexical form SHOULD be in the <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-space">lexical
-     * space</a> of the provided dataType.
-     *
-     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} that
-     * is equal to the provided lexicalForm, MUST NOT have a
-     * {@link Literal#getLanguageTag()} present, and MUST return a
-     * {@link Literal#getDatatype()} that is equivalent to the provided dataType
-     * IRI.
-     *
-     * @param lexicalForm The literal value
-     * @param dataType    The data type IRI for the literal value, e.g.
-     *                    <code>http://www.w3.org/2001/XMLSchema#integer</code>
-     * @return The created Literal
-     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
-     *                                       because the provided dataType is not permitted.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Literal createLiteral(String lexicalForm, IRI dataType)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
-
-    /**
-     * Create a language-tagged literal.
-     *
-     * The provided lexical form should not be escaped in any sense, e.g. should
-     * not include "quotes" unless those are part of the literal value.
-     *
-     * The provided language tag MUST be valid according to <a
-     * href="http://tools.ietf.org/html/bcp47">BCP47</a>, e.g. <code>en</code>.
-     *
-     * The provided language tag <a
-     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"
-     * >MAY be converted to lower case</a>.
-     *
-     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} which
-     * is equal to the provided lexicalForm, MUST return a
-     * {@link Literal#getDatatype()} that is equal to the IRI
-     * <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>, and
-     * MUST have a {@link Literal#getLanguageTag()} present which SHOULD be
-     * equal to the provided language tag (compared as
-     * {@link String#toLowerCase(Locale)} using {@link Locale#ENGLISH}).
-     *
-     * @param lexicalForm The literal value
-     * @param languageTag The non-empty language tag as defined by <a
-     *                    href="http://tools.ietf.org/html/bcp47">BCP47</a>
-     * @return The created Literal
-     * @throws IllegalArgumentException      If the provided values are not acceptable, e.g. because the
-     *                                       languageTag was syntactically invalid.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Literal createLiteral(String lexicalForm, String languageTag)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String,String) not supported");
-    }
-
-    /**
-     * Create a triple.
-     *
-     * The returned Triple SHOULD have a {@link Triple#getSubject()} that is
-     * equal to the provided subject, a {@link Triple#getPredicate()} that is
-     * equal to the provided predicate, and a {@link Triple#getObject()} that is
-     * equal to the provided object.
-     *
-     * @param subject   The IRI or BlankNode that is the subject of the triple
-     * @param predicate The IRI that is the predicate of the triple
-     * @param object    The IRI, BlankNode or Literal that is the object of the triple
-     * @return The created Triple
-     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
-     *                                       because a Literal has a lexicalForm that is too large for an
-     *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
-
-    /**
-     * Create a quad.
-     * <p>
-     * The returned Quad SHOULD have a
-     * {@link Quad#getGraphName()} that is equal to the provided graphName, a
-     * {@link Quad#getSubject()} that is
-     * equal to the provided subject, a {@link Quad#getPredicate()} that is
-     * equal to the provided predicate, and a {@link Quad#getObject()} that is
-     * equal to the provided object.
-     *
-     * @param graphName The IRI or BlankNode that this quad belongs to, or <code>null</code> for the default graph
-     * @param subject   The IRI or BlankNode that is the subject of the quad
-     * @param predicate The IRI that is the predicate of the quad
-     * @param object    The IRI, BlankNode or Literal that is the object of the quad
-     * @return The created Quad
-     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
-     *                                       because a Literal has a lexicalForm that is too large for an
-     *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
-     */
-    default Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java b/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
index ef4e38e..37c4ead 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFTermFactory.java
@@ -21,9 +21,9 @@ package org.apache.commons.rdf.api;
  * Factory for creating RDFTerm instances..
  * <p>
  * This interface is <strong>deprecated</strong> in favour of
- * the richer {@link RDFFactory}.
+ * the richer {@link RDF}.
  * 
- * @see RDFFactory
+ * @see RDF
  */
 @Deprecated
 public interface RDFTermFactory {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/Triple.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Triple.java b/api/src/main/java/org/apache/commons/rdf/api/Triple.java
index 9e359d7..b0866bd 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Triple.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Triple.java
@@ -26,7 +26,7 @@ import java.util.Objects;
  * 25 February 2014.<br>
  *
  * @see Quad 
- * @see RDFFactory#createTriple(BlankNodeOrIRI,IRI,RDFTerm)
+ * @see RDF#createTriple(BlankNodeOrIRI,IRI,RDFTerm)
  * @see <a href= "http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-triple" >RDF-1.1
  * Triple</a>
  */

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/api/package-info.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/package-info.java b/api/src/main/java/org/apache/commons/rdf/api/package-info.java
index 19d1462..4cecc4f 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/package-info.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/package-info.java
@@ -30,7 +30,7 @@
  * {@link org.apache.commons.rdf.api.BlankNode}.
  * <p>
  * Implementations of this API should provide an
- * {@link org.apache.commons.rdf.api.RDFFactory} to facilitate
+ * {@link org.apache.commons.rdf.api.RDF} to facilitate
  * creation of these objects.
  * <p>
  * All the {@link org.apache.commons.rdf.api.RDFTerm} objects are immutable,

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java b/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
index e77926d..d5684e4 100644
--- a/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
+++ b/api/src/main/java/org/apache/commons/rdf/experimental/RDFParser.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 
 /**
@@ -100,25 +100,25 @@ public interface RDFParser {
 	}
 
 	/**
-	 * Specify which {@link RDFFactory} to use for generating
+	 * Specify which {@link RDF} to use for generating
 	 * {@link RDFTerm}s.
 	 * <p>
 	 * This option may be used together with {@link #target(Graph)} to
 	 * override the implementation's default factory and graph.
 	 * <p>
-	 * <strong>Warning:</strong> Using the same {@link RDFFactory} for 
+	 * <strong>Warning:</strong> Using the same {@link RDF} for 
 	 * multiple {@link #parse()} calls  may accidentally merge 
 	 * {@link BlankNode}s having the same label, as the parser may 
-	 * use the {@link RDFFactory#createBlankNode(String)} method
+	 * use the {@link RDF#createBlankNode(String)} method
 	 * from the parsed blank node labels.
 	 * 
 	 * @see #target(Graph)
 	 * @param rdfTermFactory
-	 *            {@link RDFFactory} to use for generating RDFTerms.
+	 *            {@link RDF} to use for generating RDFTerms.
 	 * @return An {@link RDFParser} that will use the specified
 	 *         rdfTermFactory
 	 */
-	RDFParser rdfTermFactory(RDFFactory rdfTermFactory);
+	RDFParser rdfTermFactory(RDF rdfTermFactory);
 
 	/**
 	 * Specify the content type of the RDF syntax to parse.

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
index bd68f51..ba930eb 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
@@ -41,18 +41,18 @@ import org.junit.Test;
  * <p>
  * To add to your implementation's tests, create a subclass with a name ending
  * in <code>Test</code> and provide {@link #createFactory()} which minimally
- * must support {@link RDFFactory#createGraph()} and
- * {@link RDFFactory#createIRI(String)}, but ideally support all operations.
+ * must support {@link RDF#createGraph()} and
+ * {@link RDF#createIRI(String)}, but ideally support all operations.
  * <p>
  * This test uses try-with-resources blocks for calls to {@link Graph#stream()}
  * and {@link Graph#iterate()}.
  * 
  * @see Graph
- * @see RDFFactory
+ * @see RDF
  */
 public abstract class AbstractGraphTest {
 
-    protected RDFFactory factory;
+    protected RDF factory;
     protected Graph graph;
     protected IRI alice;
     protected IRI bob;
@@ -67,7 +67,7 @@ public abstract class AbstractGraphTest {
     protected Literal companyName;
     protected Triple bobNameTriple;
 
-    public abstract RDFFactory createFactory();
+    public abstract RDF createFactory();
 
     @Before
     public void createGraphAndAdd() {
@@ -413,7 +413,7 @@ public abstract class AbstractGraphTest {
      * Make a new graph with two BlankNodes - each with a different uniqueReference
      */
     private Graph createGraph1() {
-        RDFFactory factory1 = createFactory();
+        RDF factory1 = createFactory();
 
         IRI name = factory1.createIRI("http://xmlns.com/foaf/0.1/name");
         Graph g1 = factory1.createGraph();
@@ -465,7 +465,7 @@ public abstract class AbstractGraphTest {
 	}
 
     private Graph createGraph2() {
-        RDFFactory factory2 = createFactory();
+        RDF factory2 = createFactory();
         IRI name = factory2.createIRI("http://xmlns.com/foaf/0.1/name");
 
         Graph g2 = factory2.createGraph();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
index 412b812..2595621 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
@@ -29,26 +29,26 @@ import org.junit.Before;
 import org.junit.Test;
 
 /**
- * Test RDFFactory implementation (and thus its RDFTerm implementations)
+ * Test RDF implementation (and thus its RDFTerm implementations)
  * <p>
  * To add to your implementation's tests, create a subclass with a name ending
  * in <code>Test</code> and provide {@link #createFactory()} which minimally
  * supports one of the operations, but ideally supports all operations.
  *
- * @see RDFFactory
+ * @see RDF
  */
 public abstract class AbstractRDFTermFactoryTest {
 
-    private RDFFactory factory;
+    private RDF factory;
 
     /**
-     * testCreate a new, distinct {@link RDFFactory} object using the
+     * testCreate a new, distinct {@link RDF} object using the
      * implementation being tested here.
      *
-     * @return a new, distinct {@link RDFFactory} object using the
+     * @return a new, distinct {@link RDF} object using the
      * implementation being tested here
      */
-    public abstract RDFFactory createFactory();
+    public abstract RDF createFactory();
 
     @Before
     public void setUp() {
@@ -126,7 +126,7 @@ public abstract class AbstractRDFTermFactoryTest {
             // only says:
             // 
             // * BlankNodes created using this method with the same parameter, for
-            // * different instances of RDFFactory, SHOULD NOT be equivalent.
+            // * different instances of RDF, SHOULD NOT be equivalent.
             //
             // https://github.com/apache/incubator-commonsrdf/pull/7#issuecomment-92312779
         } catch (UnsupportedOperationException ex) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
index d7db514..a800191 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
@@ -18,15 +18,15 @@
 package org.apache.commons.rdf.api;
 
 /**
- * The default RDFFactory might be useless (every method throws
+ * The default RDF might be useless (every method throws
  * UnsupportedOperationException), but this test ensures that
  * AbstractRDFTermFactoryTest does not fall over on unsupported operations.
  */
 public class DefaultRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
     @Override
-    public RDFFactory createFactory() {
-        return new RDFFactory() {
+    public RDF createFactory() {
+        return new RDF() {
         };
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/examples/src/example/UserGuideTest.java
----------------------------------------------------------------------
diff --git a/examples/src/example/UserGuideTest.java b/examples/src/example/UserGuideTest.java
index c9487e3..7b423cf 100644
--- a/examples/src/example/UserGuideTest.java
+++ b/examples/src/example/UserGuideTest.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.QuadLike;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.simple.SimpleRDFFactory;
@@ -42,7 +42,7 @@ import org.junit.Test;
 
 public class UserGuideTest {
 
-	private RDFFactory factory;
+	private RDF factory;
 
 	@Before
 	public void factory() {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
index 0a5b44b..4832e44 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaFactory.java
@@ -31,7 +31,7 @@ import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.QuadLike;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.jena.impl.InternalJenaFactory;
@@ -48,7 +48,7 @@ import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 /**
- * RDFFactory with Jena-backed objects.
+ * RDF with Jena-backed objects.
  * <p>
  * This factory can also convert existing objects from/to Jena with methods like
  * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
@@ -56,9 +56,9 @@ import org.apache.jena.sparql.graph.GraphFactory;
  * For the purpose of {@link BlankNode} identity, this factory will use an internal
  * {@link UUID} as a salt. See {@link BlankNode#uniqueReference()} for details.
  * 
- * @see RDFFactory
+ * @see RDF
  */
-public final class JenaFactory implements RDFFactory {
+public final class JenaFactory implements RDF {
 
 	private static InternalJenaFactory internalJenaFactory = new InternalJenaFactory(){};
 	
@@ -203,7 +203,7 @@ public final class JenaFactory implements RDFFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 * 
-	 * @see #fromJena(RDFFactory, Node)
+	 * @see #fromJena(RDF, Node)
 	 * 
 	 * @param node
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
@@ -220,13 +220,13 @@ public final class JenaFactory implements RDFFactory {
 	 * Convert from Jena {@link Node} to any Commons RDF implementation.
 	 * <p>
 	 * Note that if the {@link Node#isBlank()}, then the factory's 
-	 * {@link RDFFactory#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDFFactory} instance
+	 * {@link RDF#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDF} instance
 	 * for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(Node)
 	 * 
-	 * @param factory {@link RDFFactory} to use for creating {@link RDFTerm}.
+	 * @param factory {@link RDF} to use for creating {@link RDFTerm}.
 	 * @param node
 	 *            The Jena Node to adapt. It's {@link Node#isConcrete()} must be
 	 *            <code>true</code>.
@@ -234,7 +234,7 @@ public final class JenaFactory implements RDFFactory {
 	 * @throws ConversionException If the {@link Node} can't be represented as an {@link RDFTerm}, e.g.
 	 *             if the node is not concrete or represents a variable in Jena.
 	 */
-	public static RDFTerm fromJena(RDFFactory factory, Node node) {
+	public static RDFTerm fromJena(RDF factory, Node node) {
 		if (node == null) {
 			return null;
 		}
@@ -268,7 +268,7 @@ public final class JenaFactory implements RDFFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 *
-	 * @see #fromJena(RDFFactory, org.apache.jena.graph.Triple)
+	 * @see #fromJena(RDF, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
 	 *            Jena {@link org.apache.jena.graph.Triple} to adapt
@@ -293,7 +293,7 @@ public final class JenaFactory implements RDFFactory {
 	 * {@link Node#getBlankNodeId()} for the purpose of its
 	 * {@link BlankNode#uniqueReference()}.
 	 *
-	 * @see #fromJena(RDFFactory, org.apache.jena.graph.Triple)
+	 * @see #fromJena(RDF, org.apache.jena.graph.Triple)
 	 * 
 	 * @param triple
 	 *            Jena triple
@@ -342,13 +342,13 @@ public final class JenaFactory implements RDFFactory {
 	 * {@link Triple}.
 	 * <p>
 	 * Note that if any of the triple's nodes {@link Node#isBlank()}, then the factory's 
-	 * {@link RDFFactory#createBlankNode(String)} will be used, meaning
-	 * that care should be taken if reusing an {@link RDFFactory} instance
+	 * {@link RDF#createBlankNode(String)} will be used, meaning
+	 * that care should be taken if reusing an {@link RDF} instance
 	 * for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(org.apache.jena.graph.Triple)
 	 *
-	 * @param factory {@link RDFFactory} to use for creating the {@link Triple} and its
+	 * @param factory {@link RDF} to use for creating the {@link Triple} and its
 	 * {@link RDFTerm}s.
 	 * @param triple
 	 *            Jena triple
@@ -357,7 +357,7 @@ public final class JenaFactory implements RDFFactory {
 	 *             if any of the triple's nodes are not concrete or the triple
 	 *             is a generalized triple
 	 */
-	public static Triple fromJena(RDFFactory factory, org.apache.jena.graph.Triple triple) 
+	public static Triple fromJena(RDF factory, org.apache.jena.graph.Triple triple) 
 			throws ConversionException{
 		if (factory instanceof JenaFactory) {
 			// No need to convert, just wrap
@@ -478,15 +478,15 @@ public final class JenaFactory implements RDFFactory {
 	 * RDF {@link Quad}.
 	 * <p>
 	 * Note that if any of the quad's nodes {@link Node#isBlank()}, then the
-	 * factory's {@link RDFFactory#createBlankNode(String)} will be used,
-	 * meaning that care should be taken if reusing an {@link RDFFactory}
+	 * factory's {@link RDF#createBlankNode(String)} will be used,
+	 * meaning that care should be taken if reusing an {@link RDF}
 	 * instance for multiple conversion sessions.
 	 * 
 	 * @see #fromJena(org.apache.jena.sparql.core.Quad)
 	 * @see #fromJenaGeneralized(org.apache.jena.sparql.core.Quad)
 	 *
 	 * @param factory
-	 *            {@link RDFFactory} to use for creating the {@link Triple}
+	 *            {@link RDF} to use for creating the {@link Triple}
 	 *            and its {@link RDFTerm}s.
 	 * @param quad
 	 *            Jena {@link org.apache.jena.sparql.core.Quad} to adapt
@@ -495,7 +495,7 @@ public final class JenaFactory implements RDFFactory {
 	 *             if any of the quad's nodes are not concrete or the quad
 	 *             is a generalized quad
 	 */
-	public static Quad fromJena(RDFFactory factory, org.apache.jena.sparql.core.Quad quad) {
+	public static Quad fromJena(RDF factory, org.apache.jena.sparql.core.Quad quad) {
 		if (factory instanceof JenaFactory) {
 			// No need to convert, just wrap
 			return ((JenaFactory) factory).fromJena(quad);
@@ -535,14 +535,14 @@ public final class JenaFactory implements RDFFactory {
 	 * {@link RDFDataMgr#parse(StreamRDF, String)}.
 	 * 
 	 * @param factory
-	 *            {@link RDFFactory} to use for creating {@link RDFTerm}s
+	 *            {@link RDF} to use for creating {@link RDFTerm}s
 	 *            and {@link Quad}s.
 	 * @param consumer
 	 *            A {@link Consumer} of {@link Quad}s
 	 * @return A {@link StreamRDF} that will stream converted quads to the
 	 *         consumer
 	 */
-	public static StreamRDF streamJenaToCommonsRDF(RDFFactory factory, Consumer<Quad> consumer) {
+	public static StreamRDF streamJenaToCommonsRDF(RDF factory, Consumer<Quad> consumer) {
 		return new StreamRDFBase() {
 			@Override
 			public void quad(org.apache.jena.sparql.core.Quad quad) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
index f14532c..ffbb61c 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/experimental/JenaRDFParser.java
@@ -26,7 +26,7 @@ import java.util.function.Consumer;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.QuadLike;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.jena.JenaGraph;
@@ -43,7 +43,7 @@ public class JenaRDFParser extends AbstractRDFParser<JenaRDFParser> implements R
 	private Consumer<TripleLike> generalizedConsumerTriple;
 	private Consumer<QuadLike<RDFTerm>> generalizedConsumerQuad;
 
-	protected RDFFactory createRDFTermFactory() {
+	protected RDF createRDFTermFactory() {
 		return new JenaFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java b/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
index 1793c3e..87ce543 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
@@ -22,15 +22,15 @@ import static org.junit.Assert.fail;
 
 import java.util.ServiceLoader;
 
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Test;
 
 public class JenaServiceLoaderTest {
 
     @Test
     public void testServiceLoaderLookup() {
-        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
-        for (RDFFactory impl : loader) {
+        ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
+        for (RDF impl : loader) {
         	if (impl instanceof JenaFactory) {
         		return; // yay
         	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
index 5690721..3c7caa8 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestGraphJena.java
@@ -19,12 +19,12 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.AbstractGraphTest ;
-import org.apache.commons.rdf.api.RDFFactory ;
+import org.apache.commons.rdf.api.RDF ;
 
 public class TestGraphJena extends AbstractGraphTest {
 
     @Override
-    public RDFFactory createFactory() {
+    public RDF createFactory() {
         return new JenaFactory() ;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
index 7f08382..ad71a58 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
@@ -24,7 +24,7 @@ import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
 
 import org.apache.commons.rdf.api.Graph ;
-import org.apache.commons.rdf.api.RDFFactory ;
+import org.apache.commons.rdf.api.RDF ;
 import org.apache.jena.riot.Lang ;
 import org.apache.jena.riot.RDFDataMgr ;
 import org.apache.jena.sparql.graph.GraphFactory ;
@@ -59,7 +59,7 @@ public class TestJenaGraphToCommonsRDFGraph {
         Graph graph = new JenaFactory().fromJena(jGraph) ;
         
         // Add to CommonsRDF Graph
-        RDFFactory rft = new JenaFactory() ;
+        RDF rft = new JenaFactory() ;
         graph.add(rft.createIRI("http://example/s2"),
                   rft.createIRI("http://example/p2"),
                   rft.createLiteral("foo")) ;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
index 6ca14b7..f917a68 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
@@ -19,12 +19,12 @@
 package org.apache.commons.rdf.jena;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest ;
-import org.apache.commons.rdf.api.RDFFactory ;
+import org.apache.commons.rdf.api.RDF ;
 
 public class TestRDFTermFactoryJena extends AbstractRDFTermFactoryTest {
 	
     @Override
-    public RDFFactory createFactory() {
+    public RDF createFactory() {
         return new JenaFactory() ;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
index 0dd8486..d5c49f8 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdFactory.java
@@ -28,14 +28,14 @@ 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.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.simple.Types;
 
 import com.github.jsonldjava.core.RDFDataset;
 import com.github.jsonldjava.core.RDFDataset.Node;
 
-public final class JsonLdFactory implements RDFFactory {
+public final class JsonLdFactory implements RDF {
 
 	final String bnodePrefix;
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
index 02b2695..ea87fa8 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
@@ -18,14 +18,14 @@
 package org.apache.commons.rdf.jsonldjava;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Ignore;
 import org.junit.Test;
 
 public class JsonLdFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
-	public RDFFactory createFactory() {
+	public RDF createFactory() {
 		return new JsonLdFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
index 1f98c74..51c768f 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdGraphTest.java
@@ -18,12 +18,12 @@
 package org.apache.commons.rdf.jsonldjava;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 
 public class JsonLdGraphTest extends AbstractGraphTest {
 
 	@Override
-	public RDFFactory createFactory() {
+	public RDF createFactory() {
 		return new JsonLdFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
index ce07a37..f35a41b 100644
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
@@ -22,15 +22,15 @@ import static org.junit.Assert.fail;
 
 import java.util.ServiceLoader;
 
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Test;
 
 public class JsonLdServiceLoaderTest {
 
     @Test
     public void testServiceLoaderLookup() {
-        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
-        for (RDFFactory impl : loader) {
+        ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
+        for (RDF impl : loader) {
         	if (impl instanceof JsonLdFactory) {
         		return; // yay
         	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
index 6b3717b..8dd9745 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JFactory.java
@@ -32,7 +32,7 @@ import org.apache.commons.rdf.api.Dataset;
 import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.api.TripleLike;
 import org.apache.commons.rdf.rdf4j.impl.InternalRDF4JFactory;
@@ -51,7 +51,7 @@ import org.eclipse.rdf4j.sail.Sail;
 import org.eclipse.rdf4j.sail.memory.MemoryStore;
 
 /**
- * RDF4J implementation of RDFFactory.
+ * RDF4J implementation of RDF.
  * <p>
  * The {@link #RDF4JFactory()} constructor uses a {@link SimpleValueFactory}
  * to create corresponding RDF4J {@link Value} instances. Alternatively, this
@@ -99,7 +99,7 @@ import org.eclipse.rdf4j.sail.memory.MemoryStore;
  * therefore uses a unique {@link RDF4JFactory} internally.
  *
  */
-public final class RDF4JFactory implements RDFFactory {
+public final class RDF4JFactory implements RDF {
 
 	/**
 	 * InternalRDF4JFactory is deliberately abstract

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
index 8cba53e..7d6104d 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java
@@ -18,12 +18,12 @@
 package org.apache.commons.rdf.rdf4j;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 
 public class GraphTest extends AbstractGraphTest{
 
 	@Override
-	public RDFFactory createFactory() {
+	public RDF createFactory() {
 		return new RDF4JFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
index ce449bf..5377983 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
@@ -24,7 +24,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.eclipse.rdf4j.repository.Repository;
 import org.eclipse.rdf4j.repository.sail.SailRepository;
 import org.eclipse.rdf4j.sail.Sail;
@@ -33,7 +33,7 @@ import org.eclipse.rdf4j.sail.memory.model.MemValueFactory;
 
 public class MemoryGraphTest extends AbstractGraphTest {
 
-	public static final class MemoryStoreFactory implements RDFFactory {
+	public static final class MemoryStoreFactory implements RDF {
 
 		RDF4JFactory rdf4jFactory = new RDF4JFactory(new MemValueFactory());
 
@@ -82,7 +82,7 @@ public class MemoryGraphTest extends AbstractGraphTest {
 	}
 
 	@Override
-	public RDFFactory createFactory() {
+	public RDF createFactory() {
 		return new MemoryStoreFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
index 07d6a13..73ea05e 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
@@ -18,13 +18,13 @@
 package org.apache.commons.rdf.rdf4j;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Assume;
 
 public class MemoryRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
-	public RDFFactory createFactory() {
+	public RDF createFactory() {
 		return new MemoryGraphTest.MemoryStoreFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
index 9a5ab50..7b31738 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
@@ -27,7 +27,7 @@ import org.apache.commons.rdf.api.BlankNodeOrIRI;
 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.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.eclipse.rdf4j.repository.RepositoryConnection;
 import org.eclipse.rdf4j.repository.RepositoryResult;
 import org.eclipse.rdf4j.repository.sail.SailRepository;
@@ -49,7 +49,7 @@ import org.junit.rules.Timeout;
  */
 public class NativeStoreGraphTest extends AbstractGraphTest {
 
-	public final class NativeStoreFactory implements RDFFactory {
+	public final class NativeStoreFactory implements RDF {
 
 		RDF4JFactory rdf4jFactory = new RDF4JFactory(getRepository().getValueFactory());
 
@@ -145,7 +145,7 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
 //	}
 
 	@Override
-	public RDFFactory createFactory() {
+	public RDF createFactory() {
 		return new NativeStoreFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
index 77c396c..46da04a 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
@@ -22,15 +22,15 @@ import static org.junit.Assert.fail;
 
 import java.util.ServiceLoader;
 
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Test;
 
 public class RDF4JServiceLoaderTest {
 
     @Test
     public void testServiceLoaderLookup() {
-        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
-        for (RDFFactory impl : loader) {
+        ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
+        for (RDF impl : loader) {
         	if (impl instanceof RDF4JFactory) {
         		return; // yay
         	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
index 4e075ac..24283c3 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
@@ -18,13 +18,13 @@
 package org.apache.commons.rdf.rdf4j;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Assume;
 
 public class Rdf4JRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
 	@Override
-	public RDFFactory createFactory() {
+	public RDF createFactory() {
 		return new RDF4JFactory();
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
index fbbdb26..7147322 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/BlankNodeImpl.java
@@ -47,13 +47,13 @@ final class BlankNodeImpl implements BlankNode, SimpleRDFTerm {
         // Build a semi-URN - to be hashed for a name-based UUID below
         // Both the scope and the id are used to create the UUID, ensuring that
         // a caller can reliably create the same bnode if necessary by sending
-        // in the same scope to RDFFactory.createBlankNode(String)
+        // in the same scope to RDF.createBlankNode(String)
         String uuidInput = "urn:uuid:" + uuidSalt + "#" + name;
 
         // The above is not a good value for this.id, as the id
         // needs to be further escaped for
         // ntriplesString() (there are no restrictions on
-        // RDFFactory.createBlankNode(String) ).
+        // RDF.createBlankNode(String) ).
 
 
         // Rather than implement ntriples escaping here, and knowing
@@ -63,7 +63,7 @@ final class BlankNodeImpl implements BlankNode, SimpleRDFTerm {
         //
         // A side-effect from this is that the blank node identifier
         // is not preserved or shown in ntriplesString. In a way
-        // this is a feature, not a bug. as the contract for RDFFactory
+        // this is a feature, not a bug. as the contract for RDF
         // has no such requirement.
         this.uniqueReference = UUID.nameUUIDFromBytes(
                 uuidInput.getBytes(StandardCharsets.UTF_8)).toString();

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
index 4b89603..d8103fe 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDFFactory.java
@@ -27,18 +27,18 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 
 /**
- * A simple implementation of RDFFactory.
+ * A simple implementation of RDF.
  * <p>
  * The {@link RDFTerm}, {@link Triple}, {@link Quad}, {@link Graph}
  * and {@link Dataset} instances created by this factory are
  * simple in-memory Implementations that are not thread-safe or efficient, but
  * which may be useful for testing and prototyping purposes.
  */
-public class SimpleRDFFactory implements RDFFactory {
+public class SimpleRDFFactory implements RDF {
 
 	/**
 	 * Marker interface to say that this RDFTerm is part of the 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
index a37a3c4..b34bc4d 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParser.java
@@ -33,7 +33,7 @@ import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFSyntax;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.SimpleRDFFactory;
 
@@ -63,15 +63,15 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	private static final ExecutorService threadpool = Executors.newCachedThreadPool(r -> new Thread(threadGroup, r));
 
 	// Basically only used for creating IRIs
-	private static RDFFactory internalRdfTermFactory = new SimpleRDFFactory();
+	private static RDF internalRdfTermFactory = new SimpleRDFFactory();
 
 	/**
-	 * Get the set {@link RDFFactory}, if any.
+	 * Get the set {@link RDF}, if any.
 	 * 
-	 * @return The {@link RDFFactory} to use, or {@link Optional#empty()} if
+	 * @return The {@link RDF} to use, or {@link Optional#empty()} if
 	 *         it has not been set
 	 */
-	public Optional<RDFFactory> getRdfTermFactory() {
+	public Optional<RDF> getRdfTermFactory() {
 		return rdfTermFactory;
 	}
 
@@ -200,7 +200,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	}
 
 
-	private Optional<RDFFactory> rdfTermFactory = Optional.empty();
+	private Optional<RDF> rdfTermFactory = Optional.empty();
 	private Optional<RDFSyntax> contentTypeSyntax = Optional.empty();
 	private Optional<String> contentType = Optional.empty();
 	private Optional<IRI> base = Optional.empty();
@@ -227,7 +227,7 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	}
 	
 	@Override
-	public T rdfTermFactory(RDFFactory rdfTermFactory) {
+	public T rdfTermFactory(RDF rdfTermFactory) {
 		AbstractRDFParser<T> c = clone();
 		c.rdfTermFactory = Optional.ofNullable(rdfTermFactory);
 		return c.asT();
@@ -501,20 +501,20 @@ public abstract class AbstractRDFParser<T extends AbstractRDFParser<T>>
 	
 
 	/**
-	 * Create a new {@link RDFFactory} for a parse session.
+	 * Create a new {@link RDF} for a parse session.
 	 * <p>
 	 * This is called by {@link #parse()} to set 
-	 * {@link #rdfTermFactory(RDFFactory)} if it is
+	 * {@link #rdfTermFactory(RDF)} if it is
 	 * {@link Optional#empty()}.
 	 * <p>
 	 * As parsed blank nodes might be made with 
-	 * {@link RDFFactory#createBlankNode(String)}, 
+	 * {@link RDF#createBlankNode(String)}, 
 	 * each call to this method SHOULD return 
-	 * a new RDFFactory instance.
+	 * a new RDF instance.
 	 * 
-	 * @return A new {@link RDFFactory}
+	 * @return A new {@link RDF}
 	 */
-	protected RDFFactory createRDFTermFactory() {
+	protected RDF createRDFTermFactory() {
 		return new SimpleRDFFactory();
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
index ab2cf50..64f5acd 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
@@ -20,20 +20,20 @@ package org.apache.commons.rdf.simple;
 import org.apache.commons.rdf.api.AbstractGraphTest;
 import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 
 /**
- * Ensure AbstractGraphTest does not crash if the RDFFactory throws
+ * Ensure AbstractGraphTest does not crash if the RDF throws
  * UnsupportedOperationException
  */
 
 public class DefaultGraphTest extends AbstractGraphTest {
 
     @Override
-    public RDFFactory createFactory() {
-        // The most minimal RDFFactory that would still
+    public RDF createFactory() {
+        // The most minimal RDF that would still
         // make sense with a Graph
-        return new RDFFactory() {
+        return new RDF() {
             @Override
             public Graph createGraph() throws UnsupportedOperationException {
                 return new GraphImpl(new SimpleRDFFactory());

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java b/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
index c635aff..af91978 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/DummyRDFParserBuilder.java
@@ -23,7 +23,7 @@ import java.util.function.Consumer;
 
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Quad;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.experimental.AbstractRDFParser;
 import org.apache.commons.rdf.simple.experimental.RDFParseException;
@@ -50,7 +50,7 @@ public class DummyRDFParserBuilder extends AbstractRDFParser<DummyRDFParserBuild
 	@Override
 	protected void parseSynchronusly() throws IOException, IllegalStateException, RDFParseException {		
 		// From parseSynchronusly both of these are always present
-		RDFFactory factory = getRdfTermFactory().get();
+		RDF factory = getRdfTermFactory().get();
 		Consumer<Quad> t = getTarget();
 				
 		// well - each parsing is unique. This should hopefully

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
index 3872f11..e4cdf8e 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleGraphTest.java
@@ -20,7 +20,7 @@ package org.apache.commons.rdf.simple;
 import static org.junit.Assert.assertTrue;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Assume;
 import org.junit.Test;
 
@@ -30,7 +30,7 @@ import org.junit.Test;
 public class SimpleGraphTest extends AbstractGraphTest {
 
     @Override
-    public RDFFactory createFactory() {
+    public RDF createFactory() {
         return new SimpleRDFFactory();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
index 752c465..527d7b9 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
@@ -19,7 +19,7 @@ package org.apache.commons.rdf.simple;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
 import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 
 import java.net.URI;
 
@@ -32,7 +32,7 @@ import java.net.URI;
 public class SimpleNoRelativeIRIRDFTermFactoryTest extends
         AbstractRDFTermFactoryTest {
     @Override
-    public RDFFactory createFactory() {
+    public RDF createFactory() {
         return new SimpleRDFFactory() {
             @Override
             public IRI createIRI(String iri) {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
index bd3b5ad..e308f00 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
@@ -18,15 +18,15 @@
 package org.apache.commons.rdf.simple;
 
 import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 
 /**
- * Simple RDFFactory Test
+ * Simple RDF Test
  */
 public class SimpleRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
 
     @Override
-    public RDFFactory createFactory() {
+    public RDF createFactory() {
         return new SimpleRDFFactory();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
index 00e33d3..08930ac 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
@@ -22,15 +22,15 @@ import static org.junit.Assert.fail;
 
 import java.util.ServiceLoader;
 
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.junit.Test;
 
 public class SimpleServiceLoaderTest {
 
     @Test
     public void testServiceLoaderLookup() {
-        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
-        for (RDFFactory impl : loader) {
+        ServiceLoader<RDF> loader = ServiceLoader.load(RDF.class);
+        for (RDF impl : loader) {
         	if (impl instanceof SimpleRDFFactory) {
         		return; // yay
         	}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
index 57ee24a..8af3034 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/TestWritingGraph.java
@@ -29,7 +29,7 @@ import java.util.stream.Stream;
 
 import org.apache.commons.rdf.api.Graph;
 import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -53,7 +53,7 @@ public class TestWritingGraph {
 
     private static Graph graph;
 
-    private static RDFFactory factory;
+    private static RDF factory;
 
     @BeforeClass
     public static void createGraph() throws Exception {



[11/22] incubator-commonsrdf git commit: Javadoc: @see RDFFactory for making IRI etc

Posted by st...@apache.org.
Javadoc: @see RDFFactory for making IRI etc


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/9addc8c0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/9addc8c0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/9addc8c0

Branch: refs/heads/COMMONSRDF-46
Commit: 9addc8c08c991198c2736a8d1f89ddd37fe341e7
Parents: f229c17
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 18:07:23 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 18:07:23 2016 +0100

----------------------------------------------------------------------
 api/src/main/java/org/apache/commons/rdf/api/BlankNodeOrIRI.java | 2 +-
 api/src/main/java/org/apache/commons/rdf/api/Dataset.java        | 3 +++
 api/src/main/java/org/apache/commons/rdf/api/Graph.java          | 2 ++
 api/src/main/java/org/apache/commons/rdf/api/IRI.java            | 2 ++
 api/src/main/java/org/apache/commons/rdf/api/Literal.java        | 4 ++++
 api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java     | 1 +
 api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java      | 2 +-
 api/src/main/java/org/apache/commons/rdf/api/RDFTerm.java        | 2 +-
 8 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/BlankNodeOrIRI.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/BlankNodeOrIRI.java b/api/src/main/java/org/apache/commons/rdf/api/BlankNodeOrIRI.java
index c15c77d..8999c6f 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/BlankNodeOrIRI.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/BlankNodeOrIRI.java
@@ -19,7 +19,7 @@ package org.apache.commons.rdf.api;
 
 /**
  * This interface represents the {@link RDFTerm}s that may be used in the
- * subject position of an RDF-1.1 {@link Triple}, including {@link BlankNode}
+ * subject position of an RDF-1.1 {@link Triple}, that is {@link BlankNode}
  * and {@link IRI}.
  */
 public interface BlankNodeOrIRI extends RDFTerm {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Dataset.java b/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
index 3b602d3..9e6f6d7 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Dataset.java
@@ -27,6 +27,9 @@ import java.util.stream.Stream;
  * 1.1 dataset</a>, a set of RDF quads, as defined by
  * <a href="http://www.w3.org/TR/rdf11-concepts/" >RDF-1.1 Concepts and Abstract
  * Syntax</a>, a W3C Recommendation published on 25 February 2014.
+ * 
+ * @since 0.3.0-incubating
+ * @see RDFFactory#createDataset()
  */
 public interface Dataset extends AutoCloseable, GraphLike<Quad> {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/Graph.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Graph.java b/api/src/main/java/org/apache/commons/rdf/api/Graph.java
index ff78ec3..ccf9c9d 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Graph.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Graph.java
@@ -26,6 +26,8 @@ import java.util.stream.Stream;
  * Graph</a>, a set of RDF triples, as defined by <a
  * href="http://www.w3.org/TR/rdf11-concepts/" >RDF-1.1 Concepts and Abstract
  * Syntax</a>, a W3C Recommendation published on 25 February 2014.
+ * 
+ * @see RDFFactory#createGraph()
  */
 public interface Graph extends AutoCloseable,GraphLike<Triple> {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/IRI.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/IRI.java b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
index 76a1407..f3588cb 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/IRI.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/IRI.java
@@ -22,6 +22,8 @@ package org.apache.commons.rdf.api;
  * as defined by <a href= "http://www.w3.org/TR/rdf11-concepts/" >RDF-1.1
  * Concepts and Abstract Syntax</a>, a W3C Recommendation published on 25
  * February 2014.
+ * 
+ * @see RDFFactory#createIRI(String)
  */
 public interface IRI extends BlankNodeOrIRI {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/Literal.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/Literal.java b/api/src/main/java/org/apache/commons/rdf/api/Literal.java
index 4c83784..29b7f77 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/Literal.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/Literal.java
@@ -26,6 +26,10 @@ import java.util.Optional;
  * "http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal" >RDF-1.1
  * Concepts and Abstract Syntax</a>, a W3C Recommendation published on 25
  * February 2014
+ * 
+ * @see RDFFactory#createLiteral(String)
+ * @see RDFFactory#createLiteral(String, IRI)
+ * @see RDFFactory#createLiteral(String, String)
  */
 public interface Literal extends RDFTerm {
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java b/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
index 2e97a03..a116153 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
@@ -34,6 +34,7 @@ import java.util.Locale;
  * because an IRI is considered invalid, then it SHOULD throw
  * {@link IllegalArgumentException}.
  *
+ * @since 0.3.0-incubating
  * @see RDFTerm
  * @see Graph
  * @see Quad

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
index 84e1ca7..541469f 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFSyntax.java
@@ -31,7 +31,7 @@ import java.util.Optional;
  * and <a href="https://en.wikipedia.org/wiki/TriX_%28syntax%29">TriX</a>.
  * 
  * @see <a href="https://www.w3.org/TR/rdf11-primer/#section-graph-syntax">RDF 1.1 Primer</a>
- *
+ * @see org.apache.commons.rdf.experimental.RDFParser
  */
 public enum RDFSyntax {
 	

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/9addc8c0/api/src/main/java/org/apache/commons/rdf/api/RDFTerm.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFTerm.java b/api/src/main/java/org/apache/commons/rdf/api/RDFTerm.java
index 731d7cc..9488338 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFTerm.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFTerm.java
@@ -22,7 +22,7 @@ package org.apache.commons.rdf.api;
  * Term</a>, as defined by <a href= "http://www.w3.org/TR/rdf11-concepts/"
  * >RDF-1.1 Concepts and Abstract Syntax</a>, a W3C Recommendation published on
  * 25 February 2014.<br>
- *
+ * 
  * @see <a href= "http://www.w3.org/TR/rdf11-concepts/#dfn-rdf-term" >RDF-1.1
  * Term</a>
  */


[03/22] incubator-commonsrdf git commit: RDFFactory methods no longer throw UnsupportedOperationException

Posted by st...@apache.org.
RDFFactory methods no longer throw UnsupportedOperationException

Thus we can remove the `default` methods and simplify the
AbstractRDFTermFactoryTest


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/518eacb5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/518eacb5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/518eacb5

Branch: refs/heads/COMMONSRDF-46
Commit: 518eacb516ff9ab6a98149c254728056eec80778
Parents: 2f4a276
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 17:19:55 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 17:19:55 2016 +0100

----------------------------------------------------------------------
 .../org/apache/commons/rdf/api/RDFFactory.java  |  84 ++-----
 .../rdf/api/AbstractRDFTermFactoryTest.java     | 233 ++++---------------
 .../rdf/api/DefaultRDFTermFactoryTest.java      |  33 ---
 .../commons/rdf/rdf4j/NativeStoreGraphTest.java |  11 +-
 .../commons/rdf/simple/DefaultGraphTest.java    |  51 ----
 5 files changed, 71 insertions(+), 341 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/518eacb5/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java b/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
index 2e97a03..470d0cf 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDFFactory.java
@@ -25,11 +25,6 @@ import java.util.Locale;
  * <p>
  * It is not specified how an implementation should provide a RDFFactory.
  * <p>
- * If an implementation does not support a particular method (e.g. it requires
- * additional parameters or can't create graphs), then it MAY throw
- * {@link UnsupportedOperationException}, as provided by the <code>default</code>
- * implementations in this interface.
- * <p>
  * If a factory method does not allow or support a provided parameter, e.g.
  * because an IRI is considered invalid, then it SHOULD throw
  * {@link IllegalArgumentException}.
@@ -47,13 +42,8 @@ public interface RDFFactory {
      * {@link BlankNode} instances according to {@link BlankNode#equals(Object)}.
      *
      * @return A new, unique {@link BlankNode}
-     * @throws UnsupportedOperationException
-     *             If the operation is not supported.
      */
-    default BlankNode createBlankNode() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode() not supported");
-    }
+    BlankNode createBlankNode();
 
     /**
      * Create a blank node based on the given name.
@@ -77,14 +67,8 @@ public interface RDFFactory {
      *            A non-empty, non-null, String that is unique to this blank
      *            node in the context of this {@link RDFFactory}.
      * @return A BlankNode for the given name
-     * @throws UnsupportedOperationException
-     *             If the operation is not supported.
      */
-    default BlankNode createBlankNode(String name)
-            throws UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createBlankNode(String) not supported");
-    }
+    BlankNode createBlankNode(String name);
 
     /**
      * Create a new graph.
@@ -93,11 +77,8 @@ public interface RDFFactory {
      * mechanism.
      *
      * @return A new Graph
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Graph createGraph() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createGraph() not supported");
-    }
+    Graph createGraph();
 
     /**
      * Create a new dataset.
@@ -106,11 +87,8 @@ public interface RDFFactory {
      * mechanism.
      *
      * @return A new Dataset
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Dataset createDataset() throws UnsupportedOperationException {
-        throw new UnsupportedOperationException("createDataset() not supported");
-    }
+    Dataset createDataset();
 
     /**
      * Create an IRI from a (possibly escaped) String.
@@ -123,13 +101,8 @@ public interface RDFFactory {
      * @return A new IRI
      * @throws IllegalArgumentException      If the provided string is not acceptable, e.g. does not
      *                                       conform to the RFC3987 syntax.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default IRI createIRI(String iri) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createIRI(String) not supported");
-    }
+     IRI createIRI(String iri) throws IllegalArgumentException;
 
     /**
      * Create a simple literal.
@@ -146,14 +119,9 @@ public interface RDFFactory {
      * @param lexicalForm The literal value in plain text
      * @return The created Literal
      * @throws IllegalArgumentException      If the provided lexicalForm is not acceptable, e.g. because
-     *                                       it is too large for an underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
+     *                                        it is too large for an underlying storage.
      */
-    default Literal createLiteral(String lexicalForm)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
+    Literal createLiteral(String lexicalForm) throws IllegalArgumentException;
 
     /**
      * Create a literal with the specified data type.
@@ -180,14 +148,10 @@ public interface RDFFactory {
      *                    <code>http://www.w3.org/2001/XMLSchema#integer</code>
      * @return The created Literal
      * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
-     *                                       because the provided dataType is not permitted.
-     * @throws UnsupportedOperationException If the operation is not supported.
+     *                                        because the provided dataType is not permitted.
      */
-    default Literal createLiteral(String lexicalForm, IRI dataType)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String) not supported");
-    }
+    Literal createLiteral(String lexicalForm, IRI dataType)
+            throws IllegalArgumentException;
 
     /**
      * Create a language-tagged literal.
@@ -215,14 +179,10 @@ public interface RDFFactory {
      *                    href="http://tools.ietf.org/html/bcp47">BCP47</a>
      * @return The created Literal
      * @throws IllegalArgumentException      If the provided values are not acceptable, e.g. because the
-     *                                       languageTag was syntactically invalid.
-     * @throws UnsupportedOperationException If the operation is not supported.
+     *                                        languageTag was syntactically invalid.
      */
-    default Literal createLiteral(String lexicalForm, String languageTag)
-            throws IllegalArgumentException, UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createLiteral(String,String) not supported");
-    }
+    Literal createLiteral(String lexicalForm, String languageTag)
+            throws IllegalArgumentException;
 
     /**
      * Create a triple.
@@ -239,14 +199,9 @@ public interface RDFFactory {
      * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
      *                                       because a Literal has a lexicalForm that is too large for an
      *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createTriple(BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
+    Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException;
 
     /**
      * Create a quad.
@@ -266,13 +221,8 @@ public interface RDFFactory {
      * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
      *                                       because a Literal has a lexicalForm that is too large for an
      *                                       underlying storage.
-     * @throws UnsupportedOperationException If the operation is not supported.
      */
-    default Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
-                                RDFTerm object) throws IllegalArgumentException,
-            UnsupportedOperationException {
-        throw new UnsupportedOperationException(
-                "createQuad(BlankNodeOrIRI,BlankNodeOrIRI,IRI,RDFTerm) not supported");
-    }
+    Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
+                                RDFTerm object) throws IllegalArgumentException;
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/518eacb5/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
index 412b812..5afa9f2 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
@@ -57,13 +57,7 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateBlankNode() throws Exception {
-        BlankNode bnode;
-        try {
-            bnode = factory.createBlankNode();
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        BlankNode bnode = factory.createBlankNode();
 
         BlankNode bnode2 = factory.createBlankNode();
         assertNotEquals(
@@ -75,8 +69,6 @@ public abstract class AbstractRDFTermFactoryTest {
     public void testCreateBlankNodeIdentifierEmpty() throws Exception {
         try {
             factory.createBlankNode("");
-        } catch (UnsupportedOperationException e) {
-            Assume.assumeNoException(e);
         } catch (IllegalArgumentException e) {
             // Expected exception
         }
@@ -84,25 +76,15 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateBlankNodeIdentifier() throws Exception {
-        try {
-            factory.createBlankNode("example1");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        factory.createBlankNode("example1");
     }
 
     @Test
     public void testCreateBlankNodeIdentifierTwice() throws Exception {
         BlankNode bnode1, bnode2, bnode3;
-        try {
-            bnode1 = factory.createBlankNode("example1");
-            bnode2 = factory.createBlankNode("example1");
-            bnode3 = factory.createBlankNode("differ");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        bnode1 = factory.createBlankNode("example1");
+        bnode2 = factory.createBlankNode("example1");
+        bnode3 = factory.createBlankNode("differ");
         // We don't know what the identifier is, but it MUST be the same
         assertEquals(bnode1.uniqueReference(), bnode2.uniqueReference());
         // We don't know what the ntriplesString is, but it MUST be the same
@@ -116,24 +98,18 @@ public abstract class AbstractRDFTermFactoryTest {
     @Test
     public void testCreateBlankNodeIdentifierTwiceDifferentFactories() throws Exception {
         BlankNode bnode1, differentFactory;
-        try {
-            bnode1 = factory.createBlankNode();
-            // it MUST differ from a second factory
-            differentFactory = createFactory().createBlankNode();
-            
-            // NOTE: We can't make similar assumption if we provide a 
-            // name to createBlankNode(String) as its documentation
-            // only says:
-            // 
-            // * BlankNodes created using this method with the same parameter, for
-            // * different instances of RDFFactory, SHOULD NOT be equivalent.
-            //
-            // https://github.com/apache/incubator-commonsrdf/pull/7#issuecomment-92312779
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        bnode1 = factory.createBlankNode();
+        // it MUST differ from a second factory
+        differentFactory = createFactory().createBlankNode();
+        
+        // NOTE: We can't make similar assumption if we provide a 
+        // name to createBlankNode(String) as its documentation
+        // only says:
+        // 
+        // * BlankNodes created using this method with the same parameter, for
+        // * different instances of RDFFactory, SHOULD NOT be equivalent.
         //
+        // https://github.com/apache/incubator-commonsrdf/pull/7#issuecomment-92312779
         assertNotEquals(bnode1, differentFactory);
         assertNotEquals(bnode1.uniqueReference(),
                 differentFactory.uniqueReference());
@@ -144,13 +120,7 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateGraph() {
-        Graph graph;
-        try {
-            graph = factory.createGraph();
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        Graph graph = factory.createGraph();
 
         assertEquals("Graph was not empty", 0, graph.size());
         graph.add(factory.createBlankNode(),
@@ -165,13 +135,7 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateIRI() throws Exception {
-        IRI example;
-        try {
-            example = factory.createIRI("http://example.com/");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException("createIRI not supported", ex);
-            return;
-        }
+        IRI example = factory.createIRI("http://example.com/");
 
         assertEquals("http://example.com/", example.getIRIString());
         assertEquals("<http://example.com/>", example.ntriplesString());
@@ -208,7 +172,7 @@ public abstract class AbstractRDFTermFactoryTest {
         // be possible to resolve to an absolute IRI)
         try {
             factory.createIRI("../relative");
-        } catch (UnsupportedOperationException | IllegalArgumentException ex) {
+        } catch (IllegalArgumentException ex) {
             Assume.assumeNoException(ex);
             return;
         }
@@ -227,14 +191,7 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateLiteral() throws Exception {
-        Literal example;
-        try {
-            example = factory.createLiteral("Example");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
-
+        Literal example = factory.createLiteral("Example");
         assertEquals("Example", example.getLexicalForm());
         assertFalse(example.getLanguageTag().isPresent());
         assertEquals("http://www.w3.org/2001/XMLSchema#string", example
@@ -245,16 +202,10 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateLiteralDateTime() throws Exception {
-        Literal dateTime;
-        try {
-            dateTime = factory
+        Literal dateTime = factory
                     .createLiteral(
                             "2014-12-27T00:50:00T-0600",
                             factory.createIRI("http://www.w3.org/2001/XMLSchema#dateTime"));
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
         assertEquals("2014-12-27T00:50:00T-0600", dateTime.getLexicalForm());
         assertFalse(dateTime.getLanguageTag().isPresent());
         assertEquals("http://www.w3.org/2001/XMLSchema#dateTime", dateTime
@@ -266,13 +217,7 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateLiteralLang() throws Exception {
-        Literal example;
-        try {
-            example = factory.createLiteral("Example", "en");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        Literal example = factory.createLiteral("Example", "en");
 
         assertEquals("Example", example.getLexicalForm());
         assertEquals("en", example.getLanguageTag().get());
@@ -284,14 +229,7 @@ public abstract class AbstractRDFTermFactoryTest {
     @Test
     public void testCreateLiteralLangISO693_3() throws Exception {
         // see https://issues.apache.org/jira/browse/JENA-827
-        Literal vls;
-        try {
-            vls = factory.createLiteral("Herbert Van de Sompel", "vls"); // JENA-827
-            // reference
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        Literal vls = factory.createLiteral("Herbert Van de Sompel", "vls"); // JENA-827
 
         assertEquals("vls", vls.getLanguageTag().get());
         assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",
@@ -301,14 +239,8 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateLiteralString() throws Exception {
-        Literal example;
-        try {
-            example = factory.createLiteral("Example", factory
+        Literal example = factory.createLiteral("Example", factory
                     .createIRI("http://www.w3.org/2001/XMLSchema#string"));
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
         assertEquals("Example", example.getLexicalForm());
         assertFalse(example.getLanguageTag().isPresent());
         assertEquals("http://www.w3.org/2001/XMLSchema#string", example
@@ -319,19 +251,10 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateTripleBnodeBnode() {
-        BlankNode subject;
-        IRI predicate;
-        BlankNode object;
-        Triple triple;
-        try {
-            subject = factory.createBlankNode("b1");
-            predicate = factory.createIRI("http://example.com/pred");
-            object = factory.createBlankNode("b2");
-            triple = factory.createTriple(subject, predicate, object);
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+        BlankNode subject = factory.createBlankNode("b1");
+        IRI predicate = factory.createIRI("http://example.com/pred");
+        BlankNode object = factory.createBlankNode("b2");
+        Triple triple = factory.createTriple(subject, predicate, object);
 
         // bnode equivalence should be OK as we used the same
         // factory and have not yet inserted Triple into a Graph
@@ -342,19 +265,10 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateTripleBnodeIRI() {
-        BlankNode subject;
-        IRI predicate;
-        IRI object;
-        Triple triple;
-        try {
-            subject = factory.createBlankNode("b1");
-            predicate = factory.createIRI("http://example.com/pred");
-            object = factory.createIRI("http://example.com/obj");
-            triple = factory.createTriple(subject, predicate, object);
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
+    	BlankNode subject = factory.createBlankNode("b1");
+    	IRI predicate = factory.createIRI("http://example.com/pred");
+    	IRI object = factory.createIRI("http://example.com/obj");
+    	Triple triple = factory.createTriple(subject, predicate, object);
 
         // bnode equivalence should be OK as we used the same
         // factory and have not yet inserted Triple into a Graph
@@ -365,20 +279,11 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void testCreateTripleBnodeTriple() {
-        BlankNode subject;
-        IRI predicate;
-        Literal object;
-        Triple triple;
-        try {
-            subject = factory.createBlankNode();
-            predicate = factory.createIRI("http://example.com/pred");
-            object = factory.createLiteral("Example", "en");
-            triple = factory.createTriple(subject, predicate, object);
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(ex);
-            return;
-        }
-
+    	BlankNode subject = factory.createBlankNode();
+    	IRI predicate = factory.createIRI("http://example.com/pred");
+    	Literal object = factory.createLiteral("Example", "en");
+    	Triple triple = factory.createTriple(subject, predicate, object);
+ 
         // bnode equivalence should be OK as we used the same
         // factory and have not yet inserted Triple into a Graph
         assertEquals(subject, triple.getSubject());
@@ -391,10 +296,6 @@ public abstract class AbstractRDFTermFactoryTest {
         BlankNode withColon;
         try {
             withColon = factory.createBlankNode("with:colon");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException("createBlankNode(String) not supported",
-                    ex);
-            return;
         } catch (IllegalArgumentException ex) {
             // Good!
             return;
@@ -410,23 +311,12 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void testInvalidIRI() throws Exception {
-        try {
-            factory.createIRI("<no_brackets>");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException("createIRI not supported", ex);
-            return;
-        }
+        factory.createIRI("<no_brackets>");
     }
 
     @Test(expected = IllegalArgumentException.class)
     public void testInvalidLiteralLang() throws Exception {
-        try {
-            factory.createLiteral("Example", "with space");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(
-                    "createLiteral(String,String) not supported", ex);
-            return;
-        }
+        factory.createLiteral("Example", "with space");
     }
 
     @Test(expected = Exception.class)
@@ -439,40 +329,19 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void hashCodeBlankNode() throws Exception {
-        BlankNode bnode1;
-        try {
-            bnode1 = factory.createBlankNode();
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(
-                    "createBlankNode() not supported", ex);
-            return;
-        }
+        BlankNode bnode1 = factory.createBlankNode();
         assertEquals(bnode1.uniqueReference().hashCode(), bnode1.hashCode());
     }
 
     @Test
     public void hashCodeIRI() throws Exception {
-        IRI iri;
-        try {
-            iri = factory.createIRI("http://example.com/");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(
-                    "createIRI(String) not supported", ex);
-            return;
-        }
+        IRI iri = factory.createIRI("http://example.com/");
         assertEquals(iri.getIRIString().hashCode(), iri.hashCode());
     }
 
     @Test
     public void hashCodeLiteral() throws Exception {
-        Literal literal;
-        try {
-            literal = factory.createLiteral("Hello");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(
-                    "createLiteral(String) not supported", ex);
-            return;
-        }
+        Literal literal = factory.createLiteral("Hello");
         assertEquals(Objects.hash(
                     literal.getLexicalForm(),
                     literal.getDatatype(),
@@ -483,22 +352,8 @@ public abstract class AbstractRDFTermFactoryTest {
 
     @Test
     public void hashCodeTriple() throws Exception {
-        IRI iri;
-        try {
-            iri = factory.createIRI("http://example.com/");
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(
-                    "createIRI() not supported", ex);
-            return;
-        }
-        Triple triple;
-        try {
-            triple = factory.createTriple(iri, iri, iri);
-        } catch (UnsupportedOperationException ex) {
-            Assume.assumeNoException(
-                    "createTriple() not supported", ex);
-            return;
-        }
+        IRI iri = factory.createIRI("http://example.com/");
+        Triple triple = factory.createTriple(iri, iri, iri);
         assertEquals(Objects.hash(iri, iri, iri),
                      triple.hashCode());
     }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/518eacb5/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
deleted file mode 100644
index d7db514..0000000
--- a/api/src/test/java/org/apache/commons/rdf/api/DefaultRDFTermFactoryTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.api;
-
-/**
- * The default RDFFactory might be useless (every method throws
- * UnsupportedOperationException), but this test ensures that
- * AbstractRDFTermFactoryTest does not fall over on unsupported operations.
- */
-public class DefaultRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
-
-    @Override
-    public RDFFactory createFactory() {
-        return new RDFFactory() {
-        };
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/518eacb5/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
index 9a5ab50..91a0b14 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
@@ -24,8 +24,10 @@ import java.util.Set;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
 import org.apache.commons.rdf.api.BlankNodeOrIRI;
+import org.apache.commons.rdf.api.Dataset;
 import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.api.Quad;
 import org.apache.commons.rdf.api.RDFTerm;
 import org.apache.commons.rdf.api.RDFFactory;
 import org.eclipse.rdf4j.repository.RepositoryConnection;
@@ -59,7 +61,10 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
 			Set<RDF4JBlankNode> context = Collections.singleton(rdf4jFactory.createBlankNode());
 			return rdf4jFactory.asRDFTermGraph(getRepository(), context);
 		}
-
+		public Dataset createDataset() {
+			return rdf4jFactory.asRDFTermDataset(getRepository());
+		}
+		
 		// Delegate methods 
 		public RDF4JBlankNode createBlankNode() {
 			return rdf4jFactory.createBlankNode();
@@ -82,6 +87,10 @@ public class NativeStoreGraphTest extends AbstractGraphTest {
 		public RDF4JTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) {
 			return rdf4jFactory.createTriple(subject, predicate, object);
 		}
+		public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object)
+				throws IllegalArgumentException {
+			return rdf4jFactory.createQuad(graphName, subject, predicate, object);
+		}
 	}
 
 

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/518eacb5/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
deleted file mode 100644
index 4b100b3..0000000
--- a/simple/src/test/java/org/apache/commons/rdf/simple/DefaultGraphTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.rdf.simple;
-
-import org.apache.commons.rdf.api.AbstractGraphTest;
-import org.apache.commons.rdf.api.Graph;
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDFFactory;
-
-/**
- * Ensure AbstractGraphTest does not crash if the RDFFactory throws
- * UnsupportedOperationException
- */
-
-public class DefaultGraphTest extends AbstractGraphTest {
-
-    @Override
-    public RDFFactory createFactory() {
-        // The most minimal RDFFactory that would still
-        // make sense with a Graph
-        return new RDFFactory() {
-            @Override
-            public Graph createGraph() throws UnsupportedOperationException {
-                return new GraphImpl(new SimpleRDFTermFactory());
-            }
-
-            @Override
-            public IRI createIRI(String iri)
-                    throws UnsupportedOperationException,
-                    IllegalArgumentException {
-                return new IRIImpl(iri);
-            }
-        };
-    }
-
-}


[22/22] incubator-commonsrdf git commit: Merge branch 'avoid-unsupported' into COMMONSRDF-46

Posted by st...@apache.org.
Merge branch 'avoid-unsupported' into COMMONSRDF-46


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/fa27a178
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/fa27a178
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/fa27a178

Branch: refs/heads/COMMONSRDF-46
Commit: fa27a178994bbe718bf8bff5a8bf405df39e4de7
Parents: 3ed4272 17c0d27
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 01:42:03 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 01:42:03 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/api/RDF.java    |   2 -
 .../rdf/api/AbstractRDFTermFactoryTest.java     | 235 ++++---------------
 .../commons/rdf/jsonldjava/JsonLdBlankNode.java |   1 +
 .../rdf/jsonldjava/JsonLdFactoryTest.java       |   6 +-
 .../rdf/rdf4j/MemoryRDFTermFactoryTest.java     |   2 +-
 .../commons/rdf/rdf4j/NativeStoreGraphTest.java |   2 -
 .../rdf/rdf4j/Rdf4JRDFTermFactoryTest.java      |   2 +-
 7 files changed, 52 insertions(+), 198 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fa27a178/api/src/main/java/org/apache/commons/rdf/api/RDF.java
----------------------------------------------------------------------
diff --cc api/src/main/java/org/apache/commons/rdf/api/RDF.java
index 0565ba4,0000000..32b7f66
mode 100644,000000..100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDF.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDF.java
@@@ -1,246 -1,0 +1,244 @@@
 +/**
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements. See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership. The ASF licenses this file
 + * to you under the Apache License, Version 2.0 (the
 + * "License"); you may not use this file except in compliance
 + * with the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +package org.apache.commons.rdf.api;
 +
 +import java.io.Serializable;
 +import java.util.Locale;
 +
 +/**
 + * A RDF implementation.
 + * <p>
 + * A <code>RDF</code> implementation can create instances of 
 + * the {@link RDFTerm} types
 + * {@link IRI}, {@link BlankNode} and {@link Literal}, as well as creating
 + * instances of the types {@link Triple}, {@link Quad}, {@link Graph} or
 + * {@link Dataset}.
 + * <p>
 + * A <em>partial RDF implementation</em> 
 + * should be clearly documented as such, and may throw 
 + * {@link UnsupportedOperationException} where applicable, e.g. if it 
 + * does not support creating {@link Dataset}s or {@link Quad}s. 
 + * <p>
 + * Instances of <code>RDF</code> work like a factory for 
 + * creating Commons RDF instances.
 + * spezializations of this interface may also provide methods  
 + * for conversions from/to their underlying RDF framework.
 + * <p>
 + * If a factory method of a particular implementation does not allow or support
 + * a provided parameter, e.g. because an IRI is considered invalid, then it
 + * SHOULD throw {@link IllegalArgumentException}.
 + *
 + * @since 0.3.0-incubating
 + * @see RDFTerm
 + * @see Graph
 + * @see Quad
 + */
 +public interface RDF {
 +
 +    /**
 +     * Create a new blank node.
 +     * <p>
 +     * The returned blank node MUST NOT be equal to any existing
 +     * {@link BlankNode} instances according to {@link BlankNode#equals(Object)}.
 +     *
 +     * @return A new, unique {@link BlankNode}
-      * @throws UnsupportedOperationException
-      *             If the operation is not supported.
 +     */
 +	 public BlankNode createBlankNode();
 +
 +    /**
 +     * Create a blank node based on the given name.
 +     * <p>
 +     * All {@link BlankNode}s created with the given <code>name</code>
 +     * <em>on a particular instance</em> of <code>RDF</code> MUST be
 +     * equivalent according to {@link BlankNode#equals(Object)},
 +     * <p>
 +     * The returned BlankNode MUST NOT be equal to <code>BlankNode</code>
 +     * instances returned for any other <code>name</code> or those returned from
 +     * {@link #createBlankNode()}.
 +     * <p>
 +     * The returned BlankNode SHOULD NOT be equivalent to any BlankNodes created
 +     * on a <em>different</em> <code>RDF</code> instance, e.g.
 +     * different instances of <code>RDF</code> should produce
 +     * different blank nodes for the same <code>name</code> unless they
 +     * purposely are intending to create equivalent {@link BlankNode}
 +     * instances (e.g. a reinstated {@link Serializable} factory).
 +     *
 +     * @param name
 +     *            A non-empty, non-null, String that is unique to this blank
 +     *            node in the context of this {@link RDF}.
 +     * @return A BlankNode for the given name
 +     */
 +	public BlankNode createBlankNode(String name);
 +
 +    /**
 +     * Create a new graph.
 +     *
 +     * It is undefined if the graph will be persisted by any underlying storage
 +     * mechanism.
 +     *
 +     * @return A new Graph
 +     */
 +	 public Graph createGraph();
 +
 +    /**
 +     * Create a new dataset.
 +     *
 +     * It is undefined if the dataset will be persisted by any underlying storage
 +     * mechanism.
 +     *
 +     * @return A new Dataset
 +     */
 +	public Dataset createDataset();
 +
 +    /**
 +     * Create an IRI from a (possibly escaped) String.
 +     *
 +     * The provided iri string MUST be valid according to the <a
 +     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-iri">W3C RDF-1.1 IRI</a>
 +     * definition.
 +     *
 +     * @param iri Internationalized Resource Identifier
 +     * @return A new IRI
 +     * @throws IllegalArgumentException      If the provided string is not acceptable, e.g. does not
 +     *                                       conform to the RFC3987 syntax.
 +     */
 +	public IRI createIRI(String iri) throws IllegalArgumentException;
 +
 +    /**
 +     * Create a simple literal.
 +     *
 +     * The provided lexical form should not be escaped in any sense, e.g. should
 +     * not include "quotes" unless those are part of the literal value.
 +     *
 +     * The returned Literal MUST have a {@link Literal#getLexicalForm()} that is
 +     * equal to the provided lexical form, MUST NOT have a
 +     * {@link Literal#getLanguageTag()} present, and SHOULD return a
 +     * {@link Literal#getDatatype()} that is equal to the IRI
 +     * <code>http://www.w3.org/2001/XMLSchema#string</code>.
 +     *
 +     * @param lexicalForm The literal value in plain text
 +     * @return The created Literal
 +     * @throws IllegalArgumentException      If the provided lexicalForm is not acceptable, e.g. because
 +     *                                       it is too large for an underlying storage.
 +     */
 +    public Literal createLiteral(String lexicalForm)
 +            throws IllegalArgumentException;
 +
 +    /**
 +     * Create a literal with the specified data type.
 +     *
 +     * The provided lexical form should not be escaped in any sense, e.g. should
 +     * not include "quotes" unless those are part of the literal value.
 +     *
 +     * It is RECOMMENDED that the provided dataType is one of the <a
 +     * href="http://www.w3.org/TR/rdf11-concepts/#xsd-datatypes">RDF-compatible
 +     * XSD types</a>.
 +     *
 +     * The provided lexical form SHOULD be in the <a
 +     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-space">lexical
 +     * space</a> of the provided dataType.
 +     *
 +     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} that
 +     * is equal to the provided lexicalForm, MUST NOT have a
 +     * {@link Literal#getLanguageTag()} present, and MUST return a
 +     * {@link Literal#getDatatype()} that is equivalent to the provided dataType
 +     * IRI.
 +     *
 +     * @param lexicalForm The literal value
 +     * @param dataType    The data type IRI for the literal value, e.g.
 +     *                    <code>http://www.w3.org/2001/XMLSchema#integer</code>
 +     * @return The created Literal
 +     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
 +     *                                       because the provided dataType is not permitted.
 +     */
 +    public Literal createLiteral(String lexicalForm, IRI dataType)
 +            throws IllegalArgumentException;
 +
 +    /**
 +     * Create a language-tagged literal.
 +     *
 +     * The provided lexical form should not be escaped in any sense, e.g. should
 +     * not include "quotes" unless those are part of the literal value.
 +     *
 +     * The provided language tag MUST be valid according to <a
 +     * href="http://tools.ietf.org/html/bcp47">BCP47</a>, e.g. <code>en</code>.
 +     *
 +     * The provided language tag <a
 +     * href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tagged-string"
 +     * >MAY be converted to lower case</a>.
 +     *
 +     * The returned Literal SHOULD have a {@link Literal#getLexicalForm()} which
 +     * is equal to the provided lexicalForm, MUST return a
 +     * {@link Literal#getDatatype()} that is equal to the IRI
 +     * <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</code>, and
 +     * MUST have a {@link Literal#getLanguageTag()} present which SHOULD be
 +     * equal to the provided language tag (compared as
 +     * {@link String#toLowerCase(Locale)} using {@link Locale#ENGLISH}).
 +     *
 +     * @param lexicalForm The literal value
 +     * @param languageTag The non-empty language tag as defined by <a
 +     *                    href="http://tools.ietf.org/html/bcp47">BCP47</a>
 +     * @return The created Literal
 +     * @throws IllegalArgumentException      If the provided values are not acceptable, e.g. because the
 +     *                                       languageTag was syntactically invalid.
 +     */
 +    public Literal createLiteral(String lexicalForm, String languageTag)
 +            throws IllegalArgumentException;
 +
 +    /**
 +     * Create a triple.
 +     *
 +     * The returned Triple SHOULD have a {@link Triple#getSubject()} that is
 +     * equal to the provided subject, a {@link Triple#getPredicate()} that is
 +     * equal to the provided predicate, and a {@link Triple#getObject()} that is
 +     * equal to the provided object.
 +     *
 +     * @param subject   The IRI or BlankNode that is the subject of the triple
 +     * @param predicate The IRI that is the predicate of the triple
 +     * @param object    The IRI, BlankNode or Literal that is the object of the triple
 +     * @return The created Triple
 +     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
 +     *                                       because a Literal has a lexicalForm that is too large for an
 +     *                                       underlying storage.
 +     */
 +    public Triple createTriple(BlankNodeOrIRI subject, IRI predicate,
 +                                RDFTerm object) throws IllegalArgumentException;
 +
 +    /**
 +     * Create a quad.
 +     * <p>
 +     * The returned Quad SHOULD have a
 +     * {@link Quad#getGraphName()} that is equal to the provided graphName, a
 +     * {@link Quad#getSubject()} that is
 +     * equal to the provided subject, a {@link Quad#getPredicate()} that is
 +     * equal to the provided predicate, and a {@link Quad#getObject()} that is
 +     * equal to the provided object.
 +     *
 +     * @param graphName The IRI or BlankNode that this quad belongs to, or <code>null</code> for the public graph
 +     * @param subject   The IRI or BlankNode that is the subject of the quad
 +     * @param predicate The IRI that is the predicate of the quad
 +     * @param object    The IRI, BlankNode or Literal that is the object of the quad
 +     * @return The created Quad
 +     * @throws IllegalArgumentException      If any of the provided arguments are not acceptable, e.g.
 +     *                                       because a Literal has a lexicalForm that is too large for an
 +     *                                       underlying storage.
 +     */
 +    public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate,
 +                                RDFTerm object) throws IllegalArgumentException;
 +
 +}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fa27a178/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fa27a178/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
----------------------------------------------------------------------
diff --cc jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
index 81fb532,fd65c2a..22010f7
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
@@@ -18,7 -18,8 +18,8 @@@
  package org.apache.commons.rdf.jsonldjava;
  
  import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
 -import org.apache.commons.rdf.api.RDFFactory;
 +import org.apache.commons.rdf.api.RDF;
+ import org.junit.Assume;
  import org.junit.Ignore;
  import org.junit.Test;
  

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fa27a178/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fa27a178/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
----------------------------------------------------------------------
diff --cc rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
index e5a9772,91a0b14..3697069
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java
@@@ -61,13 -61,9 +61,12 @@@ public class NativeStoreGraphTest exten
  			Set<RDF4JBlankNode> context = Collections.singleton(rdf4jFactory.createBlankNode());
  			return rdf4jFactory.asRDFTermGraph(getRepository(), context);
  		}
 +		@Override
  		public Dataset createDataset() {
 -			return rdf4jFactory.asRDFTermDataset(getRepository());
 +			throw new UnsupportedOperationException("Can't create more than one Dataset in this test");
 +			// ...as the below would re-use the same repository:
 +			//return rdf4jFactory.asRDFTermDataset(getRepository()); 
  		}
- 
  		
  		// Delegate methods 
  		public RDF4JBlankNode createBlankNode() {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/fa27a178/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
----------------------------------------------------------------------


[09/22] incubator-commonsrdf git commit: tests for ServiceLoader

Posted by st...@apache.org.
tests for ServiceLoader


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/102a9fce
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/102a9fce
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/102a9fce

Branch: refs/heads/COMMONSRDF-46
Commit: 102a9fcebe32a384139ec2267fa332a3da8129a3
Parents: 2c62ada
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 19 18:02:16 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 19 18:02:53 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/jena/JenaServiceLoaderTest.java | 40 +++++++++++++++++++
 .../rdf/jsonldjava/JsonLdServiceLoaderTest.java | 40 +++++++++++++++++++
 .../rdf/rdf4j/RDF4JServiceLoaderTest.java       | 40 +++++++++++++++++++
 .../simple/SimpleRDFTermFactoryLookupTest.java  | 42 --------------------
 .../rdf/simple/SimpleServiceLoaderTest.java     | 40 +++++++++++++++++++
 5 files changed, 160 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/102a9fce/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java b/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
new file mode 100644
index 0000000..1793c3e
--- /dev/null
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/JenaServiceLoaderTest.java
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.rdf.jena;
+
+import static org.junit.Assert.fail;
+
+import java.util.ServiceLoader;
+
+import org.apache.commons.rdf.api.RDFFactory;
+import org.junit.Test;
+
+public class JenaServiceLoaderTest {
+
+    @Test
+    public void testServiceLoaderLookup() {
+        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
+        for (RDFFactory impl : loader) {
+        	if (impl instanceof JenaFactory) {
+        		return; // yay
+        	}
+        }
+        fail("JenaFactory not found in ServiceLoader");        
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/102a9fce/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
new file mode 100644
index 0000000..ce07a37
--- /dev/null
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdServiceLoaderTest.java
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.rdf.jsonldjava;
+
+import static org.junit.Assert.fail;
+
+import java.util.ServiceLoader;
+
+import org.apache.commons.rdf.api.RDFFactory;
+import org.junit.Test;
+
+public class JsonLdServiceLoaderTest {
+
+    @Test
+    public void testServiceLoaderLookup() {
+        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
+        for (RDFFactory impl : loader) {
+        	if (impl instanceof JsonLdFactory) {
+        		return; // yay
+        	}
+        }
+        fail("JsonLdFactory not found in ServiceLoader");        
+    }
+ }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/102a9fce/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
new file mode 100644
index 0000000..77c396c
--- /dev/null
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JServiceLoaderTest.java
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.rdf.rdf4j;
+
+import static org.junit.Assert.fail;
+
+import java.util.ServiceLoader;
+
+import org.apache.commons.rdf.api.RDFFactory;
+import org.junit.Test;
+
+public class RDF4JServiceLoaderTest {
+
+    @Test
+    public void testServiceLoaderLookup() {
+        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
+        for (RDFFactory impl : loader) {
+        	if (impl instanceof RDF4JFactory) {
+        		return; // yay
+        	}
+        }
+        fail("RDF4JFactory not found in ServiceLoader");        
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/102a9fce/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
deleted file mode 100644
index 179b7ef..0000000
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryLookupTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.commons.rdf.simple;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Iterator;
-import java.util.ServiceLoader;
-
-import org.apache.commons.rdf.api.RDFFactory;
-import org.junit.Test;
-
-public class SimpleRDFTermFactoryLookupTest {
-
-    @Test
-    public void testServiceLoaderLookup() {
-        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
-
-        Iterator<RDFFactory> iterator = loader.iterator();
-        RDFFactory factory = iterator.next();
-
-        assertTrue(factory instanceof SimpleRDFFactory);
-        assertFalse(iterator.hasNext());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/102a9fce/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
new file mode 100644
index 0000000..00e33d3
--- /dev/null
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleServiceLoaderTest.java
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.rdf.simple;
+
+import static org.junit.Assert.fail;
+
+import java.util.ServiceLoader;
+
+import org.apache.commons.rdf.api.RDFFactory;
+import org.junit.Test;
+
+public class SimpleServiceLoaderTest {
+
+    @Test
+    public void testServiceLoaderLookup() {
+        ServiceLoader<RDFFactory> loader = ServiceLoader.load(RDFFactory.class);
+        for (RDFFactory impl : loader) {
+        	if (impl instanceof SimpleRDFFactory) {
+        		return; // yay
+        	}
+        }
+        fail("SimpleRDFFactory not found in ServiceLoader");        
+    }
+}


[12/22] incubator-commonsrdf git commit: RDFFactory -> RDF

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/ff94b9da/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
index ee26a2c..732df71 100644
--- a/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/experimental/AbstractRDFParserTest.java
@@ -34,7 +34,7 @@ import org.apache.commons.rdf.api.IRI;
 import org.apache.commons.rdf.api.Literal;
 import org.apache.commons.rdf.api.RDFSyntax;
 import org.apache.commons.rdf.api.RDFTerm;
-import org.apache.commons.rdf.api.RDFFactory;
+import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 import org.apache.commons.rdf.experimental.RDFParser;
 import org.apache.commons.rdf.simple.DummyRDFParserBuilder;
@@ -48,7 +48,7 @@ import org.junit.rules.ExpectedException;
 
 public class AbstractRDFParserTest {
 
-	private RDFFactory factory = new SimpleRDFFactory();
+	private RDF factory = new SimpleRDFFactory();
 	
 	private DummyRDFParserBuilder dummyParser = new DummyRDFParserBuilder();
 	private Path testNt;


[18/22] incubator-commonsrdf git commit: Rephrase RDF to avoid "factory" speak

Posted by st...@apache.org.
Rephrase RDF to avoid "factory" speak

..just "RDF" is more difficult in text than the obvious
Java class name "RDFFactory", hence more <code> typigraphy
and "RDF implementation" phrases is needed.

The good thing is that now we can think of instances of "RDF"
as directly representing the implementation, e.g. "Jena".


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/a1112a8f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/a1112a8f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/a1112a8f

Branch: refs/heads/COMMONSRDF-46
Commit: a1112a8f1a8d2c48b344af0d8ee3fa62784fe875
Parents: 430bc4d
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:47:40 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 00:47:40 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/commons/rdf/api/RDF.java    | 27 ++++++++++++++------
 1 file changed, 19 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/a1112a8f/api/src/main/java/org/apache/commons/rdf/api/RDF.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/commons/rdf/api/RDF.java b/api/src/main/java/org/apache/commons/rdf/api/RDF.java
index 4314568..bd405d0 100644
--- a/api/src/main/java/org/apache/commons/rdf/api/RDF.java
+++ b/api/src/main/java/org/apache/commons/rdf/api/RDF.java
@@ -21,16 +21,27 @@ import java.io.Serializable;
 import java.util.Locale;
 
 /**
- * Factory for creating RDFTerm and Graph instances.
+ * A RDF implementation.
  * <p>
- * If an implementation does not support a particular method (e.g. it requires
- * additional parameters or can't create graphs), then it MAY throw
- * {@link UnsupportedOperationException}, as provided by the <code>default</code>
- * implementations in this interface.
+ * A <code>RDF</code> implementation can create instances of 
+ * the {@link RDFTerm} types
+ * {@link IRI}, {@link BlankNode} and {@link Literal}, as well as creating
+ * instances of the types {@link Triple}, {@link Quad}, {@link Graph} or
+ * {@link Dataset}.
  * <p>
- * If a factory method does not allow or support a provided parameter, e.g.
- * because an IRI is considered invalid, then it SHOULD throw
- * {@link IllegalArgumentException}.
+ * A <em>partial RDF implementation</em> 
+ * should be clearly documented as such, and may throw 
+ * {@link UnsupportedOperationException} where applicable, e.g. if it 
+ * does not support creating {@link Dataset}s or {@link Quad}s. 
+ * <p>
+ * Instances of <code>RDF</code> work like a factory for 
+ * creating Commons RDF instances.
+ * spezializations of this interface may also provide methods  
+ * for conversions from/to their underlying RDF framework.
+ * <p>
+ * If a factory method of a particular implementation does not allow or support
+ * a provided parameter, e.g. because an IRI is considered invalid, then it
+ * SHOULD throw {@link IllegalArgumentException}.
  *
  * @since 0.3.0-incubating
  * @see RDFTerm


[20/22] incubator-commonsrdf git commit: javadoc tweaks to avoid Factory

Posted by st...@apache.org.
javadoc tweaks to avoid 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/417963fe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/417963fe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/417963fe

Branch: refs/heads/COMMONSRDF-46
Commit: 417963fe582804d2d1f3c47a7c0ffd702277b4db
Parents: d261f64
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Sun Oct 23 00:54:59 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Sun Oct 23 01:22:01 2016 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/commons/rdf/jena/JenaRDF.java  | 12 +++++++-----
 .../org/apache/commons/rdf/jsonldjava/JsonLdRDF.java    |  3 +++
 .../main/java/org/apache/commons/rdf/rdf4j/RDF4J.java   |  2 ++
 .../java/org/apache/commons/rdf/simple/SimpleRDF.java   |  4 ++--
 4 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/417963fe/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
index e3c2a86..0a3f1b0 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
@@ -48,13 +48,15 @@ import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 /**
- * RDF with Jena-backed objects.
+ * Apache Jena RDF implementation.
  * <p>
- * This factory can also convert existing objects from/to Jena with methods like
+ * Instances of JenaRDF can also convert existing objects from/to
+ * <code>org.apache.jena</code> types with methods like
  * {@link #fromJena(org.apache.jena.graph.Graph)} and {@link #toJena(Graph)}.
  * <p>
- * For the purpose of {@link BlankNode} identity, this factory will use an internal
- * {@link UUID} as a salt. See {@link BlankNode#uniqueReference()} for details.
+ * For the purpose of {@link BlankNode} identity, JenaRDF instances use an
+ * internal {@link UUID} as a salt. See {@link BlankNode#uniqueReference()} for
+ * details.
  * 
  * @see RDF
  */
@@ -715,7 +717,7 @@ public final class JenaRDF implements RDF {
 	 * {@link BlankNode#uniqueReference()} for details.
 	 * <p>
 	 * This salt can be used with the constructor 
-	 * {@link JenaRDF#JenaFactory(UUID)}
+	 * {@link JenaRDF#JenaRDF(UUID)}
 	 * if consistent or reproducible {@link BlankNode}s are desirable. 
 	 * 
 	 * @return The {@link UUID} used as salt

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/417963fe/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
index bb57b1a..64f877a 100644
--- a/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
+++ b/jsonld-java/src/main/java/org/apache/commons/rdf/jsonldjava/JsonLdRDF.java
@@ -35,6 +35,9 @@ import org.apache.commons.rdf.simple.Types;
 import com.github.jsonldjava.core.RDFDataset;
 import com.github.jsonldjava.core.RDFDataset.Node;
 
+/**
+ * JSON-LD Java RDF implementation.
+ */
 public final class JsonLdRDF implements RDF {
 
 	final String bnodePrefix;

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/417963fe/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java
index 37dd7a2..fb5743b 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java
@@ -97,6 +97,8 @@ import org.eclipse.rdf4j.sail.memory.MemoryStore;
  * and 
  * {@link #asRDFTermGraph(Repository, Option...)}
  * therefore uses a unique {@link RDF4J} internally.
+ * 
+ * @see RDF
  *
  */
 public final class RDF4J implements RDF {

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/417963fe/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java
----------------------------------------------------------------------
diff --git a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java
index 91bd7da..1698955 100644
--- a/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java
+++ b/simple/src/main/java/org/apache/commons/rdf/simple/SimpleRDF.java
@@ -31,10 +31,10 @@ import org.apache.commons.rdf.api.RDF;
 import org.apache.commons.rdf.api.Triple;
 
 /**
- * A simple implementation of RDF.
+ * Simple RDF implementation.
  * <p>
  * The {@link RDFTerm}, {@link Triple}, {@link Quad}, {@link Graph}
- * and {@link Dataset} instances created by this factory are
+ * and {@link Dataset} instances created by SimpleRDF are
  * simple in-memory Implementations that are not thread-safe or efficient, but
  * which may be useful for testing and prototyping purposes.
  */