diff --git a/LICENSE b/LICENSE
index c8ab03b..8f646f1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -202,26 +202,6 @@
    limitations under the License.
 
 
-
-
----------------------------------------------------------
-./taverna-scufl2-wfdesc/src/main/resources/org/w3/prov-o.ttl
-./taverna-robundle/src/main/resources/ontologies/prov-aq.rdf
-./taverna-robundle/src/main/resources/ontologies/prov-o.rdf
-
-W3C PROVenance Interchange Ontology (PROV-O)
-http://www.w3.org/ns/prov-o.rdf
-http://www.w3.org/TR/2013/REC-prov-o-20130430/
-
-W3C PROV Access and Query Ontology (PROV-AQ)
-http://www.w3.org/ns/prov-aq.owl
-http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/
-
-Copyright (c) 2011-2013 W3C(R) (MIT, ERCIM, Keio, Beihang), All Rights Reserved.
-W3C liability, trademark and document use rules apply.
-http://www.w3.org/Consortium/Legal/2015/doc-license
-
-
 ---------------------------------------------------------
 ./taverna-robundle/src/main/xsd/xenc-schema.xsd
 
@@ -230,11 +210,17 @@
 http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd
 http://www.w3.org/TR/xmlenc-core/
 
-Copyright (c) 2002 World Wide Web Consortium, (Massachusetts
-Institute of Technology, Institut National de Recherche en Informatique et en
-Automatique, Keio University). All Rights Reserved.
-http://www.w3.org/Consortium/Legal/
+Copyright ©[2011] World Wide Web Consortium 
+(Massachusetts Institute of Technology,  
+ European Research Consortium for Informatics and Mathematics, 
+ Keio University). All Rights Reserved.  
+This work is distributed under the W3C® Software License [1] in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE. 
 
