[VIVO-1031] Shave off 2/3rds of time required to check if any triples exist by using Jena API instead of SPARQL ASK
This commit is contained in:
parent
15cd6a8ac0
commit
656488b958
1 changed files with 9 additions and 10 deletions
|
@ -17,6 +17,7 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.hp.hpl.jena.graph.NodeFactory;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.joda.time.DateTime;
|
||||
|
@ -62,6 +63,8 @@ import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
|||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
|
||||
import javax.xml.soap.Node;
|
||||
|
||||
public class IndividualSDB extends IndividualImpl implements Individual {
|
||||
|
||||
private static final Log log = LogFactory.getLog(
|
||||
|
@ -166,18 +169,14 @@ public class IndividualSDB extends IndividualImpl implements Individual {
|
|||
}
|
||||
|
||||
private boolean noTriplesFor(String individualURI) {
|
||||
String ask = "ASK { <" + individualURI + "> ?p ?o }";
|
||||
DatasetWrapper w = getDatasetWrapper();
|
||||
Dataset dataset = w.getDataset();
|
||||
dataset.getLock().enterCriticalSection(Lock.READ);
|
||||
try {
|
||||
Query askQuery = QueryFactory.create(ask, Syntax.syntaxARQ);
|
||||
QueryExecution qe = QueryExecutionFactory.create(askQuery, dataset);
|
||||
try {
|
||||
return !qe.execAsk();
|
||||
} finally {
|
||||
qe.close();
|
||||
}
|
||||
return !dataset.asDatasetGraph().contains(NodeFactory.createURI(individualURI),
|
||||
com.hp.hpl.jena.graph.Node.ANY,
|
||||
com.hp.hpl.jena.graph.Node.ANY,
|
||||
com.hp.hpl.jena.graph.Node.ANY);
|
||||
} finally {
|
||||
dataset.getLock().leaveCriticalSection();
|
||||
w.close();
|
||||
|
|
Loading…
Add table
Reference in a new issue