VIVO-909 Improve documentation of the TripleStoreQuirks

This commit is contained in:
Jim Blake 2015-01-05 18:54:36 -05:00
parent 7639bf43e3
commit 6513d34d86
2 changed files with 20 additions and 15 deletions

View file

@ -43,6 +43,7 @@ import edu.cornell.mannlib.vitro.webapp.rdfservice.ModelChange;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceImpl; import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceImpl;
import edu.cornell.mannlib.vitro.webapp.utils.logging.ToString;
public abstract class RDFServiceJena extends RDFServiceImpl implements RDFService { public abstract class RDFServiceJena extends RDFServiceImpl implements RDFService {
@ -106,8 +107,8 @@ public abstract class RDFServiceJena extends RDFServiceImpl implements RDFServic
dumpOperation(model, modelChange); dumpOperation(model, modelChange);
} }
if (modelChange.getOperation() == ModelChange.Operation.ADD) { if (modelChange.getOperation() == ModelChange.Operation.ADD) {
model.read(modelChange.getSerializedModel(), null, Model addition = parseModel(modelChange);
getSerializationFormatString(modelChange.getSerializationFormat())); model.add(addition);
} else if (modelChange.getOperation() == ModelChange.Operation.REMOVE) { } else if (modelChange.getOperation() == ModelChange.Operation.REMOVE) {
Model removal = parseModel(modelChange); Model removal = parseModel(modelChange);
model.remove(removal); model.remove(removal);
@ -165,17 +166,13 @@ public abstract class RDFServiceJena extends RDFServiceImpl implements RDFServic
String changeString = new String(changeBytes).replace('\n', ' '); String changeString = new String(changeBytes).replace('\n', ' ');
String graphUri = modelChange.getGraphURI(); log.debug(String.format(
int delimHere = Math.max(graphUri.lastIndexOf('#'), ">>>>OPERATION: %3.3s %03dpunc, format=%s, graphUri='%s'\n"
graphUri.lastIndexOf('/')); + " start=%.200s\n" + " model=%s",
String graphLocalName = graphUri.substring(delimHere + 1); modelChange.getOperation(), puncCount,
modelChange.getSerializationFormat(),
String modelClassName = model.getClass().getSimpleName(); modelChange.getGraphURI(), changeString,
ToString.modelToString(model)));
log.debug(String
.format(">>>>OPERATION: %3.3s %03dpunc, name='%s', class=%s, start=%.200s",
op, puncCount, graphLocalName, modelClassName,
changeString));
} }
private void removeBlankNodesWithSparqlUpdate(Dataset dataset, Model model, String graphURI) { private void removeBlankNodesWithSparqlUpdate(Dataset dataset, Model model, String graphURI) {

View file

@ -3,6 +3,7 @@
package edu.cornell.mannlib.vitro.webapp.triplesource.impl; package edu.cornell.mannlib.vitro.webapp.triplesource.impl;
import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import edu.cornell.mannlib.vitro.webapp.modules.tripleSource.TripleStoreQuirks; import edu.cornell.mannlib.vitro.webapp.modules.tripleSource.TripleStoreQuirks;
@ -12,8 +13,15 @@ import edu.cornell.mannlib.vitro.webapp.modules.tripleSource.TripleStoreQuirks;
public class DefaultTripleStoreQuirks implements TripleStoreQuirks { public class DefaultTripleStoreQuirks implements TripleStoreQuirks {
@Override @Override
public boolean hasFileGraphChanged(Model fromFile, Model previous, String graphURI) { public boolean hasFileGraphChanged(Model fromFile, Model previous,
return !fromFile.isIsomorphicWith(previous); String graphURI) {
/**
* The test for isomorphism involves a large number of ASK queries. It
* appears to be faster to read the previous graph data into memory than
* to run those queries against the RDFService.
*/
return !fromFile.isIsomorphicWith(ModelFactory.createDefaultModel()
.add(previous));
} }
} }