+[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+    ./taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.20021231    
 
 ---------------------------------------------------------
 ./taverna-robundle/src/main/xsd/xmldsig-core-schema.xsd
@@ -252,79 +238,10 @@
 in the FAQ [2].
 
 [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+    ./taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.19980720
 [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
 
 
----------------------------------------------------------
-./taverna-scufl2-wfdesc/src/main/resources/com/xmlns/foaf/foaf.rdf
-./taverna-robundle/src/main/resources/ontologies/foaf.rdf
-
-Friend of a Friend (FOAF) RDF vocabulary
-http://xmlns.com/foaf/spec/20140114.rdf
-
-Copyright (c) 2000-2014 Dan Brickley and Libby Miller
-This work is licensed under a Creative Commons Attribution License.
-http://creativecommons.org/licenses/by/1.0/
-
-
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/dcterms_od.owl
-
-DCMI metadata terms
-http://purl.org/wf4ever/dcterms_od
-Modified to reduce owl:imports
-
-Adapted from Dublin Core in OWL 2
-http://purl.org/NET/dc_owl2dl/terms_od
-Modified for OWL compliance
-
-Adapted from Dublin Core
-http://purl.org/dc/terms/
-
-Copyright (c) 2012-2015 University of Manchester
-Copyright (c) 2009-2014 Simon Reinhardt (http://simon-reinhardt.de/)
-Copyright (c) 1995-2012 DCMI, the Dublin Core Metadata Initiative (http://dublincore.org/)
-
-Licensed under a Creative Commons Attribution 3.0 Unported License (CC BY 3.0).
-http://creativecommons.org/licenses/by/3.0/
-
-
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/dcam.owl
-
-DCMI Abstract model
-http://purl.org/wf4ever/dcam
-Modified URI of the owl:Ontology
-
-Adapted from Dublin Core in OWL 2
-http://purl.org/NET/dc_owl2dl/dcam
-Modified for OWL compliance
-
-Adapted from Dublin Core
-http://purl.org/dc/dcam/
-
-Copyright (c) 2012-2015 University of Manchester
-Copyright (c) 2009-2014 Simon Reinhardt (http://simon-reinhardt.de/)
-Copyright (c) 1995-2012 DCMI, the Dublin Core Metadata Initiative (http://dublincore.org/)
-
-Licensed under a Creative Commons Attribution 3.0 Unported License (CC BY 3.0).
-http://creativecommons.org/licenses/by/3.0/
-
-
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/oa.rdf
-
-Open Annotation Data Model 0.9.20130208
-http://www.w3.org/ns/oa
-
-Copyright (c) 2012-2013 the Contributors to the Open Annotation Core Data Model
-Specification, published by the Open Annotation Community Group under the W3C
-Community Contributor License Agreement (CLA). A human-readable summary is
-available.
-
-http://www.w3.org/community/about/agreements/cla/
-
----------------------------------------------------------
 
 ------------------------------------------------------
 ./taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
@@ -340,21 +257,5 @@
 
 W3C liability, trademark and document use rules apply.
 http://www.w3.org/Consortium/Legal/2015/doc-license
+./taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE.w3c.document
 
-
-------------------------------------------------------
-./taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
-
-roevo.xsd derived from
-Research Object Evolution Ontology (roevo)
-http://w3id.org/ro/roevo
-
-Copyright (c) 2011-2014
-    Raul Palma, PSNC
-    Jun Zhao, University of Oxford
-    Khalid Belhajjame, University of Manchester
-    Stian Soiland-Reyes, University of Manchester
-    Oscar Corcho, UPM
-
-Creative Commons Attribution 3.0 License
-http://creativecommons.org/licenses/by/3.0
diff --git a/NOTICE b/NOTICE
index 72df5ec..7e8ce3d 100644
--- a/NOTICE
+++ b/NOTICE
@@ -9,3 +9,19 @@
 These have been licensed to the Apache Software Foundation under a software grant.
 
 -----------------------------------------------------------------------------------
+./taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
+
+roevo.xsd derived from
+Research Object Evolution Ontology (roevo)
+http://w3id.org/ro/roevo
+
+Copyright (c) 2011-2014
+    Raul Palma, PSNC
+    Jun Zhao, University of Oxford
+    Khalid Belhajjame, University of Manchester
+    Stian Soiland-Reyes, University of Manchester
+    Oscar Corcho, UPM
+
+Creative Commons Attribution 3.0 License
+http://creativecommons.org/licenses/by/3.0
+
diff --git a/pom.xml b/pom.xml
index fd5a906..caf6ca6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,22 +79,6 @@
             <exclude>**/xml.xsd</exclude>
             <exclude>**/xenc-schema.xsd</exclude>
             <exclude>**/xmldsig-core-schema.xsd</exclude>
-            <exclude>**/prov-o.rdf</exclude>
-            <exclude>**/prov-o.ttl</exclude>
-            <exclude>**/prov-aq.rdf</exclude>
-            <!-- W3C Community license -->
-            <!-- FOAF, Creative Commons Attribution 1.0 -->
-            <exclude>**/oa.rdf</exclude>
-            <exclude>**/foaf.rdf</exclude>
-            <!-- Research Object Model, Creative Commons Attribution 3.0 -->
-            <exclude>**/roterms.ttl</exclude>
-            <exclude>**/wf4ever.ttl</exclude>
-            <exclude>**/wfdesc.ttl</exclude>
-            <exclude>**/wfprov.ttl</exclude>
-
-            <!-- Dublin Core, Creative Commons Attribution 3.0 -->
-            <exclude>**/dcam.owl</exclude>
-            <exclude>**/dcterms_od.owl</exclude>
 
           </excludes>
         </configuration>
@@ -297,6 +281,7 @@
     <modules>
       <module>taverna-baclava-language</module>
       <module>taverna-databundle</module>
+      <module>taverna-ro-vocabs</module>
       <module>taverna-robundle</module>
       <module>taverna-scufl2-annotation</module>
       <module>taverna-scufl2-api</module>
@@ -326,6 +311,7 @@
       <maven.compiler.target>1.7</maven.compiler.target>
     </properties>
     <modules>
+      <module>taverna-ro-vocabs</module>
       <module>taverna-baclava-language</module>
       <module>taverna-scufl2-annotation</module>
       <module>taverna-scufl2-api</module>
diff --git a/taverna-ro-vocabs/pom.xml b/taverna-ro-vocabs/pom.xml
new file mode 100755
index 0000000..da8ca8c
--- /dev/null
+++ b/taverna-ro-vocabs/pom.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.taverna.language</groupId>
+    <artifactId>apache-taverna-language</artifactId>
+    <version>0.16.0-incubating-SNAPSHOT</version>
+  </parent>
+  <artifactId>taverna-ro-vocabs</artifactId>
+  <packaging>bundle</packaging>
+  <name>Apache Taverna Research Object vocabularies</name>
+  <description>Constants for vocabularies used in Research Objects</description>
+  <dependencies>
+
+    <dependency>
+      <groupId>org.apache.jena</groupId>
+      <artifactId>jena-arq</artifactId>
+      <version>${jena.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.jena</groupId>
+      <artifactId>jena-osgi</artifactId>
+      <version>${jena.version}</version>
+    </dependency>
+  </dependencies>
+
+</project>
diff --git a/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/bundle.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/bundle.java
new file mode 100644
index 0000000..0b85416
--- /dev/null
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/bundle.java
@@ -0,0 +1,50 @@
+/*
+ * 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.taverna.ro.vocabs; 
+
+import org.apache.jena.rdf.model.*;
+import org.apache.jena.ontology.*;
+ 
+
+/**
+ * Constants for the Research Object bundle vocabulary
+ * 
+ * @see https://w3id.org/bundle/owl
+ */
+public class bundle {
+    /** <p>The ontology model that holds the vocabulary terms</p> */
+    private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
+    
+    /** <p>The namespace of the vocabulary as a string</p> */
+    public static final String NS = "http://purl.org/wf4ever/bundle";
+    
+    /** <p>The namespace of the vocabulary as a string</p>
+     * @return namespace as String
+     * @see #NS */
+    public static String getURI() {return NS;}
+    
+    /** <p>The namespace of the vocabulary as a resource</p> */
+    public static final Resource NAMESPACE = M_MODEL.createResource( NS );
+    
+    public static final ObjectProperty bundledAs = M_MODEL.createObjectProperty( "http://purl.org/wf4ever/bundle#bundledAs" );
+    public static final ObjectProperty hasAnnotation = M_MODEL.createObjectProperty( "http://purl.org/wf4ever/bundle#hasAnnotation" );
+    public static final ObjectProperty hasProxy = M_MODEL.createObjectProperty( "http://purl.org/wf4ever/bundle#hasProxy" );
+    public static final ObjectProperty inFolder = M_MODEL.createObjectProperty( "http://purl.org/wf4ever/bundle#inFolder" );
+}
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Foaf.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/foaf.java
similarity index 92%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Foaf.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/foaf.java
index 299e955..ca22582 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Foaf.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/foaf.java
@@ -16,18 +16,28 @@
  * specific language governing permissions and limitations
  * under the License.
  *
-*/
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+ */
+package org.apache.taverna.ro.vocabs; 
+
+import org.apache.jena.ontology.AnnotationProperty;
+import org.apache.jena.ontology.DatatypeProperty;
+import org.apache.jena.ontology.ObjectProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.ontology.OntProperty;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.sparql.vocabulary.FOAF;
  
 /**
  * Constants from the Friend of a Friend (FOAF) namespace
  * 
  * @see http://xmlns.com/foaf/0.1/
+ * @see FOAF
  *
  */
-public class Foaf {
+public class foaf {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -43,151 +53,82 @@
     public static final Resource NAMESPACE = M_MODEL.createResource( NS );
     
     public static final ObjectProperty account = M_MODEL.createObjectProperty(NS + "account");
-    
     public static final ObjectProperty accountServiceHomepage = M_MODEL.createObjectProperty(NS + "accountServiceHomepage");
-    
     public static final ObjectProperty based_near = M_MODEL.createObjectProperty(NS + "based_near");
-    
     public static final ObjectProperty currentProject = M_MODEL.createObjectProperty(NS + "currentProject");
-    
     public static final ObjectProperty depiction = M_MODEL.createObjectProperty(NS + "depiction");
-    
     public static final ObjectProperty depicts = M_MODEL.createObjectProperty(NS + "depicts");
-    
     public static final ObjectProperty fundedBy = M_MODEL.createObjectProperty(NS + "fundedBy");
-    
     public static final ObjectProperty holdsAccount = M_MODEL.createObjectProperty(NS + "holdsAccount");
-    
-    public static final ObjectProperty homepage = M_MODEL.createObjectProperty(NS + "homepage");
-    
-    public static final ObjectProperty img = M_MODEL.createObjectProperty(NS + "img");
-    
+    public static final ObjectProperty homepage = M_MODEL.createObjectProperty(NS + "homepage");    
+    public static final ObjectProperty img = M_MODEL.createObjectProperty(NS + "img");    
     public static final ObjectProperty interest = M_MODEL.createObjectProperty(NS + "interest");
-    
     public static final ObjectProperty knows = M_MODEL.createObjectProperty(NS + "knows");
-    
     public static final ObjectProperty logo = M_MODEL.createObjectProperty(NS + "logo");
-    
     public static final ObjectProperty made = M_MODEL.createObjectProperty(NS + "made");
-    
     public static final ObjectProperty maker = M_MODEL.createObjectProperty(NS + "maker");
-    
     public static final ObjectProperty mbox = M_MODEL.createObjectProperty(NS + "mbox");
-    
     public static final ObjectProperty member = M_MODEL.createObjectProperty(NS + "member");
-    
     public static final ObjectProperty openid = M_MODEL.createObjectProperty(NS + "openid");
-    
     public static final ObjectProperty page = M_MODEL.createObjectProperty(NS + "page");
-    
     public static final ObjectProperty pastProject = M_MODEL.createObjectProperty(NS + "pastProject");
-    
-    public static final ObjectProperty phone = M_MODEL.createObjectProperty(NS + "phone");
-    
+    public static final ObjectProperty phone = M_MODEL.createObjectProperty(NS + "phone");    
     public static final ObjectProperty primaryTopic = M_MODEL.createObjectProperty(NS + "primaryTopic");
-    
     public static final ObjectProperty publications = M_MODEL.createObjectProperty(NS + "publications");
-    
     public static final ObjectProperty schoolHomepage = M_MODEL.createObjectProperty(NS + "schoolHomepage");
-    
     public static final ObjectProperty theme = M_MODEL.createObjectProperty(NS + "theme");
-    
     public static final ObjectProperty thumbnail = M_MODEL.createObjectProperty(NS + "thumbnail");
-    
     public static final ObjectProperty tipjar = M_MODEL.createObjectProperty(NS + "tipjar");
-    
     public static final ObjectProperty topic = M_MODEL.createObjectProperty(NS + "topic");
-    
     public static final ObjectProperty topic_interest = M_MODEL.createObjectProperty(NS + "topic_interest");
-    
     public static final ObjectProperty weblog = M_MODEL.createObjectProperty(NS + "weblog");
-    
     public static final ObjectProperty workInfoHomepage = M_MODEL.createObjectProperty(NS + "workInfoHomepage");
-    
     public static final ObjectProperty workplaceHomepage = M_MODEL.createObjectProperty(NS + "workplaceHomepage");
     
     public static final DatatypeProperty accountName = M_MODEL.createDatatypeProperty(NS + "accountName");
-    
     public static final DatatypeProperty age = M_MODEL.createDatatypeProperty(NS + "age");
-    
     public static final DatatypeProperty aimChatID = M_MODEL.createDatatypeProperty(NS + "aimChatID");
-    
     public static final DatatypeProperty birthday = M_MODEL.createDatatypeProperty(NS + "birthday");
-    
     public static final DatatypeProperty dnaChecksum = M_MODEL.createDatatypeProperty(NS + "dnaChecksum");
-    
     public static final DatatypeProperty familyName = M_MODEL.createDatatypeProperty(NS + "familyName");
-    
     public static final DatatypeProperty family_name = M_MODEL.createDatatypeProperty(NS + "family_name");
-    
     public static final DatatypeProperty firstName = M_MODEL.createDatatypeProperty(NS + "firstName");
-    
     public static final DatatypeProperty geekcode = M_MODEL.createDatatypeProperty(NS + "geekcode");
-    
     public static final DatatypeProperty gender = M_MODEL.createDatatypeProperty(NS + "gender");
-    
     public static final DatatypeProperty givenName = M_MODEL.createDatatypeProperty(NS + "givenName");
-    
     public static final DatatypeProperty givenname = M_MODEL.createDatatypeProperty(NS + "givenname");
-    
     public static final DatatypeProperty icqChatID = M_MODEL.createDatatypeProperty(NS + "icqChatID");
-    
     public static final DatatypeProperty jabberID = M_MODEL.createDatatypeProperty(NS + "jabberID");
-    
     public static final DatatypeProperty lastName = M_MODEL.createDatatypeProperty(NS + "lastName");
-    
     public static final DatatypeProperty mbox_sha1sum = M_MODEL.createDatatypeProperty(NS + "mbox_sha1sum");
-    
     public static final DatatypeProperty msnChatID = M_MODEL.createDatatypeProperty(NS + "msnChatID");
-    
     public static final DatatypeProperty myersBriggs = M_MODEL.createDatatypeProperty(NS + "myersBriggs");
-    
     public static final DatatypeProperty name = M_MODEL.createDatatypeProperty(NS + "name");
-    
     public static final DatatypeProperty nick = M_MODEL.createDatatypeProperty(NS + "nick");
-    
     public static final DatatypeProperty plan = M_MODEL.createDatatypeProperty(NS + "plan");
-    
     public static final DatatypeProperty sha1 = M_MODEL.createDatatypeProperty(NS + "sha1");
-    
     public static final DatatypeProperty skypeID = M_MODEL.createDatatypeProperty(NS + "skypeID");
-    
     public static final DatatypeProperty status = M_MODEL.createDatatypeProperty(NS + "status");
-    
     public static final DatatypeProperty surname = M_MODEL.createDatatypeProperty(NS + "surname");
-    
     public static final DatatypeProperty title = M_MODEL.createDatatypeProperty(NS + "title");
-    
     public static final DatatypeProperty yahooChatID = M_MODEL.createDatatypeProperty(NS + "yahooChatID");
-    
+
     public static final AnnotationProperty membershipClass = M_MODEL.createAnnotationProperty(NS + "membershipClass");
     
     public static final OntProperty isPrimaryTopicOf = M_MODEL.createOntProperty(NS + "isPrimaryTopicOf");
-    
+
     public static final OntClass Agent = M_MODEL.createClass(NS + "Agent");
-    
     public static final OntClass Document = M_MODEL.createClass(NS + "Document");
-    
     public static final OntClass Group = M_MODEL.createClass(NS + "Group");
-    
     public static final OntClass Image = M_MODEL.createClass(NS + "Image");
-    
     public static final OntClass LabelProperty = M_MODEL.createClass(NS + "LabelProperty");
-    
     public static final OntClass OnlineAccount = M_MODEL.createClass(NS + "OnlineAccount");
-    
     public static final OntClass OnlineChatAccount = M_MODEL.createClass(NS + "OnlineChatAccount");
-    
     public static final OntClass OnlineEcommerceAccount = M_MODEL.createClass(NS + "OnlineEcommerceAccount");
-    
     public static final OntClass OnlineGamingAccount = M_MODEL.createClass(NS + "OnlineGamingAccount");
-    
     public static final OntClass Organization = M_MODEL.createClass(NS + "Organization");
-    
     public static final OntClass Person = M_MODEL.createClass(NS + "Person");
-    
-    public static final OntClass PersonalProfileDocument = M_MODEL.createClass(NS + "PersonalProfileDocument");
-    
+    public static final OntClass PersonalProfileDocument = M_MODEL.createClass(NS + "PersonalProfileDocument");    
     public static final OntClass Project = M_MODEL.createClass(NS + "Project");
     
 }
diff --git a/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/oa.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/oa.java
new file mode 100644
index 0000000..21580d9
--- /dev/null
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/oa.java
@@ -0,0 +1,123 @@
+/*
+ * 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.taverna.ro.vocabs; 
+
+import org.apache.jena.rdf.model.*;
+import org.apache.jena.ontology.*;
+ 
+/**
+ * Constants for the Web Annotation ontology
+ * 
+ * @see https://www.w3.org/ns/oa
+ * @see https://www.w3.org/TR/2017/REC-annotation-vocab-20170223/
+ */
+public class oa {
+    /** <p>The ontology model that holds the vocabulary terms</p> */
+    private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null);
+    
+    /** <p>The namespace of the vocabulary as a string</p> */
+    public static final String NS = "http://www.w3.org/ns/oa";
+    
+    /** <p>The namespace of the vocabulary as a string</p>
+     * @return namespace as String
+     * @see #NS */
+    public static String getURI() {return NS;}
+    
+    /** <p>The namespace of the vocabulary as a resource</p> */
+    public static final Resource NAMESPACE = M_MODEL.createResource( NS);
+  
+    public static final ObjectProperty annotationService = M_MODEL.createObjectProperty(NS + "annotationService");
+    public static final ObjectProperty cachedSource = M_MODEL.createObjectProperty(NS + "cachedSource");
+    public static final ObjectProperty hasBody = M_MODEL.createObjectProperty(NS + "hasBody");
+    public static final ObjectProperty hasEndSelector = M_MODEL.createObjectProperty(NS + "hasEndSelector");
+    public static final ObjectProperty hasPurpose = M_MODEL.createObjectProperty(NS + "hasPurpose");    
+    public static final ObjectProperty hasScope = M_MODEL.createObjectProperty(NS + "hasScope");
+    public static final ObjectProperty hasSelector = M_MODEL.createObjectProperty(NS + "hasSelector");
+    public static final ObjectProperty hasSource = M_MODEL.createObjectProperty(NS + "hasSource");
+    public static final ObjectProperty hasStartSelector = M_MODEL.createObjectProperty(NS + "hasStartSelector");
+    public static final ObjectProperty hasState = M_MODEL.createObjectProperty(NS + "hasState");
+    public static final ObjectProperty hasTarget = M_MODEL.createObjectProperty(NS + "hasTarget");
+    public static final ObjectProperty motivatedBy = M_MODEL.createObjectProperty(NS + "motivatedBy");
+    public static final ObjectProperty refinedBy = M_MODEL.createObjectProperty(NS + "refinedBy");
+    public static final ObjectProperty renderedVia = M_MODEL.createObjectProperty(NS + "renderedVia");
+    public static final ObjectProperty styledBy = M_MODEL.createObjectProperty(NS + "styledBy");
+    public static final ObjectProperty textDirection = M_MODEL.createObjectProperty(NS + "textDirection");
+    public static final ObjectProperty via = M_MODEL.createObjectProperty(NS + "via");
+    
+    public static final DatatypeProperty bodyValue = M_MODEL.createDatatypeProperty(NS + "bodyValue");
+    public static final DatatypeProperty canonical = M_MODEL.createDatatypeProperty(NS + "canonical");
+    public static final DatatypeProperty end = M_MODEL.createDatatypeProperty(NS + "end");    
+    public static final DatatypeProperty exact = M_MODEL.createDatatypeProperty(NS + "exact");
+    public static final DatatypeProperty prefix = M_MODEL.createDatatypeProperty(NS + "prefix");        
+    public static final DatatypeProperty processingLanguage = M_MODEL.createDatatypeProperty(NS + "processingLanguage");
+    public static final DatatypeProperty sourceDate = M_MODEL.createDatatypeProperty(NS + "sourceDate");
+    public static final DatatypeProperty sourceDateEnd = M_MODEL.createDatatypeProperty(NS + "sourceDateEnd");
+    public static final DatatypeProperty sourceDateStart = M_MODEL.createDatatypeProperty(NS + "sourceDateStart");
+    public static final DatatypeProperty start = M_MODEL.createDatatypeProperty(NS + "start");    
+    public static final DatatypeProperty styleClass = M_MODEL.createDatatypeProperty(NS + "styleClass");
+    public static final DatatypeProperty suffix = M_MODEL.createDatatypeProperty(NS + "suffix");
+    
+    public static final OntClass Annotation = M_MODEL.createClass(NS + "Annotation");
+    public static final OntClass Choice = M_MODEL.createClass(NS + "Choice");
+    public static final OntClass CssSelector = M_MODEL.createClass(NS + "CssSelector");
+    public static final OntClass CssStyle = M_MODEL.createClass(NS + "CssStyle");
+    public static final OntClass DataPositionSelector = M_MODEL.createClass(NS + "DataPositionSelector");
+    public static final OntClass Direction = M_MODEL.createClass(NS + "Direction");
+    public static final OntClass FragmentSelector = M_MODEL.createClass(NS + "FragmentSelector");    
+    public static final OntClass HttpRequestState = M_MODEL.createClass(NS + "HttpRequestState");    
+    public static final OntClass Motivation = M_MODEL.createClass(NS + "Motivation");
+    public static final OntClass RangeSelector = M_MODEL.createClass(NS + "RangeSelector");
+    public static final OntClass ResourceSelection = M_MODEL.createClass(NS + "ResourceSelection");
+    public static final OntClass Selector = M_MODEL.createClass(NS + "Selector");
+    public static final OntClass SpecificResource = M_MODEL.createClass(NS + "SpecificResource");
+    public static final OntClass State = M_MODEL.createClass(NS + "State");
+    public static final OntClass Style = M_MODEL.createClass(NS + "Style");
+    public static final OntClass SvgSelector = M_MODEL.createClass(NS + "SvgSelector");    
+    public static final OntClass TextPositionSelector = M_MODEL.createClass(NS + "TextPositionSelector");
+    public static final OntClass TextQuoteSelector = M_MODEL.createClass(NS + "TextQuoteSelector");
+    public static final OntClass TextualBody = M_MODEL.createClass(NS + "TextualBody");
+    public static final OntClass TimeState = M_MODEL.createClass(NS + "TimeState");
+    public static final OntClass XPathSelector = M_MODEL.createClass(NS + "XPathSelector");
+
+    private static final OntClass ConceptScheme = M_MODEL.createClass( "http://www.w3.org/2004/02/skos/core#ConceptScheme");
+    private static final OntClass Concept = M_MODEL.createClass( "http://www.w3.org/2004/02/skos/core#Concept") ;
+    
+    public static final Individual motivationScheme = M_MODEL.createIndividual(NS + "motivationScheme", ConceptScheme);
+    public static final Individual assessing = M_MODEL.createIndividual(NS + "assessing", Motivation);    
+    public static final Individual bookmarking = M_MODEL.createIndividual(NS + "bookmarking", Motivation);
+    public static final Individual classifying = M_MODEL.createIndividual(NS + "classifying", Motivation);
+    public static final Individual commenting = M_MODEL.createIndividual(NS + "commenting", Motivation);
+    public static final Individual describing = M_MODEL.createIndividual(NS + "describing", Motivation);
+    public static final Individual editing = M_MODEL.createIndividual(NS + "editing", Motivation);
+    public static final Individual highlighting = M_MODEL.createIndividual(NS + "highlighting", Motivation);    
+    public static final Individual identifying = M_MODEL.createIndividual(NS + "identifying", Motivation);
+    public static final Individual linking = M_MODEL.createIndividual(NS + "linking", Motivation);
+    public static final Individual moderating = M_MODEL.createIndividual(NS + "moderating", Motivation);
+    public static final Individual questioning = M_MODEL.createIndividual(NS + "questioning", Motivation);
+    public static final Individual replying = M_MODEL.createIndividual(NS + "replying", Motivation);
+    public static final Individual tagging = M_MODEL.createIndividual(NS + "tagging", Motivation);
+
+    public static final Individual ltrDirection = M_MODEL.createIndividual(NS + "ltrDirection", Direction);
+    public static final Individual rtlDirection = M_MODEL.createIndividual(NS + "rtlDirection", Direction);
+    public static final Individual PreferContainedDescriptions = M_MODEL.createIndividual(NS + "PreferContainedDescriptions", Concept);
+    public static final Individual PreferContainedIRIs = M_MODEL.createIndividual(NS + "PreferContainedIRIs", Concept);
+
+}
+
diff --git a/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ore.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ore.java
new file mode 100644
index 0000000..6eddbce
--- /dev/null
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ore.java
@@ -0,0 +1,62 @@
+/*
+ * 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.taverna.ro.vocabs; 
+
+import org.apache.jena.rdf.model.*;
+import org.apache.jena.ontology.*;
+ 
+/**
+ * Constants for the OAI ORE terms vocabulary
+ * 
+ * @see http://www.openarchives.org/ore/terms/
+ * @see http://www.openarchives.org/ore/toc"
+ */
+public class ore {
+    /** <p>The ontology model that holds the vocabulary terms</p> */
+    private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
+    
+    /** <p>The namespace of the vocabulary as a string</p> */
+    public static final String NS = "http://www.openarchives.org/ore/terms/";
+    
+    /** <p>The namespace of the vocabulary as a string</p>
+     * @return namespace as String
+     * @see #NS */
+    public static String getURI() {return NS;}
+    
+    /** <p>The namespace of the vocabulary as a resource</p> */
+    public static final Resource NAMESPACE = M_MODEL.createResource( NS );
+    
+    public static final AnnotationProperty similarTo = M_MODEL.createAnnotationProperty(NS + "similarTo");
+
+    public static final OntClass AggregatedResource = M_MODEL.createClass(NS + "AggregatedResource");
+    public static final OntClass Aggregation = M_MODEL.createClass(NS + "Aggregation");
+    public static final OntClass Proxy = M_MODEL.createClass(NS + "Proxy");
+    public static final OntClass ResourceMap = M_MODEL.createClass(NS + "ResourceMap");
+
+    public static final OntClass Graph = M_MODEL.createClass("http://www.w3.org/2004/03/trix/rdfg-1/Graph");
+
+    public static final ObjectProperty aggregates = M_MODEL.createObjectProperty(NS + "aggregates");    
+    public static final ObjectProperty describes = M_MODEL.createObjectProperty(NS + "describes");    
+    public static final ObjectProperty isAggregatedBy = M_MODEL.createObjectProperty(NS + "isAggregatedBy");    
+    public static final ObjectProperty isDescribedBy = M_MODEL.createObjectProperty(NS + "isDescribedBy");    
+    public static final ObjectProperty lineage = M_MODEL.createObjectProperty(NS + "lineage");    
+    public static final ObjectProperty proxyFor = M_MODEL.createObjectProperty(NS + "proxyFor");    
+    public static final ObjectProperty proxyIn = M_MODEL.createObjectProperty(NS + "proxyIn");    
+}
diff --git a/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/package-info.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/package-info.java
new file mode 100644
index 0000000..3cba91d
--- /dev/null
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/package-info.java
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+/**
+ * Constants for vocabularies used by Research Object model
+ * 
+ * @see https://w3id.org/ro/2016-01-28/
+ *
+ */
+package org.apache.taverna.ro.vocabs;
\ No newline at end of file
diff --git a/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/pav.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/pav.java
new file mode 100644
index 0000000..49cc426
--- /dev/null
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/pav.java
@@ -0,0 +1,326 @@
+/*
+ * 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.
+ * 
+ */
+
+/*
+This Java class was generated for Apache Taverna 
+from the original RDF/XML ontology http://purl.org/pav/2.3
+which license and attribution is shown below according to
+Apache License 2.0 clause 4c:
+
+Copyright 2008-2014 Massachusetts General Hospital; Harvard Medical School; Balboa Systems; University of Manchester
+
+Licensed 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.
+
+
+<dcterms:title xml:lang="en">PAV - Provenance, Authoring and Versioning</dcterms:title>
+
+<rdfs:comment xml:lang="en">PAV is a lightweight ontology for tracking Provenance, Authoring and Versioning. PAV specializes the W3C provenance ontology PROV-O in order to describe authorship, curation and digital creation of online resources.
+
+  This ontology describes the defined PAV properties and their usage. Note that PAV does not define any explicit classes or domain/ranges, as every property is meant to be used directly on the described online resource.
+
+  Cite as: Paolo Ciccarese, Stian Soiland-Reyes, Khalid Belhajjame, Alasdair JG Gray, Carole Goble, Tim Clark (2013): PAV ontology: provenance, authoring and versioning. Journal of biomedical semantics 4 (1), 37. doi:10.1186/2041-1480-4-37
+</rdfs:comment>
+
+
+<dc:creator rdf:datatype="&xsd;string">Paolo Ciccarese</dc:creator>
+<dc:creator rdf:datatype="&xsd;string">Stian Soiland-Reyes</dc:creator>
+<dc:contributor rdf:datatype="&xsd;string">Marco Ocana</dc:contributor>
+<dc:contributor rdf:datatype="&xsd;string">Alasdair J G Gray</dc:contributor>
+<dc:contributor rdf:datatype="&xsd;string">Khalid Belhajjame</dc:contributor>
+<dc:contributor rdf:datatype="&xsd;string">Simon Jupp</dc:contributor>
+
+*/
+package org.apache.taverna.ro.vocabs; 
+import org.apache.jena.rdf.model.*;
+import org.apache.jena.ontology.*;
+ 
+/**
+ * Vocabulary definitions from file:/home/stain/src/incubator-taverna-language/taverna-ro-vocabs/src/main/resources/ontologies/pav.rdf 
+ * @author Auto-generated by schemagen on 07 Dec 2018 00:45 
+ */
+public class pav {
+    /** <p>The ontology model that holds the vocabulary terms</p> */
+    private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
+    
+    /** <p>The namespace of the vocabulary as a string</p> */
+    public static final String NS = "http://purl.org/pav/";
+    
+    /** <p>The namespace of the vocabulary as a string</p>
+     * @return namespace as String
+     * @see #NS */
+    public static String getURI() {return NS;}
+    
+    /** <p>The namespace of the vocabulary as a resource</p> */
+    public static final Resource NAMESPACE = M_MODEL.createResource( NS );
+    
+    /** <p>The ontology's owl:versionInfo as a string</p> */
+    public static final String VERSION_INFO = "2.1.1";
+    
+    /** <p>An agent that originated or gave existence to the work that is expressed by 
+     *  the digital resource. The author of the content of a resource may be different 
+     *  from the creator of the resource representation (although they are often the 
+     *  same). See pav:createdBy for a discussion. The date of authoring can be expressed 
+     *  using pav:authoredOn - note however in the case of multiple authors that there 
+     *  is no relationship in PAV identifying which agent contributed when or what. 
+     *  If capturing such lineage is desired, it should be additionally expressed 
+     *  using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy 
+     *  and prov:qualifiedAssocation.</p>
+     */
+    public static final ObjectProperty authoredBy = M_MODEL.createObjectProperty( "http://purl.org/pav/authoredBy" );
+    
+    /** <p>The resource was contributed to by the given agent. The agent provided any 
+     *  sort of help in conceiving the work that is expressed by the digital artifact. 
+     *  Superproperty of pav:authoredBy and pav:curatedBy. Note that as pav:contributedBy 
+     *  identifies only agents that contributed to the work, knowledge or intellectual 
+     *  property, and not agents that made the digital artifact or representation 
+     *  (pav:createdBy), thus this property can be considered more precise than dct:contributor. 
+     *  See pav:createdBy for a discussion. The date of contribution can be expressed 
+     *  using pav:contributedOn - note however in the case of multiple contributors 
+     *  that there is no relationship in PAV identifying which agent contributed when 
+     *  or what. If capturing such lineage is desired, it should be additionally expressed 
+     *  using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy 
+     *  and prov:qualifiedAssocation.</p>
+     */
+    public static final ObjectProperty contributedBy = M_MODEL.createObjectProperty( "http://purl.org/pav/contributedBy" );
+    
+    /** <p>The geo-location of the agents when creating the resource (pav:createdBy). 
+     *  For instance a photographer takes a picture of the Eiffel Tower while standing 
+     *  in front of it.</p>
+     */
+    public static final ObjectProperty createdAt = M_MODEL.createObjectProperty( "http://purl.org/pav/createdAt" );
+    
+    /** <p>An agent primary responsible for making the digital artifact or resource representation. 
+     *  This property is distinct from forming the content, which is indicated with 
+     *  pav:contributedBy or its subproperties; pav:authoredBy, which identifies who 
+     *  authored the knowledge expressed by this resource; and pav:curatedBy, which 
+     *  identifies who curated the knowledge into its current form. pav:createdBy 
+     *  is more specific than dct:createdBy - which might or might not be interpreted 
+     *  to cover this creator. For instance, the author wrote 'this species has bigger 
+     *  wings than normal' in his log book. The curator, going through the log book 
+     *  and identifying important knowledge, formalizes this as 'locus perculus has 
+     *  wingspan &gt; 0.5m'. The creator enters this knowledge as a digital resource 
+     *  in the knowledge system, thus creating the digital artifact (say as JSON, 
+     *  RDF, XML or HTML). A different example is a news article. pav:authoredBy indicates 
+     *  the journalist who wrote the article. pav:contributedBy can indicate the artist 
+     *  who added an illustration. pav:curatedBy can indicate the editor who made 
+     *  the article conform to the news paper's style. pav:createdBy can indicate 
+     *  who put the article on the web site. The software tool used by the creator 
+     *  to make the digital resource (say Protege, Wordpress or OpenOffice) can be 
+     *  indicated with pav:createdWith. The date the digital resource was created 
+     *  can be indicated with pav:createdOn. The location the agent was at when creating 
+     *  the digital resource can be made using pav:createdAt.</p>
+     */
+    public static final ObjectProperty createdBy = M_MODEL.createObjectProperty( "http://purl.org/pav/createdBy" );
+    
+    /** <p>The software/tool used by the creator (pav:createdBy) when making the digital 
+     *  resource, for instance a word processor or an annotation tool. A more independent 
+     *  software agent that creates the resource without direct interaction by a human 
+     *  creator should instead should instead by indicated using pav:createdBy.</p>
+     */
+    public static final ObjectProperty createdWith = M_MODEL.createObjectProperty( "http://purl.org/pav/createdWith" );
+    
+    /** <p>An agent specialist responsible for shaping the expression in an appropriate 
+     *  format. Often the primary agent responsible for ensuring the quality of the 
+     *  representation. The curator may be different from the creator of the author 
+     *  (pav:authoredBy) and the creator of the digital resource (pav:createdBy). 
+     *  The date of curating can be expressed using pav:curatedOn - note however in 
+     *  the case of multiple curators that there is no relationship in PAV identifying 
+     *  which agent contributed when or what. If capturing such lineage is desired, 
+     *  it should be additionally expressed using activity-centric provenance vocabularies, 
+     *  for instance with prov:wasGeneratedBy and prov:qualifiedAssocation.</p>
+     */
+    public static final ObjectProperty curatedBy = M_MODEL.createObjectProperty( "http://purl.org/pav/curatedBy" );
+    
+    /** <p>Provided for backwards compatibility with PAV 1.2 only. Use instead the inverse 
+     *  pav:curatedBy.</p>
+     */
+    public static final ObjectProperty curates = M_MODEL.createObjectProperty( "http://purl.org/pav/curates" );
+    
+    /** <p>Derived from a different resource. Derivation conserns itself with derived 
+     *  knowledge. If this resource has the same content as the other resource, but 
+     *  has simply been transcribed to fit a different model (like XML -&gt; RDF or 
+     *  SQL -&gt; CVS), use pav:importedFrom. If a resource was simply retrieved, 
+     *  use pav:retrievedFrom. If the content has however been further refined or 
+     *  modified, pav:derivedFrom should be used. Details about who performed the 
+     *  derivation may be indicated with pav:contributedBy and its subproperties.</p>
+     */
+    public static final ObjectProperty derivedFrom = M_MODEL.createObjectProperty( "http://purl.org/pav/derivedFrom" );
+    
+    /** <p>An entity responsible for importing the data. The importer is usually a software 
+     *  entity which has done the transcription from the original source. Note that 
+     *  pav:importedBy may overlap with pav:createdWith. The source for the import 
+     *  should be given with pav:importedFrom. The time of the import should be given 
+     *  with pav:importedOn. See pav:importedFrom for a discussion of import vs. retrieve 
+     *  vs. derived.</p>
+     */
+    public static final ObjectProperty importedBy = M_MODEL.createObjectProperty( "http://purl.org/pav/importedBy" );
+    
+    /** <p>The original source of imported information. Import means that the content 
+     *  has been preserved, but transcribed somehow, for instance to fit a different 
+     *  representation model. Examples of import are when the original was JSON and 
+     *  the current resource is RDF, or where the original was an document scan, and 
+     *  this resource is the plain text found through OCR. The imported resource does 
+     *  not have to be complete, but should be consistent with the knowledge conveyed 
+     *  by the original resource. If additional knowledge has been contributed, pav:derivedFrom 
+     *  would be more appropriate. If the resource has been copied verbatim from the 
+     *  original representation (e.g. downloaded), use pav:retrievedFrom. To indicate 
+     *  which agent(s) performed the import, use pav:importedBy. Use pav:importedOn 
+     *  to indicate when it happened.</p>
+     */
+    public static final ObjectProperty importedFrom = M_MODEL.createObjectProperty( "http://purl.org/pav/importedFrom" );
+    
+    /** <p>The previous version of a resource in a lineage. For instance a news article 
+     *  updated to correct factual information would point to the previous version 
+     *  of the article with pav:previousVersion. If however the content has significantly 
+     *  changed so that the two resources no longer share lineage (say a new news 
+     *  article that talks about the same facts), they should be related using pav:derivedFrom. 
+     *  A version number of this resource can be provided using the data property 
+     *  pav:version.</p>
+     */
+    public static final ObjectProperty previousVersion = M_MODEL.createObjectProperty( "http://purl.org/pav/previousVersion" );
+    
+    /** <p>The original provider of the encoded information (e.g. PubMed, UniProt, Science 
+     *  Commons). The provider might not coincide with the dct:publisher, which would 
+     *  describe the current publisher of the resource. For instance if the resource 
+     *  was retrieved, imported or derived from a source, that source was published 
+     *  by the original provider. pav:providedBy provides a shortcut to indicate the 
+     *  original provider on the new resource.</p>
+     */
+    public static final ObjectProperty providedBy = M_MODEL.createObjectProperty( "http://purl.org/pav/providedBy" );
+    
+    /** <p>An entity responsible for retrieving the data from an external source. The 
+     *  retrieving agent is usually a software entity, which has done the retrieval 
+     *  from the original source without performing any transcription. The source 
+     *  that was retrieved should be given with pav:retrievedFrom. The time of the 
+     *  retrieval should be indicated using pav:retrievedOn. See pav:importedFrom 
+     *  for a discussion of import vs. retrieve vs. derived.</p>
+     */
+    public static final ObjectProperty retrievedBy = M_MODEL.createObjectProperty( "http://purl.org/pav/retrievedBy" );
+    
+    /** <p>The URI where a resource has been retrieved from. Retrieval indicates that 
+     *  this resource has the same representation as the original resource. If the 
+     *  resource has been somewhat transformed, use pav:importedFrom instead. The 
+     *  time of the retrieval should be indicated using pav:retrievedOn. The agent 
+     *  may be indicated with pav:retrievedBy.</p>
+     */
+    public static final ObjectProperty retrievedFrom = M_MODEL.createObjectProperty( "http://purl.org/pav/retrievedFrom" );
+    
+    /** <p>The resource is related to a given source which was accessed or consulted 
+     *  (but not retrieved, imported or derived from). This access can be detailed 
+     *  with pav:sourceAccessedBy and pav:sourceAccessedOn. For instance, a curator 
+     *  (pav:curatedBy) might have consulted figures in a published paper to confirm 
+     *  that a dataset was correctly pav:importedFrom the paper's supplementary CSV 
+     *  file.</p>
+     */
+    public static final ObjectProperty sourceAccessedAt = M_MODEL.createObjectProperty( "http://purl.org/pav/sourceAccessedAt" );
+    
+    /** <p>The resource is related to a source which was accessed or consulted by the 
+     *  given agent. The source(s) should be specified using pav:sourceAccessedAt, 
+     *  and the time with pav:sourceAccessedOn. For instance, the given agent could 
+     *  be a curator (also pav:curatedBy) which consulted figures in a published paper 
+     *  to confirm that a dataset was correctly pav:importedFrom the paper's supplementary 
+     *  CSV file.</p>
+     */
+    public static final ObjectProperty sourceAccessedBy = M_MODEL.createObjectProperty( "http://purl.org/pav/sourceAccessedBy" );
+    
+    /** <p>The date this resource was authored. pav:authoredBy gives the authoring agent. 
+     *  Note that pav:authoredOn is different from pav:createdOn, although they are 
+     *  often the same. See pav:createdBy for a discussion.</p>
+     */
+    public static final DatatypeProperty authoredOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/authoredOn" );
+    
+    /** <p>The date this resource was contributed to. pav:contributedBy provides the 
+     *  agent(s) that contributed.</p>
+     */
+    public static final DatatypeProperty contributedOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/contributedOn" );
+    
+    /** <p>The date of creation of the resource. pav:createdBy provides the agent(s) 
+     *  that created the resource.</p>
+     */
+    public static final DatatypeProperty createdOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/createdOn" );
+    
+    /** <p>The date this resource was curated. pav:curatedBy gives the agent(s) that 
+     *  performed the curation.</p>
+     */
+    public static final DatatypeProperty curatedOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/curatedOn" );
+    
+    /** <p>The date this resource was imported from a source (pav:importedFrom). Note 
+     *  that pav:importedOn may overlap with pav:createdOn, but in cases where they 
+     *  differ, the import time indicates the time of the retrieval and transcription 
+     *  of the original source, while the creation time indicates when the final resource 
+     *  was made, for instance after user approval. If the source is later reimported, 
+     *  this should be indicated with pav:lastRefreshedOn. The source of the import 
+     *  should be given with pav:importedFrom. The agent that performed the import 
+     *  should be given with pav:importedBy. See pav:importedFrom for a discussion 
+     *  about import vs. retrieval.</p>
+     */
+    public static final DatatypeProperty importedOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/importedOn" );
+    
+    /** <p>The date of the last re-import of the resource. This property is used in addition 
+     *  to pav:importedOn if this version has been updated due to a re-import. If 
+     *  the re-import created a new resource rather than refreshing an existing, then 
+     *  pav:importedOn should be used together with pav:previousVersion.</p>
+     */
+    public static final DatatypeProperty lastRefreshedOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/lastRefreshedOn" );
+    
+    /** <p>The date of the last update of the resource. An update is a change which did 
+     *  not warrant making a new resource related using pav:previousVersion, for instance 
+     *  correcting a spelling mistake.</p>
+     */
+    public static final DatatypeProperty lastUpdateOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/lastUpdateOn" );
+    
+    /** <p>The date the source for this resource was retrieved. The source that was retrieved 
+     *  should be indicated with pav:retrievedFrom. The agent that performed the retrieval 
+     *  may be specified with pav:retrievedBy.</p>
+     */
+    public static final DatatypeProperty retrievedOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/retrievedOn" );
+    
+    /** <p>The resource is related to a source which was originally accessed or consulted 
+     *  on the given date as part of creating or authoring the resource. The source(s) 
+     *  should be specified using pav:sourceAccessedAt. If the source is subsequently 
+     *  checked again (say to verify validity), this should be indicated with pav:sourceLastAccessedOn. 
+     *  In the case multiple sources being accessed at different times or by different 
+     *  agents, PAV does not distinguish who accessed when what. If such details are 
+     *  required, they may be provided by additionally using prov:qualifiedInfluence.</p>
+     */
+    public static final DatatypeProperty sourceAccessedOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/sourceAccessedOn" );
+    
+    /** <p>The resource is related to a source which was last accessed or consulted on 
+     *  the given date. The source(s) should be specified using pav:sourceAccessedAt. 
+     *  Usage of this property indicates that the source has been checked previously, 
+     *  which the initial time should be indicated with pav:sourceAccessedOn. This 
+     *  property can be useful together with pav:lastRefreshedOn or pav:lastUpdateOn 
+     *  in order to indicate a re-import or update, but could also be used alone, 
+     *  for instance when a source was simply verified and no further action was taken 
+     *  for the resource,</p>
+     */
+    public static final DatatypeProperty sourceLastAccessedOn = M_MODEL.createDatatypeProperty( "http://purl.org/pav/sourceLastAccessedOn" );
+    
+    /** <p>The version number of a resource. This is a freetext string, typical values 
+     *  are "1.5" or "21". The URI identifying the previous version can be provided 
+     *  using prov:previousVersion.</p>
+     */
+    public static final DatatypeProperty version = M_MODEL.createDatatypeProperty( "http://purl.org/pav/version" );
+    
+}
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Prov_o.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/prov.java
similarity index 86%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Prov_o.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/prov.java
index ce15d87..cbcbd5b 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Prov_o.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/prov.java
@@ -17,16 +17,23 @@
  * under the License.
  *
 */
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+package org.apache.taverna.ro.vocabs;
+
+import org.apache.jena.ontology.AnnotationProperty;
+import org.apache.jena.ontology.DatatypeProperty;
+import org.apache.jena.ontology.ObjectProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
  
 /**
- * Constants from the W3C PROV-O vocabulary
+ * Constants from the W3C Prov-O vocabulary
  * 
  * @see https://www.w3.org/TR/prov-o/
  */
-public class Prov_o {
+public class prov {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -42,193 +49,123 @@
     public static final Resource NAMESPACE = M_MODEL.createResource( NS );
     
     public static final ObjectProperty actedOnBehalfOf = M_MODEL.createObjectProperty(NS + "actedOnBehalfOf");
-    
     public static final ObjectProperty activity = M_MODEL.createObjectProperty(NS + "activity");
-    
     public static final ObjectProperty agent = M_MODEL.createObjectProperty(NS + "agent");
-    
     public static final ObjectProperty alternateOf = M_MODEL.createObjectProperty(NS + "alternateOf");
-    
     public static final ObjectProperty atLocation = M_MODEL.createObjectProperty(NS + "atLocation");
-    
     public static final ObjectProperty entity = M_MODEL.createObjectProperty(NS + "entity");
-    
     public static final ObjectProperty generated = M_MODEL.createObjectProperty(NS + "generated");
-    
     public static final ObjectProperty hadActivity = M_MODEL.createObjectProperty(NS + "hadActivity");
-    
     public static final ObjectProperty hadGeneration = M_MODEL.createObjectProperty(NS + "hadGeneration");
-    
     public static final ObjectProperty hadMember = M_MODEL.createObjectProperty(NS + "hadMember");
-    
     public static final ObjectProperty hadPlan = M_MODEL.createObjectProperty(NS + "hadPlan");
-    
     public static final ObjectProperty hadPrimarySource = M_MODEL.createObjectProperty(NS + "hadPrimarySource");
-    
     public static final ObjectProperty hadRole = M_MODEL.createObjectProperty(NS + "hadRole");
-    
     public static final ObjectProperty hadUsage = M_MODEL.createObjectProperty(NS + "hadUsage");
-    
     public static final ObjectProperty influenced = M_MODEL.createObjectProperty(NS + "influenced");
-    
     public static final ObjectProperty influencer = M_MODEL.createObjectProperty(NS + "influencer");
-    
     public static final ObjectProperty invalidated = M_MODEL.createObjectProperty(NS + "invalidated");
-    
+
     public static final ObjectProperty qualifiedAssociation = M_MODEL.createObjectProperty(NS + "qualifiedAssociation");
-    
     public static final ObjectProperty qualifiedAttribution = M_MODEL.createObjectProperty(NS + "qualifiedAttribution");
-    
     public static final ObjectProperty qualifiedCommunication = M_MODEL.createObjectProperty(NS + "qualifiedCommunication");
-    
     public static final ObjectProperty qualifiedDelegation = M_MODEL.createObjectProperty(NS + "qualifiedDelegation");
-    
     public static final ObjectProperty qualifiedDerivation = M_MODEL.createObjectProperty(NS + "qualifiedDerivation");
-    
     public static final ObjectProperty qualifiedEnd = M_MODEL.createObjectProperty(NS + "qualifiedEnd");
-    
     public static final ObjectProperty qualifiedGeneration = M_MODEL.createObjectProperty(NS + "qualifiedGeneration");
-    
     public static final ObjectProperty qualifiedInfluence = M_MODEL.createObjectProperty(NS + "qualifiedInfluence");
-    
     public static final ObjectProperty qualifiedInvalidation = M_MODEL.createObjectProperty(NS + "qualifiedInvalidation");
-    
     public static final ObjectProperty qualifiedPrimarySource = M_MODEL.createObjectProperty(NS + "qualifiedPrimarySource");
-    
     public static final ObjectProperty qualifiedQuotation = M_MODEL.createObjectProperty(NS + "qualifiedQuotation");
-    
     public static final ObjectProperty qualifiedRevision = M_MODEL.createObjectProperty(NS + "qualifiedRevision");
-    
     public static final ObjectProperty qualifiedStart = M_MODEL.createObjectProperty(NS + "qualifiedStart");
-    
     public static final ObjectProperty qualifiedUsage = M_MODEL.createObjectProperty(NS + "qualifiedUsage");
-    
+
     public static final ObjectProperty specializationOf = M_MODEL.createObjectProperty(NS + "specializationOf");
-    
     public static final ObjectProperty used = M_MODEL.createObjectProperty(NS + "used");
-    
     public static final ObjectProperty wasAssociatedWith = M_MODEL.createObjectProperty(NS + "wasAssociatedWith");
-    
     public static final ObjectProperty wasAttributedTo = M_MODEL.createObjectProperty(NS + "wasAttributedTo");
-    
     public static final ObjectProperty wasDerivedFrom = M_MODEL.createObjectProperty(NS + "wasDerivedFrom");
-    
     public static final ObjectProperty wasEndedBy = M_MODEL.createObjectProperty(NS + "wasEndedBy");
-    
     public static final ObjectProperty wasGeneratedBy = M_MODEL.createObjectProperty(NS + "wasGeneratedBy");
-    
     public static final ObjectProperty wasInfluencedBy = M_MODEL.createObjectProperty(NS + "wasInfluencedBy");
-    
     public static final ObjectProperty wasInformedBy = M_MODEL.createObjectProperty(NS + "wasInformedBy");
-    
     public static final ObjectProperty wasInvalidatedBy = M_MODEL.createObjectProperty(NS + "wasInvalidatedBy");
-    
     public static final ObjectProperty wasQuotedFrom = M_MODEL.createObjectProperty(NS + "wasQuotedFrom");
-    
     public static final ObjectProperty wasRevisionOf = M_MODEL.createObjectProperty(NS + "wasRevisionOf");
-    
     public static final ObjectProperty wasStartedBy = M_MODEL.createObjectProperty(NS + "wasStartedBy");
     
     public static final DatatypeProperty atTime = M_MODEL.createDatatypeProperty(NS + "atTime");
-    
     public static final DatatypeProperty endedAtTime = M_MODEL.createDatatypeProperty(NS + "endedAtTime");
-    
     public static final DatatypeProperty generatedAtTime = M_MODEL.createDatatypeProperty(NS + "generatedAtTime");
-    
     public static final DatatypeProperty invalidatedAtTime = M_MODEL.createDatatypeProperty(NS + "invalidatedAtTime");
-    
     public static final DatatypeProperty startedAtTime = M_MODEL.createDatatypeProperty(NS + "startedAtTime");
-    
     public static final DatatypeProperty value = M_MODEL.createDatatypeProperty(NS + "value");
     
     public static final AnnotationProperty aq = M_MODEL.createAnnotationProperty(NS + "aq");
-    
     public static final AnnotationProperty category = M_MODEL.createAnnotationProperty(NS + "category");
-    
     public static final AnnotationProperty component = M_MODEL.createAnnotationProperty(NS + "component");
-    
     public static final AnnotationProperty constraints = M_MODEL.createAnnotationProperty(NS + "constraints");
-    
     public static final AnnotationProperty definition = M_MODEL.createAnnotationProperty(NS + "definition");
-    
     public static final AnnotationProperty dm = M_MODEL.createAnnotationProperty(NS + "dm");
-    
     public static final AnnotationProperty editorialNote = M_MODEL.createAnnotationProperty(NS + "editorialNote");
-    
     public static final AnnotationProperty editorsDefinition = M_MODEL.createAnnotationProperty(NS + "editorsDefinition");
-    
     public static final AnnotationProperty inverse = M_MODEL.createAnnotationProperty(NS + "inverse");
-    
     public static final AnnotationProperty n = M_MODEL.createAnnotationProperty(NS + "n");
-    
     public static final AnnotationProperty order = M_MODEL.createAnnotationProperty(NS + "order");
-    
     public static final AnnotationProperty qualifiedForm = M_MODEL.createAnnotationProperty(NS + "qualifiedForm");
-    
     public static final AnnotationProperty sharesDefinitionWith = M_MODEL.createAnnotationProperty(NS + "sharesDefinitionWith");
-    
     public static final AnnotationProperty todo = M_MODEL.createAnnotationProperty(NS + "todo");
-    
     public static final AnnotationProperty unqualifiedForm = M_MODEL.createAnnotationProperty(NS + "unqualifiedForm");
     
     public static final OntClass Activity = M_MODEL.createClass(NS + "Activity");
-    
     public static final OntClass ActivityInfluence = M_MODEL.createClass(NS + "ActivityInfluence");
-    
     public static final OntClass Agent = M_MODEL.createClass(NS + "Agent");
-    
     public static final OntClass AgentInfluence = M_MODEL.createClass(NS + "AgentInfluence");
-    
     public static final OntClass Association = M_MODEL.createClass(NS + "Association");
-    
     public static final OntClass Attribution = M_MODEL.createClass(NS + "Attribution");
-    
     public static final OntClass Bundle = M_MODEL.createClass(NS + "Bundle");
-    
     public static final OntClass Collection = M_MODEL.createClass(NS + "Collection");
-    
     public static final OntClass Communication = M_MODEL.createClass(NS + "Communication");
-    
     public static final OntClass Delegation = M_MODEL.createClass(NS + "Delegation");
-    
     public static final OntClass Derivation = M_MODEL.createClass(NS + "Derivation");
-    
     public static final OntClass EmptyCollection = M_MODEL.createClass(NS + "EmptyCollection");
-    
     public static final OntClass End = M_MODEL.createClass(NS + "End");
-    
     public static final OntClass Entity = M_MODEL.createClass(NS + "Entity");
-    
     public static final OntClass EntityInfluence = M_MODEL.createClass(NS + "EntityInfluence");
-    
     public static final OntClass Generation = M_MODEL.createClass(NS + "Generation");
-    
     public static final OntClass Influence = M_MODEL.createClass(NS + "Influence");
-    
     public static final OntClass InstantaneousEvent = M_MODEL.createClass(NS + "InstantaneousEvent");
-    
     public static final OntClass Invalidation = M_MODEL.createClass(NS + "Invalidation");
-    
     public static final OntClass Location = M_MODEL.createClass(NS + "Location");
-    
     public static final OntClass Organization = M_MODEL.createClass(NS + "Organization");
-    
     public static final OntClass Person = M_MODEL.createClass(NS + "Person");
-    
     public static final OntClass Plan = M_MODEL.createClass(NS + "Plan");
-    
     public static final OntClass PrimarySource = M_MODEL.createClass(NS + "PrimarySource");
-    
     public static final OntClass Quotation = M_MODEL.createClass(NS + "Quotation");
-    
     public static final OntClass Revision = M_MODEL.createClass(NS + "Revision");
-    
     public static final OntClass Role = M_MODEL.createClass(NS + "Role");
-    
     public static final OntClass SoftwareAgent = M_MODEL.createClass(NS + "SoftwareAgent");
-    
     public static final OntClass Start = M_MODEL.createClass(NS + "Start");
-    
     public static final OntClass Usage = M_MODEL.createClass(NS + "Usage");
     
+	/**
+	 * Constants from the W3C Prov-AQ extension to Prov vocabulary
+	 * 
+	 * @see https://www.w3.org/TR/prov-aq/
+	 */    	    
+    public static class AQ { 
+	    public static final ObjectProperty describesService = M_MODEL.createObjectProperty(NS + "describesService");
+	    public static final ObjectProperty has_anchor = M_MODEL.createObjectProperty(NS + "has_anchor");
+	    public static final ObjectProperty has_provenance = M_MODEL.createObjectProperty(NS + "has_provenance");
+	    public static final ObjectProperty has_provenance_service = M_MODEL.createObjectProperty(NS + "has_provenance_service");
+	    public static final ObjectProperty has_query_service = M_MODEL.createObjectProperty(NS + "has_query_service");
+	    public static final ObjectProperty pingback = M_MODEL.createObjectProperty(NS + "pingback");
+	        
+	    public static final DatatypeProperty provenanceUriTemplate = M_MODEL.createDatatypeProperty(NS + "provenanceUriTemplate");
+	        
+	    public static final OntClass ServiceDescription = M_MODEL.createClass(NS + "ServiceDescription");
+	    public static final OntClass DirectQueryService = M_MODEL.createClass(NS + "DirectQueryService");
+    }
+    
 }
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/RO.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java
similarity index 81%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/RO.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java
index 9a1feab..2d8b640 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/RO.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java
@@ -17,16 +17,23 @@
  * under the License.
  * 
  */
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+package org.apache.taverna.ro.vocabs;
+
+import org.apache.jena.ontology.DatatypeProperty;
+import org.apache.jena.ontology.ObjectProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.vocabulary.DCTerms;
  
 /**
  * Constants for the Research Object ro vocabulary
  * 
  * @see https://w3id.org/ro/2016-01-28/ro
  */
-public class RO {
+public class ro {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -51,6 +58,8 @@
     public static final ObjectProperty annotatesAggregatedResource = M_MODEL.createObjectProperty( NS + "annotatesAggregatedResource" );
     public static final ObjectProperty rootFolder = M_MODEL.createObjectProperty( NS + "rootFolder" );
     
-    public static final DatatypeProperty entryName = M_MODEL.createDatatypeProperty( NS + "entryName" );
+    public static final ObjectProperty conformsTo = M_MODEL.createObjectProperty(DCTerms.conformsTo.getURI());
     
+    
+    public static final DatatypeProperty entryName = M_MODEL.createDatatypeProperty( NS + "entryName" );
 }
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/ROEvo.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/roevo.java
similarity index 90%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/ROEvo.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/roevo.java
index f8826b7..6e2abdd 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/ROEvo.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/roevo.java
@@ -17,16 +17,21 @@
  * under the License.
  * 
  */
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+package org.apache.taverna.ro.vocabs; 
+import org.apache.jena.ontology.DatatypeProperty;
+import org.apache.jena.ontology.ObjectProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
  
 /**
  * Constants for the Research Object roevo vocabulary
  * 
  * @see https://w3id.org/ro/2016-01-28/roevo
  */
-public class ROEvo {
+public class roevo {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -52,7 +57,6 @@
     public static final OntClass Removal = M_MODEL.createClass( NS + "Removal" );
     public static final OntClass SnapshotRO = M_MODEL.createClass( NS + "SnapshotRO" );
     public static final OntClass VersionableResource = M_MODEL.createClass( NS + "VersionableResource" );
-    
 
     public static final ObjectProperty fromVersion = M_MODEL.createObjectProperty( NS + "fromVersion" );
     public static final ObjectProperty hasArchive = M_MODEL.createObjectProperty( NS + "hasArchive" );
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Roterms.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/roterms.java
similarity index 90%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Roterms.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/roterms.java
index 4e23149..32bfe9f 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Roterms.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/roterms.java
@@ -17,16 +17,22 @@
  * under the License.
  *
 */
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+package org.apache.taverna.ro.vocabs;
+
+import org.apache.jena.ontology.DatatypeProperty;
+import org.apache.jena.ontology.ObjectProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
  
 /**
  * Constants from the Research Object Terms (roterms) vocabulary
  * 
  * @see http://wf4ever.github.io/ro/2016-01-28/roterms/
  */
-public class Roterms {
+public class roterms {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -66,6 +72,5 @@
     public static final ObjectProperty technicalContact = M_MODEL.createObjectProperty(NS + "technicalContact");
 
     public static final DatatypeProperty sampleSize = M_MODEL.createDatatypeProperty(NS + "sampleSize");
-        
 }
 
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wf4ever.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wf4ever.java
similarity index 91%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wf4ever.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wf4ever.java
index 4316579..c475f38 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wf4ever.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wf4ever.java
@@ -17,16 +17,21 @@
  * under the License.
  *
  */
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+package org.apache.taverna.ro.vocabs; 
+
+import org.apache.jena.ontology.DatatypeProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
  
 /**
  * Constants for the Research Object wf4ever vocabulary
  * 
  * @see https://w3id.org/ro/2016-01-28/wf4ever
  */
-public class Wf4ever {
+public class wf4ever {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -40,51 +45,30 @@
     
     /** <p>The namespace of the vocabulary as a resource</p> */
     public static final Resource NAMESPACE = M_MODEL.createResource( NS );
-    
+
     public static final DatatypeProperty command = M_MODEL.createDatatypeProperty(NS + "command");
-
     public static final DatatypeProperty filePath = M_MODEL.createDatatypeProperty(NS + "filePath");
-
     public static final DatatypeProperty parameterFilePath = M_MODEL.createDatatypeProperty(NS + "parameterFilePath");
-    
     public static final DatatypeProperty rootURI = M_MODEL.createDatatypeProperty(NS + "rootURI");
-    
     public static final DatatypeProperty script = M_MODEL.createDatatypeProperty(NS + "script");
-    
     public static final DatatypeProperty serviceURI = M_MODEL.createDatatypeProperty(NS + "serviceURI");
-    
     public static final DatatypeProperty wsdlOperationName = M_MODEL.createDatatypeProperty(NS + "wsdlOperationName");
-    
     public static final DatatypeProperty wsdlPortName = M_MODEL.createDatatypeProperty(NS + "wsdlPortName");
-    
     public static final DatatypeProperty wsdlURI = M_MODEL.createDatatypeProperty(NS + "wsdlURI");
-    
+
     public static final OntClass BeanshellScript = M_MODEL.createClass(NS + "BeanshellScript");
-    
     public static final OntClass CommandLineTool = M_MODEL.createClass(NS + "CommandLineTool");
-    
     public static final OntClass Dataset = M_MODEL.createClass(NS + "Dataset");
-    
     public static final OntClass Document = M_MODEL.createClass(NS + "Document");
-    
     public static final OntClass File = M_MODEL.createClass(NS + "File");
-
     public static final OntClass FileParameter = M_MODEL.createClass(NS + "FileParameter");
-    
     public static final OntClass Image = M_MODEL.createClass(NS + "Image");
-
     public static final OntClass PythonScript = M_MODEL.createClass(NS + "PythonScript");
-
     public static final OntClass RScript = M_MODEL.createClass(NS + "RScript");
-
     public static final OntClass RESTService = M_MODEL.createClass(NS + "RESTService");
-         
     public static final OntClass Script = M_MODEL.createClass(NS + "Script");
-
     public static final OntClass SOAPService = M_MODEL.createClass(NS + "SOAPService");
-
     public static final OntClass WebService = M_MODEL.createClass(NS + "WebService");
-    
     public static final OntClass WorkflowResearchObject = M_MODEL.createClass(NS + "WorkflowResearchObject");
-    
+
 }
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wfdesc.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wfdesc.java
similarity index 91%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wfdesc.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wfdesc.java
index cdcc8d5..e3963a0 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wfdesc.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wfdesc.java
@@ -17,16 +17,21 @@
  * under the License.
  *  
  */
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+package org.apache.taverna.ro.vocabs;
+
+import org.apache.jena.ontology.ObjectProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
  
 /**
  * Constants for the Research Object wfdesc vocabulary
  * 
  * @see https://w3id.org/ro/2016-01-28/wfdesc
  */
-public class Wfdesc {
+public class wfdesc {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -42,47 +47,27 @@
     public static final Resource NAMESPACE = M_MODEL.createResource( NS );
     
     public static final ObjectProperty hasArtifact = M_MODEL.createObjectProperty(NS + "hasArtifact");
-
     public static final ObjectProperty hasConfiguration = M_MODEL.createObjectProperty(NS + "hasConfiguration");    
-    
     public static final ObjectProperty hasDataLink = M_MODEL.createObjectProperty(NS + "hasDataLink");
- 
     public static final ObjectProperty hasImplementation = M_MODEL.createObjectProperty(NS + "hasImplementation");    
-    
     public static final ObjectProperty hasInput = M_MODEL.createObjectProperty(NS + "hasInput");
-    
     public static final ObjectProperty hasOutput = M_MODEL.createObjectProperty(NS + "hasOutput");
-    
     public static final ObjectProperty hasSink = M_MODEL.createObjectProperty(NS + "hasSink");
-    
     public static final ObjectProperty hasSource = M_MODEL.createObjectProperty(NS + "hasSource");
-    
     public static final ObjectProperty hasSubProcess = M_MODEL.createObjectProperty(NS + "hasSubProcess");
-    
     public static final ObjectProperty hasSubWorkflow = M_MODEL.createObjectProperty(NS + "hasSubWorkflow");
-
     public static final ObjectProperty hasWorkflowDefinition = M_MODEL.createObjectProperty(NS + "hasWorkflowDefinition");    
     
     public static final OntClass Artifact = M_MODEL.createClass(NS + "Artifact");
-
     public static final OntClass Configuration = M_MODEL.createClass(NS + "Configuration");
-
     public static final OntClass DataLink = M_MODEL.createClass(NS + "DataLink");
-    
     public static final OntClass Input = M_MODEL.createClass(NS + "Input");
-    
     public static final OntClass Output = M_MODEL.createClass(NS + "Output");
-    
     public static final OntClass Parameter = M_MODEL.createClass(NS + "Parameter");
-    
     public static final OntClass Process = M_MODEL.createClass(NS + "Process");
-
     public static final OntClass ProcessImplementation = M_MODEL.createClass(NS + "ProcessImplementation");
-    
     public static final OntClass Workflow = M_MODEL.createClass(NS + "Workflow");
-
     public static final OntClass WorkflowDefinition = M_MODEL.createClass(NS + "WorkflowDefinition");
-    
     public static final OntClass WorkflowInstance = M_MODEL.createClass(NS + "WorkflowInstance");
-    
+
 }
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wfprov.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wfprov.java
similarity index 89%
rename from taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wfprov.java
rename to taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wfprov.java
index 696fe86..1019aee 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ontologies/Wfprov.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/wfprov.java
@@ -17,16 +17,21 @@
  * under the License.
  * 
  */
-package org.apache.taverna.scufl2.wfdesc.ontologies; 
-import org.apache.jena.rdf.model.*;
-import org.apache.jena.ontology.*;
+package org.apache.taverna.ro.vocabs;
+
+import org.apache.jena.ontology.ObjectProperty;
+import org.apache.jena.ontology.OntClass;
+import org.apache.jena.ontology.OntModel;
+import org.apache.jena.ontology.OntModelSpec;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Resource;
  
 /**
  * Constants for the Research Object wfprov vocabulary
  * 
  * @see https://w3id.org/ro/2016-01-28/wfprov
  */
-public class Wfprov {
+public class wfprov {
     /** <p>The ontology model that holds the vocabulary terms</p> */
     private static final OntModel M_MODEL = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM, null );
     
@@ -40,32 +45,20 @@
     
     /** <p>The namespace of the vocabulary as a resource</p> */
     public static final Resource NAMESPACE = M_MODEL.createResource( NS );
-    
+
     public static final ObjectProperty describedByParameter = M_MODEL.createObjectProperty(NS + "describedByParameter");
-    
     public static final ObjectProperty describedByProcess = M_MODEL.createObjectProperty(NS + "describedByProcess");
-    
     public static final ObjectProperty describedByWorkflow = M_MODEL.createObjectProperty(NS + "describedByWorkflow");
-    
     public static final ObjectProperty interactedWith = M_MODEL.createObjectProperty(NS + "interactedWith");
-        
     public static final ObjectProperty usedInput = M_MODEL.createObjectProperty(NS + "usedInput");
-    
     public static final ObjectProperty wasEnactedBy = M_MODEL.createObjectProperty(NS + "wasEnactedBy");
-    
     public static final ObjectProperty wasInitiatedBy = M_MODEL.createObjectProperty(NS + "wasInitiatedBy");    
-    
     public static final ObjectProperty wasOutputFrom = M_MODEL.createObjectProperty(NS + "wasOutputFrom");
-    
     public static final ObjectProperty wasPartOfWorkflowRun = M_MODEL.createObjectProperty(NS + "wasPartOfWorkflowRun");
-    
-    
+
     public static final OntClass Artifact = M_MODEL.createClass(NS + "Artifact");
-    
     public static final OntClass ProcessRun = M_MODEL.createClass(NS + "ProcessRun");
-    
     public static final OntClass WorkflowEngine = M_MODEL.createClass(NS + "WorkflowEngine");
-    
     public static final OntClass WorkflowRun = M_MODEL.createClass(NS + "WorkflowRun");
-    
+
 }
diff --git a/taverna-robundle/src/main/resources/ontologies/bundle.owl b/taverna-ro-vocabs/src/main/resources/ontologies/bundle.owl
similarity index 100%
rename from taverna-robundle/src/main/resources/ontologies/bundle.owl
rename to taverna-ro-vocabs/src/main/resources/ontologies/bundle.owl
diff --git a/taverna-robundle/src/main/resources/ontologies/oa.rdf b/taverna-ro-vocabs/src/main/resources/ontologies/oa.rdf
similarity index 99%
rename from taverna-robundle/src/main/resources/ontologies/oa.rdf
rename to taverna-ro-vocabs/src/main/resources/ontologies/oa.rdf
index 7861995..fa9b124 100644
--- a/taverna-robundle/src/main/resources/ontologies/oa.rdf
+++ b/taverna-ro-vocabs/src/main/resources/ontologies/oa.rdf
@@ -649,7 +649,8 @@
         <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
     </owl:Class>
     
-
+    <owl:Class rdf:about="&skos;ConceptScheme">
+    </owl:Class>
 
     <!-- http://www.w3.org/ns/oa#SvgSelector -->
 
diff --git a/taverna-robundle/src/main/resources/ontologies/ore-owl.owl b/taverna-ro-vocabs/src/main/resources/ontologies/ore-owl.owl
similarity index 100%
rename from taverna-robundle/src/main/resources/ontologies/ore-owl.owl
rename to taverna-ro-vocabs/src/main/resources/ontologies/ore-owl.owl
diff --git a/taverna-robundle/pom.xml b/taverna-robundle/pom.xml
index 196cccc..230cf4e 100644
--- a/taverna-robundle/pom.xml
+++ b/taverna-robundle/pom.xml
@@ -38,6 +38,11 @@
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>taverna-ro-vocabs</artifactId>
+      <version>${project.version}</version>
+    </dependency>    
+    <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-core</artifactId>
     </dependency>
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java
index f0517eb..3e17df5 100644
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java
+++ b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java
@@ -19,7 +19,6 @@
  * under the License.
  */
 
-
 import static org.apache.jena.ontology.OntModelSpec.OWL_DL_MEM_RULE_INF;
 import static org.apache.jena.rdf.model.ModelFactory.createOntologyModel;
 import static org.apache.taverna.robundle.utils.PathHelper.relativizeFromBase;
@@ -29,7 +28,6 @@
 import java.io.InputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
@@ -40,21 +38,26 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.riot.RiotException;
-import org.apache.taverna.robundle.Bundles;
-
-import org.apache.jena.ontology.DatatypeProperty;
 import org.apache.jena.ontology.Individual;
 import org.apache.jena.ontology.ObjectProperty;
-import org.apache.jena.ontology.OntClass;
 import org.apache.jena.ontology.OntModel;
 import org.apache.jena.ontology.OntResource;
 import org.apache.jena.rdf.model.Model;
 import org.apache.jena.rdf.model.ModelFactory;
 import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.riot.Lang;
+import org.apache.jena.riot.RDFDataMgr;
+import org.apache.jena.riot.RiotException;
 import org.apache.jena.util.iterator.ExtendedIterator;
+import org.apache.jena.vocabulary.DCTerms;
+import org.apache.taverna.ro.vocabs.bundle;
+import org.apache.taverna.ro.vocabs.foaf;
+import org.apache.taverna.ro.vocabs.oa;
+import org.apache.taverna.ro.vocabs.ore;
+import org.apache.taverna.ro.vocabs.pav;
+import org.apache.taverna.ro.vocabs.prov;
+import org.apache.taverna.ro.vocabs.ro;
+import org.apache.taverna.robundle.Bundles;
 
 public class RDFToManifest {
 	public static class ClosableIterable<T> implements AutoCloseable,
@@ -77,27 +80,8 @@
 		}
 	}
 
-	private static final String BUNDLE = "http://purl.org/wf4ever/bundle#";
-
-	private static final String BUNDLE_RDF = "/ontologies/bundle.owl";
-	private static final String DCT = "http://purl.org/dc/terms/";
-	private static final String FOAF_0_1 = "http://xmlns.com/foaf/0.1/";
-	private static final String FOAF_RDF = "/ontologies/foaf.rdf";
-
 	private static Logger logger = Logger.getLogger(RDFToManifest.class
 			.getCanonicalName());
-	private static final String OA = "http://www.w3.org/ns/oa#";
-	private static final String OA_RDF = "/ontologies/oa.rdf";
-	private static final String ORE = "http://www.openarchives.org/ore/terms/";
-	private static final String PAV = "http://purl.org/pav/";
-	private static final String PAV_RDF = "/ontologies/pav.rdf";
-	private static final String PROV = "http://www.w3.org/ns/prov#";
-	private static final String PROV_AQ_RDF = "/ontologies/prov-aq.rdf";
-	private static final String PROV_O = "http://www.w3.org/ns/prov-o#";
-	private static final String PROV_O_RDF = "/ontologies/prov-o.rdf";
-
-	private static final String RO = "http://purl.org/wf4ever/ro#";
-	private static final String RO_OWL = "/ontologies/ro.owl";
 
 	private static <T> ClosableIterable<T> iterate(ExtendedIterator<T> iterator) {
 		return new ClosableIterable<T>(iterator);
@@ -126,71 +110,8 @@
 		return new URI("app", UUID.randomUUID().toString(), "/", (String) null);
 	}
 
-	private ObjectProperty aggregates;
-	private OntClass aggregation;
-	private ObjectProperty authoredBy;
-	private DatatypeProperty authoredOn;
-	private OntModel bundle;
-	private ObjectProperty conformsTo;
-	private ObjectProperty createdBy;
-	private DatatypeProperty createdOn;
-	private ObjectProperty retrievedFrom;
-	private ObjectProperty retrievedBy;
-	private DatatypeProperty retrievedOn;
-	private OntModel dct;
-	private OntModel foaf;
-	private DatatypeProperty foafName;
-	private DatatypeProperty format;
-	private ObjectProperty hasAnnotation;
-
-	private ObjectProperty hasBody;
-
-	private ObjectProperty hasProvenance;
-
-	private ObjectProperty hasProxy;
-
-	private ObjectProperty hasTarget;
-	private ObjectProperty inFolder;
-	private ObjectProperty isDescribedBy;
-	private OntModel oa;
-	private OntModel ore;
-	private OntModel pav;
-
-	private OntModel prov;
-
-	private OntModel provaq;
-
-	private ObjectProperty proxyFor;
-
-	private ObjectProperty proxyIn;
-
-	private OntClass standard;
-
-	private OntModel roterms;
-
-	private ObjectProperty alternateOf;
-
-	private ObjectProperty bundledAs;
-
-	private DatatypeProperty entryName;
-
-	private OntModel ro;
-
-	public RDFToManifest() {
-		loadOntologies();
-	}
-
-	private void checkNotNull(Object... possiblyNulls) {
-		int i = 0;
-		for (Object check : possiblyNulls) {
-			if (check == null)
-				throw new IllegalStateException("Could not load item #" + i);
-			i++;
-		}
-	}
-
 	private Individual findRO(OntModel model, URI base) {
-		try (ClosableIterable<? extends OntResource> instances = iterate(aggregation
+		try (ClosableIterable<? extends OntResource> instances = iterate(ore.Aggregation
 				.listInstances())) {
 			for (OntResource o : instances)
 				// System.out.println("Woo " + o);
@@ -209,7 +130,7 @@
 
 			// Check for any ORCIDs, note that "orcid" is mapped as
 			// prov:alternateOf in our modified bundle.jsonld
-			for (Individual alternate : listObjectProperties(agent, alternateOf)) {
+			for (Individual alternate : listObjectProperties(agent, prov.alternateOf)) {
 				if (alternate.isURIResource() && (
 						alternate.getURI().startsWith("https://orcid.org/") ||
 						alternate.getURI().startsWith("http://orcid.org/"))) {
@@ -227,7 +148,7 @@
 				}
 			}
 
-			RDFNode name = agent.getPropertyValue(foafName);
+			RDFNode name = agent.getPropertyValue(foaf.name);
 			if (name != null && name.isLiteral())
 				a.setName(name.asLiteral().getLexicalForm());
 			creators.add(a);
@@ -237,11 +158,11 @@
 
 	protected OntModel getOntModel() {
 		OntModel ontModel = createOntologyModel(OWL_DL_MEM_RULE_INF);
-		ontModel.setNsPrefix("foaf", FOAF_0_1);
-		ontModel.setNsPrefix("prov", PROV);
-		ontModel.setNsPrefix("ore", ORE);
-		ontModel.setNsPrefix("pav", PAV);
-		ontModel.setNsPrefix("dct", DCT);
+		ontModel.setNsPrefix("foaf", foaf.NS);
+		ontModel.setNsPrefix("prov", prov.NS);
+		ontModel.setNsPrefix("ore", ore.NS);
+		ontModel.setNsPrefix("pav", pav.NS);
+		ontModel.setNsPrefix("dct", DCTerms.NS);
 		// ontModel.getDocumentManager().loadImports(foaf.getOntModel());
 		return ontModel;
 	}
@@ -260,160 +181,6 @@
 		return results;
 	}
 
-	protected synchronized void loadBundle() {
-		if (bundle != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(BUNDLE_RDF, BUNDLE);
-		hasProxy = ontModel.getObjectProperty(BUNDLE + "hasProxy");
-		hasAnnotation = ontModel.getObjectProperty(BUNDLE + "hasAnnotation");
-		inFolder = ontModel.getObjectProperty(BUNDLE + "inFolder");
-		bundledAs = ontModel.getObjectProperty(BUNDLE + "bundledAs");
-		checkNotNull(hasProxy, hasAnnotation, inFolder, bundledAs);
-		bundle = ontModel;
-	}
-
-	protected synchronized void loadDCT() {
-		if (dct != null)
-			return;
-
-		OntModel ontModel = loadOntologyFromClasspath(
-				"/ontologies/dcterms_od.owl",
-				"http://purl.org/wf4ever/dcterms_od");
-
-		// properties from dct
-		standard = ontModel.getOntClass(DCT + "Standard");
-		conformsTo = ontModel.getObjectProperty(DCT + "conformsTo");
-
-		// We'll cheat dc:format in
-		format = ontModel
-				.createDatatypeProperty("http://purl.org/dc/elements/1.1/"
-						+ "format");
-		checkNotNull(standard, conformsTo, format);
-
-		dct = ontModel;
-	}
-
-	//
-	protected synchronized void loadFOAF() {
-		if (foaf != null)
-			return;
-
-		OntModel ontModel = loadOntologyFromClasspath(FOAF_RDF, FOAF_0_1);
-
-		// properties from foaf
-		foafName = ontModel.getDatatypeProperty(FOAF_0_1 + "name");
-		checkNotNull(foafName);
-
-		foaf = ontModel;
-	}
-
-	protected synchronized void loadOA() {
-		if (oa != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(OA_RDF, OA);
-		hasTarget = ontModel.getObjectProperty(OA + "hasTarget");
-		hasBody = ontModel.getObjectProperty(OA + "hasBody");
-		checkNotNull(hasTarget, hasBody);
-		oa = ontModel;
-	}
-
-	protected void loadOntologies() {
-		loadDCT();
-		loadORE();
-		loadFOAF();
-		loadPROVO();
-		loadPAV();
-		loadPROVAQ();
-		loadOA();
-		loadRO();
-		loadBundle();
-	}
-
-	protected OntModel loadOntologyFromClasspath(String classPathUri, String uri) {
-		OntModel ontModel = createOntologyModel();
-
-		// Load from classpath
-		InputStream inStream = getClass().getResourceAsStream(classPathUri);
-		if (inStream == null)
-			throw new IllegalArgumentException("Can't load " + classPathUri);
-		// Ontology ontology = ontModel.createOntology(uri);
-		ontModel.read(inStream, uri);
-		try {
-			inStream.close();
-		} catch (IOException e) {
-			// Shouldn't happen
-		}
-		return ontModel;
-	}
-
-	protected synchronized void loadORE() {
-		if (ore != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(
-				"/ontologies/ore-owl.owl", "http://purl.org/wf4ever/ore-owl");
-		aggregation = ontModel.getOntClass(ORE + "Aggregation");
-
-		aggregates = ontModel.getObjectProperty(ORE + "aggregates");
-		proxyFor = ontModel.getObjectProperty(ORE + "proxyFor");
-		proxyIn = ontModel.getObjectProperty(ORE + "proxyIn");
-		isDescribedBy = ontModel.getObjectProperty(ORE + "isDescribedBy");
-
-		checkNotNull(aggregation, aggregates, proxyFor, proxyIn, isDescribedBy);
-
-		ore = ontModel;
-	}
-
-	protected synchronized void loadPAV() {
-		if (pav != null)
-			return;
-
-		OntModel ontModel = loadOntologyFromClasspath(PAV_RDF, PAV);
-		// properties from foaf
-		createdBy = ontModel.getObjectProperty(PAV + "createdBy");
-		createdOn = ontModel.getDatatypeProperty(PAV + "createdOn");
-		authoredBy = ontModel.getObjectProperty(PAV + "authoredBy");
-		authoredOn = ontModel.getDatatypeProperty(PAV + "authoredOn");
-		retrievedFrom = ontModel.getObjectProperty(PAV + "retrievedFrom");
-		retrievedBy = ontModel.getObjectProperty(PAV + "retrievedBy");
-		retrievedOn = ontModel.getDatatypeProperty(PAV + "retrievedOn");
-
-		checkNotNull(createdBy, createdOn, authoredBy, authoredOn,
-				retrievedFrom, retrievedBy, retrievedOn);
-
-		pav = ontModel;
-	}
-
-	protected synchronized void loadPROVAQ() {
-		if (provaq != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(PROV_AQ_RDF, PAV);
-
-		// properties from foaf
-		hasProvenance = ontModel.getObjectProperty(PROV + "has_provenance");
-		checkNotNull(hasProvenance);
-
-		provaq = ontModel;
-	}
-
-	protected synchronized void loadPROVO() {
-		if (prov != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(PROV_O_RDF, PROV_O);
-		alternateOf = ontModel.getObjectProperty(PROV + "alternateOf");
-		checkNotNull(ontModel, alternateOf);
-
-		prov = ontModel;
-	}
-
-	protected synchronized void loadRO() {
-		if (ro != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(RO_OWL, RO);
-		entryName = ontModel.getDatatypeProperty(RO + "entryName");
-		checkNotNull(ontModel, entryName);
-		ro = ontModel;
-	}
-
 	public void readTo(InputStream manifestResourceAsStream, Manifest manifest,
 			URI manifestResourceBaseURI) throws IOException, RiotException {
 		OntModel model = new RDFToManifest().getOntModel();
@@ -421,14 +188,14 @@
 				manifestResourceBaseURI));
 
 		URI root = manifestResourceBaseURI.resolve("/");
-		Individual ro = findRO(model, root);
-		if (ro == null)
+		Individual researchObj = findRO(model, root);
+		if (researchObj == null)
 			throw new IOException("root ResearchObject not found - "
 					+ "Not a valid RO Bundle manifest");
 
 		// isDescribedBy URI
-		for (Individual manifestResource : listObjectProperties(ro,
-				isDescribedBy)) {
+		for (Individual manifestResource : listObjectProperties(researchObj,
+				ore.isDescribedBy)) {
 			String uriStr = manifestResource.getURI();
 			if (uriStr == null) {
 				logger.warning("Skipping manifest without URI: "
@@ -442,7 +209,7 @@
 		}
 
 		// createdBy
-		List<Agent> creators = getAgents(root, ro, createdBy);
+		List<Agent> creators = getAgents(root, researchObj, pav.createdBy);
 		if (!creators.isEmpty()) {
 			manifest.setCreatedBy(creators.get(0));
 			if (creators.size() > 1) {
@@ -451,28 +218,28 @@
 		}
 
 		// createdOn
-		RDFNode created = ro.getPropertyValue(createdOn);
+		RDFNode created = researchObj.getPropertyValue(pav.createdOn);
 		manifest.setCreatedOn(literalAsFileTime(created));
 
 		// history
 		List<Path> history = new ArrayList<Path> ();
-		for (Individual histItem : listObjectProperties (ro, hasProvenance)) {
+		for (Individual histItem : listObjectProperties (researchObj, prov.AQ.has_provenance)) {
 			history.add(Bundles.uriToBundlePath(manifest.getBundle(), relativizeFromBase(histItem.getURI(), root)));
 		}
 		manifest.setHistory(history);
 
 		// authoredBy
-		List<Agent> authors = getAgents(root, ro, authoredBy);
+		List<Agent> authors = getAgents(root, researchObj, pav.authoredBy);
 		if (!authors.isEmpty()) {
 			manifest.setAuthoredBy(authors);
 		}
 
 		// authoredOn
-		RDFNode authored = ro.getPropertyValue(authoredOn);
+		RDFNode authored = researchObj.getPropertyValue(pav.authoredOn);
 		manifest.setAuthoredOn(literalAsFileTime(authored));
 
 		// retrievedFrom
-		RDFNode retrievedNode = ro.getPropertyValue(retrievedFrom);
+		RDFNode retrievedNode = researchObj.getPropertyValue(pav.retrievedFrom);
 		if (retrievedNode != null) {
     		try {
     			manifest.setRetrievedFrom(new URI(retrievedNode.asResource().getURI()));
@@ -483,7 +250,7 @@
 		}
 
 		// retrievedBy
-		List<Agent> retrievers = getAgents(root, ro, retrievedBy);
+		List<Agent> retrievers = getAgents(root, researchObj, pav.retrievedBy);
 		if (!retrievers.isEmpty()) {
 			manifest.setRetrievedBy(retrievers.get(0));
 			if (retrievers.size() > 1) {
@@ -492,12 +259,12 @@
 		}
 
 		// retrievedOn
-		RDFNode retrieved = ro.getPropertyValue(retrievedOn);
+		RDFNode retrieved = researchObj.getPropertyValue(pav.retrievedOn);
 		manifest.setRetrievedOn(literalAsFileTime(retrieved));
 
 		// conformsTo
-		for (Individual standard : listObjectProperties(ro,
-				conformsTo)) {
+		for (Individual standard : listObjectProperties(researchObj,
+			 	ro.conformsTo)) {
 			if (standard.isURIResource()) {
 				URI uri;
 				try {
@@ -514,7 +281,7 @@
 		}
 
 		// Aggregates
-		for (Individual aggrResource : listObjectProperties(ro, aggregates)) {
+		for (Individual aggrResource : listObjectProperties(researchObj, ore.aggregates)) {
 			String uriStr = aggrResource.getURI();
 			// PathMetadata meta = new PathMetadata();
 			if (uriStr == null) {
@@ -527,10 +294,10 @@
 					uriStr, root));
 
 			Set<Individual> proxies = listObjectProperties(aggrResource,
-					hasProxy);
+					bundle.hasProxy);
 			if (proxies.isEmpty()) {
 				// FIXME: Jena does not follow OWL properties paths from hasProxy
-				proxies = listObjectProperties(aggrResource, bundledAs);
+				proxies = listObjectProperties(aggrResource, bundle.bundledAs);
 			}
 			if (!proxies.isEmpty()) {
 				// Should really only be one anyway
@@ -548,11 +315,11 @@
 					proxyInManifest.setURI(relativizeFromBase(proxyUri, root));
 				}
 
-				RDFNode eName = proxy.getPropertyValue(entryName);
+				RDFNode eName = proxy.getPropertyValue(ro.entryName);
 				if (eName != null && eName.isLiteral()) {
 					proxyInManifest.setFilename(eName.asLiteral().getString());;
 				}
-				RDFNode folder = proxy.getPropertyValue(inFolder);
+				RDFNode folder = proxy.getPropertyValue(bundle.inFolder);
 				if (folder != null && folder.isURIResource()) {
 					URI folderUri = URI.create(folder.asResource().getURI());
 					if (! folderUri.resolve("/").equals(manifest.getBaseURI())) {
@@ -568,7 +335,7 @@
 			}
 
 			// createdBy
-			creators = getAgents(root, aggrResource, createdBy);
+			creators = getAgents(root, aggrResource, pav.createdBy);
 			if (!creators.isEmpty()) {
 				meta.setCreatedBy(creators.get(0));
 				if (creators.size() > 1) {
@@ -579,10 +346,10 @@
 
 			// createdOn
 			meta.setCreatedOn(literalAsFileTime(aggrResource
-					.getPropertyValue(createdOn)));
+					.getPropertyValue(pav.createdOn)));
 
 			// retrievedFrom
-			RDFNode retrievedAggrNode = aggrResource.getPropertyValue(retrievedFrom);
+			RDFNode retrievedAggrNode = aggrResource.getPropertyValue(pav.retrievedFrom);
 			if (retrievedAggrNode != null) {
     			try {
     				meta.setRetrievedFrom(new URI(retrievedAggrNode.asResource().getURI()));
@@ -593,7 +360,7 @@
 			}
 
 			// retrievedBy
-			List<Agent> retrieversAggr = getAgents(root, aggrResource, retrievedBy);
+			List<Agent> retrieversAggr = getAgents(root, aggrResource, pav.retrievedBy);
 			if (!retrieversAggr.isEmpty()) {
 				meta.setRetrievedBy(retrieversAggr.get(0));
 				if (retrieversAggr.size() > 1) {
@@ -603,12 +370,12 @@
 			}
 
 			// retrievedOn
-			RDFNode retrievedAggr = aggrResource.getPropertyValue(retrievedOn);
+			RDFNode retrievedAggr = aggrResource.getPropertyValue(pav.retrievedOn);
 			meta.setRetrievedOn(literalAsFileTime(retrievedAggr));
 
 			// conformsTo
 			for (Individual standard : listObjectProperties(aggrResource,
-					conformsTo)) {
+					ro.conformsTo)) {
 				if (standard.getURI() != null) {
 					meta.setConformsTo(relativizeFromBase(standard.getURI(),
 							root));
@@ -616,20 +383,20 @@
 			}
 
 			// format
-			RDFNode mediaType = aggrResource.getPropertyValue(format);
+			RDFNode mediaType = aggrResource.getPropertyValue(DCTerms.format);
 			if (mediaType != null && mediaType.isLiteral()) {
 				meta.setMediatype(mediaType.asLiteral().getLexicalForm());
 			}
 		}
 
-		for (Individual ann : listObjectProperties(ro, hasAnnotation)) {
+		for (Individual ann : listObjectProperties(researchObj, bundle.hasAnnotation)) {
 			/*
 			 * Normally just one body per annotation, but just in case we'll
 			 * iterate and split them out (as our PathAnnotation can only keep a
 			 * single setContent() at a time)
 			 */
 			for (Individual body : listObjectProperties(
-					model.getOntResource(ann), hasBody)) {
+					model.getOntResource(ann), oa.hasBody)) {
 				if (! body.isURIResource()) {
 					logger.warning("Can't find annotation body for anonymous "
 							+ body);
@@ -646,7 +413,7 @@
 							root));
 
 				// Handle multiple about/hasTarget
-				for (Individual target : listObjectProperties(ann, hasTarget))
+				for (Individual target : listObjectProperties(ann, oa.hasTarget))
 					if (target.getURI() != null)
 						pathAnn.getAboutList().add(
 								relativizeFromBase(target.getURI(), root));
diff --git a/taverna-robundle/src/main/resources/META-INF/LICENSE b/taverna-robundle/src/main/resources/META-INF/LICENSE
index b83e350..1ecd9b6 100644
--- a/taverna-robundle/src/main/resources/META-INF/LICENSE
+++ b/taverna-robundle/src/main/resources/META-INF/LICENSE
@@ -202,25 +202,6 @@
    limitations under the License.
 
 
-
-
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/prov-aq.rdf
-./taverna-robundle/src/main/resources/ontologies/prov-o.rdf
-
-W3C PROVenance Interchange Ontology (PROV-O)
-http://www.w3.org/ns/prov-o.rdf
-http://www.w3.org/TR/2013/REC-prov-o-20130430/
-
-W3C PROV Access and Query Ontology (PROV-AQ)
-http://www.w3.org/ns/prov-aq.owl
-http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/
-
-Copyright (c) 2011-2013 W3C(R) (MIT, ERCIM, Keio, Beihang), All Rights Reserved.
-W3C liability, trademark and document use rules apply.
-http://www.w3.org/Consortium/Legal/2015/doc-license
-
-
 ---------------------------------------------------------
 ./taverna-robundle/src/main/xsd/xenc-schema.xsd
 
@@ -229,11 +210,17 @@
 http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd
 http://www.w3.org/TR/xmlenc-core/
 
-Copyright (c) 2002 World Wide Web Consortium, (Massachusetts
-Institute of Technology, Institut National de Recherche en Informatique et en
-Automatique, Keio University). All Rights Reserved.
-http://www.w3.org/Consortium/Legal/
+Copyright ©[2011] World Wide Web Consortium 
+(Massachusetts Institute of Technology,  
+ European Research Consortium for Informatics and Mathematics, 
+ Keio University). All Rights Reserved.  
+This work is distributed under the W3C® Software License [1] in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE. 
 
+[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+    META-INF/LICENSE.w3c.20021231    
 
 ---------------------------------------------------------
 ./taverna-robundle/src/main/xsd/xmldsig-core-schema.xsd
@@ -251,105 +238,24 @@
 in the FAQ [2].
 
 [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+    META-INF/LICENSE.w3c.19980720
 [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
 
 
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/foaf.rdf
 
-Friend of a Friend (FOAF) RDF vocabulary
-http://xmlns.com/foaf/spec/20140114.rdf
+------------------------------------------------------
+./taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
 
-Copyright (c) 2000-2014 Dan Brickley and Libby Miller
-This work is licensed under a Creative Commons Attribution License.
-http://creativecommons.org/licenses/by/1.0/
+xml.xsd
+Extensible Markup Language (XML) 1.0 (Fifth Edition)
+W3C Recommendation 26 November 2008
+http://www.w3.org/2001/xml.xsd
+http://www.w3.org/TR/xml/
 
+Copyright (c) 2015 W3C(R) (MIT, ERCIM, Keio, Beihang). This software or
+document includes material copied from or derived from:
 
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/dcterms_od.owl
+W3C liability, trademark and document use rules apply.
+http://www.w3.org/Consortium/Legal/2015/doc-license
 
-DCMI metadata terms
-http://purl.org/wf4ever/dcterms_od
-Modified to reduce owl:imports
-
-Adapted from Dublin Core in OWL 2
-http://purl.org/NET/dc_owl2dl/terms_od
-Modified for OWL compliance
-
-Adapted from Dublin Core
-http://purl.org/dc/terms/
-
-Copyright (c) 2012-2015 University of Manchester
-Copyright (c) 2009-2014 Simon Reinhardt (http://simon-reinhardt.de/)
-Copyright (c) 1995-2012 DCMI, the Dublin Core Metadata Initiative (http://dublincore.org/)
-
-Licensed under a Creative Commons Attribution 3.0 Unported License (CC BY 3.0).
-http://creativecommons.org/licenses/by/3.0/
-
-
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/dcam.owl
-
-DCMI Abstract model
-http://purl.org/wf4ever/dcam
-Modified URI of the owl:Ontology
-
-Adapted from Dublin Core in OWL 2
-http://purl.org/NET/dc_owl2dl/dcam
-Modified for OWL compliance
-
-Adapted from Dublin Core
-http://purl.org/dc/dcam/
-
-Copyright (c) 2012-2015 University of Manchester
-Copyright (c) 2009-2014 Simon Reinhardt (http://simon-reinhardt.de/)
-Copyright (c) 1995-2012 DCMI, the Dublin Core Metadata Initiative (http://dublincore.org/)
-
-Licensed under a Creative Commons Attribution 3.0 Unported License (CC BY 3.0).
-http://creativecommons.org/licenses/by/3.0/
-
-
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/oa.rdf
-
-Open Annotation Data Model
-http://www.w3.org/ns/oa
-
-Copyright (c) 2012-2013 the Contributors to the Open Annotation Core Data Model
-Specification, published by the Open Annotation Community Group under the W3C
-Community Contributor License Agreement (CLA). A human-readable summary is
-available.
-
-http://www.w3.org/community/about/agreements/cla/
-
----------------------------------------------------------
-./taverna-robundle/src/main/resources/ontologies/ro.owl
-
-Wf4Ever Research Object Model 1.0
-https://w3id.org/ro/
-
-wfdesc ontology
-https://w3id.org/ro/wfdesc
-
-wfprov ontology
-https://w3id.org/ro/wfprov
-
-roterms ontology
-http://purl.org/wf4ever/roterms
-
-wf4ever ontology
-https://w3id.org/ro/wf4ever
-
-Copyright (c) 2011-2014
-  Stian Soiland-Reyes, University of Manchester
-  Sean Bechhofer, University of Manchester
-  Khalid Belhajjame, University of Manchester
-  Graham Klyne, University of Oxford
-  Daniel Garijo, UPM
-  Oscar Corcho, UPM
-  Esteban Garcia Cuesta, iSOCO
-  Raul Palma, PSNC
-
-Licensed under a Creative Commons Attribution 3.0 License.
-http://creativecommons.org/licenses/by/3.0/
 
diff --git a/taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.19980720 b/taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.19980720
new file mode 100644
index 0000000..51471fd
--- /dev/null
+++ b/taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.19980720
@@ -0,0 +1,51 @@
+License for xmldsig-core-schema.xsd
+https://www.w3.org/Consortium/Legal/copyright-software-19980720
+
+W3C® SOFTWARE NOTICE AND LICENSE
+
+Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute of
+Technology, Institut National de Recherche en Informatique et en Automatique,
+Keio University). 
+All Rights Reserved. http://www.w3.org/Consortium/Legal/
+
+This W3C work (including software, documents, or other related items) is being
+provided by the copyright holders under the following license. By obtaining,
+using and/or copying this work, you (the licensee) agree that you have read,
+understood, and will comply with the following terms and conditions:
+
+Permission to use, copy, modify, and distribute this software and its
+documentation, with or without modification,  for any purpose and without fee
+or royalty is hereby granted, provided that you include the following on ALL
+copies of the software and documentation or portions thereof, including
+modifications, that you make:
+
+1.    The full text of this NOTICE in a location viewable to users of the
+redistributed or derivative work.
+
+2.    Any pre-existing intellectual property disclaimers, notices, or terms and
+conditions. If none exist, a short notice of the following form (hypertext is
+preferred, text is permitted) should be used within the body of any
+redistributed or derivative code: "Copyright © [$date-of-software] World Wide
+Web Consortium, (Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All Rights
+Reserved. http://www.w3.org/Consortium/Legal/"
+
+3.    Notice of any changes or modifications to the W3C files, including the
+date changes were made. (We recommend you provide URIs to the location from
+which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
+NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
+THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
+PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in advertising or
+publicity pertaining to the software without specific, written prior
+permission. Title to copyright in this software and any associated
+documentation will at all times remain with copyright holders.
+
+
diff --git a/taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.20021231 b/taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.20021231
new file mode 100644
index 0000000..6ed8a51
--- /dev/null
+++ b/taverna-robundle/src/main/resources/META-INF/LICENSE.w3c.20021231
@@ -0,0 +1,62 @@
+License for xenc-schema.xsd
+http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+# W3C Software Notice and License
+
+This work (and included software, documentation such as READMEs, or other
+related items) is being provided by the copyright holders under the following
+license.  
+
+## License
+
+By obtaining, using and/or copying this work, you (the licensee) agree that you
+have read, understood, and will comply with the following terms and conditions.
+
+Permission to copy, modify, and distribute this software and its documentation,
+with or without modification, for any purpose and without fee or royalty is
+hereby granted, provided that you include the following on ALL copies of the
+software and documentation or portions thereof, including modifications:
+
+* The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
+
+* Any pre-existing intellectual property disclaimers, notices, or terms and
+  conditions. If none exist, the W3C Software Short Notice
+  <https://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231.html>
+  should be included (hypertext is preferred, text is permitted) within the body
+  of any redistributed or derivative code.
+
+* Notice of any changes or modifications to the files, including the date
+  changes were made. (We recommend you provide URIs to the location from which
+  the code is derived.)
+
+## Disclaimers
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
+NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
+THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
+PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in advertising or
+publicity pertaining to the software without specific, written prior
+permission. Title to copyright in this software and any associated
+documentation will at all times remain with copyright holders.
+
+## Notes
+
+This version: http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+This formulation of W3C's notice and license became active on December 31 2002.
+This version removes the copyright ownership notice such that this license can
+be used with materials other than those owned by the W3C, reflects that ERCIM
+is now a host of the W3C, includes references to this specific dated version of
+the license, and removes the ambiguous grant of "use". Otherwise, this version
+is the same as the previous version
+<http://www.w3.org/Consortium/Legal/copyright-software-19980720> and is written
+so as to preserve the Free Software Foundation's assessment of GPL
+compatibility <http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses> and OSI's certification
+under the Open Source Definition <http://www.opensource.org/docs/definition.php>.
+
diff --git a/taverna-robundle/src/main/resources/ontologies/dcam.owl b/taverna-robundle/src/main/resources/ontologies/dcam.owl
deleted file mode 100644
index d3cccc4..0000000
--- a/taverna-robundle/src/main/resources/ontologies/dcam.owl
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-DCMI Abstract model
-http://purl.org/wf4ever/dcam
-Modified URI of the owl:Ontology
-     
-Adapted from Dublin Core in OWL 2
-http://purl.org/NET/dc_owl2dl/dcam
-Modified for OWL compliance
-
-Adapted from Dublin Core
-http://purl.org/dc/dcam/
-
-Copyright © 2012-2015 University of Manchester
-Copyright © 2009-2014 Simon Reinhardt (http://simon-reinhardt.de/)
-Copyright © 1995-2012 DCMI, the Dublin Core Metadata Initiative (http://dublincore.org/)
-
-Licensed under a Creative Commons Attribution 3.0 Unported License (CC BY 3.0).
-http://creativecommons.org/licenses/by/3.0/
-
-
--->
-<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:base="http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcam.ttl">
-    <!--
-  <owl:Ontology rdf:about="http://purl.org/NET/dc_owl2dl/dcam">
-  -->
-  <owl:Ontology rdf:about="http://purl.org/wf4ever/dcam">
-    <owl:imports rdf:resource="http://www.w3.org/TR/skos-reference/skos-owl1-dl.rdf"/>
-    <rdfs:label xml:lang="en">DCMI Abstract Model</rdfs:label>
-    <rdfs:comment xml:lang="en">OWL 2 DL ontology for a few terms of the DCMI abstract model from the http://purl.org/dc/dcam/ namespace</rdfs:comment>
-  </owl:Ontology>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/dcam/memberOf">
-    <skos:definition xml:lang="en-US">A relationship between a resource and a vocabulary encoding scheme which indicates that the resource is a member of a set.</skos:definition>
-    <rdfs:label xml:lang="en-US">Member Of</rdfs:label>
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/2007/06/04/abstract-model/"/>
-    <rdfs:range rdf:resource="http://purl.org/dc/dcam/VocabularyEncodingScheme"/>
-  </owl:ObjectProperty>
-  <owl:Class rdf:about="http://purl.org/dc/dcam/VocabularyEncodingScheme">
-    <skos:definition xml:lang="en-US">An enumerated set of resources.</skos:definition>
-    <rdfs:label xml:lang="en-US">Vocabulary Encoding Scheme</rdfs:label>
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/2007/06/04/abstract-model/"/>
-  </owl:Class>
-</rdf:RDF>
-<!--
-Made by Triplr http://triplr.org by Dave Beckett, http://purl.org/net/dajobe/
-from http://bloody-byte.net/rdf/dc_owl2dl/dcam.ttl in format turtle to rdfxml-abbrev
-using Redland 1.0.7 and Raptor 1.4.18 from http://librdf.org/
-This document is http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcam.ttl
--->
diff --git a/taverna-robundle/src/main/resources/ontologies/dcterms_od.owl b/taverna-robundle/src/main/resources/ontologies/dcterms_od.owl
deleted file mode 100644
index 7a529de..0000000
--- a/taverna-robundle/src/main/resources/ontologies/dcterms_od.owl
+++ /dev/null
@@ -1,607 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-DCMI metadata terms     
-http://purl.org/wf4ever/dcterms_od
-Modified to reduce owl:imports
-
-Adapted from Dublin Core in OWL 2
-http://purl.org/NET/dc_owl2dl/terms_od
-Modified for OWL compliance
-
-Adapted from Dublin Core
-http://purl.org/dc/terms/
-
-Copyright © 2012-2015 University of Manchester
-Copyright © 2009-2014 Simon Reinhardt (http://simon-reinhardt.de/)
-Copyright © 1995-2012 DCMI, the Dublin Core Metadata Initiative (http://dublincore.org/)
-
-Licensed under a Creative Commons Attribution 3.0 Unported License (CC BY 3.0).
-http://creativecommons.org/licenses/by/3.0/
-
--->
-<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:base="http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcterms_od.ttl">
-    <!--<owl:Ontology rdf:about="http://purl.org/NET/dc_owl2dl/terms_od">
-        <owl:imports rdf:resource="http://purl.org/NET/dc_owl2dl/dcam"/> -->
-<owl:Ontology rdf:about="http://purl.org/wf4ever/dcterms_od">
-    
-    <!-- <owl:imports rdf:resource="http://purl.org/wf4ever/dcam"/> -->
-    <rdfs:label xml:lang="en">DCMI metadata terms</rdfs:label>
-    <rdfs:comment xml:lang="en">OWL 2 DL ontology for Dublin Core metadata terms from the http://purl.org/dc/terms/ namespace; this version uses object and datatype properties instead of annotation properties where possible. Note that, because of this, when using this ontology you are restricted to using literals and non-literals in certain cases and especially you cannot use DCMI's DCSV.</rdfs:comment>
-  </owl:Ontology>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/abstract">
-    <skos:definition xml:lang="en-US">A summary of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/description"/>
-    <rdfs:label xml:lang="en-US">Abstract</rdfs:label>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accessRights">
-    <skos:definition xml:lang="en-US">Information about who can access the resource or an indication of its security status.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/rights"/>
-    <rdfs:label xml:lang="en-US">Access Rights</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/RightsStatement"/>
-    <rdfs:comment xml:lang="en-US">Access Rights may include information regarding access or restrictions based on privacy, security, or other policies.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accrualMethod">
-    <skos:definition xml:lang="en-US">The method by which items are added to a collection.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/Collection"/>
-    <rdfs:label xml:lang="en-US">Accrual Method</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/MethodOfAccrual"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accrualPeriodicity">
-    <skos:definition xml:lang="en-US">The frequency with which items are added to a collection.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/Collection"/>
-    <rdfs:label xml:lang="en-US">Accrual Periodicity</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Frequency"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accrualPolicy">
-    <skos:definition xml:lang="en-US">The policy governing the addition of items to a collection.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/Collection"/>
-    <rdfs:label xml:lang="en-US">Accrual Policy</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Policy"/>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/alternative">
-    <skos:definition xml:lang="en-US">An alternative name for the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/>
-    <rdfs:label xml:lang="en-US">Alternative Title</rdfs:label>
-    <skos:note xml:lang="en-US">In current practice, this term is used primarily with literal values; however, there are important uses with non-literal values as well. As of December 2007, the DCMI Usage Board is leaving this range unspecified pending an investigation of options.</skos:note>
-    <rdfs:comment xml:lang="en-US">The distinction between titles and alternative titles is application-specific.</rdfs:comment>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/audience">
-    <skos:definition xml:lang="en-US">A class of entity for whom the resource is intended or useful.</skos:definition>
-    <rdfs:label xml:lang="en-US">Audience</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/available">
-    <skos:definition xml:lang="en-US">Date (often a range) that the resource became or will become available.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Available</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/bibliographicCitation">
-    <skos:definition xml:lang="en-US">A bibliographic reference for the resource.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/BibliographicResource"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/identifier"/>
-    <rdfs:label xml:lang="en-US">Bibliographic Citation</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Recommended practice is to include sufficient bibliographic detail to identify the resource as unambiguously as possible.</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/conformsTo">
-    <skos:definition xml:lang="en-US">An established standard to which the described resource conforms.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Conforms To</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Standard"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/contributor">
-    <skos:definition xml:lang="en-US">An entity responsible for making contributions to the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Contributor</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-    <rdfs:comment xml:lang="en-US">Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/coverage">
-    <skos:definition xml:lang="en-US">The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant.</skos:definition>
-    <dcterms:bibliographicCitation>[TGN] http://www.getty.edu/research/tools/vocabulary/tgn/index.html</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.getty.edu/research/tools/vocabulary/tgn/index.html"/>
-    <rdfs:label xml:lang="en-US">Coverage</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-    <rdfs:comment xml:lang="en-US">Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/created">
-    <skos:definition xml:lang="en-US">Date of creation of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Created</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">An entity primarily responsible for making the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/contributor"/>
-    <rdfs:label xml:lang="en-US">Creator</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-    <rdfs:comment xml:lang="en-US">Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/date">
-    <skos:definition xml:lang="en-US">A point or period of time associated with an event in the lifecycle of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[W3CDTF] http://www.w3.org/TR/NOTE-datetime</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/NOTE-datetime"/>
-    <rdfs:label xml:lang="en-US">Date</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF].</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/dateAccepted">
-    <skos:definition xml:lang="en-US">Date of acceptance of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Accepted</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Examples of resources to which a Date Accepted may be relevant are a thesis (accepted by a university department) or an article (accepted by a journal).</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/dateCopyrighted">
-    <skos:definition xml:lang="en-US">Date of copyright.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Copyrighted</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/dateSubmitted">
-    <skos:definition xml:lang="en-US">Date of submission of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Submitted</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Examples of resources to which a Date Submitted may be relevant are a thesis (submitted to a university department) or an article (submitted to a journal).</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/description">
-    <skos:definition xml:lang="en-US">An account of the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Description</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource.</rdfs:comment>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/educationLevel">
-    <skos:definition xml:lang="en-US">A class of entity, defined in terms of progression through an educational or training context, for which the described resource is intended.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/audience"/>
-    <rdfs:label xml:lang="en-US">Audience Education Level</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/extent">
-    <skos:definition xml:lang="en-US">The size or duration of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/format"/>
-    <rdfs:label xml:lang="en-US">Extent</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/SizeOrDuration"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/format">
-    <skos:definition xml:lang="en-US">The file format, physical medium, or dimensions of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[MIME] http://www.iana.org/assignments/media-types/</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.iana.org/assignments/media-types/"/>
-    <rdfs:label xml:lang="en-US">Format</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/MediaTypeOrExtent"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-    <rdfs:comment xml:lang="en-US">Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME].</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/hasFormat">
-    <skos:definition xml:lang="en-US">A related resource that is substantially the same as the pre-existing described resource, but in another format.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Has Format</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/hasPart">
-    <skos:definition xml:lang="en-US">A related resource that is included either physically or logically in the described resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Has Part</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/hasVersion">
-    <skos:definition xml:lang="en-US">A related resource that is a version, edition, or adaptation of the described resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Has Version</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/identifier">
-    <skos:definition xml:lang="en-US">An unambiguous reference to the resource within a given context.</skos:definition>
-    <rdfs:label xml:lang="en-US">Identifier</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to identify the resource by means of a string conforming to a formal identification system.</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/instructionalMethod">
-    <skos:definition xml:lang="en-US">A process, used to engender knowledge, attitudes and skills, that the described resource is designed to support.</skos:definition>
-    <rdfs:label xml:lang="en-US">Instructional Method</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/MethodOfInstruction"/>
-    <rdfs:comment xml:lang="en-US">Instructional Method will typically include ways of presenting instructional materials or conducting instructional activities, patterns of learner-to-learner and learner-to-instructor interactions, and mechanisms by which group and individual levels of learning are measured. Instructional methods include all aspects of the instruction and learning processes from planning and implementation through evaluation and feedback.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isFormatOf">
-    <skos:definition xml:lang="en-US">A related resource that is substantially the same as the described resource, but in another format.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/hasFormat"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Format Of</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isPartOf">
-    <skos:definition xml:lang="en-US">A related resource in which the described resource is physically or logically included.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/hasPart"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Part Of</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isReferencedBy">
-    <skos:definition xml:lang="en-US">A related resource that references, cites, or otherwise points to the described resource.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/creator"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Referenced By</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isReplacedBy">
-    <skos:definition xml:lang="en-US">A related resource that supplants, displaces, or supersedes the described resource.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/replaces"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Replaced By</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">Is Required By</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">A related resource that requires the described resource to support its function, delivery, or coherence.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/requires"/>
-  </rdf:Description>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/issued">
-    <skos:definition xml:lang="en-US">Date of formal issuance (e.g., publication) of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Issued</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isVersionOf">
-    <skos:definition xml:lang="en-US">A related resource of which the described resource is a version, edition, or adaptation.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/hasVersion"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Version Of</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Changes in version imply substantive changes in content rather than differences in format.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/language">
-    <skos:definition xml:lang="en-US">A language of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[RFC4646] http://www.ietf.org/rfc/rfc4646.txt</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.ietf.org/rfc/rfc4646.txt"/>
-    <rdfs:label xml:lang="en-US">Language</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/LinguisticSystem"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. as a language code or tag) but only as a non-literal value.</skos:note>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646].</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/license">
-    <skos:definition xml:lang="en-US">A legal document giving official permission to do something with the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/rights"/>
-    <rdfs:label xml:lang="en-US">License</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/LicenseDocument"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/mediator">
-    <skos:definition xml:lang="en-US">An entity that mediates access to the resource and for whom the resource is intended or useful.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/audience"/>
-    <rdfs:label xml:lang="en-US">Mediator</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-    <rdfs:comment xml:lang="en-US">In an educational context, a mediator might be a parent, teacher, teaching assistant, or care-giver.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/medium">
-    <skos:definition xml:lang="en-US">The material or physical carrier of the resource.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/PhysicalResource"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/format"/>
-    <rdfs:label xml:lang="en-US">Medium</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/PhysicalMedium"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal but only as a related description.</skos:note>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/modified">
-    <skos:definition xml:lang="en-US">Date on which the resource was changed.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Modified</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/provenance">
-    <skos:definition xml:lang="en-US">A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity, and interpretation.</skos:definition>
-    <rdfs:label xml:lang="en-US">Provenance</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/>
-    <rdfs:comment xml:lang="en-US">The statement may include a description of any changes successive custodians made to the resource.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/publisher">
-    <skos:definition xml:lang="en-US">An entity responsible for making the resource available.</skos:definition>
-    <rdfs:label xml:lang="en-US">Publisher</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-    <rdfs:comment xml:lang="en-US">Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">References</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">A related resource that is referenced, cited, or otherwise pointed to by the described resource.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-  </rdf:Description>
-  <owl:SymmetricProperty rdf:about="http://purl.org/dc/terms/relation">
-    <skos:definition xml:lang="en-US">A related resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Relation</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system.</rdfs:comment>
-  </owl:SymmetricProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/replaces">
-    <skos:definition xml:lang="en-US">A related resource that is supplanted, displaced, or superseded by the described resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Replaces</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/requires">
-    <skos:definition xml:lang="en-US">A related resource that is required by the described resource to support its function, delivery, or coherence.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Requires</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/rights">
-    <skos:definition xml:lang="en-US">Information about rights held in and over the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Rights</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/RightsStatement"/>
-    <rdfs:comment xml:lang="en-US">Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/rightsHolder">
-    <skos:definition xml:lang="en-US">A person or organization owning or managing rights over the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Rights Holder</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/source">
-    <skos:definition xml:lang="en-US">A related resource from which the described resource is derived.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Source</rdfs:label>
-    <rdfs:comment xml:lang="en-US">The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/spatial">
-    <skos:definition xml:lang="en-US">Spatial characteristics of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/coverage"/>
-    <rdfs:label xml:lang="en-US">Spatial Coverage</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Location"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/subject">
-    <skos:definition xml:lang="en-US">The topic of the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Subject</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary. To describe the spatial or temporal topic of the resource, use the Coverage element.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/tableOfContents">
-    <skos:definition xml:lang="en-US">A list of subunits of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/description"/>
-    <rdfs:label xml:lang="en-US">Table Of Contents</rdfs:label>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/temporal">
-    <skos:definition xml:lang="en-US">Temporal characteristics of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/coverage"/>
-    <rdfs:label xml:lang="en-US">Temporal Coverage</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/PeriodOfTime"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/title">
-    <skos:definition xml:lang="en-US">A name given to the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Title</rdfs:label>
-    <skos:note xml:lang="en-US">In current practice, this term is used primarily with literal values; however, there are important uses with non-literal values as well. As of December 2007, the DCMI Usage Board is leaving this range unspecified pending an investigation of options.</skos:note>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/type">
-    <skos:definition xml:lang="en-US">The nature or genre of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[DCMITYPE] http://dublincore.org/documents/dcmi-type-vocabulary/</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://dublincore.org/documents/dcmi-type-vocabulary/"/>
-    <rdfs:label xml:lang="en-US">Type</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/valid">
-    <skos:definition xml:lang="en-US">Date (often a range) of validity of a resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Valid</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/DCMIType">
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/dcmi-type-vocabulary/"/>
-    <skos:definition xml:lang="en-US">The set of classes specified by the DCMI Type Vocabulary, used to categorize the nature or genre of the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Type Vocabulary</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/DDC">
-    <rdfs:isDefinedBy rdf:resource="http://www.oclc.org/dewey/"/>
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the Dewey Decimal Classification.</skos:definition>
-    <rdfs:label xml:lang="en-US">DDC</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/IMT">
-    <rdfs:isDefinedBy rdf:resource="http://www.iana.org/assignments/media-types/"/>
-    <skos:definition xml:lang="en-US">The set of media types specified by the Internet Assigned Numbers Authority.</skos:definition>
-    <rdfs:label xml:lang="en-US">IMT</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/LCC">
-    <rdfs:isDefinedBy rdf:resource="http://lcweb.loc.gov/catdir/cpso/lcco/lcco.html"/>
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the Library of Congress Classification.</skos:definition>
-    <rdfs:label xml:lang="en-US">LCC</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/LCSH">
-    <skos:definition xml:lang="en-US">The set of labeled concepts specified by the Library of Congress Subject Headings.</skos:definition>
-    <rdfs:label xml:lang="en-US">LCSH</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/MESH">
-    <rdfs:isDefinedBy rdf:resource="http://www.nlm.nih.gov/mesh/meshhome.html"/>
-    <skos:definition xml:lang="en-US">The set of labeled concepts specified by the Medical Subject Headings.</skos:definition>
-    <rdfs:label xml:lang="en-US">MeSH</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">NLM</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the National Library of Medicine Classification.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:isDefinedBy rdf:resource="http://wwwcf.nlm.nih.gov/class/"/>
-  </rdf:Description>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/TGN">
-    <rdfs:isDefinedBy rdf:resource="http://www.getty.edu/research/tools/vocabulary/tgn/index.html"/>
-    <skos:definition xml:lang="en-US">The set of places specified by the Getty Thesaurus of Geographic Names.</skos:definition>
-    <rdfs:label xml:lang="en-US">TGN</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/UDC">
-    <rdfs:isDefinedBy rdf:resource="http://www.udcc.org/"/>
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the Universal Decimal Classification.</skos:definition>
-    <rdfs:label xml:lang="en-US">UDC</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/Box">
-    <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/creator"/>
-    <skos:definition xml:lang="en-US">The set of regions in space defined by their geographic coordinates according to the DCMI Box Encoding Scheme.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Box</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/ISO3166">
-    <rdfs:isDefinedBy rdf:resource="http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html"/>
-    <skos:definition xml:lang="en-US">The set of codes listed in ISO 3166-1 for the representation of names of countries.</skos:definition>
-    <rdfs:label xml:lang="en-US">ISO 3166</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/ISO639-2">
-    <rdfs:isDefinedBy rdf:resource="http://lcweb.loc.gov/standards/iso639-2/langhome.html"/>
-    <skos:definition xml:lang="en-US">The three-letter alphabetic codes listed in ISO639-2 for the representation of names of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">ISO 639-2</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/ISO639-3">
-    <rdfs:isDefinedBy rdf:resource="http://www.sil.org/iso639-3/"/>
-    <skos:definition xml:lang="en-US">The set of three-letter codes listed in ISO 639-3 for the representation of names of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">ISO 639-3</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/Period">
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/dcmi-period/"/>
-    <skos:definition xml:lang="en-US">The set of time intervals defined by their limits according to the DCMI Period Encoding Scheme.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Period</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/Point">
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/dcmi-point/"/>
-    <skos:definition xml:lang="en-US">The set of points in space defined by their geographic coordinates according to the DCMI Point Encoding Scheme.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Point</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">RFC 1766</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">The set of tags, constructed according to RFC 1766, for the identification of languages.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc1766.txt"/>
-  </rdf:Description>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/RFC3066">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc3066.txt"/>
-    <skos:definition xml:lang="en-US">The set of tags constructed according to RFC 3066 for the identification of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">RFC 3066</rdfs:label>
-    <rdfs:comment xml:lang="en-US">RFC 3066 has been obsoleted by RFC 4646.</rdfs:comment>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/RFC4646">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc4646.txt"/>
-    <skos:definition xml:lang="en-US">The set of tags constructed according to RFC 4646 for the identification of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">RFC 4646</rdfs:label>
-    <rdfs:comment xml:lang="en-US">RFC 4646 obsoletes RFC 3066.</rdfs:comment>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/URI">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc3986.txt"/>
-    <skos:definition xml:lang="en-US">The set of identifiers constructed according to the generic syntax for Uniform Resource Identifiers as specified by the Internet Engineering Task Force.</skos:definition>
-    <rdfs:label xml:lang="en-US">URI</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/W3CDTF">
-    <rdfs:isDefinedBy rdf:resource="http://www.w3.org/TR/NOTE-datetime"/>
-    <skos:definition xml:lang="en-US">The set of dates and times constructed according to the W3C Date and Time Formats Specification.</skos:definition>
-    <rdfs:label xml:lang="en-US">W3C-DTF</rdfs:label>
-  </rdfs:Datatype>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Agent">
-    <skos:definition xml:lang="en-US">A resource that acts or has the power to act.</skos:definition>
-    <rdf:type rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-    <rdfs:label xml:lang="en-US">Agent</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples of Agent include person, organization, and software agent.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/AgentClass">
-    <skos:definition xml:lang="en-US">A group of agents.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
-    <rdfs:label xml:lang="en-US">Agent Class</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples of Agent Class include groups seen as classes, such as students, women, charities, lecturers.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/BibliographicResource">
-    <skos:definition xml:lang="en-US">A book, article, or other documentary resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Bibliographic Resource</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/FileFormat">
-    <skos:definition xml:lang="en-US">A digital resource format.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaType"/>
-    <rdfs:label xml:lang="en-US">File Format</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include the formats defined by the list of Internet Media Types.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Frequency">
-    <skos:definition xml:lang="en-US">A rate at which something recurs.</skos:definition>
-    <rdfs:label xml:lang="en-US">Frequency</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Jurisdiction">
-    <skos:definition xml:lang="en-US">The extent or range of judicial, law enforcement, or other authority.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <rdfs:label xml:lang="en-US">Jurisdiction</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/LicenseDocument">
-    <skos:definition xml:lang="en-US">A legal document giving official permission to do something with a Resource.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/RightsStatement"/>
-    <rdfs:label xml:lang="en-US">License Document</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/LinguisticSystem">
-    <skos:definition xml:lang="en-US">A system of signs, symbols, sounds, gestures, or rules used in communication.</skos:definition>
-    <rdfs:label xml:lang="en-US">Linguistic System</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include written, spoken, sign, and computer languages.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Location">
-    <skos:definition xml:lang="en-US">A spatial region or named place.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <rdfs:label xml:lang="en-US">Location</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/LocationPeriodOrJurisdiction">
-    <skos:definition xml:lang="en-US">A location, period of time, or jurisdiction.</skos:definition>
-    <rdfs:label xml:lang="en-US">Location, Period, or Jurisdiction</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MediaType">
-    <skos:definition xml:lang="en-US">A file format or physical medium.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaTypeOrExtent"/>
-    <rdfs:label xml:lang="en-US">Media Type</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MediaTypeOrExtent">
-    <skos:definition xml:lang="en-US">A media type or extent.</skos:definition>
-    <rdfs:label xml:lang="en-US">Media Type or Extent</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MethodOfAccrual">
-    <skos:definition xml:lang="en-US">A method by which resources are added to a collection.</skos:definition>
-    <rdfs:label xml:lang="en-US">Method of Accrual</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MethodOfInstruction">
-    <skos:definition xml:lang="en-US">A process that is used to engender knowledge, attitudes, and skills.</skos:definition>
-    <rdfs:label xml:lang="en-US">Method of Instruction</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/PeriodOfTime">
-    <skos:definition xml:lang="en-US">An interval of time that is named or defined by its start and end dates.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <rdfs:label xml:lang="en-US">Period of Time</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/PhysicalMedium">
-    <skos:definition xml:lang="en-US">A physical material or carrier.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaType"/>
-    <rdfs:label xml:lang="en-US">Physical Medium</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include paper, canvas, or DVD.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/PhysicalResource">
-    <skos:definition xml:lang="en-US">A material thing.</skos:definition>
-    <rdfs:label xml:lang="en-US">Physical Resource</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Policy">
-    <skos:definition xml:lang="en-US">A plan or course of action by an authority, intended to influence and determine decisions, actions, and other matters.</skos:definition>
-    <rdfs:label xml:lang="en-US">Policy</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/ProvenanceStatement">
-    <skos:definition xml:lang="en-US">A statement of any changes in ownership and custody of a resource since its creation that are significant for its authenticity, integrity, and interpretation.</skos:definition>
-    <rdfs:label xml:lang="en-US">Provenance Statement</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/RightsStatement">
-    <skos:definition xml:lang="en-US">A statement about the intellectual property rights (IPR) held in or over a Resource, a legal document giving official permission to do something with a resource, or a statement about access rights.</skos:definition>
-    <rdfs:label xml:lang="en-US">Rights Statement</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/SizeOrDuration">
-    <skos:definition xml:lang="en-US">A dimension or extent, or a time taken to play or execute.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaTypeOrExtent"/>
-    <rdfs:label xml:lang="en-US">Size or Duration</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include a number of pages, a specification of length, width, and breadth, or a period in hours, minutes, and seconds.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Standard">
-    <skos:definition xml:lang="en-US">A basis for comparison; a reference point against which other things can be evaluated.</skos:definition>
-    <rdfs:label xml:lang="en-US">Standard</rdfs:label>
-  </owl:Class>
-</rdf:RDF>
-<!--
-Made by Triplr http://triplr.org by Dave Beckett, http://purl.org/net/dajobe/
-from http://bloody-byte.net/rdf/dc_owl2dl/dcterms_od.ttl in format turtle to rdfxml-abbrev
-using Redland 1.0.7 and Raptor 1.4.18 from http://librdf.org/
-This document is http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcterms_od.ttl
--->
diff --git a/taverna-robundle/src/main/resources/ontologies/foaf.rdf b/taverna-robundle/src/main/resources/ontologies/foaf.rdf
deleted file mode 100644
index bebd5e4..0000000
--- a/taverna-robundle/src/main/resources/ontologies/foaf.rdf
+++ /dev/null
@@ -1,620 +0,0 @@
-<?xml version='1.0'?>
-<!--
-     
-Friend of a Friend (FOAF) RDF vocabulary
-http://xmlns.com/foaf/spec/20140114.rdf
-Copyright © 2000-2014 Dan Brickley and Libby Miller
-
-This work is licensed under a Creative Commons Attribution License. 
-http://creativecommons.org/licenses/by/1.0/
-
--->
-<!-- This is the FOAF formal vocabulary description, expressed using W3C RDFS and OWL markup. foaf/spec version -->
-<!-- For more information about FOAF:                                            -->
-<!--   see the FOAF project homepage, http://www.foaf-project.org/               -->
-<!--   FOAF specification, http://xmlns.com/foaf/spec/                             -->
-<!--                                                                             -->
-<!-- first we introduce a number of RDF namespaces we will be using... -->
-<rdf:RDF 
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
-	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
-	xmlns:owl="http://www.w3.org/2002/07/owl#" 
-	xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#" 
-	xmlns:foaf="http://xmlns.com/foaf/0.1/" 
-	xmlns:wot="http://xmlns.com/wot/0.1/" 
-	xmlns:dc="http://purl.org/dc/elements/1.1/">
-<!-- Here we describe general characteristics of the FOAF vocabulary ('ontology'). -->
-  <owl:Ontology rdf:about="http://xmlns.com/foaf/0.1/" dc:title="Friend of a Friend (FOAF) vocabulary" dc:description="The Friend of a Friend (FOAF) RDF vocabulary, described using W3C RDF Schema and the Web Ontology Language." >
-  </owl:Ontology>
-
-
-  <!-- OWL/RDF interop section - geeks only -->
-  <!--  most folk can ignore this lot. the game here is to make FOAF
-  	work with vanilla RDF/RDFS tools, and with the stricter OWL DL 
-	profile of OWL. At the moment we're in the OWL Full flavour of OWL. 
-	The following are tricks to try have the spec live in both worlds
-	at once. See
-		http://phoebus.cs.man.ac.uk:9999/OWL/Validator
-		http://www.mindswap.org/2003/pellet/demo.shtml
-	...for some tools that help. 					-->
-  <owl:AnnotationProperty rdf:about="http://xmlns.com/wot/0.1/assurance"/>
-  <owl:AnnotationProperty rdf:about="http://xmlns.com/wot/0.1/src_assurance"/>
-  <owl:AnnotationProperty rdf:about="http://www.w3.org/2003/06/sw-vocab-status/ns#term_status"/>
-  <!--  DC terms are NOT annotation properties in general, so we consider the following 
-	claims scoped to this document. They may be removed in future revisions if
-	OWL tools become more flexible. -->
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/description"/>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/title"/>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/date"/>
-  <owl:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Class"/>
-
-<!--  <owl:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Resource"/>
-  <owl:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Literal"/> -->
-  <!-- end of OWL/RDF interop voodoo. mostly. -->
-
-  <!-- utility class, a candidate for replacing the pattern of subproperty-ing rdfs:label -->
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/LabelProperty" vs:term_status="unstable">
-    <rdfs:label>Label Property</rdfs:label>
-    <rdfs:comment>A foaf:LabelProperty is any RDF property with texual values that serve as labels.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-
-<!-- FOAF classes (types) are listed first. -->
-
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Person" rdfs:label="Person" rdfs:comment="A person." vs:term_status="stable">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class" />
-    <owl:equivalentClass rdf:resource="http://schema.org/Person" />
-    <owl:equivalentClass rdf:resource="http://www.w3.org/2000/10/swap/pim/contact#Person" />
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Person"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/foaf/0.1/Agent"/></rdfs:subClassOf>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Agent"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf><owl:Class rdf:about="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing" rdfs:label="Spatial Thing"/></rdfs:subClassOf>
-    <!-- aside: 
-	are spatial things always spatially located? 
-	Person includes imaginary people... discuss... -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-
-<!--    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Document"/> this was a mistake; tattoo'd people, for example. -->
-
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Organization"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Project"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Document" rdfs:label="Document" rdfs:comment="A document." vs:term_status="stable">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <owl:equivalentClass rdf:resource="http://schema.org/CreativeWork" />
-<!--    <rdfs:subClassOf rdf:resource="http://xmlns.com/wordnet/1.6/Document"/> -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Organization"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Project"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Organization" rdfs:label="Organization" rdfs:comment="An organization." vs:term_status="stable">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Organization"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Group" vs:term_status="stable" rdfs:label="Group" rdfs:comment="A class of Agents.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Agent" vs:term_status="stable" rdfs:label="Agent" rdfs:comment="An agent (eg. person, group, software or physical artifact).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <owl:equivalentClass rdf:resource="http://purl.org/dc/terms/Agent"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Agent-3"/></rdfs:subClassOf> -->
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Project" vs:term_status="testing" rdfs:label="Project" rdfs:comment="A project (a collective endeavour of some kind).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Project"/></rdfs:subClassOf> -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-<!-- arguably a subclass of Agent; to be discussed -->
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Image" vs:term_status="stable" rdfs:label="Image" rdfs:comment="An image.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <owl:equivalentClass rdf:resource="http://schema.org/ImageObject" />
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Document"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/foaf/0.1/Document"/></rdfs:subClassOf>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/PersonalProfileDocument" rdfs:label="PersonalProfileDocument" rdfs:comment="A personal profile RDF document." vs:term_status="testing">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-  </rdfs:Class>
-	
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineAccount" vs:term_status="testing" rdfs:label="Online Account" rdfs:comment="An online account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing" rdfs:label="Thing"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineGamingAccount" vs:term_status="unstable" rdfs:label="Online Gaming Account" rdfs:comment="An online gaming account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineEcommerceAccount" vs:term_status="unstable" rdfs:label="Online E-commerce Account" rdfs:comment="An online e-commerce account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineChatAccount" vs:term_status="unstable" rdfs:label="Online Chat Account" rdfs:comment="An online chat account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-<!-- FOAF properties (ie. relationships). -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/mbox" vs:term_status="stable" rdfs:label="personal mailbox" rdfs:comment="A 
-personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a 'static inverse functional property', in that  there is (across time and change) at most one individual that ever has any particular value for foaf:mbox.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/mbox_sha1sum" vs:term_status="testing" rdfs:label="sha1sum of a personal mailbox URI name" rdfs:comment="The sha1sum of the URI of an Internet mailbox associated with exactly one owner, the  first owner of the mailbox.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-
-<!--
-put it back in again 2006-01-29 - see 
-http://chatlogs.planetrdf.com/swig/2006-01-29.html#T21-12-35
-I have mailed rdfweb-dev@vapours.rdfweb.org for discussion.
-Libby
-
-Commenting out as a kindness to OWL DL users. The semantics didn't quite cover
-our usage anyway, since (a) we want static-across-time, which is so beyond OWL as 
-to be from another planet (b) we want identity reasoning invariant across xml:lang 
-tagging. FOAF code will know what to do. OWL folks note, this assertion might return. 
-
-danbri
--->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/gender" vs:term_status="testing" 
-rdfs:label="gender" 
-rdfs:comment="The gender of this Agent (typically but not necessarily 'male' or 'female').">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <!-- whatever one's gender is, and we are liberal in leaving room for more options 
-    than 'male' and 'female', we model this so that an agent has only one gender. -->
-  </rdf:Property>
-
-
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/geekcode" vs:term_status="archaic" rdfs:label="geekcode" rdfs:comment="A textual geekcode for this person, see http://www.geekcode.com/geek.html">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/dnaChecksum" vs:term_status="archaic" rdfs:label="DNA checksum" rdfs:comment="A checksum for the DNA of some thing. Joke.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/sha1" vs:term_status="unstable" rdfs:label="sha1sum (hex)" rdfs:comment="A sha1sum hash, in hex.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-<!-- rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty" -->
-<!-- IFP under discussion -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/based_near" vs:term_status="testing" rdfs:label="based near" rdfs:comment="A location that something is based near, for some broadly human notion of near.">
-<!-- see http://esw.w3.org/topic/GeoOnion for extension  ideas -->
-<!-- this was ranged as Agent... hmm -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- FOAF naming properties -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/title" vs:term_status="testing" rdfs:label="title" rdfs:comment="Title (Mr, Mrs, Ms, Dr. etc)">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/nick" vs:term_status="testing" rdfs:label="nickname" rdfs:comment="A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- ......................... chat IDs ........................... -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/jabberID" vs:term_status="testing" rdfs:label="jabber ID" rdfs:comment="A jabber ID for something.">
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-<!--
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-...different to the other IM IDs, as Jabber has wider usage, so 
-we don't want the implied rdfs:domain here.
-
--->
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <!-- there is a case for using resources/URIs here, ... -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/aimChatID" vs:term_status="testing" rdfs:label="AIM chat ID" rdfs:comment="An AIM chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/skypeID" vs:term_status="testing" rdfs:label="Skype ID" rdfs:comment="A Skype ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <!-- todo: OWL2 easy key definition -->
-  </rdf:Property>
-
-<!-- http://www.stud.uni-karlsruhe.de/~uck4/ICQ/Packet-112.html -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/icqChatID" vs:term_status="testing" rdfs:label="ICQ chat ID" rdfs:comment="An ICQ chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/yahooChatID" vs:term_status="testing" rdfs:label="Yahoo chat ID" rdfs:comment="A Yahoo chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/msnChatID" vs:term_status="testing" rdfs:label="MSN chat ID" rdfs:comment="An MSN chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-<!-- ....................................................... -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/name" vs:term_status="testing" rdfs:label="name" rdfs:comment="A name for some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#label"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/firstName" vs:term_status="testing" rdfs:label="firstName" rdfs:comment="The first name of a person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/lastName" vs:term_status="testing" rdfs:label="lastName" rdfs:comment="The last name of a person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/givenName" vs:term_status="testing" rdfs:label="Given name" rdfs:comment="The given name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/givenname" vs:term_status="archaic" rdfs:label="Given name" rdfs:comment="The given name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/surname" vs:term_status="archaic" rdfs:label="Surname" rdfs:comment="The surname of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/family_name" vs:term_status="archaic" rdfs:label="family_name" rdfs:comment="The family name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/familyName" vs:term_status="testing" rdfs:label="familyName" rdfs:comment="The family name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- end of naming properties. See http://rdfweb.org/issues/show_bug.cgi?id=7
-	   for open issue / re-design discussions.
-	-->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/phone" vs:term_status="testing" rdfs:label="phone" rdfs:comment="A phone,  specified using fully qualified tel: URI scheme (refs: http://www.w3.org/Addressing/schemes.html#tel).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/homepage" vs:term_status="stable" rdfs:label="homepage" rdfs:comment="A homepage for some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <!--  previously: rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent" -->
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/weblog" vs:term_status="stable" rdfs:label="weblog" rdfs:comment="A weblog of some thing (whether person, group, company etc.).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/openid" vs:term_status="testing" rdfs:label="openid" rdfs:comment="An OpenID for an Agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/tipjar" vs:term_status="testing" rdfs:label="tipjar" rdfs:comment="A tipjar document for this agent, describing means for payment and reward.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/plan" vs:term_status="testing" rdfs:label="plan" rdfs:comment="A .plan comment, in the tradition of finger and '.plan' files.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/made" vs:term_status="stable" rdfs:label="made" rdfs:comment="Something that was made by this agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/maker"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/maker"  vs:term_status="stable" rdfs:label="maker" rdfs:comment="An agent that 
-made this thing.">
-    <owl:equivalentProperty rdf:resource="http://purl.org/dc/terms/creator"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/made"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/img" vs:term_status="testing" rdfs:label="image" rdfs:comment="An image that can be used to represent some thing (ie. those depictions which are particularly representative of something, eg. one's photo on a homepage).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/depiction"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/depiction" vs:term_status="testing" rdfs:label="depiction" rdfs:comment="A depiction of some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/depicts"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/depicts" vs:term_status="testing" rdfs:label="depicts" rdfs:comment="A thing depicted in this representation.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/depiction"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/thumbnail" vs:term_status="testing" rdfs:label="thumbnail" rdfs:comment="A derived thumbnail image.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/myersBriggs" vs:term_status="testing" rdfs:label="myersBriggs" rdfs:comment="A Myers Briggs (MBTI) personality classification.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/workplaceHomepage" vs:term_status="testing" rdfs:label="workplace homepage" rdfs:comment="A workplace homepage of some person; the homepage of an organization they work for.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/workInfoHomepage" vs:term_status="testing" rdfs:label="work info homepage" rdfs:comment="A work info homepage of some person; a page about their work for some organization.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/schoolHomepage" vs:term_status="testing" rdfs:label="schoolHomepage" rdfs:comment="A homepage of a school attended by the person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/knows" vs:term_status="stable" rdfs:label="knows" rdfs:comment="A person known by this person (indicating some level of reciprocated interaction between the parties).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/interest" vs:term_status="testing" rdfs:label="interest" rdfs:comment="A page about a topic of interest to this person.">
-<!-- we should distinguish the page from the topic more carefully. danbri 2002-07-08 -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/topic_interest" vs:term_status="testing" rdfs:label="topic_interest" rdfs:comment="A thing of interest to this person.">
-<!-- we should distinguish the page from the topic more carefully. danbri 2002-07-08 -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/publications" vs:term_status="testing" rdfs:label="publications" rdfs:comment="A link to the publications of this person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- by libby for ILRT mappings 2001-10-31 -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/currentProject" vs:term_status="testing" rdfs:label="current project" rdfs:comment="A current project this person works on.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/pastProject" vs:term_status="testing" rdfs:label="past project" rdfs:comment="A project this person has previously worked on.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/fundedBy" vs:term_status="archaic" rdfs:label="funded by" rdfs:comment="An organization funding a project or person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/logo" vs:term_status="testing" rdfs:label="logo" rdfs:comment="A logo representing some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/topic" vs:term_status="testing" rdfs:label="topic" rdfs:comment="A topic of some page or document.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/primaryTopic"
- vs:term_status="stable" rdfs:label="primary topic" rdfs:comment="The primary topic of some page or document.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/focus"  vs:term_status="testing" rdfs:label="focus" rdfs:comment="The underlying or 'focal' entity associated with some SKOS-described concept.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2004/02/skos/core#Concept" rdfs:label="Concept"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"
- vs:term_status="stable" rdfs:label="is primary topic of" rdfs:comment="A document that this thing is the primary topic of.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/primaryTopic"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/page" vs:term_status="stable" rdfs:label="page" rdfs:comment="A page or document about this thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/topic"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/theme" vs:term_status="archaic" rdfs:label="theme" rdfs:comment="A theme.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/account" vs:term_status="testing" rdfs:label="account" rdfs:comment="Indicates an account held by this agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/holdsAccount" vs:term_status="archaic" rdfs:label="account" rdfs:comment="Indicates an account held by this agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/accountServiceHomepage" vs:term_status="testing" rdfs:label="account service homepage" rdfs:comment="Indicates a homepage of the service provide for this online account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/accountName" vs:term_status="testing" rdfs:label="account name" rdfs:comment="Indicates the name (identifier) associated with this online account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/member" vs:term_status="stable" rdfs:label="member" rdfs:comment="Indicates a member of a Group">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Group"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/membershipClass" vs:term_status="unstable" rdfs:label="membershipClass" rdfs:comment="Indicates the class of individuals that are a member of a Group">
-    <!-- maybe we should just use SPARQL or Rules, instead of trying to use OWL here -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
-    <!-- Added to keep OWL DL from bluescreening. DON'T CROSS THE STREAMERS, etc. -->
-    <!-- This may get dropped if it means non-DL tools don't expose it as a real property.
-	 Should be fine though; I think only OWL stuff cares about AnnotationProperty.
-	 Dan									 -->
-
-<!--    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Group"/> prose only for now...-->
-<!--    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> -->
-<!--    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Class"/> -->
-
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/birthday" vs:term_status="unstable" rdfs:label="birthday" rdfs:comment="The birthday of this Agent, represented in mm-dd string form, eg. '12-31'.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-   <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/age" vs:term_status="unstable" rdfs:label="age" rdfs:comment="The age in years of some agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-     <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-     <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-   </rdf:Property>
-
-   <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/status" vs:term_status="unstable" rdfs:label="status" rdfs:comment="A string expressing what the user is happy for the general public (normally) to know about their current activity.">
-     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-     <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-     <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-   </rdf:Property>
-
-</rdf:RDF>
-
diff --git a/taverna-robundle/src/main/resources/ontologies/pav.rdf b/taverna-robundle/src/main/resources/ontologies/pav.rdf
deleted file mode 100644
index 9493697..0000000
--- a/taverna-robundle/src/main/resources/ontologies/pav.rdf
+++ /dev/null
@@ -1,568 +0,0 @@
-<?xml version="1.0"?>
-<!--
-© Copyright 2008-2014 Massachusetts General Hospital; Harvard Medical School;
-Balboa Systems; University of Manchester
-Copyright 2015 Apache Software Foundation
-
-Modified for Apache Taverna to remove xml-stylesheet.
-For original, see http://purl.org/pav/
-
-Licensed 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.  
--->
-<!DOCTYPE rdf:RDF [
-    <!ENTITY pav "http://purl.org/pav/" >
-    <!ENTITY dct "http://purl.org/dc/terms/" >
-    <!ENTITY prov "http://www.w3.org/ns/prov#" >
-    <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-    <!ENTITY pav1 "http://swan.mindinformatics.org/ontologies/1.2/pav/" >
-]>
-
-
-<rdf:RDF xmlns="&pav;"
-     xml:base="&pav;"
-     xmlns:dc="http://purl.org/dc/elements/1.1/"
-     xmlns:prov="http://www.w3.org/ns/prov#"
-     xmlns:foaf="http://xmlns.com/foaf/0.1/"
-     xmlns:pav1="http://swan.mindinformatics.org/ontologies/1.2/pav/"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:pav="http://purl.org/pav/"
-     xmlns:dct="http://purl.org/dc/terms/"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-    <owl:Ontology rdf:about="http://purl.org/pav/">
-        <prov:has_provenance rdf:resource="provenance.ttl" />
-        <rdfs:label xml:lang="en">Provenance, Authoring and Versioning (PAV)</rdfs:label>
-        <owl:versionInfo rdf:datatype="&xsd;string">2.1.1</owl:versionInfo>
-        <dct:modified rdf:datatype="&xsd;dateTime">2013-03-26T14:49:00Z</dct:modified>
-        <dc:contributor rdf:datatype="&xsd;string">Marco Ocana</dc:contributor>
-        <dc:creator rdf:datatype="&xsd;string">Paolo Ciccarese</dc:creator>
-        <dc:contributor rdf:datatype="&xsd;string">Stian Soiland-Reyes</dc:contributor>
-        <dct:format rdf:datatype="&xsd;string">application/rdf+xml</dct:format>
-        <dct:language rdf:datatype="&xsd;language">en</dct:language>
-        <dct:issued rdf:datatype="&xsd;dateTime">2013-03-27T16:03:24Z</dct:issued>
-        <dct:title xml:lang="en">PAV - Provenance, Authoring and Versioning</dct:title>
-        <rdfs:comment xml:lang="en">PAV is a lightweight ontology for tracking Provenance, Authoring and Versioning. PAV specializes the W3C provenance ontology PROV-O in order to describe authorship, curation and digital creation of online resources.
-
-This ontology describes the defined PAV properties and their usage. Note that PAV does not define any explicit classes or domain/ranges, as every property is meant to be used directly on the described online resource.</rdfs:comment>
-        <dc:description xml:lang="en">PAV supplies terms for distinguishing between the different roles of the agents contributing content in current web based systems: contributors, authors, curators and digital artifact creators. The ontology also provides terms for tracking provenance of digital entities that are published on the web and then accessed, transformed and consumed. In order to support broader interoperability, PAV specializes the general purpose W3C PROV provenance model (PROV-O).
-
-PAV distinguishes between the data related to the digital artifact - named Provenance - and those related to the actual knowledge creation and therefore to the intellectual property aspects – named Authoring. The Versioning axis describes the evolution of digital entities in time. 
-
-Using PAV, descriptions can define the Authors that originate or gave existence to the work that is expressed in the digital resource (pav:authoredBy); curators (pav:curatedBy) who are content specialists responsible for shaping the expression in an appropriate format, and contributors (super-property pav:contributedBy) that provided some help in conceiving the resource or in the expressed knowledge creation/extraction.
-
-These provenance aspects can be detailed with dates using pav:curatedOn, pav:authoredOn, etc. Further details about the creation activities, such as different authors contributing specific parts of the resource at different dates are out of scope for PAV and should be defined using vocabularies like PROV-O and additional intermediate entities to describe the different states. 
-
-For resources based on other resources, PAV allows specification of direct retrieval (pav:retrievedFrom), import through transformations (pav:importedFrom) and sources that were merely consulted (pav:sourceAccessedAt). These aspects can also define the agents responsible using pav:retrievedBy, pav:importedBy and pav:sourceAccessedBy. Version information can be specified using pav:previousVersion and pav:version. 
-
-The creation of the digital representation, for instance an RDF graph, can in many cases be different from the authorship of the knowledge, and in PAV this digital creation is specified using pav:createdBy, pav:createdWith and pav:createdOn. 
-
-PAV 2.1 updates PAV 2.0 with PROV-O specializations and more detailed descriptions of the defined terms. Note that PROV-O is not imported directly by this ontology as PAV can be used independent of PROV. PAV 2 is based on PAV 1.2 but in a new namespace ( http://purl.org/pav/ ). Terms compatible with 1.2 are indicated in this ontology using owl:equivalentProperty. 
-
-The ontology IRI http://purl.org/pav/ always resolve to the latest version of PAV 2. Particular versionIRIs such as http://purl.org/pav/2.1 can be used by clients to force imports of a particular version - note however that all terms are defined directly in the http://purl.org/pav/ namespace.
-
-The goal of PAV is to provide a lightweight, straight forward way to give the essential information about authorship, provenance and versioning, and therefore these properties are described directly on the published resource. As such, PAV does not define any classes or restrict domain/ranges, as all properties are applicable to any online resource.</dc:description>
-        <dc:description rdf:resource="http://pav-ontology.googlecode.com/svn/branches/2.1/images/pav-overview.svg" />
-        <rdfs:seeAlso rdf:resource="http://code.google.com/p/pav-ontology/"/>
-        <rdfs:seeAlso rdf:resource="http://pav-ontology.googlecode.com/svn/trunk/1.2/pav.owl"/>
-        <!--
-        <owl:imports rdf:resource="http://pav-ontology.googlecode.com/svn/trunk/1.2/pav.owl"/>
-        <owl:imports rdf:resource="http://www.w3.org/ns/prov#"/>
-        -->
-        <owl:versionIRI rdf:resource="&pav;2.1"/>
-        <rdfs:seeAlso rdf:resource="&pav;doc"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;2.0/"/>
-        <owl:priorVersion rdf:resource="&pav;2.0/"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;authoring/2.0/"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;provenance/2.0/"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;versioning/2.0/"/>
-        <dct:contributor rdf:resource="http://soiland-reyes.com/stian/#me"/>
-        <dct:publisher rdf:resource="http://swan.mindinformatics.org/"/>
-        <owl:incompatibleWith rdf:resource="http://swan.mindinformatics.org/ontologies/1.2/pav.owl"/>
-        <dct:license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0"/>
-        <dct:creator rdf:resource="http://www.hcklab.org/foaf.rdf#me"/>
-        <dct:creator rdf:resource="http://www.paolociccarese.info/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Ontology>
-    
-
-
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://purl.org/pav/authoredBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;authoredBy">
-        <rdfs:label xml:lang="en">Authored by</rdfs:label>
-        <rdfs:comment xml:lang="en">An agent that originated or gave existence to the work that is expressed by the digital resource.
-
-The author of the content of a resource may be different from the creator of the resource representation (although they are often the same). See pav:createdBy for a discussion.
-
-The date of authoring can be expressed using pav:authoredOn - note however in the case of multiple authors that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy and prov:qualifiedAssocation.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;authoredOn"/>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;authoredBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/contributedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;contributedBy">
-        <rdfs:label xml:lang="en">Contributed by</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource was contributed to by the given agent.
-
-The agent provided any sort of help in conceiving the work that is expressed by the digital artifact. Superproperty of pav:authoredBy and pav:curatedBy.
-
-Note that as pav:contributedBy identifies only agents that contributed to the work, knowledge or intellectual property, and not agents that made the digital artifact or representation (pav:createdBy), thus this property can be considered more precise than dct:contributor. See pav:createdBy for a discussion.
-
-The date of contribution can be expressed using pav:contributedOn - note however in the case of multiple contributors that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy and prov:qualifiedAssocation.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;contributedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;contributedBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdAt -->
-
-    <owl:ObjectProperty rdf:about="&pav;createdAt">
-        <rdfs:label xml:lang="en">Created at</rdfs:label>
-        <rdfs:comment xml:lang="en">The geo-location of the agents when creating the resource (pav:createdBy). For instance  a photographer takes a picture of the Eiffel Tower while standing in front of it.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;createdBy">
-        <rdfs:label xml:lang="en">Created by</rdfs:label>
-        <rdfs:comment xml:lang="en">An agent primary responsible for making the digital artifact or resource representation.
-
-This property is distinct from forming the content, which is indicated with pav:contributedBy or its subproperties; pav:authoredBy, which identifies who authored the knowledge expressed by this resource; and pav:curatedBy, which identifies who curated the knowledge into its current form. 
-
-pav:createdBy is more specific than dct:createdBy - which might or might not be interpreted to cover this creator.
-
-For instance, the author wrote &apos;this species has bigger wings than normal&apos; in his log book. The curator, going through the log book and identifying important knowledge, formalizes this as &apos;locus perculus has wingspan &gt; 0.5m&apos;. The creator enters this knowledge as a digital resource in the knowledge system, thus creating the digital artifact (say as JSON, RDF, XML or HTML).
-
-A different example is a news article. pav:authoredBy indicates the journalist who wrote the article. pav:contributedBy can indicate the artist who added an illustration. pav:curatedBy can indicate the editor who made the article conform to the news paper&apos;s style. pav:createdBy can indicate who put the article on the web site.
-
-The software tool used by the creator to make the digital resource (say Protege, Wordpress or OpenOffice) can be indicated with pav:createdWith.
-
-The date the digital resource was created can be indicated with pav:createdOn.
-
-The location the agent was at when creating the digital resource can be made using pav:createdAt.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;authoredBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;curatedBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;createdBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdWith -->
-
-    <owl:ObjectProperty rdf:about="&pav;createdWith">
-        <rdfs:label xml:lang="en">Created with</rdfs:label>
-        <rdfs:comment xml:lang="en">The software/tool used by the creator (pav:createdBy) when making the digital resource, for instance a word processor or an annotation tool. A more independent software agent that creates the resource without direct interaction by a human creator should instead should instead by indicated using pav:createdBy.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/curatedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;curatedBy">
-        <rdfs:label xml:lang="en">Curated by</rdfs:label>
-        <rdfs:comment xml:lang="en">An agent specialist responsible for shaping the expression in an appropriate format. Often the primary agent responsible for ensuring the quality of the representation.
-
-The curator may be different from the creator of the author (pav:authoredBy) and the creator of the digital resource (pav:createdBy).  
-
-The date of curating can be expressed using pav:curatedOn - note however in the case of multiple curators that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy and prov:qualifiedAssocation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;curatedOn"/>
-        <owl:equivalentProperty rdf:resource="&pav1;curatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/curates -->
-
-    <owl:ObjectProperty rdf:about="&pav;curates">
-        <rdfs:label xml:lang="en">Curates</rdfs:label>
-        <owl:deprecated rdf:datatype="&xsd;boolean">true</owl:deprecated>
-        <rdfs:comment xml:lang="en">Provided for backwards compatibility with PAV 1.2 only. Use instead the inverse pav:curatedBy.</rdfs:comment>
-        <owl:inverseOf rdf:resource="&pav;curatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/derivedFrom -->
-
-    <owl:ObjectProperty rdf:about="&pav;derivedFrom">
-        <rdfs:label xml:lang="en">Derived from</rdfs:label>
-        <rdfs:comment xml:lang="en">Derived from a different resource. Derivation conserns itself with derived knowledge. If this resource has the same content as the other resource, but has simply been transcribed to fit a different model (like XML -&gt; RDF or SQL -&gt; CVS), use pav:importedFrom. If a resource was simply retrieved, use pav:retrievedFrom. If the content has however been further refined or modified, pav:derivedFrom should be used.
-
-Details about who performed the derivation may be indicated with pav:contributedBy and its subproperties.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/importedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;importedBy">
-        <rdfs:label xml:lang="en">Imported by</rdfs:label>
-        <rdfs:comment xml:lang="en">An entity responsible for importing the data. 
-
-The importer is usually a software entity which has done the transcription from the original source. 
-Note that pav:importedBy may overlap with pav:createdWith.
-
-The source for the import should be given with pav:importedFrom. The time of the import should be given with pav:importedOn.
-
-See pav:importedFrom for a discussion of import vs. retrieve vs. derived.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/importedFrom -->
-
-    <owl:ObjectProperty rdf:about="&pav;importedFrom">
-        <rdfs:label xml:lang="en">Imported from</rdfs:label>
-        <rdfs:comment xml:lang="en">The original source of imported information. 
-
-Import means that the content has been preserved, but transcribed somehow, for instance to fit a different representation model. Examples of import are when the original was JSON and the current resource is RDF, or where the original was an document scan, and this resource is the plain text found through OCR. 
-
-The imported resource does not have to be complete, but should be consistent with the knowledge conveyed by the original resource.
-
-If additional knowledge has been contributed, pav:derivedFrom would be more appropriate.
-
-If the resource has been copied verbatim from the original representation (e.g. downloaded), use pav:retrievedFrom.
-
-To indicate which agent(s) performed the import, use pav:importedBy. Use pav:importedOn to indicate when it happened. </rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;derivedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedFrom"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedFromSource"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/previousVersion -->
-
-    <owl:ObjectProperty rdf:about="&pav;previousVersion">
-        <rdfs:label xml:lang="en">Previous version</rdfs:label>
-        <rdfs:comment xml:lang="en">The previous version of a resource in a lineage. For instance a news article updated to correct factual information would point to the previous version of the article with pav:previousVersion. If however the content has significantly changed so that the two resources no longer share lineage (say a new news article that talks about the same facts), they should be related using pav:derivedFrom.
-
-A version number of this resource can be provided using the data property pav:version.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;derivedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;version"/>
-        <owl:equivalentProperty rdf:resource="&pav1;previousVersion"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasRevisionOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/providedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;providedBy">
-        <rdfs:label xml:lang="en">Provided by</rdfs:label>
-        <rdfs:comment xml:lang="en">The original provider of the encoded information (e.g. PubMed, UniProt, Science Commons).
-
-The provider might not coincide with the dct:publisher, which would describe the current publisher of the resource. For instance if the resource was retrieved, imported or derived from a source, that source was published by the original provider. pav:providedBy provides a shortcut to indicate the original provider on the new resource.  </rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&dct;publisher"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/retrievedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;retrievedBy">
-        <rdfs:label xml:lang="en">Retrieved by</rdfs:label>
-        <rdfs:comment xml:lang="en">An entity responsible for retrieving the data from an external source. 
-
-The retrieving agent is usually a software entity, which has done the retrieval from the original source without performing any transcription.
-
-The source that was retrieved should be given with pav:retrievedFrom. The time of the retrieval should be indicated using pav:retrievedOn.
-
-See pav:importedFrom for a discussion of import vs. retrieve vs. derived.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/retrievedFrom -->
-
-    <owl:ObjectProperty rdf:about="&pav;retrievedFrom">
-        <rdfs:label xml:lang="en">Retrieved from</rdfs:label>
-        <rdfs:comment xml:lang="en">The URI where a resource has been retrieved from.
-
-Retrieval indicates that this resource has the same representation as the original resource. If the resource has been somewhat transformed, use pav:importedFrom instead.
-
-The time of the retrieval should be indicated using pav:retrievedOn. The agent may be indicated with pav:retrievedBy.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedOn"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceAccessedAt -->
-
-    <owl:ObjectProperty rdf:about="&pav;sourceAccessedAt">
-        <rdfs:label xml:lang="en">Source accessed at</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a given source which was accessed or consulted (but not retrieved, imported or derived from). This access can be detailed with pav:sourceAccessedBy and pav:sourceAccessedOn.
-
-For instance, a curator (pav:curatedBy) might have consulted figures in a published paper to confirm that a dataset was correctly pav:importedFrom the paper&apos;s supplementary CSV file.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceLastAccessedOn"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasInfluencedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceAccessedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;sourceAccessedBy">
-        <rdfs:label xml:lang="en">Source accessed by</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a source which was accessed or consulted 
-by the given agent. The source(s) should be specified using pav:sourceAccessedAt, and the time with pav:sourceAccessedOn.
-
-For instance, the given agent could be a curator (also pav:curatedBy) which consulted figures in a published paper to confirm that a dataset was correctly pav:importedFrom the paper&apos;s supplementary CSV file.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedAt"/>
-    </owl:ObjectProperty>
-    
-
-
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://purl.org/pav/authoredOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;authoredOn">
-        <rdfs:label xml:lang="en">Authored on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was authored.
-
-pav:authoredBy gives the authoring agent.
-
-Note that pav:authoredOn is different from pav:createdOn, although they are often the same. See pav:createdBy for a discussion.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;authoredBy"/>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdOn"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/contributedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;contributedOn">
-        <rdfs:label xml:lang="en">Contributed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was contributed to.
-
-pav:contributedBy provides the agent(s) that contributed.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;contributedBy"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;createdOn">
-        <rdfs:label xml:lang="en">Created On</rdfs:label>
-        <rdfs:comment xml:lang="en">The date of creation of the resource.
-
-pav:createdBy provides the agent(s) that created the resource.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;createdOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/curatedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;curatedOn">
-        <rdfs:label xml:lang="en">Curated on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was curated. 
-
-pav:curatedBy gives the agent(s) that performed the curation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;curatedBy"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/importedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;importedOn">
-        <rdfs:label xml:lang="en">Imported on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was imported from a source (pav:importedFrom). 
-
-Note that pav:importedOn may overlap with pav:createdOn, but in cases where they differ, the import time indicates the time of the retrieval and transcription of the original source, while the creation time indicates when the final resource was made, for instance after user approval.
-
-If the source is later reimported, this should be indicated with pav:lastRefreshedOn.
-
-The source of the import should be given with pav:importedFrom. The agent that performed the import should be given with pav:importedBy.
-
-See pav:importedFrom for a discussion about import vs. retrieval.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/lastRefreshedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;lastRefreshedOn">
-        <rdfs:label xml:lang="en">Last refreshed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date of the last re-import of the resource. This property is used in addition to pav:importedOn if this version has been updated due to a re-import. If the re-import created a new resource rather than refreshing an existing, then pav:importedOn should be used together with pav:previousVersion.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedLastOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/lastUpdateOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;lastUpdateOn">
-        <rdfs:label xml:lang="en">Last updated on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date of the last update of the resource. An update is a change which did not warrant making a new resource related using pav:previousVersion, for instance correcting a spelling mistake.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <owl:equivalentProperty rdf:resource="&pav1;lastUpdateOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/retrievedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;retrievedOn">
-        <rdfs:label xml:lang="en">Retrieved on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date the source for this resource was retrieved. 
-
-The source that was retrieved should be indicated with pav:retrievedFrom. The agent that performed the retrieval may be specified with pav:retrievedBy.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedFrom"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceAccessedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;sourceAccessedOn">
-        <rdfs:label xml:lang="en">Source accessed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a source which was originally accessed or consulted on the given date as part of creating or authoring the resource. The source(s) should be specified using pav:sourceAccessedAt. If the source is subsequently checked again (say to verify validity), this should be indicated with pav:sourceLastAccessedOn.
-
-In the case multiple sources being accessed at different times or by different agents, PAV does not distinguish who accessed when what. If such details are required, they may be provided by additionally using prov:qualifiedInfluence.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceLastAccessedOn"/>
-        <owl:equivalentProperty rdf:resource="&pav1;sourceAccessedOn"/>
-        <owl:equivalentProperty rdf:resource="&pav1;sourceFirstAccessedOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceLastAccessedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;sourceLastAccessedOn">
-        <rdfs:label xml:lang="en">Source last accessed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a source which was last accessed or consulted on the given date. The source(s) should be specified using pav:sourceAccessedAt. Usage of this property indicates that the source has been checked previously, which the initial time should be indicated with pav:sourceAccessedOn.
-
-This property can be useful together with pav:lastRefreshedOn or pav:lastUpdateOn in order to indicate a re-import or update, but could also be used alone, for instance when a source was simply verified and no further action was taken for the resource,</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;sourceLastAccessedOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/version -->
-
-    <owl:DatatypeProperty rdf:about="&pav;version">
-        <rdfs:label xml:lang="en">Version</rdfs:label>
-        <rdfs:comment rdf:datatype="&xsd;string">The version number of a resource. This is a freetext string, typical values are &quot;1.5&quot; or &quot;21&quot;. The URI identifying the previous version can be provided using prov:previousVersion.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <owl:equivalentProperty rdf:resource="&pav1;versionNumber"/>
-        <rdfs:range rdf:resource="&xsd;string"/>
-    </owl:DatatypeProperty>
-    
-
-
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net -->
-
diff --git a/taverna-robundle/src/main/resources/ontologies/prov-aq.rdf b/taverna-robundle/src/main/resources/ontologies/prov-aq.rdf
deleted file mode 100644
index 5bd0501..0000000
--- a/taverna-robundle/src/main/resources/ontologies/prov-aq.rdf
+++ /dev/null
@@ -1,351 +0,0 @@
-<?xml version="1.0"?>
-<!--
-W3C PROV Access and Query Ontology (PROV-AQ)
-http://www.w3.org/ns/prov-aq.owl
-http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/
-
-Copyright © 2011-2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved.
-W3C liability, trademark and document use rules apply.
-http://www.w3.org/Consortium/Legal/2015/doc-license
--->
-
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY xml "http://www.w3.org/XML/1998/namespace" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://www.w3.org/ns/prov#"
-     xml:base="http://www.w3.org/ns/prov"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:xml="http://www.w3.org/XML/1998/namespace">
-    <owl:Ontology rdf:about="http://www.w3.org/ns/prov-aq#">
-        <rdfs:label xml:lang="en">PROV Access and Query Ontology</rdfs:label>
-        <rdfs:comment rdf:datatype="&xsd;string">0.2</rdfs:comment>
-        <rdfs:comment xml:lang="en">This document is published by the Provenance Working Group (http://www.w3.org/2011/prov/wiki/Main_Page). 
-
-If you wish to make comments regarding this document, please send them to public-prov-comments@w3.org (subscribe public-prov-comments-request@w3.org, archives http://lists.w3.org/Archives/Public/public-prov-comments/). All feedback is welcome.</rdfs:comment>
-        <owl:versionIRI rdf:resource="http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-aq/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Ontology>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Annotation properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#unqualifiedForm">
-        <rdfs:comment xml:lang="en">Classes and properties used to qualify relationships are annotated with prov:unqualifiedForm to indicate the property used to assert an unqualified provenance relation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#aq">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#sharesDefinitionWith">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#definition">
-        <rdfs:comment xml:lang="en">A definition quoted from PROV-DM or PROV-CONSTRAINTS that describes the concept expressed with this OWL term.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorialNote">
-        <rdfs:comment xml:lang="en">A note by the OWL development team about how this term expresses the PROV-DM concept, or how it should be used in context of semantic web or linked data.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;label">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#inverse">
-        <rdfs:comment xml:lang="en">PROV-O does not define all property inverses. The directionalities defined in PROV-O should be given preference over those not defined. However, if users wish to name the inverse of a PROV-O property, the local name given by prov:inverse should be used.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-o/#names-of-inverse-properties"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;comment">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#constraints">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-CONSTRAINTS document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&owl;versionInfo"/>
-    <owl:AnnotationProperty rdf:about="&rdfs;seeAlso">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#dm">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-DM document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#category">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into three categories, including &apos;starting-point&apos;, &apos;qualifed&apos;, and &apos;extended&apos;. This classification is used by the prov-o html document to gently introduce prov-o terms to its users. </rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;isDefinedBy"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorsDefinition">
-        <rdfs:comment xml:lang="en">When the prov-o term does not have a definition drawn from prov-dm, and the prov-o editor provides one.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#definition"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#component">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into six components according to prov-dm, including &apos;agents-responsibility&apos;, &apos;alternate&apos;, &apos;annotations&apos;, &apos;collections&apos;, &apos;derivations&apos;, and &apos;entities-activities&apos;. This classification is used so that readers of prov-o specification can find its correspondence with the prov-dm specification.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#qualifiedForm">
-        <rdfs:comment xml:lang="en">This annotation property links a subproperty of prov:wasInfluencedBy with the subclass of prov:Influence and the qualifying property that are used to qualify it. 
-
-Example annotation:
-
-    prov:wasGeneratedBy prov:qualifiedForm prov:qualifiedGeneration, prov:Generation .
-
-Then this unqualified assertion:
-
-    :entity1 prov:wasGeneratedBy :activity1 .
-
-can be qualified by adding:
-
-   :entity1 prov:qualifiedGeneration :entity1Gen .
-   :entity1Gen 
-       a prov:Generation, prov:Influence;
-       prov:activity :activity1;
-       :customValue 1337 .
-
-Note how the value of the unqualified influence (prov:wasGeneratedBy :activity1) is mirrored as the value of the prov:activity (or prov:entity, or prov:agent) property on the influence class.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#todo"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#n">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-M document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Datatypes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/2002/07/owl#topObjectProperty -->
-
-    <owl:ObjectProperty rdf:about="&owl;topObjectProperty"/>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#describesService -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#describesService">
-        <rdfs:label>describesService</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/rovenance-query-service-description</aq>
-        <inverse>serviceDescribedBy</inverse>
-        <category>access-and-query</category>
-        <rdfs:comment xml:lang="en">relates a generic provenance query service resource (type prov:ServiceDescription) to a specific query service description (e.g. a prov:DirectQueryService or a sd:Service).</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadUsage -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadUsage">
-        <rdfs:label>hadUsage</rdfs:label>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Usage involved in an Entity&apos;s Derivation.</rdfs:comment>
-        <inverse>wasUsedInDerivation</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#has_anchor -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#has_anchor">
-        <rdfs:label>has_anchor</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#resource-represented-as-html</aq>
-        <category>access-and-query</category>
-        <rdfs:comment xml:lang="en">Indicates anchor URI for a potentially dynamic resource instance.</rdfs:comment>
-        <inverse>anchorOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#has_provenance -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#has_provenance">
-        <rdfs:label>has_provenance</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#resource-represented-as-html</aq>
-        <inverse>provenanceOf</inverse>
-        <rdfs:comment xml:lang="en">Indicates a provenance-URI for a resource; the resource identified by this property presents a provenance record about its subject or anchor resource.</rdfs:comment>
-        <category>access-and-query</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#has_query_service -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#has_query_service">
-        <rdfs:label>hasProvenanceService</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/</aq>
-        <category>access-and-query</category>
-        <inverse>provenanceQueryServiceOf</inverse>
-        <rdfs:comment xml:lang="en">Indicates a provenance query service that can access provenance related to its subject or anchor resource.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#pingback -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#pingback">
-        <rdfs:label>provenance pingback</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#provenance-pingback</aq>
-        <rdfs:comment xml:lang="en">Relates a resource to a provenance pingback service that may receive additional provenance links about the resource.</rdfs:comment>
-        <category>access-and-query</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#specializationOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#specializationOf">
-        <rdfs:label>specializationOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-constraints.html#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-dm.html#term-specialization</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-n.html#expression-specialization</n>
-        <component>alternate</component>
-        <category>expanded</category>
-        <inverse>generalizationOf</inverse>
-        <definition xml:lang="en">An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity.</definition>
-        <rdfs:subPropertyOf rdf:resource="&owl;topObjectProperty"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/prov#provenanceUriTemplate -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#provenanceUriTemplate">
-        <rdfs:label>provenanceUriTemplate</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/</aq>
-        <category>access-and-query</category>
-        <rdfs:comment xml:lang="en">Relates a provenance service to a URI template string for constructing provenance-URIs.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Classes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/2002/07/owl#Thing -->
-
-    <owl:Class rdf:about="&owl;Thing"/>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#DirectQueryService -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#DirectQueryService">
-        <rdfs:label>ProvenanceService</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#SoftwareAgent"/>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#provenance-query-service-discovery</aq>
-        <category>access-and-query</category>
-        <rdfs:comment>Type for a generic provenance query service. Mainly for use in RDF provenance query service descriptions, to facilitate discovery in linked data environments.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#ServiceDescription -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#ServiceDescription">
-        <rdfs:label>ServiceDescription</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#SoftwareAgent"/>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#provenance-query-service-discovery</aq>
-        <rdfs:comment>Type for a generic provenance query service. Mainly for use in RDF provenance query service descriptions, to facilitate discovery in linked data environments.</rdfs:comment>
-        <category>access-and-query</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#SoftwareAgent -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#SoftwareAgent">
-        <rdfs:label>SoftwareAgent</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-dm.html#term-agent</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-n.html#expression-types</n>
-        <component>agents-responsibility</component>
-        <definition xml:lang="en">A software agent is running software.</definition>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Class>
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.2.5.1928) http://owlapi.sourceforge.net -->
-
diff --git a/taverna-robundle/src/main/resources/ontologies/prov-o.rdf b/taverna-robundle/src/main/resources/ontologies/prov-o.rdf
deleted file mode 100644
index 4a04b76..0000000
--- a/taverna-robundle/src/main/resources/ontologies/prov-o.rdf
+++ /dev/null
@@ -1,1798 +0,0 @@
-<?xml version="1.0"?>
-<!--
-     
-W3C PROVenance Interchange Ontology (PROV-O)
-http://www.w3.org/ns/prov-o.rdf
-http://www.w3.org/TR/2013/REC-prov-o-20130430/
-
-Copyright © 2011-2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved.
-W3C liability, trademark and document use rules apply.
-http://www.w3.org/Consortium/Legal/2015/doc-license
-
--->
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://www.w3.org/ns/prov#"
-     xml:base="http://www.w3.org/ns/prov"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-    <owl:Ontology rdf:about="http://www.w3.org/ns/prov-o#">
-        <rdfs:label xml:lang="en">W3C PROVenance Interchange Ontology (PROV-O)</rdfs:label>
-        <owl:versionInfo xml:lang="en">Recommendation version 2013-04-30</owl:versionInfo>
-        <rdfs:comment xml:lang="en">This document is published by the Provenance Working Group (http://www.w3.org/2011/prov/wiki/Main_Page). 
-
-If you wish to make comments regarding this document, please send them to public-prov-comments@w3.org (subscribe public-prov-comments-request@w3.org, archives http://lists.w3.org/Archives/Public/public-prov-comments/). All feedback is welcome.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-o/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov"/>
-        <specializationOf rdf:resource="http://www.w3.org/ns/prov-o"/>
-        <wasRevisionOf rdf:resource="http://www.w3.org/ns/prov-o-20120312"/>
-        <owl:versionIRI rdf:resource="http://www.w3.org/ns/prov-o-20130430"/>
-    </owl:Ontology>
-    
-    <owl:Ontology rdf:about="http://www.w3.org/ns/prov#"/>
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Annotation properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#unqualifiedForm">
-        <rdfs:comment xml:lang="en">Classes and properties used to qualify relationships are annotated with prov:unqualifiedForm to indicate the property used to assert an unqualified provenance relation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#wasRevisionOf">
-        <rdfs:label>wasRevisionOf</rdfs:label>
-        <component>derivations</component>
-        <rdfs:comment xml:lang="en">A revision is a derivation that revises an entity into a revised version.</rdfs:comment>
-        <inverse>hadRevision</inverse>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedRevision"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#aq">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#sharesDefinitionWith">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#definition">
-        <rdfs:comment xml:lang="en">A definition quoted from PROV-DM or PROV-CONSTRAINTS that describes the concept expressed with this OWL term.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorialNote">
-        <rdfs:comment xml:lang="en">A note by the OWL development team about how this term expresses the PROV-DM concept, or how it should be used in context of semantic web or linked data.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;label">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#inverse">
-        <rdfs:comment xml:lang="en">PROV-O does not define all property inverses. The directionalities defined in PROV-O should be given preference over those not defined. However, if users wish to name the inverse of a PROV-O property, the local name given by prov:inverse should be used.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-o/#names-of-inverse-properties"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;comment">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#constraints">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-CONSTRAINTS document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;seeAlso">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&owl;versionInfo"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#specializationOf">
-        <rdfs:label>specializationOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-specialization</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-specialization</n>
-        <component>alternate</component>
-        <inverse>generalizationOf</inverse>
-        <category>expanded</category>
-        <definition xml:lang="en">An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#dm">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-DM document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#category">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into three categories, including &#39;starting-point&#39;, &#39;qualifed&#39;, and &#39;extended&#39;. This classification is used by the prov-o html document to gently introduce prov-o terms to its users. </rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#order">
-        <rdfs:comment xml:lang="en">The position that this OWL term should be listed within documentation. The scope of the documentation (e.g., among all terms, among terms within a prov:category, among properties applying to a particular class, etc.) is unspecified.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;isDefinedBy"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorsDefinition">
-        <rdfs:comment xml:lang="en">When the prov-o term does not have a definition drawn from prov-dm, and the prov-o editor provides one.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#definition"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#component">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into six components according to prov-dm, including &#39;agents-responsibility&#39;, &#39;alternate&#39;, &#39;annotations&#39;, &#39;collections&#39;, &#39;derivations&#39;, and &#39;entities-activities&#39;. This classification is used so that readers of prov-o specification can find its correspondence with the prov-dm specification.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#qualifiedForm">
-        <rdfs:comment xml:lang="en">This annotation property links a subproperty of prov:wasInfluencedBy with the subclass of prov:Influence and the qualifying property that are used to qualify it. 
-
-Example annotation:
-
-    prov:wasGeneratedBy prov:qualifiedForm prov:qualifiedGeneration, prov:Generation .
-
-Then this unqualified assertion:
-
-    :entity1 prov:wasGeneratedBy :activity1 .
-
-can be qualified by adding:
-
-   :entity1 prov:qualifiedGeneration :entity1Gen .
-   :entity1Gen 
-       a prov:Generation, prov:Influence;
-       prov:activity :activity1;
-       :customValue 1337 .
-
-Note how the value of the unqualified influence (prov:wasGeneratedBy :activity1) is mirrored as the value of the prov:activity (or prov:entity, or prov:agent) property on the influence class.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#todo"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#n">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-DM document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/prov#actedOnBehalfOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#actedOnBehalfOf">
-        <rdfs:label>actedOnBehalfOf</rdfs:label>
-        <component>agents-responsibility</component>
-        <inverse>hadDelegate</inverse>
-        <rdfs:comment xml:lang="en">An object property to express the accountability of an agent towards another agent. The subordinate agent acted on behalf of the responsible agent in an actual activity. </rdfs:comment>
-        <category>starting-point</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Delegation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedDelegation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedDelegation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#agent"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#activity -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#activity">
-        <rdfs:label>activity</rdfs:label>
-        <editorsDefinition>The prov:activity property references an prov:Activity which influenced a resource. This property applies to an prov:ActivityInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent.</editorsDefinition>
-        <inverse>activityOfInfluence</inverse>
-        <editorialNote xml:lang="en">This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple.</editorialNote>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#ActivityInfluence"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influencer"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#agent -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#agent">
-        <rdfs:label>agent</rdfs:label>
-        <editorsDefinition xml:lang="en">The prov:agent property references an prov:Agent which influenced a resource. This property applies to an prov:AgentInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent.</editorsDefinition>
-        <inverse>agentOfInfluence</inverse>
-        <editorialNote xml:lang="en">This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple.</editorialNote>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influencer"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#alternateOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#alternateOf">
-        <rdfs:label>alternateOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-alternate</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-alternate</n>
-        <definition xml:lang="en">Two alternate entities present aspects of the same thing. These aspects may be the same or different, and the alternate entities may or may not overlap in time.</definition>
-        <category>expanded</category>
-        <component>alternate</component>
-        <inverse>alternateOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#specializationOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#atLocation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#atLocation">
-        <rdfs:label>atLocation</rdfs:label>
-        <rdfs:comment xml:lang="en">The Location of any resource.</rdfs:comment>
-        <inverse>locationOf</inverse>
-        <editorialNote xml:lang="en">The naming of prov:atLocation parallels prov:atTime, and is not named prov:hadLocation to avoid conflicting with the convention that prov:had* properties are used on prov:Influence classes.</editorialNote>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <editorialNote xml:lang="en">This property is not functional because the many values could be at a variety of granularies (In this building, in this room, in that chair).</editorialNote>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Location"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Location"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#entity -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#entity">
-        <rdfs:label>entity</rdfs:label>
-        <editorsDefinition>The prov:entity property references an prov:Entity which influenced a resource. This property applies to an prov:EntityInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent.</editorsDefinition>
-        <inverse>entityOfInfluence</inverse>
-        <editorialNote xml:lang="en">This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple.</editorialNote>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influencer"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#generated -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#generated">
-        <rdfs:label>generated</rdfs:label>
-        <component>entities-activities</component>
-        <inverse>wasGeneratedBy</inverse>
-        <category>expanded</category>
-        <editorialNote xml:lang="en">prov:generated is one of few inverse property defined, to allow Activity-oriented assertions in addition to Entity-oriented assertions.</editorialNote>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influenced"/>
-        <owl:inverseOf rdf:resource="http://www.w3.org/ns/prov#wasGeneratedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadActivity -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadActivity">
-        <rdfs:label>hadActivity</rdfs:label>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <rdfs:comment xml:lang="en">The _optional_ Activity of an Influence, which used, generated, invalidated, or was the responsibility of some Entity. This property is _not_ used by ActivityInfluence (use prov:activity instead).</rdfs:comment>
-        <editorialNote xml:lang="en">The multiple rdfs:domain assertions are intended. One is simpler and works for OWL-RL, the union is more specific but is not recognized by OWL-RL.</editorialNote>
-        <component>derivations</component>
-        <category>qualified</category>
-        <inverse>wasActivityOfInfluence</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Delegation"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Derivation"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#End"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Start"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadGeneration -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadGeneration">
-        <rdfs:label>hadGeneration</rdfs:label>
-        <inverse>generatedAsDerivation</inverse>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Generation involved in an Entity&#39;s Derivation.</rdfs:comment>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadMember -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadMember">
-        <rdfs:label>hadMember</rdfs:label>
-        <category>expanded</category>
-        <component>expanded</component>
-        <inverse>wasMemberOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Collection"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Collection"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment xml:lang="en">A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections.</rdfs:comment>
-        <dm>http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-collection</dm>
-        <owl:annotatedProperty rdf:resource="&rdfs;range"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#hadMember"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadPlan -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadPlan">
-        <rdfs:label>hadPlan</rdfs:label>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <inverse>wasPlanOf</inverse>
-        <rdfs:comment xml:lang="en">The _optional_ Plan adopted by an Agent in Association with some Activity. Plan specifications are out of the scope of this specification.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Plan"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Plan"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadPrimarySource -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadPrimarySource">
-        <rdfs:label>hadPrimarySource</rdfs:label>
-        <component>derivations</component>
-        <category>expanded</category>
-        <inverse>wasPrimarySourceOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#PrimarySource"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedPrimarySource"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedPrimarySource"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>hadPrimarySource property is a particular case of wasDerivedFrom (see http://www.w3.org/TR/prov-dm/#term-original-source) that aims to give credit to the source that originated some information.</rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#hadPrimarySource"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadRole -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadRole">
-        <rdfs:label>hadRole</rdfs:label>
-        <component>agents-responsibility</component>
-        <inverse>wasRoleIn</inverse>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Role that an Entity assumed in the context of an Activity. For example, :baking prov:used :spoon; prov:qualified [ a prov:Usage; prov:entity :spoon; prov:hadRole roles:mixing_implement ].</rdfs:comment>
-        <editorsDefinition xml:lang="en">prov:hadRole references the Role (i.e. the function of an entity with respect to an activity), in the context of an instantaneous usage, generation, association, start, and end.</editorsDefinition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Role"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Role"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Association"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadUsage -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadUsage">
-        <rdfs:label>hadUsage</rdfs:label>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Usage involved in an Entity&#39;s Derivation.</rdfs:comment>
-        <inverse>wasUsedInDerivation</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#influenced -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#influenced">
-        <rdfs:label>influenced</rdfs:label>
-        <inverse>wasInfluencedBy</inverse>
-        <component>agents-responsibility</component>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <owl:inverseOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#influencer -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#influencer">
-        <rdfs:label>influencer</rdfs:label>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence</dm>
-        <category>qualified</category>
-        <inverse>hadInfluence</inverse>
-        <rdfs:comment xml:lang="en">Subproperties of prov:influencer are used to cite the object of an unqualified PROV-O triple whose predicate is a subproperty of prov:wasInfluencedBy (e.g. prov:used, prov:wasGeneratedBy). prov:influencer is used much like rdf:object is used.</rdfs:comment>
-        <editorialNote xml:lang="en">This property and its subproperties are used in the same way as the rdf:object property, i.e. to reference the object of an unqualified prov:wasInfluencedBy or prov:influenced triple.</editorialNote>
-        <editorsDefinition xml:lang="en">This property is used as part of the qualified influence pattern. Subclasses of prov:Influence use these subproperties to reference the resource (Entity, Agent, or Activity) whose influence is being qualified.</editorsDefinition>
-        <rdfs:range rdf:resource="&owl;Thing"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#invalidated -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#invalidated">
-        <rdfs:label>invalidated</rdfs:label>
-        <category>expanded</category>
-        <inverse>wasInvalidatedBy</inverse>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">prov:invalidated is one of few inverse property defined, to allow Activity-oriented assertions in addition to Entity-oriented assertions.</editorialNote>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influenced"/>
-        <owl:inverseOf rdf:resource="http://www.w3.org/ns/prov#wasInvalidatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedAssociation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedAssociation">
-        <rdfs:label>qualifiedAssociation</rdfs:label>
-        <inverse>qualifiedAssociationOf</inverse>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasAssociatedWith Agent :ag, then it can qualify the Association using prov:qualifiedAssociation [ a prov:Association;  prov:agent :ag; :foo :bar ].</rdfs:comment>
-        <component>agents-responsibility</component>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAssociatedWith"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedAttribution -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedAttribution">
-        <rdfs:label>qualifiedAttribution</rdfs:label>
-        <inverse>qualifiedAttributionOf</inverse>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasAttributedTo Agent :ag, then it can qualify how it was influenced using prov:qualifiedAttribution [ a prov:Attribution;  prov:agent :ag; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Attribution"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Attribution"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedCommunication -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedCommunication">
-        <rdfs:label>qualifiedCommunication</rdfs:label>
-        <inverse>qualifiedCommunicationOf</inverse>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasInformedBy Activity :a, then it can qualify how it was influenced using prov:qualifiedCommunication [ a prov:Communication;  prov:activity :a; :foo :bar ].</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedDelegation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedDelegation">
-        <rdfs:label>qualifiedDelegation</rdfs:label>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">If this Agent prov:actedOnBehalfOf Agent :ag, then it can qualify how with prov:qualifiedResponsibility [ a prov:Responsibility;  prov:agent :ag; :foo :bar ].</rdfs:comment>
-        <inverse>qualifiedDelegationOf</inverse>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Delegation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Delegation"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#actedOnBehalfOf"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedDerivation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedDerivation">
-        <rdfs:label>qualifiedDerivation</rdfs:label>
-        <component>derivations</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasDerivedFrom Entity :e, then it can qualify how it was derived using prov:qualifiedDerivation [ a prov:Derivation;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <inverse>qualifiedDerivationOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedEnd -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedEnd">
-        <rdfs:label>qualifiedEnd</rdfs:label>
-        <category>qualified</category>
-        <inverse>qualifiedEndOf</inverse>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasEndedBy Entity :e1, then it can qualify how it was ended using prov:qualifiedEnd [ a prov:End;  prov:entity :e1; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasEndedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedGeneration -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedGeneration">
-        <rdfs:label>qualifiedGeneration</rdfs:label>
-        <inverse>qualifiedGenerationOf</inverse>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">If this Activity prov:generated Entity :e, then it can qualify how it performed the Generation using prov:qualifiedGeneration [ a prov:Generation;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasGeneratedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedInfluence -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedInfluence">
-        <rdfs:label>qualifiedInfluence</rdfs:label>
-        <rdfs:comment xml:lang="en">Because prov:qualifiedInfluence is a broad relation, the more specific relations (qualifiedCommunication, qualifiedDelegation, qualifiedEnd, etc.) should be used when applicable.</rdfs:comment>
-        <category>qualified</category>
-        <inverse>qualifiedInfluenceOf</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedInvalidation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedInvalidation">
-        <rdfs:label>qualifiedInvalidation</rdfs:label>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasInvalidatedBy Activity :a, then it can qualify how it was invalidated using prov:qualifiedInvalidation [ a prov:Invalidation;  prov:activity :a; :foo :bar ].</rdfs:comment>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <inverse>qualifiedInvalidationOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInvalidatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedPrimarySource -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedPrimarySource">
-        <rdfs:label>qualifiedPrimarySource</rdfs:label>
-        <rdfs:comment xml:lang="en">If this Entity prov:hadPrimarySource Entity :e, then it can qualify how using prov:qualifiedPrimarySource [ a prov:PrimarySource; prov:entity :e; :foo :bar ].</rdfs:comment>
-        <component>derivations</component>
-        <category>qualified</category>
-        <inverse>qualifiedSourceOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#PrimarySource"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#PrimarySource"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#hadPrimarySource"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedQuotation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedQuotation">
-        <rdfs:label>qualifiedQuotation</rdfs:label>
-        <category>qualified</category>
-        <inverse>qualifiedQuotationOf</inverse>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasQuotedFrom Entity :e, then it can qualify how using prov:qualifiedQuotation [ a prov:Quotation;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Quotation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Quotation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasQuotedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedRevision -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedRevision">
-        <rdfs:label>qualifiedRevision</rdfs:label>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasRevisionOf Entity :e, then it can qualify how it was revised using prov:qualifiedRevision [ a prov:Revision;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <category>qualified</category>
-        <inverse>revisedEntity</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasRevisionOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedStart -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedStart">
-        <rdfs:label>qualifiedStart</rdfs:label>
-        <inverse>qualifiedStartOf</inverse>
-        <category>qualified</category>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasStartedBy Entity :e1, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start;  prov:entity :e1; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasStartedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedUsage -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedUsage">
-        <rdfs:label>qualifiedUsage</rdfs:label>
-        <category>qualified</category>
-        <inverse>qualifiedUsingActivity</inverse>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:used Entity :e, then it can qualify how it used it using prov:qualifiedUsage [ a prov:Usage; prov:entity :e; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#used"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#specializationOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#specializationOf">
-        <rdfs:label>specializationOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-specialization</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-specialization</n>
-        <component>alternate</component>
-        <category>expanded</category>
-        <inverse>generalizationOf</inverse>
-        <definition xml:lang="en">An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#used -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#used">
-        <rdfs:label>used</rdfs:label>
-        <inverse>wasUsedBy</inverse>
-        <rdfs:comment xml:lang="en">A prov:Entity that was used by this prov:Activity. For example, :baking prov:used :spoon, :egg, :oven .</rdfs:comment>
-        <category>starting-point</category>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedUsage"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedUsage"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasAssociatedWith -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasAssociatedWith">
-        <rdfs:label>wasAssociatedWith</rdfs:label>
-        <component>agents-responsibility</component>
-        <inverse>wasAssociateFor</inverse>
-        <rdfs:comment xml:lang="en">An prov:Agent that had some (unspecified) responsibility for the occurrence of this prov:Activity.</rdfs:comment>
-        <category>starting-point</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedAssociation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedAssociation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#agent"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasAttributedTo -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasAttributedTo">
-        <rdfs:label>wasAttributedTo</rdfs:label>
-        <component>agents-responsibility</component>
-        <category>starting-point</category>
-        <inverse>contributed</inverse>
-        <definition xml:lang="en">Attribution is the ascribing of an entity to an agent.</definition>
-        <rdfs:comment xml:lang="en">Attribution is the ascribing of an entity to an agent.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Attribution"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedAttribution"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedAttribution"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#agent"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Attribution is a particular case of trace (see http://www.w3.org/TR/prov-dm/#concept-trace), in the sense that it links an entity to the agent that ascribed it.</rdfs:comment>
-        <definition>IF wasAttributedTo(e2,ag1,aAttr) holds, THEN wasInfluencedBy(e2,ag1) also holds. </definition>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasAttributedTo"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasDerivedFrom -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasDerivedFrom">
-        <rdfs:label>wasDerivedFrom</rdfs:label>
-        <inverse>hadDerivation</inverse>
-        <definition xml:lang="en">A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.</definition>
-        <category>starting-point</category>
-        <rdfs:comment xml:lang="en">The more specific subproperties of prov:wasDerivedFrom (i.e., prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource) should be used when applicable.</rdfs:comment>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedDerivation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedDerivation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Derivation is a particular case of trace (see http://www.w3.org/TR/prov-dm/#term-trace), since it links an entity to another entity that contributed to its existence.</rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasEndedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasEndedBy">
-        <rdfs:label>wasEndedBy</rdfs:label>
-        <category>expanded</category>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">End is when an activity is deemed to have ended. An end may refer to an entity, known as trigger, that terminated the activity.</rdfs:comment>
-        <inverse>ended</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedEnd"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedEnd"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasGeneratedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasGeneratedBy">
-        <rdfs:label>wasGeneratedBy</rdfs:label>
-        <inverse>generated</inverse>
-        <category>starting-point</category>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedGeneration"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedGeneration"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#activity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasInfluencedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasInfluencedBy">
-        <rdfs:label>wasInfluencedBy</rdfs:label>
-        <rdfs:comment xml:lang="en">Because prov:wasInfluencedBy is a broad relation, its more specific subproperties (e.g. prov:wasInformedBy, prov:actedOnBehalfOf, prov:wasEndedBy, etc.) should be used when applicable.</rdfs:comment>
-        <editorialNote xml:lang="en">The sub-properties of prov:wasInfluencedBy can be elaborated in more detail using the Qualification Pattern. For example, the binary relation :baking prov:used :spoon can be qualified by asserting :baking prov:qualifiedUsage [ a prov:Usage; prov:entity :spoon; prov:atLocation :kitchen ] .
-
-Subproperties of prov:wasInfluencedBy may also be asserted directly without being qualified.
-
-prov:wasInfluencedBy should not be used without also using one of its subproperties. 
-</editorialNote>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <category>qualified</category>
-        <inverse>influenced</inverse>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-        <rdfs:range>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:range>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <definition>influencer: an identifier (o1) for an ancestor entity, activity, or agent that the former depends on;</definition>
-        <dm>http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence</dm>
-        <owl:annotatedProperty rdf:resource="&rdfs;range"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:annotatedTarget>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </owl:annotatedTarget>
-    </owl:Axiom>
-    <owl:Axiom>
-        <definition>influencee: an identifier (o2) for an entity, activity, or agent; </definition>
-        <dm>http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence</dm>
-        <owl:annotatedProperty rdf:resource="&rdfs;domain"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:annotatedTarget>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </owl:annotatedTarget>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasInformedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasInformedBy">
-        <rdfs:label>wasInformedBy</rdfs:label>
-        <inverse>informed</inverse>
-        <rdfs:comment xml:lang="en">An activity a2 is dependent on or informed by another activity a1, by way of some unspecified entity that is generated by a1 and used by a2.</rdfs:comment>
-        <category>starting-point</category>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedCommunication"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedCommunication"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#activity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasInvalidatedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasInvalidatedBy">
-        <rdfs:label>wasInvalidatedBy</rdfs:label>
-        <component>entities-activities</component>
-        <inverse>invalidated</inverse>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedInvalidation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedInvalidation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#activity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasQuotedFrom -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasQuotedFrom">
-        <rdfs:label>wasQuotedFrom</rdfs:label>
-        <category>expanded</category>
-        <component>derivations</component>
-        <inverse>quotedAs</inverse>
-        <rdfs:comment xml:lang="en">An entity is derived from an original entity by copying, or &#39;quoting&#39;, some or all of it.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Quotation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedQuotation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedQuotation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Quotation is a particular case of derivation (see http://www.w3.org/TR/prov-dm/#term-quotation) in which an entity is derived from an original entity by copying, or &quot;quoting&quot;, some or all of it. </rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasQuotedFrom"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasRevisionOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasRevisionOf">
-        <rdfs:label>wasRevisionOf</rdfs:label>
-        <rdfs:comment xml:lang="en">A revision is a derivation that revises an entity into a revised version.</rdfs:comment>
-        <component>derivations</component>
-        <inverse>hadRevision</inverse>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedRevision"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedRevision"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Revision is a derivation (see http://www.w3.org/TR/prov-dm/#term-Revision). Moreover, according to 
-http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#term-Revision 23 April 2012 &#39;wasRevisionOf is a strict sub-relation of wasDerivedFrom since two entities e2 and e1 may satisfy wasDerivedFrom(e2,e1) without being a variant of each other.&#39;</rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasRevisionOf"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasStartedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasStartedBy">
-        <rdfs:label>wasStartedBy</rdfs:label>
-        <inverse>started</inverse>
-        <category>expanded</category>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">Start is when an activity is deemed to have started. A start may refer to an entity, known as trigger, that initiated the activity.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedStart"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedStart"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/prov#atTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#atTime">
-        <rdfs:label>atTime</rdfs:label>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The time at which an InstantaneousEvent occurred, in the form of xsd:dateTime.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#endedAtTime"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#generatedAtTime"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#invalidatedAtTime"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#startedAtTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#endedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#endedAtTime">
-        <rdfs:label>endedAtTime</rdfs:label>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedEnd o prov:atTime) rdfs:subPropertyOf prov:endedAtTime.</editorialNote>
-        <rdfs:comment xml:lang="en">The time at which an activity ended. See also prov:startedAtTime.</rdfs:comment>
-        <category>starting-point</category>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#generatedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#generatedAtTime">
-        <rdfs:label>generatedAtTime</rdfs:label>
-        <category>expanded</category>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedGeneration o prov:atTime) rdfs:subPropertyOf prov:generatedAtTime.</editorialNote>
-        <rdfs:comment xml:lang="en">The time at which an entity was completely created and is available for use.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#invalidatedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#invalidatedAtTime">
-        <rdfs:label>invalidatedAtTime</rdfs:label>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedInvalidation o prov:atTime) rdfs:subPropertyOf prov:invalidatedAtTime.</editorialNote>
-        <category>expanded</category>
-        <rdfs:comment xml:lang="en">The time at which an entity was invalidated (i.e., no longer usable).</rdfs:comment>
-        <component>entities-activities</component>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#startedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#startedAtTime">
-        <rdfs:label>startedAtTime</rdfs:label>
-        <category>starting-point</category>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedStart o prov:atTime) rdfs:subPropertyOf prov:startedAtTime.</editorialNote>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">The time at which an activity started. See also prov:endedAtTime.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#value -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#value">
-        <rdfs:label>value</rdfs:label>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribute-value</dm>
-        <category>expanded</category>
-        <editorialNote>The editor&#39;s definition comes from http://www.w3.org/TR/rdf-primer/#rdfvalue</editorialNote>
-        <definition xml:lang="en">Provides a value that is a direct representation of an entity.</definition>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">This property serves the same purpose as rdf:value, but has been reintroduced to avoid some of the definitional ambiguity in the RDF specification (specifically, &#39;may be used in describing structured values&#39;).</editorialNote>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Classes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/2002/07/owl#Thing -->
-
-    <owl:Class rdf:about="&owl;Thing"/>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Activity -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Activity">
-        <rdfs:label>Activity</rdfs:label>
-        <owl:disjointWith rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Activity</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Activity</n>
-        <component>entities-activities</component>
-        <category>starting-point</category>
-        <definition>An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#ActivityInfluence -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#ActivityInfluence">
-        <rdfs:label>ActivityInfluence</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://www.w3.org/ns/prov#hadActivity"/>
-                <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">0</owl:maxCardinality>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <owl:disjointWith rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <editorsDefinition xml:lang="en">ActivitiyInfluence is the capacity of an activity to have an effect on the character, development, or behavior of another by means of generation, invalidation, communication, or other.</editorsDefinition>
-        <rdfs:comment xml:lang="en">ActivityInfluence provides additional descriptions of an Activity&#39;s binary influence upon any other kind of resource. Instances of ActivityInfluence use the prov:activity property to cite the influencing Activity.</rdfs:comment>
-        <rdfs:comment xml:lang="en">It is not recommended that the type ActivityInfluence be asserted without also asserting one of its more specific subclasses.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#activity"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Agent -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Agent">
-        <rdfs:label>Agent</rdfs:label>
-        <owl:disjointWith rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Agent</n>
-        <definition xml:lang="en">An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent&#39;s activity. </definition>
-        <category>starting-point</category>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#AgentInfluence -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#AgentInfluence">
-        <rdfs:label>AgentInfluence</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <editorsDefinition xml:lang="en">AgentInfluence is the capacity of an agent to have an effect on the character, development, or behavior of another by means of attribution, association, delegation, or other.</editorsDefinition>
-        <rdfs:comment xml:lang="en">AgentInfluence provides additional descriptions of an Agent&#39;s binary influence upon any other kind of resource. Instances of AgentInfluence use the prov:agent property to cite the influencing Agent.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">It is not recommended that the type AgentInfluence be asserted without also asserting one of its more specific subclasses.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#agent"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Association -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Association">
-        <rdfs:label>Association</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Association</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Association</n>
-        <component>agents-responsibility</component>
-        <rdfs:comment xml:lang="en">An instance of prov:Association provides additional descriptions about the binary prov:wasAssociatedWith relation from an prov:Activity to some prov:Agent that had some responsiblity for it. For example, :baking prov:wasAssociatedWith :baker; prov:qualifiedAssociation [ a prov:Association; prov:agent :baker; :foo :bar ].</rdfs:comment>
-        <category>qualified</category>
-        <definition xml:lang="en">An activity association is an assignment of responsibility to an agent for an activity, indicating that the agent had a role in the activity. It further allows for a plan to be specified, which is the plan intended by the agent to achieve some goals in the context of this activity.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAssociatedWith"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Attribution -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Attribution">
-        <rdfs:label>Attribution</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribution</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-attribution</n>
-        <rdfs:comment xml:lang="en">An instance of prov:Attribution provides additional descriptions about the binary prov:wasAttributedTo relation from an prov:Entity to some prov:Agent that had some responsible for it. For example, :cake prov:wasAttributedTo :baker; prov:qualifiedAttribution [ a prov:Attribution; prov:entity :baker; :foo :bar ].</rdfs:comment>
-        <definition xml:lang="en">Attribution is the ascribing of an entity to an agent.
-
-When an entity e is attributed to agent ag, entity e was generated by some unspecified activity that in turn was associated to agent ag. Thus, this relation is useful when the activity is not known, or irrelevant.</definition>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAttributedTo"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Bundle -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Bundle">
-        <rdfs:label>Bundle</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-bundle-entity</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-bundle-declaration</n>
-        <category>expanded</category>
-        <definition xml:lang="en">A bundle is a named set of provenance descriptions, and is itself an Entity, so allowing provenance of provenance to be expressed.</definition>
-        <rdfs:comment xml:lang="en">Note that there are kinds of bundles (e.g. handwritten letters, audio recordings, etc.) that are not expressed in PROV-O, but can be still be described by PROV-O.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Collection -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Collection">
-        <rdfs:label>Collection</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-collection</dm>
-        <component>collections</component>
-        <category>expanded</category>
-        <definition xml:lang="en">A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Communication -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Communication">
-        <rdfs:label>Communication</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#ActivityInfluence"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Communication</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-wasInformedBy</n>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">An instance of prov:Communication provides additional descriptions about the binary prov:wasInformedBy relation from an informed prov:Activity to the prov:Activity that informed it. For example, :you_jumping_off_bridge prov:wasInformedBy :everyone_else_jumping_off_bridge; prov:qualifiedCommunication [ a prov:Communication; prov:activity :everyone_else_jumping_off_bridge; :foo :bar ].</rdfs:comment>
-        <definition>Communication is the exchange of an entity by two activities, one activity using the entity generated by the other.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInformedBy"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Delegation -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Delegation">
-        <rdfs:label>Delegation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-delegation</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-delegation</n>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">An instance of prov:Delegation provides additional descriptions about the binary prov:actedOnBehalfOf relation from a performing prov:Agent to some prov:Agent for whom it was performed. For example, :mixing prov:wasAssociatedWith :toddler . :toddler prov:actedOnBehalfOf :mother; prov:qualifiedDelegation [ a prov:Delegation; prov:entity :mother; :foo :bar ].</rdfs:comment>
-        <definition xml:lang="en">Delegation is the assignment of authority and responsibility to an agent (by itself or by another agent) to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work.
-
-For example, a student acted on behalf of his supervisor, who acted on behalf of the department chair, who acted on behalf of the university; all those agents are responsible in some way for the activity that took place but we do not say explicitly who bears responsibility and to what degree.</definition>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#actedOnBehalfOf"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Derivation -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Derivation">
-        <rdfs:label>Derivation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Derivation</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#Derivation-Relation</n>
-        <definition xml:lang="en">A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.</definition>
-        <component>derivations</component>
-        <rdfs:comment xml:lang="en">An instance of prov:Derivation provides additional descriptions about the binary prov:wasDerivedFrom relation from some derived prov:Entity to another prov:Entity from which it was derived. For example, :chewed_bubble_gum prov:wasDerivedFrom :unwrapped_bubble_gum; prov:qualifiedDerivation [ a prov:Derivation; prov:entity :unwrapped_bubble_gum; :foo :bar ].</rdfs:comment>
-        <rdfs:comment xml:lang="en">The more specific forms of prov:Derivation (i.e., prov:Revision, prov:Quotation, prov:PrimarySource) should be asserted if they apply.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#EmptyCollection -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#EmptyCollection">
-        <rdfs:label xml:lang="en">EmptyCollection</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Collection"/>
-        <category>expanded</category>
-        <component>collections</component>
-        <definition xml:lang="en">An empty collection is a collection without members.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#End -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#End">
-        <rdfs:label>End</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-End</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-End</n>
-        <rdfs:comment xml:lang="en">An instance of prov:End provides additional descriptions about the binary prov:wasEndedBy relation from some ended prov:Activity to an prov:Entity that ended it. For example, :ball_game prov:wasEndedBy :buzzer; prov:qualifiedEnd [ a prov:End; prov:entity :buzzer; :foo :bar; prov:atTime &#39;2012-03-09T08:05:08-05:00&#39;^^xsd:dateTime ].</rdfs:comment>
-        <category>qualified</category>
-        <definition xml:lang="en">End is when an activity is deemed to have been ended by an entity, known as trigger. The activity no longer exists after its end. Any usage, generation, or invalidation involving an activity precedes the activity&#39;s end. An end may refer to a trigger entity that terminated the activity, or to an activity, known as ender that generated the trigger.</definition>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasEndedBy"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Entity -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Entity">
-        <rdfs:label>Entity</rdfs:label>
-        <owl:disjointWith rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-entity</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Entity</n>
-        <component>entities-activities</component>
-        <definition xml:lang="en">An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary. </definition>
-        <category>starting-point</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#EntityInfluence -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#EntityInfluence">
-        <rdfs:label>EntityInfluence</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <editorsDefinition xml:lang="en">EntityInfluence is the capacity of an entity to have an effect on the character, development, or behavior of another by means of usage, start, end, derivation, or other. </editorsDefinition>
-        <rdfs:comment xml:lang="en">EntityInfluence provides additional descriptions of an Entity&#39;s binary influence upon any other kind of resource. Instances of EntityInfluence use the prov:entity property to cite the influencing Entity.</rdfs:comment>
-        <rdfs:comment xml:lang="en">It is not recommended that the type EntityInfluence be asserted without also asserting one of its more specific subclasses.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#entity"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Generation -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Generation">
-        <rdfs:label>Generation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#ActivityInfluence"/>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Generation</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Generation</n>
-        <rdfs:comment xml:lang="en">An instance of prov:Generation provides additional descriptions about the binary prov:wasGeneratedBy relation from a generated prov:Entity to the prov:Activity that generated it. For example, :cake prov:wasGeneratedBy :baking; prov:qualifiedGeneration [ a prov:Generation; prov:activity :baking; :foo :bar ].</rdfs:comment>
-        <category>qualified</category>
-        <component>entities-activities</component>
-        <definition xml:lang="en">Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasGeneratedBy"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Influence -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Influence">
-        <rdfs:label>Influence</rdfs:label>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-influence</n>
-        <component>derivations</component>
-        <rdfs:comment xml:lang="en">An instance of prov:Influence provides additional descriptions about the binary prov:wasInfluencedBy relation from some influenced Activity, Entity, or Agent to the influencing Activity, Entity, or Agent. For example, :stomach_ache prov:wasInfluencedBy :spoon; prov:qualifiedInfluence [ a prov:Influence; prov:entity :spoon; :foo :bar ] . Because prov:Influence is a broad relation, the more specific relations (Communication, Delegation, End, etc.) should be used when applicable.</rdfs:comment>
-        <rdfs:comment xml:lang="en">Because prov:Influence is a broad relation, its most specific subclasses (e.g. prov:Communication, prov:Delegation, prov:End, prov:Revision, etc.) should be used when applicable.</rdfs:comment>
-        <category>qualified</category>
-        <definition xml:lang="en">Influence is the capacity of an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#InstantaneousEvent -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#InstantaneousEvent">
-        <rdfs:label>InstantaneousEvent</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#dfn-event</constraints>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">An instantaneous event, or event for short, happens in the world and marks a change in the world, in its activities and in its entities. The term &#39;event&#39; is commonly used in process algebra with a similar meaning. Events represent communications or interactions; they are assumed to be atomic and instantaneous.</rdfs:comment>
-        <definition xml:lang="en">The PROV data model is implicitly based on a notion of instantaneous events (or just events), that mark transitions in the world. Events include generation, usage, or invalidation of entities, as well as starting or ending of activities. This notion of event is not first-class in the data model, but it is useful for explaining its other concepts and its semantics.</definition>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Invalidation -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Invalidation">
-        <rdfs:label>Invalidation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#ActivityInfluence"/>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Invalidation</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Invalidation</n>
-        <component>entities-activities</component>
-        <definition>Invalidation is the start of the destruction, cessation, or expiry of an existing entity by an activity. The entity is no longer available for use (or further invalidation) after invalidation. Any generation or usage of an entity precedes its invalidation.</definition>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">An instance of prov:Invalidation provides additional descriptions about the binary prov:wasInvalidatedBy relation from an invalidated prov:Entity to the prov:Activity that invalidated it. For example, :uncracked_egg prov:wasInvalidatedBy :baking; prov:qualifiedInvalidation [ a prov:Invalidation; prov:activity :baking; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInvalidatedBy"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Location -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Location">
-        <rdfs:label>Location</rdfs:label>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribute-location</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-attribute</n>
-        <definition xml:lang="en">A location can be an identifiable geographic place (ISO 19112), but it can also be a non-geographic place such as a directory, row, or column. As such, there are numerous ways in which location can be expressed, such as by a coordinate, address, landmark, and so forth.</definition>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#atLocation"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Organization -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Organization">
-        <rdfs:label>Organization</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-types</n>
-        <definition>An organization is a social or legal institution such as a company, society, etc.</definition>
-        <category>expanded</category>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Person -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Person">
-        <rdfs:label>Person</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-types</n>
-        <category>expanded</category>
-        <component>agents-responsibility</component>
-        <definition xml:lang="en">Person agents are people.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Plan -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Plan">
-        <rdfs:label>Plan</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Association</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Association</n>
-        <definition>A plan is an entity that represents a set of actions or steps intended by one or more agents to achieve some goals.</definition>
-        <category>expanded</category>
-        <rdfs:comment xml:lang="en">There exist no prescriptive requirement on the nature of plans, their representation, the actions or steps they consist of, or their intended goals. Since plans may evolve over time, it may become necessary to track their provenance, so plans themselves are entities. Representing the plan explicitly in the provenance can be useful for various tasks: for example, to validate the execution as represented in the provenance record, to manage expectation failures, or to provide explanations.</rdfs:comment>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#PrimarySource -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#PrimarySource">
-        <rdfs:label>PrimarySource</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-primary-source</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-original-source</n>
-        <category>qualified</category>
-        <component>derivations</component>
-        <definition xml:lang="en">A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic&#39;s study, without benefit from hindsight.
-
-Because of the directness of primary sources, they &#39;speak for themselves&#39; in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated.
-
-A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application&#39;s domain.</definition>
-        <rdfs:comment xml:lang="en">An instance of prov:PrimarySource provides additional descriptions about the binary prov:hadPrimarySource relation from some secondary prov:Entity to an earlier, primary prov:Entity. For example, :blog prov:hadPrimarySource :newsArticle; prov:qualifiedPrimarySource [ a prov:PrimarySource; prov:entity :newsArticle; :foo :bar ] .</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#hadPrimarySource"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Quotation -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Quotation">
-        <rdfs:label>Quotation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-quotation</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-quotation</n>
-        <rdfs:comment xml:lang="en">An instance of prov:Quotation provides additional descriptions about the binary prov:wasQuotedFrom relation from some taken prov:Entity from an earlier, larger prov:Entity. For example, :here_is_looking_at_you_kid prov:wasQuotedFrom :casablanca_script; prov:qualifiedQuotation [ a prov:Quotation; prov:entity :casablanca_script; :foo :bar ].</rdfs:comment>
-        <component>derivations</component>
-        <category>qualified</category>
-        <definition xml:lang="en">A quotation is the repeat of (some or all of) an entity, such as text or image, by someone who may or may not be its original author. Quotation is a particular case of derivation.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasQuotedFrom"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Revision -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Revision">
-        <rdfs:label>Revision</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-revision</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Revision</n>
-        <component>derivations</component>
-        <category>qualified</category>
-        <definition xml:lang="en">A revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation.</definition>
-        <rdfs:comment xml:lang="en">An instance of prov:Revision provides additional descriptions about the binary prov:wasRevisionOf relation from some newer prov:Entity to an earlier prov:Entity. For example, :draft_2 prov:wasRevisionOf :draft_1; prov:qualifiedRevision [ a prov:Revision; prov:entity :draft_1; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasRevisionOf"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Role -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Role">
-        <rdfs:label>Role</rdfs:label>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribute-role</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-attribute</n>
-        <definition xml:lang="en">A role is the function of an entity or agent with respect to an activity, in the context of a usage, generation, invalidation, association, start, and end.</definition>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#hadRole"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#SoftwareAgent -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#SoftwareAgent">
-        <rdfs:label>SoftwareAgent</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-types</n>
-        <component>agents-responsibility</component>
-        <definition xml:lang="en">A software agent is running software.</definition>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Start -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Start">
-        <rdfs:label>Start</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Start</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Start</n>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">An instance of prov:Start provides additional descriptions about the binary prov:wasStartedBy relation from some started prov:Activity to an prov:Entity that started it. For example, :foot_race prov:wasStartedBy :bang; prov:qualifiedStart [ a prov:Start; prov:entity :bang; :foo :bar; prov:atTime &#39;2012-03-09T08:05:08-05:00&#39;^^xsd:dateTime ] .</rdfs:comment>
-        <definition xml:lang="en">Start is when an activity is deemed to have been started by an entity, known as trigger. The activity did not exist before its start. Any usage, generation, or invalidation involving an activity follows the activity&#39;s start. A start may refer to a trigger entity that set off the activity, or to an activity, known as starter, that generated the trigger.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasStartedBy"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Usage -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Usage">
-        <rdfs:label>Usage</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Usage</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Usage</n>
-        <rdfs:comment xml:lang="en">An instance of prov:Usage provides additional descriptions about the binary prov:used relation from some prov:Activity to an prov:Entity that it used. For example, :keynote prov:used :podium; prov:qualifiedUsage [ a prov:Usage; prov:entity :podium; :foo :bar ].</rdfs:comment>
-        <definition xml:lang="en">Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.</definition>
-        <category>qualified</category>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#used"/>
-    </owl:Class>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Individuals
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/prov#EmptyCollection -->
-
-    <owl:NamedIndividual rdf:about="http://www.w3.org/ns/prov#EmptyCollection">
-        <rdfs:label xml:lang="en">EmptyCollection</rdfs:label>
-        <category>expanded</category>
-        <component>collections</component>
-        <definition xml:lang="en">An empty collection is a collection without members.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:NamedIndividual>
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.1.0.20069) http://owlapi.sourceforge.net -->
-
diff --git a/taverna-robundle/src/main/resources/ontologies/ro.owl b/taverna-robundle/src/main/resources/ontologies/ro.owl
deleted file mode 100644
index c64f5ae..0000000
--- a/taverna-robundle/src/main/resources/ontologies/ro.owl
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   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.
--->
-<!-- Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp -->
-<!--     using base file:///home/stain/stuff/src/wf4ever/ro/ro.owl-->
-
-
-<rdf:RDF xmlns="http://www.w3.org/2002/07/owl#"
-    xmlns:owl="http://www.w3.org/2002/07/owl#"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
-
-    <Ontology rdf:about="http://purl.org/wf4ever/ro">
-        <rdfs:comment xml:lang="en">This ontology shows how AO and ORE ontologies can be used together to define a ResearchObject. This ontology is further customized by the wf4ever ontology.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.wf4ever-project.org/wiki/display/docs/Research+Object+Vocabulary+Specification"/>
-        <imports rdf:resource="http://purl.org/NET/dc_owl2dl/terms_od"/>
-        <imports rdf:resource="http://purl.org/ao/core/"/>
-        <imports rdf:resource="http://purl.org/wf4ever/ore-owl"/>
-        <imports rdf:resource="http://xmlns.com/foaf/0.1/"/>
-        <versionIRI rdf:resource="https://raw.github.com/wf4ever/ro/0.1/ro.owl"/>
-    </Ontology>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#AggregatedAnnotation">
-        <rdfs:comment xml:lang="en">An annotation aggregated within an ro:ResearchObject.  
-
-Instances of this class are used to annotated resources aggregated within the aggregating research object, proxies of these resources, or the research object itself. In other words, if :ro is the ro:ResearchObject this annotation has been ore:isAggregatedBy, then the annotation should have at least one ao:annotatesResource which is an ore:AggregatedResource which is ore:isAggregatedBy :ro, or the annotated resource is an ore:Proxy which ore:proxyIn :ro, or the annotated resource is :ro.
-
-It is possible for the annotation to also annotate non-aggregated resources, but as above, at least one of them needs to be part of the RO or the RO itself.
-
-As a subclass of ro:SemanticAnnotation the ao:body must point to an rdfg:Graph which contains the actual annotation. </rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://purl.org/wf4ever/ro#SemanticAnnotation"/>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/AggregatedResource"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/isAggregatedBy"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/ao/annotatesResource"/>
-            <someValuesFrom rdf:parseType="Resource">
-                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-                <unionOf rdf:parseType="Resource">
-                    <rdf:first rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-                    <rdf:rest rdf:parseType="Resource">
-                        <rdf:first rdf:resource="http://www.openarchives.org/ore/terms/AggregatedResource"/>
-                        <rdf:rest rdf:parseType="Resource">
-                            <rdf:first rdf:resource="http://www.openarchives.org/ore/terms/Proxy"/>
-                            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
-                        </rdf:rest>
-                    </rdf:rest>
-                </unionOf>
-            </someValuesFrom>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/created"/>
-            <someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/creator"/>
-            <someValuesFrom rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-        </rdfs:subClassOf>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#Folder">
-        <rdfs:comment xml:lang="en">An ro:Folder is a special kind of ore:Aggregation where every ro:AggregatedResource must have a ro:FolderEntry proxy with a unique ro:entryName within that folder.
-
-Note that all resources which are aggregated within an (potentially nested) ro:Folder SHOULD also be aggregated by the same ro:ResearchObject this ro:Folder is aggregated within.
-
-Such folders can be nested and (optionally) used to organize the resources of the research object into a file-like structure. All such resources should also be aggregated by the ro:ResearchObject
-          </rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://purl.org/wf4ever/ro#Resource"/>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#FolderEntry">
-        <rdfs:comment xml:lang="en">An ro:FolderEntry is any ore:Proxy instance that associates a resources aggregated within an ro:Folder with a ro:entryName. This name is (case-sensitive) unique within a given folder.</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/Proxy"/>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/wf4ever/ro#entryName"/>
-            <someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-        </equivalentClass>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/proxyIn"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#Folder"/>
-        </equivalentClass>
-        <hasKey rdf:parseType="Resource">
-            <rdf:first rdf:resource="http://www.openarchives.org/ore/terms/proxyIn"/>
-            <rdf:rest rdf:parseType="Resource">
-                <rdf:first rdf:resource="http://purl.org/wf4ever/ro#entryName"/>
-                <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
-            </rdf:rest>
-        </hasKey>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#Manifest">
-        <rdfs:comment xml:lang="en">The ro:Manifest is used to describe an ro:ResearchObject. This identifies the resource for the manifest which lists all the aggregations of the research object, typically called ".ro/manifest.rdf" relative to the research object this manifest ore:describes.</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/ResourceMap"/>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/describes"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-        </equivalentClass>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#ResearchObject">
-        <rdfs:comment xml:lang="en">A research object aggregates a number of resources. A resource can be a workflow, web service, document, data item, data set, workflow run, software or a research object.</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/created"/>
-            <someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/creator"/>
-            <someValuesFrom rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-        </rdfs:subClassOf>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/isDescribedBy"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#Manifest"/>
-        </equivalentClass>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#Resource">
-        <rdfs:comment xml:lang="en">An ro:Resource is an ore:AggregatedResource which ore:isAggregatedBy an ro:ResearchObject. 
-
-This specialisation requires that there exists an ore:Proxy which is ore:proxyFor this resource, and which is ore:proxyIn the same ro:ResearchObject the resource ore:isAggregatedBy. Any annotations on such a proxy will descrive the ro:Resource within that particular ro:ResearchObject, in particular dct:creator and dct:created on the proxy will specify who added the resource to the aggregation at what time.
-
-Note that annotations (ro:AggregatedAnnotation) can be added to both the ro:Resource and the ore:Proxy - depending on if the annotation is seen to be globally true (such as the provenance of how the resource was created) or locally true within the Research Object (such as the the resource playing the role of a wf4ever:Dataset).
-
-Not all resources aggregated by an ro:ResearchObject are ro:Resource instances, in particular ro:AggregatedAnnotations will also be aggregated, but will not be "true" RO resources (and thus don't need their own ore:Proxy).  
-
-Aggregated resources MAY also be organised in (potentially nested) ro:Folders to reflect a file-system like structure. Note that any such resources SHOULD also be aggregated in the "mother" ro:ResearchObject.
-</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/AggregatedResource"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/isAggregatedBy"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:parseType="Resource">
-                <inverseOf rdf:resource="http://www.openarchives.org/ore/terms/proxyFor"/>
-            </onProperty>
-            <someValuesFrom rdf:parseType="Resource">
-                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                <onProperty rdf:resource="http://www.openarchives.org/ore/terms/proxyIn"/>
-                <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-            </someValuesFrom>
-        </rdfs:subClassOf>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#SemanticAnnotation">
-        <rdfs:comment xml:lang="en">An ro:SemanticAnnotation is a specialisation of ao:Annotation which requires that ao:body points to an RDF Graph.
-
-This might be a Named Graph or a resource which can be resolved separately from the URI given by ao:body.
-
-This graph SHOULD mention the resources identified by ao:annotatesResource from this annotation, preferably by using their URIs as subject or object of statements.
-
-Note that this use of ao:body is distinct from ao:hasTopic, which also allows the association of a an RDF Graph with an ao:Annotation, but which also implies that this graph is the "topic" (subproperty of bookmark:hasTopic) of the annotated resource. This class does not require this interpretation, it is merely enough that the annotation body mentions the annotated resource, for instance to give it a dc:title or to relate two annotated resources.  Also note that the next version of the AO ontology (v2) might change this definition of ao:hasTopic, removing the need for this class.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://code.google.com/p/annotation-ontology/wiki/GraphsAnnotations"/>
-        <rdfs:seeAlso rdf:resource="http://purl.org/ao/body"/>
-        <rdfs:seeAlso rdf:resource="http://purl.org/ao/hasTopic"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/2001/Annotea/User/BookmarkSchema"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/2002/01/bookmark#hasTopic"/>
-        <rdfs:subClassOf rdf:resource="http://purl.org/ao/Annotation"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <allValuesFrom rdf:resource="http://www.w3.org/2004/03/trix/rdfg-1/Graph"/>
-            <onProperty rdf:resource="http://purl.org/ao/body"/>
-        </rdfs:subClassOf>
-    </Class>
-
-    <ObjectProperty rdf:about="http://purl.org/wf4ever/ro#annotatesAggregatedResource">
-        <rdfs:comment xml:lang="en">ro:annotatesAggregatedResource specifies that an ao:Annotation annotates an aggregated ro:Resource. 
-                               
-When used on an ro:AggregatedAnnotation, both the domain and range of this property must ore:isAggregatedBy the same ro:ResearchObject.  
-
-TODO: Should also ro:ResearchObject and ore:Proxy be in the range of this property, or is this subproperty even needed?
-</rdfs:comment>
-        <rdfs:domain rdf:resource="http://purl.org/ao/Annotation"/>
-        <rdfs:range rdf:resource="http://purl.org/wf4ever/ro#Resource"/>
-        <rdfs:subPropertyOf rdf:resource="http://purl.org/ao/annotatesResource"/>
-    </ObjectProperty>
-
-    <DatatypeProperty rdf:about="http://purl.org/wf4ever/ro#entryName">
-        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-        <rdfs:comment xml:lang="en">This functional property specifies the name of a ro:FolderEntry within an ro:Folder. 
-
-This name must be case-sensitively unique within the ro:Folder, similar to a filename in a directory.
-
-TODO: Need a functional property to specify the top level folder structure of an {{ro:ResearchObject}}?
-</rdfs:comment>
-        <rdfs:domain rdf:resource="http://purl.org/wf4ever/ro#FolderEntry"/>
-        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    </DatatypeProperty>
-</rdf:RDF>
diff --git a/taverna-robundle/src/main/xsd/xenc-schema.xsd b/taverna-robundle/src/main/xsd/xenc-schema.xsd
index d206a32..d1743c4 100644
--- a/taverna-robundle/src/main/xsd/xenc-schema.xsd
+++ b/taverna-robundle/src/main/xsd/xenc-schema.xsd
@@ -1,24 +1,29 @@
 <?xml version="1.0" encoding="utf-8"?>
+
 <!--
-XML Encryption Syntax and Processing
-W3C Recommendation 10 December 2002
-http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd
-http://www.w3.org/TR/xmlenc-core/
-
-Copyright © 2002 World Wide Web Consortium, (Massachusetts
-Institute of Technology, Institut National de Recherche en Informatique et en
-Automatique, Keio University). All Rights Reserved.
-http://www.w3.org/Consortium/Legal/
-
-     -->
+#
+# Copyright ©[2011] World Wide Web Consortium 
+# (Massachusetts Institute of Technology,  
+#  European Research Consortium for Informatics and Mathematics, 
+#  Keio University). All Rights Reserved.  
+# This work is distributed under the W3C® Software License [1] in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+# PURPOSE. 
+# [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+#
+# 2018-12-07 This file has been modified for Apache Taverna to 
+#  use a relative import of ./xmldsig-core-schema.xsd
+#  and to remove the http-based XMLSchema.dtd
+-->
 <schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
         xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
         xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
         targetNamespace='http://www.w3.org/2001/04/xmlenc#'
         elementFormDefault='qualified'>
 
-  <import namespace="http://www.w3.org/2000/09/xmldsig#"
-          schemaLocation="xmldsig-core-schema.xsd"/>
+  <import namespace='http://www.w3.org/2000/09/xmldsig#'
+	  schemaLocation='./xmldsig-core-schema.xsd'/>
 
   <complexType name='EncryptedType' abstract='true'>
     <sequence>
@@ -38,6 +43,8 @@
     <sequence>
       <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>
       <element name='OAEPparams' minOccurs='0' type='base64Binary'/>
+      <!-- note that optional xenc11:MGF element may be used here for
+           RSA-OAEP, when appropriate -->
       <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
     </sequence>
     <attribute name='Algorithm' type='anyURI' use='required'/>
@@ -133,15 +140,35 @@
     <attribute name='Id' type='ID' use='optional'/>
   </complexType>
 
-    <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
-    <complexType name='EncryptionPropertyType' mixed='true'>
-      <choice maxOccurs='unbounded'>
-        <any namespace='##other' processContents='lax'/>
-      </choice>
-      <attribute name='Target' type='anyURI' use='optional'/>
-      <attribute name='Id' type='ID' use='optional'/>
-      <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
-    </complexType>
+  <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
+  <complexType name='EncryptionPropertyType' mixed='true'>
+    <choice maxOccurs='unbounded'>
+      <any namespace='##other' processContents='lax'/>
+    </choice>
+    <attribute name='Target' type='anyURI' use='optional'/>
+    <attribute name='Id' type='ID' use='optional'/>
+    <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
+  </complexType>
 
+  <!-- Children of ds:KeyValue -->
+
+  <element name="DHKeyValue" type="xenc:DHKeyValueType"/>
+  <complexType name="DHKeyValueType">
+    <sequence>
+      <sequence minOccurs="0">
+        <element name="P" type="ds:CryptoBinary"/>
+        <element name="Q" type="ds:CryptoBinary"/>
+        <element name="Generator" type="ds:CryptoBinary"/>
+      </sequence>
+      <element name="Public" type="ds:CryptoBinary"/>
+      <sequence minOccurs="0">
+        <element name="seed" type="ds:CryptoBinary"/>
+        <element name="pgenCounter" type="ds:CryptoBinary"/>
+      </sequence>
+    </sequence>
+  </complexType>
+
+  <!-- End Children of ds:KeyValue -->
+  
 </schema>
 
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
index 53c871c..59f7f62 100644
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
+++ b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
@@ -231,7 +231,7 @@
 		assertEquals("Bob Builder",
 				manifest.getAggregation(r.resolve("/README.txt"))
 						.getCreatedBy().getName());
-		assertEquals("text/plain",
+		assertEquals("text/plain; charset=\"utf-8\"",
 				manifest.getAggregation(r.resolve("/README.txt"))
 						.getMediatype());
 
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
index f80baea..9754cda 100644
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
+++ b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
@@ -144,7 +144,7 @@
 			Files.createFile(readme);
 			PathMetadata readmeMeta = bundle.getManifest().getAggregation(
 					readme);
-			readmeMeta.setMediatype("text/plain");
+			readmeMeta.setMediatype("text/plain; charset=\"utf-8\"");
 			Agent readmeCreatedby = new Agent("Bob Builder");
 			readmeCreatedby.setUri(URI.create("http://example.com/foaf#bob"));
 			readmeMeta.setCreatedBy(readmeCreatedby);
@@ -273,7 +273,7 @@
 
 		JsonNode readme = aggregates.get(2);
 		assertEquals("/README.txt", readme.get("uri").asText());
-		assertEquals("text/plain", readme.get("mediatype").asText());
+		assertEquals("text/plain; charset=\"utf-8\"", readme.get("mediatype").asText());
 		assertEquals("2013-02-12T19:37:32.939Z", readme.get("createdOn")
 				.asText());
 		JsonNode readmeCreatedBy = readme.get("createdBy");
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
index bd70333..fdb1943 100644
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
+++ b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
@@ -136,7 +136,7 @@
 			assertNull(blog.getBundledAs());
 
 			PathMetadata readme = manifest.getAggregation(ro.getPath("/README.txt"));
-			assertEquals("text/plain", readme.getMediatype());
+			assertEquals("text/plain; charset=\"utf-8\"", readme.getMediatype());
 			assertEquals("Bob Builder", readme.getCreatedBy().getName());
 			assertEquals(URI.create("http://example.com/foaf#bob"), readme.getCreatedBy().getUri());
 
diff --git a/taverna-robundle/src/test/resources/manifest.json b/taverna-robundle/src/test/resources/manifest.json
index e4a8526..158a603 100644
--- a/taverna-robundle/src/test/resources/manifest.json
+++ b/taverna-robundle/src/test/resources/manifest.json
@@ -29,7 +29,7 @@
        },
        { "uri":  "http://example.com/blog/" },
        { "uri":      "/README.txt",
-         "mediatype": "text/plain",
+         "mediatype": "text/plain; charset=\"utf-8\"",
          "createdBy": {
              "uri":     "http://example.com/foaf#bob",
              "name":    "Bob Builder" },
diff --git a/taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE b/taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE
index 68c7eb6..8934ab6 100644
--- a/taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE
+++ b/taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE
@@ -218,21 +218,5 @@
 
 W3C liability, trademark and document use rules apply.
 http://www.w3.org/Consortium/Legal/2015/doc-license
+META-INF/LICENSE.w3c.document
 
-
-------------------------------------------------------
-./taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
-
-roevo.xsd derived from
-Research Object Evolution Ontology (roevo)
-http://w3id.org/ro/roevo
-
-Copyright (c) 2011-2014
-    Raul Palma, PSNC
-    Jun Zhao, University of Oxford
-    Khalid Belhajjame, University of Manchester
-    Stian Soiland-Reyes, University of Manchester
-    Oscar Corcho, UPM
-
-Creative Commons Attribution 3.0 License
-http://creativecommons.org/licenses/by/3.0
diff --git a/taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE.w3c.document b/taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE.w3c.document
new file mode 100644
index 0000000..4a546f3
--- /dev/null
+++ b/taverna-scufl2-schemas/src/main/resources/META-INF/LICENSE.w3c.document
@@ -0,0 +1,86 @@
+License for xml.xsd
+https://www.w3.org/Consortium/Legal/2015/doc-license
+
+# W3C Document License
+
+Status: This document takes effect 1 February 2015.
+
+Public documents on the W3C site are provided by the copyright holders under
+the following license.
+
+## License
+
+By using and/or copying this document, or the W3C document from which this
+statement is linked, you (the licensee) agree that you have read, understood,
+and will comply with the following terms and conditions:
+
+Permission to copy, and distribute the contents of this document, or the W3C
+document from which this statement is linked, in any medium for any purpose and
+without fee or royalty is hereby granted, provided that you include the
+following on ALL copies of the document, or portions thereof, that you use:
+
+* A link or URL to the original W3C document.
+
+* The pre-existing copyright notice of the original author, or if it doesn't
+  exist, a notice (hypertext is preferred, but a textual representation is
+  permitted) of the form: "Copyright © [$date-of-document] World Wide Web
+  Consortium, (MIT, ERCIM, Keio, Beihang).
+  http://www.w3.org/Consortium/Legal/2015/doc-license"
+
+* If it exists, the STATUS of the W3C document.
+
+When space permits, inclusion of the full text of this NOTICE should be
+provided. We request that authorship attribution be provided in any software,
+documents, or other items or products that you create pursuant to the
+implementation of the contents of this document, or any portion thereof.
+
+No right to create modifications or derivatives of W3C documents is granted
+pursuant to this license, except as follows: To facilitate implementation of
+the technical specifications set forth in this document, anyone may prepare and
+distribute derivative works and portions of this document in software, in
+supporting materials accompanying software, and in documentation of software,
+PROVIDED that all such works include the notice below. HOWEVER, the publication
+of derivative works of this document for use as a technical specification is
+expressly prohibited.
+
+In addition, "Code Components" —Web IDL in sections clearly marked as Web IDL;
+and W3C-defined markup (HTML, CSS, etc.) and computer programming language code
+clearly marked as code examples— are licensed under the W3C Software License.
+<http://www.w3.org/Consortium/Legal/copyright-software>
+
+The notice is:
+
+    "Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or document includes material copied from or derived from [title and URI of the W3C document]." 
+
+## Disclaimers
+
+THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
+REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
+TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR
+ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY
+THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE
+OR IMPLEMENTATION OF THE CONTENTS THEREOF.
+
+The name and trademarks of copyright holders may NOT be used in advertising or
+publicity pertaining to this document or its contents without specific, written
+prior permission. Title to copyright in this document will at all times remain
+with copyright holders.  
+
+## Notes
+
+This version: https://www.w3.org/Consortium/Legal/2015/doc-license
+Latest version: https://www.w3.org/Consortium/Legal/copyright-documents
+Previous version: http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231
+
+### Changes since the previous Document License
+
+* This version grants limited permission to create and distribute derivative
+  works except for use as technical specifications.
+
+* This version licenses Code Components under the W3C Software License.
+
+
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
index 5bb374c..8bea766 100644
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
+++ b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
@@ -15,20 +15,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 
-
-Derived from Research Object Evolution Ontology (roevo)
-http://w3id.org/ro/roevo
-
-  (c) 2011-2014
-    Raul Palma, PSNC
-    Jun Zhao, University of Oxford
-    Khalid Belhajjame, University of Manchester
-    Stian Soiland-Reyes, University of Manchester
-    Oscar Corcho, UPM
-
-  Creative Commons Attribution 3.0 License 
-  http://creativecommons.org/licenses/by/3.0
-
 -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
 	elementFormDefault="qualified" targetNamespace="http://purl.org/wf4ever/roevo#" 
@@ -97,19 +83,6 @@
 				<xs:element ref="rdf:type" minOccurs="0"/>
 				<xs:element name="fromVersion" type="rdf:Resource" minOccurs="0" />
 				<xs:element name="hasChange" minOccurs="0" maxOccurs="3">
-					<xs:annotation>
-						<xs:documentation>
-							<p xmlns='http://www.w3.org/1999/xhtml'>
-							A ChangeSpecification can have up to 3 changes, 
-							one of Addition, one of Modificaton and one of Removal. 
-							Ironically, to 	avoid an 'non ambigious' XML Schema, this schema 
-							has to allow also say Addition, Addition, Removal. Clients MAY
-							parse additional changes of the same type, but SHOULD merge them 
-							to a single change per type when saving, ie. add the resources
-							from the second Addition to the resources of the first.							
-							</p>
-						</xs:documentation>
-					</xs:annotation>
 					<xs:complexType>
 						<xs:choice>
 							<xs:element name="Addition" type="roevo:Change" />
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
index dccafb6..2dbcdb6 100644
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
+++ b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
@@ -1,13 +1,13 @@
 <?xml version='1.0'?>
 <!--
+  Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or 
+	document includes material copied from or derived from:
+
   Extensible Markup Language (XML) 1.0 (Fifth Edition)
   W3C Recommendation 26 November 2008
   http://www.w3.org/2001/xml.xsd
   http://www.w3.org/TR/xml/
 
-  Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or 
-	document includes material copied from or derived from:
-
   W3C liability, trademark and document use rules apply.
   http://www.w3.org/Consortium/Legal/2015/doc-license
 
diff --git a/taverna-scufl2-wfdesc/pom.xml b/taverna-scufl2-wfdesc/pom.xml
index ba09fb7..99866a7 100755
--- a/taverna-scufl2-wfdesc/pom.xml
+++ b/taverna-scufl2-wfdesc/pom.xml
@@ -38,6 +38,12 @@
       <artifactId>taverna-scufl2-scufl</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>taverna-ro-vocabs</artifactId>
+      <version>${project.version}</version>
+    </dependency>
 
     <dependency>
       <groupId>${project.groupId}</groupId>
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ROEvoSerializer.java b/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ROEvoSerializer.java
index 7599599..bc6a965 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ROEvoSerializer.java
+++ b/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ROEvoSerializer.java
@@ -25,10 +25,10 @@
 
 import java.io.OutputStream;
 
+import org.apache.taverna.ro.vocabs.prov;
 import org.apache.taverna.scufl2.api.annotation.Revision;
 import org.apache.taverna.scufl2.api.core.Workflow;
 import org.apache.taverna.scufl2.api.io.WriterException;
-import org.apache.taverna.scufl2.wfdesc.ontologies.Prov_o;
 import org.apache.jena.ontology.Individual;
 import org.apache.jena.ontology.OntClass;
 import org.apache.jena.ontology.OntModel;
@@ -66,22 +66,22 @@
 	private void addRevision(OntModel model,
 			Revision revision) {
 		OntClass VersionableResource = model.createClass("http://purl.org/wf4ever/roevo#VersionableResource");
-		VersionableResource.addSuperClass(Prov_o.Entity);
+		VersionableResource.addSuperClass(prov.Entity);
 		Individual revisionResource = model.createIndividual(revision.getIdentifier().toASCIIString(), 
 				VersionableResource);
-		revisionResource.addRDFType(Prov_o.Entity);
+		revisionResource.addRDFType(prov.Entity);
 	}
 
 	private void addPrevious(OntModel model,
 			Revision revision, Revision previous) {
 		OntClass VersionableResource = model.createClass("http://purl.org/wf4ever/roevo#VersionableResource");
-		VersionableResource.addSuperClass(Prov_o.Entity);
+		VersionableResource.addSuperClass(prov.Entity);
 		
 		Individual revisionResource = model.createIndividual(revision.getIdentifier().toASCIIString(), 
 				VersionableResource);
 		Individual previousResource = model.createIndividual(previous.getIdentifier().toASCIIString(), 
 				VersionableResource);
-		revisionResource.addProperty(Prov_o.wasRevisionOf, previousResource);
+		revisionResource.addProperty(prov.wasRevisionOf, previousResource);
 	}
 	
 }
diff --git a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/WfdescSerialiser.java b/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/WfdescSerialiser.java
index 7ba000e..b940a1a 100644
--- a/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/WfdescSerialiser.java
+++ b/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/WfdescSerialiser.java
@@ -39,6 +39,10 @@
 import org.apache.jena.riot.RDFDataMgr;
 import org.apache.jena.riot.RiotException;
 import org.apache.jena.vocabulary.OWL;
+import org.apache.taverna.ro.vocabs.prov;
+import org.apache.taverna.ro.vocabs.roterms;
+import org.apache.taverna.ro.vocabs.wf4ever;
+import org.apache.taverna.ro.vocabs.wfdesc;
 import org.apache.taverna.scufl2.api.activity.Activity;
 import org.apache.taverna.scufl2.api.annotation.Annotation;
 import org.apache.taverna.scufl2.api.common.Child;
@@ -59,10 +63,6 @@
 import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
 import org.apache.taverna.scufl2.api.profiles.ProcessorPortBinding;
 import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.wfdesc.ontologies.Prov_o;
-import org.apache.taverna.scufl2.wfdesc.ontologies.Roterms;
-import org.apache.taverna.scufl2.wfdesc.ontologies.Wf4ever;
-import org.apache.taverna.scufl2.wfdesc.ontologies.Wfdesc;
 
 import com.fasterxml.jackson.databind.JsonNode;
 
@@ -107,35 +107,35 @@
 				// @SuppressWarnings("rawtypes")
 
 				if (node instanceof org.apache.taverna.scufl2.api.core.Workflow) {
-					entityForBean(node, Wfdesc.Workflow);
+					entityForBean(node, wfdesc.Workflow);
 				} else if (node instanceof Processor) {
 					Processor processor = (Processor) node;
-					Individual process = entityForBean(processor, Wfdesc.Process);
-					Individual wf = entityForBean(processor.getParent(), Wfdesc.Workflow);
-					wf.addProperty(Wfdesc.hasSubProcess, process);
+					Individual process = entityForBean(processor, wfdesc.Process);
+					Individual wf = entityForBean(processor.getParent(), wfdesc.Workflow);
+					wf.addProperty(wfdesc.hasSubProcess, process);
 				} else if (node instanceof InputPort) {
 					WorkflowBean parent = ((Child) node).getParent();
-					Individual input = entityForBean(node, Wfdesc.Input);
-					Individual process = entityForBean(parent, Wfdesc.Process);
-					process.addProperty(Wfdesc.hasInput, input);
+					Individual input = entityForBean(node, wfdesc.Input);
+					Individual process = entityForBean(parent, wfdesc.Process);
+					process.addProperty(wfdesc.hasInput, input);
 
 				} else if (node instanceof OutputPort) {
 					WorkflowBean parent = ((Child) node).getParent();
-					Individual output = entityForBean(node, Wfdesc.Output);
-					Individual process = entityForBean(parent, Wfdesc.Process);
-					process.addProperty(Wfdesc.hasOutput, output);
+					Individual output = entityForBean(node, wfdesc.Output);
+					Individual process = entityForBean(parent, wfdesc.Process);
+					process.addProperty(wfdesc.hasOutput, output);
 				} else if (node instanceof DataLink) {
 					WorkflowBean parent = ((Child) node).getParent();
 					DataLink link = (DataLink) node;
-					Individual dl = entityForBean(link, Wfdesc.DataLink);
+					Individual dl = entityForBean(link, wfdesc.DataLink);
 
-					Individual source = entityForBean(link.getReceivesFrom(), Wfdesc.Output);
-					dl.addProperty(Wfdesc.hasSource, source);
+					Individual source = entityForBean(link.getReceivesFrom(), wfdesc.Output);
+					dl.addProperty(wfdesc.hasSource, source);
 
-					Individual sink = entityForBean(link.getSendsTo(), Wfdesc.Input);
-					dl.addProperty(Wfdesc.hasSink, sink);
-					Individual wf = entityForBean(parent, Wfdesc.Workflow);
-					wf.addProperty(Wfdesc.hasDataLink, dl);
+					Individual sink = entityForBean(link.getSendsTo(), wfdesc.Input);
+					dl.addProperty(wfdesc.hasSink, sink);
+					Individual wf = entityForBean(parent, wfdesc.Workflow);
+					wf.addProperty(wfdesc.hasDataLink, dl);
 				} else if (node instanceof Profile) {
 					// So that we can get at the ProcessorBinding - buy only if
 					// it is the main Profile
@@ -144,7 +144,7 @@
 					ProcessorBinding b = (ProcessorBinding) node;
 					Activity a = b.getBoundActivity();
 					Processor boundProcessor = b.getBoundProcessor();
-					Individual process = entityForBean(boundProcessor, Wfdesc.Process);
+					Individual process = entityForBean(boundProcessor, wfdesc.Process);
 
 					// Note: We don't describe the activity and processor
 					// binding in wfdesc. Instead we
@@ -156,9 +156,9 @@
 						Configuration c = scufl2Tools.configurationFor(a, b.getParent());
 						JsonNode json = c.getJson();
 						if (type.equals(BEANSHELL)) {
-							process.addRDFType(Wf4ever.BeanshellScript);
+							process.addRDFType(wf4ever.BeanshellScript);
 							String s = json.get("script").asText();
-							process.addProperty(Wf4ever.script, s);
+							process.addProperty(wf4ever.script, s);
 							JsonNode localDep = json.get("localDependency");
 							if (localDep != null && localDep.isArray()) {
 								for (int i = 0; i < localDep.size(); i++) {
@@ -167,7 +167,7 @@
 									Individual dep = model.createIndividual(OWL.Thing);
 									dep.addLabel(depStr, null);
 									dep.addComment("JAR dependency", "en");
-									process.addProperty(Roterms.requiresSoftware, dep);
+									process.addProperty(roterms.requiresSoftware, dep);
 									// Somehow this gets the whole thing to fall
 									// out of the graph!
 									// QName depQ = new
@@ -179,20 +179,20 @@
 							}
 						}
 						if (type.equals(RSHELL)) {
-							process.addRDFType(Wf4ever.RScript);
+							process.addRDFType(wf4ever.RScript);
 							String s = json.get("script").asText();
-							process.addProperty(Wf4ever.script, s);
+							process.addProperty(wf4ever.script, s);
 						}
 						if (type.equals(WSDL)) {
-							process.addRDFType(Wf4ever.SOAPService);
+							process.addRDFType(wf4ever.SOAPService);
 							JsonNode operation = json.get("operation");
 							URI wsdl = URI.create(operation.get("wsdl").asText());
-							process.addProperty(Wf4ever.wsdlURI, wsdl.toASCIIString());
-							process.addProperty(Wf4ever.wsdlOperationName, operation.get("name").asText());
-							process.addProperty(Wf4ever.rootURI, wsdl.resolve("/").toASCIIString());
+							process.addProperty(wf4ever.wsdlURI, wsdl.toASCIIString());
+							process.addProperty(wf4ever.wsdlOperationName, operation.get("name").asText());
+							process.addProperty(wf4ever.rootURI, wsdl.resolve("/").toASCIIString());
 						}
 						if (type.equals(REST)) {
-							process.addRDFType(Wf4ever.RESTService);
+							process.addRDFType(wf4ever.RESTService);
 							// System.out.println(json);
 							JsonNode request = json.get("request");
 							String absoluteURITemplate = request.get("absoluteURITemplate").asText();
@@ -201,7 +201,7 @@
 							// TODO: Detect {}
 							try {
 								URI root = new URI(uriTemplate).resolve("/");
-								process.addProperty(Wf4ever.rootURI, root.toASCIIString());
+								process.addProperty(wf4ever.rootURI, root.toASCIIString());
 							} catch (URISyntaxException e) {
 								logger.warning("Potentially invalid URI template: " + absoluteURITemplate);
 								// Uncomment to temporarily break
@@ -210,12 +210,12 @@
 							}
 						}
 						if (type.equals(TOOL)) {
-							process.addRDFType(Wf4ever.CommandLineTool);
+							process.addRDFType(wf4ever.CommandLineTool);
 							JsonNode desc = json.get("toolDescription");
 							// System.out.println(json);
 							JsonNode command = desc.get("command");
 							if (command != null) {
-								process.addProperty(Wf4ever.command, command.asText());
+								process.addProperty(wf4ever.command, command.asText());
 							}
 						}
 						if (type.equals(NESTED_WORKFLOW)) {
@@ -225,7 +225,7 @@
 							// (because the nested workflow could exist as
 							// several processors)
 							specializationOf(boundProcessor, nestedWf);
-							process.addRDFType(Wfdesc.Workflow);
+							process.addRDFType(wfdesc.Workflow);
 
 							// Just like the Processor specializes the nested
 							// workflow, the
@@ -283,9 +283,9 @@
 			}
 
 			private void specializationOf(WorkflowBean special, WorkflowBean general) {
-				Individual specialEnt = entityForBean(special, Prov_o.Entity);
-				Individual generalEnt = entityForBean(general, Prov_o.Entity);
-				specialEnt.addProperty(Prov_o.specializationOf, generalEnt);
+				Individual specialEnt = entityForBean(special, prov.Entity);
+				Individual generalEnt = entityForBean(general, prov.Entity);
+				specialEnt.addProperty(prov.specializationOf, generalEnt);
 			}
 
 			private Individual entityForBean(WorkflowBean bean, Resource thing) {
diff --git a/taverna-scufl2-wfdesc/src/test/java/org/apache/taverna/scufl2/wfdesc/TestRoEvoSerializer.java b/taverna-scufl2-wfdesc/src/test/java/org/apache/taverna/scufl2/wfdesc/TestRoEvoSerializer.java
index 7ef2433..346cb27 100644
--- a/taverna-scufl2-wfdesc/src/test/java/org/apache/taverna/scufl2/wfdesc/TestRoEvoSerializer.java
+++ b/taverna-scufl2-wfdesc/src/test/java/org/apache/taverna/scufl2/wfdesc/TestRoEvoSerializer.java
@@ -31,10 +31,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 
+import org.apache.taverna.ro.vocabs.prov;
 import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.io.ReaderException;
 import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.wfdesc.ontologies.Prov_o;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -75,9 +75,9 @@
 		OntModel m = ModelFactory.createOntologyModel();
 		m.read(new ByteArrayInputStream(os.toByteArray()), "http://example.com/", "Turtle");
 		Resource mainWf = m.getResource(helloWorld.getMainWorkflow().getIdentifier().toASCIIString());		
-		Resource older = mainWf.getProperty(Prov_o.wasRevisionOf).getResource();
-		Resource oldest = older.getProperty(Prov_o.wasRevisionOf).getResource();
-		assertNull(oldest.getProperty(Prov_o.wasRevisionOf));
+		Resource older = mainWf.getProperty(prov.wasRevisionOf).getResource();
+		Resource oldest = older.getProperty(prov.wasRevisionOf).getResource();
+		assertNull(oldest.getProperty(prov.wasRevisionOf));
 		
 	}
 	
