You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2018/12/07 04:11:28 UTC

[4/4] incubator-taverna-language git commit: Use new taverna-ro-vocabs constants

Use new taverna-ro-vocabs constants


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/97739d67
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/97739d67
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/97739d67

Branch: refs/heads/no-ontologies
Commit: 97739d674c0edded8fbece5a0015e9a0ca5f3b0d
Parents: 1ad20c1
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Dec 7 04:10:51 2018 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Dec 7 04:10:51 2018 +0000

----------------------------------------------------------------------
 .../java/org/apache/taverna/ro/vocabs/ro.java   |   4 +
 taverna-robundle/pom.xml                        |   5 +
 .../robundle/manifest/RDFToManifest.java        | 103 +++++++++----------
 3 files changed, 58 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/97739d67/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java
----------------------------------------------------------------------
diff --git a/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java
index f232393..2d8b640 100644
--- a/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java
+++ b/taverna-ro-vocabs/src/main/java/org/apache/taverna/ro/vocabs/ro.java
@@ -26,6 +26,7 @@ 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
@@ -57,5 +58,8 @@ public class ro {
     public static final ObjectProperty annotatesAggregatedResource = M_MODEL.createObjectProperty( NS + "annotatesAggregatedResource" );
     public static final ObjectProperty rootFolder = M_MODEL.createObjectProperty( NS + "rootFolder" );
     
+    public static final ObjectProperty conformsTo = M_MODEL.createObjectProperty(DCTerms.conformsTo.getURI());
+    
+    
     public static final DatatypeProperty entryName = M_MODEL.createDatatypeProperty( NS + "entryName" );
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/97739d67/taverna-robundle/pom.xml
----------------------------------------------------------------------
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>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/97739d67/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java
----------------------------------------------------------------------
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 e90d0c1..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
@@ -28,7 +28,6 @@ import java.io.IOException;
 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;
@@ -39,30 +38,26 @@ import java.util.UUID;
 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.taverna.ro.vocabs.Foaf;
-import org.apache.taverna.ro.vocabs.Prov_o;
-import org.apache.taverna.ro.vocabs.RO;
-import org.apache.taverna.ro.vocabs.ROEvo;
-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.ro.vocabs.Wfprov;
-
-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,
@@ -116,7 +111,7 @@ public class RDFToManifest {
 	}
 
 	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);
@@ -135,7 +130,7 @@ public class RDFToManifest {
 
 			// 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/"))) {
@@ -153,7 +148,7 @@ public class RDFToManifest {
 				}
 			}
 
-			RDFNode name = agent.getPropertyValue(foafName);
+			RDFNode name = agent.getPropertyValue(foaf.name);
 			if (name != null && name.isLiteral())
 				a.setName(name.asLiteral().getLexicalForm());
 			creators.add(a);
@@ -163,11 +158,11 @@ public class RDFToManifest {
 
 	protected OntModel getOntModel() {
 		OntModel ontModel = createOntologyModel(OWL_DL_MEM_RULE_INF);
-		ontModel.setNsPrefix("foaf", Foaf.NS);
-		ontModel.setNsPrefix("prov", PROV.NS);
-		ontModel.setNsPrefix("ore", ORE.NS);
-		ontModel.setNsPrefix("pav", PAV.NS);
-		ontModel.setNsPrefix("dct", DCT.NS);
+		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;
 	}
@@ -193,14 +188,14 @@ public class RDFToManifest {
 				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: "
@@ -214,7 +209,7 @@ public class RDFToManifest {
 		}
 
 		// 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) {
@@ -223,28 +218,28 @@ public class RDFToManifest {
 		}
 
 		// 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()));
@@ -255,7 +250,7 @@ public class RDFToManifest {
 		}
 
 		// 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) {
@@ -264,12 +259,12 @@ public class RDFToManifest {
 		}
 
 		// 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 {
@@ -286,7 +281,7 @@ public class RDFToManifest {
 		}
 
 		// 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) {
@@ -299,10 +294,10 @@ public class RDFToManifest {
 					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
@@ -320,11 +315,11 @@ public class RDFToManifest {
 					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())) {
@@ -340,7 +335,7 @@ public class RDFToManifest {
 			}
 
 			// createdBy
-			creators = getAgents(root, aggrResource, createdBy);
+			creators = getAgents(root, aggrResource, pav.createdBy);
 			if (!creators.isEmpty()) {
 				meta.setCreatedBy(creators.get(0));
 				if (creators.size() > 1) {
@@ -351,10 +346,10 @@ public class RDFToManifest {
 
 			// 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()));
@@ -365,7 +360,7 @@ public class RDFToManifest {
 			}
 
 			// 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) {
@@ -375,12 +370,12 @@ public class RDFToManifest {
 			}
 
 			// 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));
@@ -388,20 +383,20 @@ public class RDFToManifest {
 			}
 
 			// 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);
@@ -418,7 +413,7 @@ public class RDFToManifest {
 							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));