From f45847842c997968c9c451323eaf9894932bdd69 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Sun, 19 Mar 2017 22:01:31 +0000 Subject: [PATCH] Use the dataset directly for isomorphism with Jena backend --- .../rdfservice/impl/jena/RDFServiceJena.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/RDFServiceJena.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/RDFServiceJena.java index 6b448b3aa..7d45e02a6 100644 --- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/RDFServiceJena.java +++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/jena/RDFServiceJena.java @@ -7,6 +7,8 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.StringWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -19,6 +21,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.jena.query.QuerySolutionMap; import org.apache.jena.query.Syntax; import org.apache.jena.rdf.model.Literal; +import org.apache.jena.riot.Lang; import org.apache.jena.riot.RDFDataMgr; import org.apache.log4j.lf5.util.StreamUtils; @@ -594,10 +597,14 @@ public abstract class RDFServiceJena extends RDFServiceImpl implements RDFServic @Override public boolean isEquivalentGraph(String graphURI, InputStream serializedGraph, ModelSerializationFormat serializationFormat) throws RDFServiceException { - Model fileModel = RDFServiceUtils.parseModel(serializedGraph, serializationFormat); - Model tripleStoreModel = new RDFServiceDataset(this).getNamedModel(graphURI); - Model fromTripleStoreModel = ModelFactory.createDefaultModel().add(tripleStoreModel); - return fileModel.isIsomorphicWith(fromTripleStoreModel); + + Model fileModel = RDFServiceUtils.parseModel(serializedGraph, serializationFormat); + + DatasetWrapper dw = getDatasetWrapper(); + Dataset d = dw.getDataset(); + Model tripleStoreModel = d.getNamedModel(graphURI); + + return fileModel.isIsomorphicWith(tripleStoreModel); } /** @@ -607,12 +614,11 @@ public abstract class RDFServiceJena extends RDFServiceImpl implements RDFServic @Override public boolean isEquivalentGraph(String graphURI, Model graph) throws RDFServiceException { // Retrieve the graph to compare - Model tripleStoreModel = new RDFServiceDataset(this).getNamedModel(graphURI); + DatasetWrapper dw = getDatasetWrapper(); + Dataset d = dw.getDataset(); + Model tripleStoreModel = d.getNamedModel(graphURI); - // Load the entire graph into memory (faster comparison) - Model fromTripleStoreModel = ModelFactory.createDefaultModel().add(tripleStoreModel); - - return graph.isIsomorphicWith(fromTripleStoreModel); + return graph.isIsomorphicWith(tripleStoreModel); } @Override