VIVO-909 Improve documentation of the TripleStoreQuirks
This commit is contained in:
parent
7639bf43e3
commit
6513d34d86
2 changed files with 20 additions and 15 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue