diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..976c7b9
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,12 @@
+Be sure to do all of the following to help us incorporate your contribution quickly and easily:
+
+ - [ ] Make sure the PR title is formatted like: `COMMONSRDF-XXX: title of pull request`
+   (replace `XXX` in the title with the actual Jira issue number; if there is no one,
+   please [create one](https://issues.apache.org/jira/browse/COMMONSRDF) before).
+ - [ ] Make sure tests pass via mvn clean verify (even better, enable Travis-CI on your
+   fork and ensure the whole test suite passes).
+ - [ ] If this contribution is large, please file an 
+   [Apache's Individual Contributor License Agreement](https://www.apache.org/licenses/icla.txt).
+
+---
+
diff --git a/.gitignore b/.gitignore
index fb23f11..de01404 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
 .classpath
 .project
 *.orig
+.DS_Store
diff --git a/NOTICE b/NOTICE
index e2186ca..af53390 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/README.md b/README.md
index 27a8fc5..802aa37 100644
--- a/README.md
+++ b/README.md
@@ -81,9 +81,9 @@
     [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
     [INFO]                                                                         
     [INFO] ------------------------------------------------------------------------
-    [INFO] Building Commons RDF 0.0.3-SNAPSHOT
+    [INFO] Building Commons RDF 0.5.0
         ....
-    [INFO] Installing /home/johndoe/src/commons-rdf/commons-rdf-api/target/commons-rdf-api-0.0.3-SNAPSHOT-javadoc.jar to /home/johndoe/.m2/repository/org/apache/commons/commons-rdf/commons-rdf-api/0.0.3-SNAPSHOT/commons-rdf-api-0.0.3-SNAPSHOT-javadoc.jar
+    [INFO] Installing /home/johndoe/src/commons-rdf/commons-rdf-api/target/commons-rdf-api-0.5.0-javadoc.jar to /home/johndoe/.m2/repository/org/apache/commons/commons-rdf/commons-rdf-api/0.5.0/commons-rdf-api-0.5.0-javadoc.jar
     [INFO] ------------------------------------------------------------------------
     [INFO] Reactor Summary:
     [INFO] 
@@ -108,7 +108,7 @@
     <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rdf-api</artifactId>
-        <version>0.3.0-incubating</version>
+        <version>0.5.0</version>
     </dependency>
 
 .. and an equivalent `<dependency>` for the 
@@ -184,7 +184,7 @@
     <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rdf-api</artifactId>
-        <version>0.3.0-incubating</version>
+        <version>0.5.0</version>
         <classifier>tests</classifier>
         <scope>test</scope>
     </dependency>
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index b192d2b..44ec2ec 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,10 +1,29 @@
 # Apache Commons RDF
 
-## 1.0.0-SNAPSHOT
+## 0.6.0-SNAPSHOT
 
 See https://issues.apache.org/jira/browse/COMMONSRDF/
 for issues fixed since the last release.
 
+## 0.5.0 (2017-12-23)
+
+This is the first release after graduation. Although there are not API changes
+nor big improvements, it updates different core aspects and dependencies.
+
+* [COMMONSRDF-47] - RDFSyntax should be interface, not enum
+* [COMMONSRDF-51] - RDF-1.1 specifies that language tags need to be compared using lower-case
+* [COMMONSRDF-52] - Duplicate Bundle-SymbolicName values across all components
+* [COMMONSRDF-55] - Stream of Jena quads use wrong IRI for default graph
+* [COMMONSRDF-57] - Use newer dependency Jena/RDF4J/JSONLD Java
+* [COMMONSRDF-62] - japicmp-maven-plugin breaking build because there is at least one incompatibility
+* [COMMONSRDF-63] - AbstractRDFParserTest.parseFile and parseFileContentType broken under Mac OS X
+* [COMMONSRDF-66] - JenaDatasetImpl.toString() throws RIOT exception
+* [COMMONSRDF-53] - Add ServiceLoader support in OSGi
+* [COMMONSRDF-54] - overloaded versions of RDF4J#asRDFTerm(org.eclipse.rdf4j.model.Value)
+* [COMMONSRDF-59] - Fix javadocs warnings
+* [COMMONSRDF-64] - Add Automatic-Module-Name to bundle manifest
+* [COMMONSRDF-65] - Upgrade to Jena 3.4.0, RDF4J 2.2.2
+* [COMMONSRDF-70] - Upgrade Jena version to 3.5.0
 
 ## 0.3.0-incubating (2016-11)
 
diff --git a/commons-rdf-api/pom.xml b/commons-rdf-api/pom.xml
index f6e0eed..8125b4f 100644
--- a/commons-rdf-api/pom.xml
+++ b/commons-rdf-api/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rdf-parent</artifactId>
-        <version>0.5.0-SNAPSHOT</version>
+        <version>0.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>commons-rdf-api</artifactId>
diff --git a/commons-rdf-api/src/main/resources/META-INF/NOTICE b/commons-rdf-api/src/main/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-api/src/main/resources/META-INF/NOTICE
+++ b/commons-rdf-api/src/main/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-api/src/test/resources/META-INF/NOTICE b/commons-rdf-api/src/test/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-api/src/test/resources/META-INF/NOTICE
+++ b/commons-rdf-api/src/test/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-examples/pom.xml b/commons-rdf-examples/pom.xml
index 995cfae..474cc7a 100644
--- a/commons-rdf-examples/pom.xml
+++ b/commons-rdf-examples/pom.xml
@@ -34,6 +34,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
+        <commons.rdf.version>0.5.0</commons.rdf.version> <!-- update to latest version -->
     </properties>
 
     <build>
@@ -57,14 +58,12 @@
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-rdf-api</artifactId>
-        <!-- update to latest version -->
-    		<version>0.3.0</version>
+    		<version>${commons.rdf.version}</version>
     	</dependency>
     	<dependency>
     		<groupId>org.apache.commons</groupId>
     		<artifactId>commons-rdf-simple</artifactId>
-        <!-- update to latest version -->
-    		<version>0.3.0</version>
+    		<version>${commons.rdf.version}</version>
     	</dependency>
     	<dependency>
     		<groupId>junit</groupId>
@@ -75,7 +74,7 @@
     </dependencies>
 
     <repositories>
-      <!-- Only needed if testing  release of commons-rdf -->
+        <!-- Only needed if testing  release of commons-rdf -->
     	<repository>
     		<id>apache.snapshots</id>
     		<name>Apache Snapshot Repository</name>
diff --git a/commons-rdf-integration-tests/pom.xml b/commons-rdf-integration-tests/pom.xml
index 7d9c44c..f14991a 100644
--- a/commons-rdf-integration-tests/pom.xml
+++ b/commons-rdf-integration-tests/pom.xml
@@ -23,7 +23,7 @@
 	<parent>
 		<groupId>org.apache.commons</groupId>
 		<artifactId>commons-rdf-parent</artifactId>
-		<version>0.5.0-SNAPSHOT</version>
+		<version>0.6.0-SNAPSHOT</version>
 	</parent>
 	<artifactId>commons-rdf-integration-tests</artifactId>
 	<name>Commons RDF Integration tests</name>
diff --git a/commons-rdf-integration-tests/src/test/resources/META-INF/NOTICE b/commons-rdf-integration-tests/src/test/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-integration-tests/src/test/resources/META-INF/NOTICE
+++ b/commons-rdf-integration-tests/src/test/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-jena/pom.xml b/commons-rdf-jena/pom.xml
index c518cdf..bf7df56 100644
--- a/commons-rdf-jena/pom.xml
+++ b/commons-rdf-jena/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.apache.commons</groupId>
 		<artifactId>commons-rdf-parent</artifactId>
-		<version>0.5.0-SNAPSHOT</version>
+		<version>0.6.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>commons-rdf-jena</artifactId>
diff --git a/commons-rdf-jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java b/commons-rdf-jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
index 6e41b93..62327a8 100644
--- a/commons-rdf-jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
+++ b/commons-rdf-jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java
@@ -39,12 +39,14 @@
 import org.apache.jena.datatypes.xsd.XSDDatatype;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.query.DatasetFactory;
 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.core.DatasetGraphFactory;
 import org.apache.jena.sparql.graph.GraphFactory;
 
 /**
@@ -665,6 +667,39 @@
     }
 
     /**
+     * Convert a CommonsRDF Dataset to a Jena Dataset. If the Dataset was from Jena
+     * originally, return that original object wrapped else create a copy using Jena
+     * objects.
+     *
+     * @param dataset
+     *            Commons RDF {@link Dataset} to convert
+     * @return Converted Jena {@link org.apache.jena.query.Dataset}
+     */
+    public org.apache.jena.query.Dataset asJenaDataset(final Dataset dataset) {
+        return DatasetFactory.wrap(asJenaDatasetGraph(dataset));
+    }
+
+    /**
+     * Convert a CommonsRDF Dataset to a Jena DatasetGraph. If the Dataset was from Jena
+     * originally, return that original object's underlying DatasetGraph else create a
+     * copy using Jena objects.
+     *
+     * @param dataset
+     *            Commons RDF {@link Dataset} to convert
+     * @return Converted Jena {@link org.apache.jena.sparql.core.DatasetGraph}
+     */
+    public DatasetGraph asJenaDatasetGraph(final Dataset dataset) {
+        final DatasetGraph dsg;
+        if (dataset instanceof JenaDataset)
+            dsg = ((JenaDataset) dataset).asJenaDatasetGraph();
+        else {
+            dsg = DatasetGraphFactory.createGeneral();
+            dataset.stream().map(this::asJenaQuad).forEach(dsg::add);
+        }
+        return dsg;
+    }
+
+    /**
      * 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.
diff --git a/commons-rdf-jena/src/main/resources/META-INF/NOTICE b/commons-rdf-jena/src/main/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-jena/src/main/resources/META-INF/NOTICE
+++ b/commons-rdf-jena/src/main/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java b/commons-rdf-jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java
index fd50421..40687ce 100644
--- a/commons-rdf-jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java
+++ b/commons-rdf-jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java
@@ -17,14 +17,64 @@
  */
 package org.apache.commons.rdf.jena;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
 import org.apache.commons.rdf.api.AbstractRDFTest;
-import org.apache.commons.rdf.api.RDF;
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.Dataset;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Quad;
+import org.apache.commons.rdf.simple.SimpleRDF;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.Property;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.rdf.model.Statement;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
+import org.junit.Test;
 
 public class JenaRDFTest extends AbstractRDFTest {
 
     @Override
-    public RDF createFactory() {
+    public JenaRDF createFactory() {
         return new JenaRDF();
     }
 
+    @Test
+    public void roundTripDatasetGraphShouldMaintainIdentity() {
+        DatasetGraph dsg = DatasetGraphFactory.create();
+        JenaDataset dataset = createFactory().asDataset(dsg);
+        DatasetGraph roundTrippedDSG = createFactory().asJenaDatasetGraph(dataset);
+        assertSame("Should have gotten the same DatasetGraph object from a round trip!", dsg, roundTrippedDSG);
+    }
+
+    @Test
+    public void testSimpleDatasetConversion() {
+        SimpleRDF factory = new SimpleRDF();
+        Dataset ds = factory.createDataset();
+        final BlankNode subject = factory.createBlankNode("b1");
+        final IRI predicate = factory.createIRI("http://example.com/pred");
+        final IRI object = factory.createIRI("http://example.com/obj");
+        final IRI graph = factory.createIRI("http://example.com/graph");
+        final Quad quad = factory.createQuad(graph, subject, predicate, object);
+        ds.add(quad);
+        JenaRDF jenaFactory = createFactory();
+        org.apache.jena.query.Dataset jenaDS = jenaFactory.asJenaDataset(ds);
+        assertEquals("Should have found one named graph!", 1, jenaDS.asDatasetGraph().size());
+        Model namedModel = jenaDS.getNamedModel(graph.getIRIString());
+        assertEquals("Should have found one triple in named graph!", 1, namedModel.size());
+        Statement statement = namedModel.listStatements().next();
+        Resource jenaSubject = statement.getSubject();
+        Property jenaPredicate = statement.getPredicate();
+        RDFNode jenaObject = statement.getObject();
+        assertTrue(jenaSubject.isAnon());
+        assertTrue(jenaObject.isResource());
+        assertEquals(subject.ntriplesString(), "_:" + jenaSubject.getId().getLabelString());
+        assertEquals(predicate.getIRIString(), jenaPredicate.getURI());
+        assertEquals(object.getIRIString(), jenaObject.asResource().getURI());
+    }
+
 }
diff --git a/commons-rdf-jena/src/test/resources/META-INF/NOTICE b/commons-rdf-jena/src/test/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-jena/src/test/resources/META-INF/NOTICE
+++ b/commons-rdf-jena/src/test/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-jsonld-java/pom.xml b/commons-rdf-jsonld-java/pom.xml
index 5dac9d4..65d4305 100644
--- a/commons-rdf-jsonld-java/pom.xml
+++ b/commons-rdf-jsonld-java/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rdf-parent</artifactId>
-        <version>0.5.0-SNAPSHOT</version>
+        <version>0.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>commons-rdf-jsonld-java</artifactId>
diff --git a/commons-rdf-jsonld-java/src/main/resources/META-INF/NOTICE b/commons-rdf-jsonld-java/src/main/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-jsonld-java/src/main/resources/META-INF/NOTICE
+++ b/commons-rdf-jsonld-java/src/main/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-jsonld-java/src/test/resources/LICENSE b/commons-rdf-jsonld-java/src/test/resources/META-INF/LICENSE
similarity index 100%
rename from commons-rdf-jsonld-java/src/test/resources/LICENSE
rename to commons-rdf-jsonld-java/src/test/resources/META-INF/LICENSE
diff --git a/commons-rdf-jsonld-java/src/test/resources/NOTICE b/commons-rdf-jsonld-java/src/test/resources/META-INF/NOTICE
similarity index 70%
rename from commons-rdf-jsonld-java/src/test/resources/NOTICE
rename to commons-rdf-jsonld-java/src/test/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-jsonld-java/src/test/resources/NOTICE
+++ b/commons-rdf-jsonld-java/src/test/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-rdf4j/pom.xml b/commons-rdf-rdf4j/pom.xml
index 2f9ddc3..0dafa92 100644
--- a/commons-rdf-rdf4j/pom.xml
+++ b/commons-rdf-rdf4j/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.apache.commons</groupId>
 		<artifactId>commons-rdf-parent</artifactId>
-		<version>0.5.0-SNAPSHOT</version>
+		<version>0.6.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>commons-rdf-rdf4j</artifactId>
diff --git a/commons-rdf-rdf4j/src/main/resources/META-INF/NOTICE b/commons-rdf-rdf4j/src/main/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-rdf4j/src/main/resources/META-INF/NOTICE
+++ b/commons-rdf-rdf4j/src/main/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-rdf4j/src/test/resources/LICENSE b/commons-rdf-rdf4j/src/test/resources/META-INF/LICENSE
similarity index 100%
rename from commons-rdf-rdf4j/src/test/resources/LICENSE
rename to commons-rdf-rdf4j/src/test/resources/META-INF/LICENSE
diff --git a/commons-rdf-jsonld-java/src/test/resources/NOTICE b/commons-rdf-rdf4j/src/test/resources/META-INF/NOTICE
similarity index 70%
copy from commons-rdf-jsonld-java/src/test/resources/NOTICE
copy to commons-rdf-rdf4j/src/test/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-jsonld-java/src/test/resources/NOTICE
+++ b/commons-rdf-rdf4j/src/test/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-rdf4j/src/test/resources/NOTICE b/commons-rdf-rdf4j/src/test/resources/NOTICE
deleted file mode 100644
index e2186ca..0000000
--- a/commons-rdf-rdf4j/src/test/resources/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-simple/pom.xml b/commons-rdf-simple/pom.xml
index 1438f07..0019ee4 100644
--- a/commons-rdf-simple/pom.xml
+++ b/commons-rdf-simple/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rdf-parent</artifactId>
-        <version>0.5.0-SNAPSHOT</version>
+        <version>0.6.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>commons-rdf-simple</artifactId>
diff --git a/commons-rdf-simple/src/main/resources/META-INF/NOTICE b/commons-rdf-simple/src/main/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-simple/src/main/resources/META-INF/NOTICE
+++ b/commons-rdf-simple/src/main/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-simple/src/test/resources/LICENSE b/commons-rdf-simple/src/test/resources/META-INF/LICENSE
similarity index 100%
rename from commons-rdf-simple/src/test/resources/LICENSE
rename to commons-rdf-simple/src/test/resources/META-INF/LICENSE
diff --git a/commons-rdf-jsonld-java/src/test/resources/NOTICE b/commons-rdf-simple/src/test/resources/META-INF/NOTICE
similarity index 70%
copy from commons-rdf-jsonld-java/src/test/resources/NOTICE
copy to commons-rdf-simple/src/test/resources/META-INF/NOTICE
index e2186ca..af53390 100644
--- a/commons-rdf-jsonld-java/src/test/resources/NOTICE
+++ b/commons-rdf-simple/src/test/resources/META-INF/NOTICE
@@ -1,5 +1,5 @@
 Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
+Copyright 2015-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/commons-rdf-simple/src/test/resources/NOTICE b/commons-rdf-simple/src/test/resources/NOTICE
deleted file mode 100644
index e2186ca..0000000
--- a/commons-rdf-simple/src/test/resources/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Commons RDF
-Copyright 2015-2017 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/pom.xml b/pom.xml
index e9722e4..d3e6421 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,11 +24,11 @@
     <parent>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-parent</artifactId>
-        <version>42</version>
+        <version>43</version>
     </parent>
 
     <artifactId>commons-rdf-parent</artifactId>
-    <version>0.5.0-SNAPSHOT</version>
+    <version>0.6.0-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <name>Commons RDF</name>
@@ -49,6 +49,7 @@
         <commons.jira.id>COMMONSRDF</commons.jira.id>
         <commons.jira.pid>12316620</commons.jira.pid>
         <commons.site.path>rdf</commons.site.path>
+        <commons.jacoco.version>0.7.9</commons.jacoco.version>
 	    <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rdf/</commons.scmPubUrl>
         <!--
         <commons.scmPubCheckoutDirectory>${project.build.directory}/site-content</commons.scmPubCheckoutDirectory>
@@ -329,7 +330,7 @@
                     <link>${commons.javadoc.java.link}</link>
                     <link>https://jena.apache.org/documentation/javadoc/jena/</link>
                     <link>https://jena.apache.org/documentation/javadoc/arq/</link>
-                    <link>http://rdf4j.org/javadoc/2.0/</link>
+                    <link>http://docs.rdf4j.org/javadoc/2.2/</link>
                     </links>
                 </configuration>
             </plugin>
@@ -473,6 +474,24 @@
                             <ignoreMissingNewVersion>true</ignoreMissingNewVersion>
                         </parameter>
                     </configuration>
+                    <dependencies>
+                      <dependency>
+                        <!-- the current version of japicmp on JDK 9 requires the following javaee libraries -->
+                        <groupId>javax.xml.bind</groupId>
+                        <artifactId>jaxb-api</artifactId>
+                        <version>2.3.0</version>
+                      </dependency>
+                      <dependency>
+                        <groupId>javax.activation</groupId>
+                        <artifactId>activation</artifactId>
+                        <version>1.1.1</version>
+                      </dependency>
+                      <dependency>
+                        <groupId>org.glassfish.jaxb</groupId>
+                        <artifactId>jaxb-runtime</artifactId>
+                        <version>2.3.0</version>
+                      </dependency>
+                    </dependencies>
                 </plugin>
                 <!--
                 <plugin>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 6e05dd8..2e7c1fc 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -16,67 +16,66 @@
   limitations under the License.
 -->
 
-<!--
-  This file is used by the maven-changes-plugin to generate the release notes.
-  Useful ways of finding items to add to this file are:
-
-  1. Add items when you fix a bug or add a feature (this makes the
-  release process easy :-).
-
-  2. Do a Jira search for tickets closed since the previous release.
-
-  3. Use the report generated by the maven-changelog-plugin to see all
-  SVN commits. Set the project.properties' maven.changelog.range
-  property to the number of days since the last release.
-
-  To generate the release notes from this file:
-
-  mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
-
-  then tweak the formatting if necessary
-  and commit
-
-  The <action> type attribute can be add,update,fix,remove.
--->
-
 <document>
   <properties>
     <title>Apache Commons RDF Release Notes</title>
   </properties>
-  <!-- NOTE:
-    The description below is specially formatted so as to improve the layout of the generated release notes:
-    The parsing process removes all line feeds, replacing them with a single space.
-    The Velocity template in src/changes has been enhanced to replace pairs of adjacent spaces
-    with a new-line in the release notes. (These spaces are ignored when displaying HTML).
-    If the output is not quite correct, check for invisible trailing spaces!
-
-    N.B. The release notes template groups actions by type, and only extracts data for the current release.
-    The changes report outputs actions in the order they appear in this file.
-
-    To regenerate the release notes:
-    mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
-
-    Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.
-  -->
 
   <body>
-    <release version="0.5.0" date="YYYY-MM-DD" description="Minor feature and bug fix release.">
+    <release version="0.5.0" date="2017-11-19" description="Minor feature and bug fix release.">
+        <action type="fix" issue="COMMONSRDF-47">
+            RDFSyntax should be interface, not enum
+        </action>
+        <action type="fix" issue="COMMONSRDF-51">
+            RDF-1.1 specifies that language tags need to be compared using lower-case
+        </action>
+        <action type="fix" issue="COMMONSRDF-52">
+            Duplicate Bundle-SymbolicName values across all components
+        </action>
+        <action type="fix" issue="COMMONSRDF-55">
+            Stream of Jena quads use wrong IRI for default graph
+        </action>
+        <action type="fix" issue="COMMONSRDF-57">
+            Use newer dependency Jena/RDF4J/JSONLD Java
+        </action>
+        <action type="fix" issue="COMMONSRDF-62">
+            japicmp-maven-plugin breaking build because there is at least one incompatibility
+        </action>
+        <action type="fix" issue="COMMONSRDF-63">
+            AbstractRDFParserTest.parseFile and parseFileContentType broken under Mac OS X
+        </action>
+        <action type="fix" issue="COMMONSRDF-66">
+            JenaDatasetImpl.toString() throws RIOT exception
+        </action>
+        <action type="add" issue="COMMONSRDF-53">
+            Add ServiceLoader support in OSGi
+        </action>
+        <action type="add" issue="COMMONSRDF-54">
+            overloaded versions of RDF4J#asRDFTerm(org.eclipse.rdf4j.model.Value)
+        </action>
+        <action type="add" issue="COMMONSRDF-59">
+            Fix javadocs warnings
+        </action>
+        <action type="add" issue="COMMONSRDF-64">
+            Add Automatic-Module-Name to bundle manifest
+        </action>
+        <action type="add" issue="COMMONSRDF-65">
+            Upgrade to Jena 3.4.0, RDF4J 2.2.2
+        </action>
+        <action type="add" issue="COMMONSRDF-70">
+            Upgrade Jena version to 3.5.0
+        </action>
+    </release>
+
+    <release version="0.3.0-incubating" date="2016-11-15" description="Minor feature and bug fix release.">
       <!-- TODO -->
     </release>
 
-    <release version="0.4.0" date="2017-10-29" description="DO NOT USE, this release was not approved by the Project Management Commitee">
+    <release version="0.2.0-incubating" date="2016-09-27" description="Minor feature and bug fix release.">
       <!-- TODO -->
     </release>
 
-    <release version="0.3.0-incubating" date="YYYY-MM-DD" description="Minor feature and bug fix release.">
-      <!-- TODO -->
-    </release>
-
-    <release version="0.2.0-incubating" date="YYYY-MM-DD" description="Minor feature and bug fix release.">
-      <!-- TODO -->
-    </release>
-
-    <release version="0.1.0-incubating" date="YYYY-MM-DD" description="Initial Release">
+    <release version="0.1.0-incubating" date="2016-08-24" description="Initial Release">
       <action type="add">
         Initial Release.
       </action>
diff --git a/src/site/markdown/download.md b/src/site/markdown/download.md
index 22499fe..92fd536 100644
--- a/src/site/markdown/download.md
+++ b/src/site/markdown/download.md
@@ -39,7 +39,7 @@
   <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rdf-api</artifactId>
-      <version>0.3.0-incubating</version>
+      <version>0.5.0</version>
   </dependency>
 
   <!-- and at least one of the implementations: -->
@@ -47,22 +47,22 @@
   <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rdf-simple</artifactId>
-      <version>0.3.0-incubating</version>
+      <version>0.5.0</version>
   </dependency>
   <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rdf-jsonld-java</artifactId>
-      <version>0.3.0-incubating</version>
+      <version>0.5.0</version>
   </dependency>
   <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rdf-jena</artifactId>
-      <version>0.3.0-incubating</version>
+      <version>0.5.0</version>
   </dependency>
   <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-rdf-rdf4j</artifactId>
-      <version>0.3.0-incubating</version>
+      <version>0.5.0</version>
   </dependency>
 
 </dependencies>
@@ -85,24 +85,20 @@
 which is also [mirrored to GitHub](http://github.com/apache/commons-rdf).
 
 
-### 0.3.0-incubating
+### 0.5.0
 
-**Apache Commons RDF 0.3.0-incubating** was published on 2016-11-15, and is available for download
+**Apache Commons RDF 0.5.0** was published on 2017-11-XX, and is available for download
 from official mirrors of the
-ASF Distribution Directory [incubator/commonsrdf](https://www.apache.org/dyn/closer.lua/incubator/commonsrdf/0.3.0-incubating/):
+ASF Distribution Directory [incubator/commonsrdf](https://www.apache.org/dyn/closer.lua/incubator/commonsrdf/0.5.0/):
 
-* [apache-commons-rdf-0.3.0-incubating-src.zip](https://www.apache.org/dyn/closer.lua/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.zip)
-  ([asc](https://www.apache.org/dist/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.zip.asc),
-  [md5](https://www.apache.org/dist/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.zip.md5),
-  [sha1](https://www.apache.org/dist/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.zip.sha1))
-* [apache-commons-rdf-0.3.0-incubating-src.tar.gz](https://www.apache.org/dyn/closer.lua/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.zip)
-  ([asc](https://www.apache.org/dist/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.tar.gz.asc),
-  [md5](https://www.apache.org/dist/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.tar.gz.md5),
-  [sha1](https://www.apache.org/dist/incubator/commonsrdf/0.3.0-incubating/apache-commons-rdf-0.3.0-incubating-src.tar.gz.sha1))
+* [apache-commons-rdf-0.5.0-src.zip](https://www.apache.org/dyn/closer.lua/commons/rdf/source/apache-commons-rdf-0.5.0-source-release.zip)
+  ([asc](https://www.apache.org/dyn/closer.lua/commons/rdf/source/apache-commons-rdf-0.5.0-source-release.zip.asc),
+  [md5](https://www.apache.org/dyn/closer.lua/commons/rdf/source/apache-commons-rdf-0.5.0-source-release.zip.md5),
+  [sha1](https://www.apache.org/dyn/closer.lua/commons/rdf/source/apache-commons-rdf-0.5.0-source-release.zip.sha1))
 
 After downloading the files, [check the signatures](https://www.apache.org/info/verification.html) 
-using the following [KEYS](https://www.apache.org/dist/incubator/commonsrdf/KEYS)
-file. The [changelog](https://s.apache.org/rdf-0.3.0)
+using the following [KEYS](https://www.apache.org/dist/commons/KEYS)
+file. The [changelog](http://apache.forsale.plus/commons/rdf/RELEASE-NOTES.txt)
 is available from the [Apache Commons RDF Jira](https://issues.apache.org/jira/browse/COMMONSRDF).
 
 ### Previous Releases
diff --git a/src/site/markdown/implementations.md b/src/site/markdown/implementations.md
index 9918f1d..c5f633e 100644
--- a/src/site/markdown/implementations.md
+++ b/src/site/markdown/implementations.md
@@ -61,7 +61,7 @@
 <dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rdf-simple</artifactId>
-    <version>0.3.0-incubating</version>
+    <version>0.5.0</version>
 </dependency>
 ```
 
@@ -85,7 +85,7 @@
 <dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rdf-jena</artifactId>
-    <version>0.3.0-incubating</version>
+    <version>0.5.0</version>
 </dependency>
 ```
 
@@ -124,7 +124,7 @@
 <dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rdf-rdf4j</artifactId>
-    <version>0.3.0-incubating</version>
+    <version>0.5.0</version>
 </dependency>
 ```
 
@@ -187,7 +187,7 @@
 <dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-rdf-jsonld</artifactId>
-    <version>0.3.0-incubating</version>
+    <version>0.5.0</version>
 </dependency>
 ```
 
diff --git a/src/site/markdown/introduction.md b/src/site/markdown/introduction.md
index f0250b0..a6d75dc 100644
--- a/src/site/markdown/introduction.md
+++ b/src/site/markdown/introduction.md
@@ -86,9 +86,9 @@
 
 This tutorial assumes a classic Java project with local `.jar` files (say in your project's `lib/` folder), so download and add to your project's class path:
 
-* [commons-rdf-api-0.3.0-incubating.jar](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-api/0.3.0-incubating/commons-rdf-api-0.3.0-incubating.jar)
-([signature](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-api/0.3.0-incubating/commons-rdf-api-0.3.0-incubating.jar.asc))
-* [commons-rdf-simple-0.3.0-incubating.jar](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-simple/0.3.0-incubating/commons-rdf-simple-0.3.0-incubating.jar) ([signature](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-simple/0.3.0-incubating/commons-rdf-simple-0.3.0-incubating.jar.asc))
+* [commons-rdf-api-0.5.0.jar](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-api/0.5.0/commons-rdf-api-0.5.0.jar)
+([signature](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-api/0.5.0/commons-rdf-api-0.5.0.jar.asc))
+* [commons-rdf-simple-0.5.0.jar](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-simple/0.5.0/commons-rdf-simple-0.5.0.jar) ([signature](https://repo.maven.apache.org/maven2/org/apache/commons/commons-rdf-simple/0.5.0/commons-rdf-simple-0.5.0.jar.asc))
 
 _Tip: If you prefer you can [verify the  signatures](https://www.apache.org/info/verification.html) using the Apache Commons [KEYS](https://www.apache.org/dist/commons/KEYS)._
 
diff --git a/src/site/markdown/userguide.md b/src/site/markdown/userguide.md
index e09cfd7..7180ea6 100644
--- a/src/site/markdown/userguide.md
+++ b/src/site/markdown/userguide.md
@@ -21,7 +21,7 @@
 # User Guide
 
 This page shows some examples of a client using the Commons RDF API.
-It was last updated for version `0.3.0-incubating` of the
+It was last updated for version `0.5.0` of the
 Commons RDF [API](apidocs/).
 
 * [Introduction](#Introduction)
@@ -89,7 +89,7 @@
     <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rdf-api</artifactId>
-        <version>0.3.0-incubating</version>
+        <version>0.5.0</version>
     </dependency>
 </dependencies>
 ```
@@ -133,7 +133,7 @@
     <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-rdf-simple</artifactId>
-        <version>0.3.0-incubating</version>
+        <version>0.5.0</version>
     </dependency>
 ```
 
