serialize revisions with Jena instead of Sesame

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/3c775388
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/3c775388
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/3c775388

Branch: refs/heads/wfdesc-jena
Commit: 3c77538817f3016be71799e2c1f04906347d0fe2
Parents: f7b6a87
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Feb 26 17:40:42 2015 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jun 5 22:52:22 2015 +0100

----------------------------------------------------------------------
 .../taverna/scufl2/wfdesc/ROEvoSerializer.java  | 65 ++++++++------------
 1 file changed, 25 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3c775388/taverna-scufl2-wfdesc/src/main/java/org/apache/taverna/scufl2/wfdesc/ROEvoSerializer.java
----------------------------------------------------------------------
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 b58d8bb..f0ee289 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
@@ -28,6 +28,7 @@ import java.io.OutputStream;
 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.openrdf.OpenRDFException;
 import org.openrdf.model.URI;
 import org.openrdf.model.ValueFactory;
@@ -39,32 +40,24 @@ import org.openrdf.repository.sail.SailRepository;
 import org.openrdf.rio.helpers.OrganizedRDFWriter;
 import org.openrdf.sail.memory.MemoryStore;
 
+import com.hp.hpl.jena.ontology.Individual;
+import com.hp.hpl.jena.ontology.OntClass;
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.Resource;
+
 
 public class ROEvoSerializer {
        //private URITools uriTools = new URITools();
        
        public void workflowHistory(Workflow mainWorkflow, OutputStream output) 
throws WriterException {        
-               Repository repository = new SailRepository(new MemoryStore());
-               try {
-                       repository.initialize();
-               } catch (RepositoryException e1) {
-                       throw new IllegalStateException("Can't initialize 
memory SAIL repository", e1);
-               }
-               ValueFactory factory = repository.getValueFactory();
-       
-               
-               RepositoryConnection con;
-               try {
-                       con = repository.getConnection();
-               } catch (RepositoryException e1) {
-                       throw new IllegalStateException("Can't get repository 
connection", e1);
-               }
+               OntModel model = ModelFactory.createOntologyModel();
                Revision revision = mainWorkflow.getCurrentRevision();
                Revision previous = revision.getPreviousRevision();
-               addRevision(factory, con, revision);
+               addRevision(model, revision);
                while (previous != null) {
-                       addRevision(factory, con, previous);
-                       addPrevious(factory, con, revision, previous);          
        
+                       addRevision(model, previous);
+                       addPrevious(model, revision, previous);                 
                        revision = previous;
                        previous = revision.getPreviousRevision();
                }
@@ -90,33 +83,25 @@ public class ROEvoSerializer {
                
        }
 
-       private void addRevision(ValueFactory factory, RepositoryConnection con,
+       private void addRevision(OntModel model,
                        Revision revision) {
-               URI revisionURI = 
factory.createURI(revision.getIdentifier().toASCIIString());                  
-               
-               URI version = 
factory.createURI("http://purl.org/wf4ever/roevo#VersionableResource";);         
  
-               URI entity = 
factory.createURI("http://www.w3.org/ns/prov#Entity";);             
-               try {
-                       con.add(revisionURI, RDF.TYPE, version);
-                       con.add(revisionURI, RDF.TYPE, entity);
-               } catch (RepositoryException e1) {
-                       throw new IllegalStateException("Can't add triple to 
repository", e1);
-               }
-               
+               OntClass VersionableResource = 
model.createClass("http://purl.org/wf4ever/roevo#VersionableResource";);
+               VersionableResource.addSuperClass(Prov_o.Entity);
+               Individual revisionResource = 
model.createIndividual(revision.getIdentifier().toASCIIString(), 
+                               VersionableResource);
+               revisionResource.addRDFType(Prov_o.Entity);
        }
 
-       private void addPrevious(ValueFactory factory, RepositoryConnection con,
+       private void addPrevious(OntModel model,
                        Revision revision, Revision previous) {
-               URI revisionURI = 
factory.createURI(revision.getIdentifier().toASCIIString());                  
-               URI previousURI = 
factory.createURI(previous.getIdentifier().toASCIIString());
+               OntClass VersionableResource = 
model.createClass("http://purl.org/wf4ever/roevo#VersionableResource";);
+               VersionableResource.addSuperClass(Prov_o.Entity);
                
-               URI prev = 
factory.createURI("http://www.w3.org/ns/prov#wasRevisionOf";);
-               
-               try {
-                       con.add(revisionURI, prev, previousURI);
-               } catch (RepositoryException e1) {
-                       throw new IllegalStateException("Can't add triple to 
repository", e1);
-               }
+               Individual revisionResource = 
model.createIndividual(revision.getIdentifier().toASCIIString(), 
+                               VersionableResource);
+               Individual previousResource = 
model.createIndividual(previous.getIdentifier().toASCIIString(), 
+                               VersionableResource);
+               revisionResource.addProperty(Prov_o.wasRevisionOf, 
previousResource);
        }
        
 }

Reply via email to