work on triple store independence including NIHVIVO-3751 NIHVIVO-3644 NIHVIVO-3743 and NIHVIVO-3745

This commit is contained in:
brianjlowe 2012-05-09 19:14:09 +00:00
parent 25e2cb820e
commit 423ec922d8
11 changed files with 297 additions and 170 deletions

View file

@ -57,7 +57,7 @@ public class Classes2ClassesOperationController extends BaseEditController {
return; return;
} }
VClassDao vcDao = request.getFullWebappDaoFactory().getVClassDao(); VClassDao vcDao = request.getAssertionsWebappDaoFactory().getVClassDao();
String modeStr = request.getParameter("opMode"); String modeStr = request.getParameter("opMode");
modeStr = (modeStr == null) ? "" : modeStr; modeStr = (modeStr == null) ? "" : modeStr;

View file

@ -15,9 +15,12 @@ import com.hp.hpl.jena.datatypes.RDFDatatype;
import com.hp.hpl.jena.datatypes.TypeMapper; import com.hp.hpl.jena.datatypes.TypeMapper;
import com.hp.hpl.jena.ontology.OntClass; import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.ontology.OntProperty; import com.hp.hpl.jena.ontology.OntProperty;
import com.hp.hpl.jena.ontology.Restriction; import com.hp.hpl.jena.ontology.Restriction;
import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.shared.Lock; import com.hp.hpl.jena.shared.Lock;
@ -59,16 +62,50 @@ public class RestrictionOperationController extends BaseEditController {
return; return;
} }
// TODO: I need to de-spaghettify this and remap this controller, now that I know what I'm doing
if ( (request.getParameter("_cancel") == null ) ) { if ( (request.getParameter("_cancel") == null ) ) {
processRestriction(request, epo, ontModel);
}
//if no page forwarder was set, just go back to referring page:
String referer = epo.getReferer();
if (referer == null) {
response.sendRedirect(defaultLandingPage);
} else {
response.sendRedirect(referer);
}
} catch (Exception e) {
log.error(e, e);
try {
response.sendRedirect(defaultLandingPage);
return;
} catch (Exception f) {
log.error(f, f);
throw new RuntimeException(f);
}
}
}
private void processRestriction(VitroRequest request, EditProcessObject epo, OntModel ontModel) {
ontModel.enterCriticalSection(Lock.WRITE); ontModel.enterCriticalSection(Lock.WRITE);
try { try {
ontModel.getBaseModel().notifyEvent(new EditEvent(request.getFullWebappDaoFactory().getUserURI(),true)); ontModel.getBaseModel().notifyEvent(new EditEvent(request.getFullWebappDaoFactory().getUserURI(),true));
if ( request.getParameter("_action") != null && request.getParameter("_action").equals("delete") ) { if ("delete".equals(request.getParameter("_action"))) {
processDelete(request, ontModel);
} else {
processCreate(request, epo, ontModel);
}
} finally {
ontModel.getBaseModel().notifyEvent(new EditEvent(request.getFullWebappDaoFactory().getUserURI(),false));
ontModel.leaveCriticalSection();
}
}
private void processDelete(VitroRequest request, OntModel ontModel) {
String restId = request.getParameter("restrictionId"); String restId = request.getParameter("restrictionId");
@ -94,13 +131,25 @@ public class RestrictionOperationController extends BaseEditController {
} }
} }
/**
* removing by graph subtraction so that statements with blank nodes
* stick together and are processed appropriately by the bulk update
* handler
*/
if ( rest != null ) { if ( rest != null ) {
rest.remove(); Model temp = ModelFactory.createDefaultModel();
temp.add(rest.listProperties());
ontModel.getBaseModel().remove(temp);
} }
} }
}
} else { private void processCreate(VitroRequest request, EditProcessObject epo, OntModel origModel) {
Model temp = ModelFactory.createDefaultModel();
Model dynamicUnion = ModelFactory.createUnion(temp, origModel);
OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, dynamicUnion);
OntProperty onProperty = ontModel.getOntProperty( (String) request.getParameter("onProperty") ); OntProperty onProperty = ontModel.getOntProperty( (String) request.getParameter("onProperty") );
@ -171,33 +220,7 @@ public class RestrictionOperationController extends BaseEditController {
ontClass.addEquivalentClass(rest); ontClass.addEquivalentClass(rest);
} }
} origModel.add(temp);
} finally {
ontModel.getBaseModel().notifyEvent(new EditEvent(request.getFullWebappDaoFactory().getUserURI(),false));
ontModel.leaveCriticalSection();
}
}
//if no page forwarder was set, just go back to referring page:
String referer = epo.getReferer();
if (referer == null) {
response.sendRedirect(defaultLandingPage);
} else {
response.sendRedirect(referer);
}
} catch (Exception e) {
log.error(e, e);
try {
response.sendRedirect(defaultLandingPage);
return;
} catch (Exception f) {
log.error(f, f);
throw new RuntimeException(f);
}
}
} }

View file

@ -176,7 +176,7 @@ class IndividualResponseBuilder {
private IndividualTemplateModel getIndividualTemplateModel( private IndividualTemplateModel getIndividualTemplateModel(
Individual individual) { Individual individual) {
individual.sortForDisplay(); //individual.sortForDisplay();
return new IndividualTemplateModel(individual, vreq); return new IndividualTemplateModel(individual, vreq);
} }

View file

@ -671,7 +671,7 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
static { static {
List<String> namespaceFilters = new ArrayList<String>(); List<String> namespaceFilters = new ArrayList<String>();
for (String namespace : EXCLUDED_NAMESPACES) { for (String namespace : EXCLUDED_NAMESPACES) {
namespaceFilters.add("( afn:namespace(?property) != \"" + namespace + "\" )"); namespaceFilters.add("( !regex(str(?property), \"^" + namespace + "\" ))");
} }
PROPERTY_FILTERS = StringUtils.join(namespaceFilters, " && "); PROPERTY_FILTERS = StringUtils.join(namespaceFilters, " && ");
} }
@ -683,11 +683,11 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
" ?property a owl:DatatypeProperty . \n" + " ?property a owl:DatatypeProperty . \n" +
" FILTER ( \n" + " FILTER ( \n" +
" isLiteral(?object) && \n" + " isLiteral(?object) && \n" +
" ( afn:namespace(?property) != \"" + VitroVocabulary.PUBLIC + "\" ) && \n" + " ( !regex(str(?property), \"^" + VitroVocabulary.PUBLIC + "\" )) && \n" +
" ( afn:namespace(?property) != \"" + VitroVocabulary.OWL + "\" ) && \n" + " ( !regex(str(?property), \"^" + VitroVocabulary.OWL + "\" )) && \n" +
// NIHVIVO-2790 vitro:moniker has been deprecated, but display existing values for editorial management (deletion is encouraged). // NIHVIVO-2790 vitro:moniker has been deprecated, but display existing values for editorial management (deletion is encouraged).
// This property will be hidden from public display by default. // This property will be hidden from public display by default.
" ( ?property = <" + VitroVocabulary.MONIKER + "> || afn:namespace(?property) != \"" + VitroVocabulary.vitroURI + "\" ) \n" + " ( ?property = <" + VitroVocabulary.MONIKER + "> || !regex(str(?property), \"^" + VitroVocabulary.vitroURI + "\" )) \n" +
" ) \n" + " ) \n" +
"}"; "}";

View file

@ -785,12 +785,12 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp
static { static {
List<String> namespaceFilters = new ArrayList<String>(); List<String> namespaceFilters = new ArrayList<String>();
for (String namespace : EXCLUDED_NAMESPACES) { for (String namespace : EXCLUDED_NAMESPACES) {
namespaceFilters.add("( afn:namespace(?property) != \"" + namespace + "\" )"); namespaceFilters.add("( !regex(str(?property), \"^" + namespace + "\" ))");
} }
// A hack to include the vitro:primaryLink and vitro:additionalLink properties in the list // A hack to include the vitro:primaryLink and vitro:additionalLink properties in the list
namespaceFilters.add("( ?property = vitro:primaryLink ||" + namespaceFilters.add("( ?property = vitro:primaryLink ||" +
"?property = vitro:additionalLink ||" + "?property = vitro:additionalLink ||" +
"afn:namespace(?property) != \"http://vitro.mannlib.cornell.edu/ns/vitro/0.7#\" )"); "!regex(str(?property), \"^http://vitro.mannlib.cornell.edu/ns/vitro/0.7#\" ))");
PROPERTY_FILTERS = StringUtils.join(namespaceFilters, " && "); PROPERTY_FILTERS = StringUtils.join(namespaceFilters, " && ");
} }

View file

@ -1,59 +1,62 @@
package edu.cornell.mannlib.vitro.webapp.dao.jena; package edu.cornell.mannlib.vitro.webapp.dao.jena;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.query.Dataset; import com.hp.hpl.jena.query.Dataset;
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 com.hp.hpl.jena.shared.Lock; import com.hp.hpl.jena.shared.Lock;
import com.hp.hpl.jena.sparql.core.DatasetGraph; import com.hp.hpl.jena.sparql.core.DatasetGraph;
public class SparqlDataset implements Dataset { public class SparqlDataset implements Dataset {
private String endpointURI; private SparqlDatasetGraph g;
public SparqlDataset(String endpointURI) { public SparqlDataset(SparqlDatasetGraph g) {
this.endpointURI = endpointURI; this.g = g;
} }
@Override @Override
public DatasetGraph asDatasetGraph() { public DatasetGraph asDatasetGraph() {
// TODO Auto-generated method stub return g;
return null;
} }
@Override @Override
public void close() { public void close() {
// TODO Auto-generated method stub g.close();
} }
@Override @Override
public boolean containsNamedModel(String arg0) { public boolean containsNamedModel(String arg0) {
return true; return g.containsGraph(Node.createURI(arg0));
} }
@Override @Override
public Model getDefaultModel() { public Model getDefaultModel() {
// TODO Auto-generated method stub return ModelFactory.createModelForGraph(g.getDefaultGraph());
return null;
} }
@Override @Override
public Lock getLock() { public Lock getLock() {
// TODO Auto-generated method stub return g.getLock();
return null;
} }
@Override @Override
public Model getNamedModel(String arg0) { public Model getNamedModel(String arg0) {
// TODO Auto-generated method stub return ModelFactory.createModelForGraph(g.getGraph(Node.createURI(arg0)));
return null;
} }
@Override @Override
public Iterator<String> listNames() { public Iterator<String> listNames() {
// TODO Auto-generated method stub ArrayList<String> nameList = new ArrayList<String>();
return null; Iterator<Node> nodeIt = g.listGraphNodes();
while (nodeIt.hasNext()) {
Node n = nodeIt.next();
nameList.add(n.getURI());
}
return nameList.iterator();
} }
} }

View file

@ -131,7 +131,11 @@ public class SparqlGraph implements GraphWithPerform {
+ sparqlNodeUpdate(t.getObject(), "") + " } " + sparqlNodeUpdate(t.getObject(), "") + " } "
+ ((graphURI != null) ? " } " : ""); + ((graphURI != null) ? " } " : "");
//log.info(updateString);
if (graphURI != null) {
log.info("=====> update to graph " + graphURI);
}
log.info(updateString);
executeUpdate(updateString); executeUpdate(updateString);
@ -195,7 +199,6 @@ public class SparqlGraph implements GraphWithPerform {
@Override @Override
public void delete(Triple arg0) throws DeleteDeniedException { public void delete(Triple arg0) throws DeleteDeniedException {
//log.info("********************** DELETE!!!!!! ************************");
performDelete(arg0); performDelete(arg0);
} }
@ -228,7 +231,7 @@ public class SparqlGraph implements GraphWithPerform {
literalBuff.append("^^<").append(node.getLiteralDatatypeURI()).append(">"); literalBuff.append("^^<").append(node.getLiteralDatatypeURI()).append(">");
} else if (node.getLiteralLanguage() != null && node.getLiteralLanguage() != "") { } else if (node.getLiteralLanguage() != null && node.getLiteralLanguage() != "") {
literalBuff.append("@").append(node.getLiteralLanguage()); literalBuff.append("@").append(node.getLiteralLanguage());
; } }
return literalBuff.toString(); return literalBuff.toString();
} else { } else {
return varName; return varName;
@ -243,6 +246,14 @@ public class SparqlGraph implements GraphWithPerform {
} }
} }
public static String sparqlNodeDelete(Node node, String varName) {
if (node.isBlank()) {
return "?" + node.getBlankNodeLabel().replaceAll("\\W", "");
} else {
return sparqlNode(node, varName);
}
}
@Override @Override
public ExtendedIterator<Triple> find(Node subject, Node predicate, Node object) { public ExtendedIterator<Triple> find(Node subject, Node predicate, Node object) {
if (!isVar(subject) && !isVar(predicate) && !isVar(object)) { if (!isVar(subject) && !isVar(predicate) && !isVar(object)) {
@ -265,7 +276,16 @@ public class SparqlGraph implements GraphWithPerform {
findQuery.append(" } "); findQuery.append(" } ");
} }
findQuery.append("\n}"); findQuery.append("\n}");
ResultSet rs = execSelect(findQuery.toString());
String queryString = findQuery.toString();
//log.info(queryString);
// //TODO remove me
// if (queryString.contains("individual/AI") && queryString.contains("label")) {
// throw new RuntimeException("break!");
// }
ResultSet rs = execSelect(queryString);
//rs = execSelect(findQuery.toString()); //rs = execSelect(findQuery.toString());
//rs = execSelect(findQuery.toString()); //rs = execSelect(findQuery.toString());

View file

@ -65,6 +65,21 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
@Override @Override
public void add(Graph g, boolean arg1) { public void add(Graph g, boolean arg1) {
log.info("adding graph");
Model[] model = separateStatementsWithBlankNodes(g);
addModel(model[1] /* nonBlankNodeModel */);
// replace following call with different method
addModel(model[0] /*blankNodeModel*/);
}
/**
* Returns a pair of models. The first contains any statement containing at
* least one blank node. The second contains all remaining statements.
* @param g
* @return
*/
private Model[] separateStatementsWithBlankNodes(Graph g) {
Model gm = ModelFactory.createModelForGraph(g); Model gm = ModelFactory.createModelForGraph(g);
Model blankNodeModel = ModelFactory.createDefaultModel(); Model blankNodeModel = ModelFactory.createDefaultModel();
Model nonBlankNodeModel = ModelFactory.createDefaultModel(); Model nonBlankNodeModel = ModelFactory.createDefaultModel();
@ -77,12 +92,68 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
blankNodeModel.add(stmt); blankNodeModel.add(stmt);
} }
} }
addModel(nonBlankNodeModel); Model[] result = new Model[2];
// replace following call with different method result[0] = blankNodeModel;
addModel(blankNodeModel); result[1] = nonBlankNodeModel;
return result;
}
@Override
public void delete(Graph g, boolean withReifications) {
delete(g);
}
@Override
public void delete(Graph g) {
Model[] model = separateStatementsWithBlankNodes(g);
deleteModel(model[1] /*statements without blank nodes*/);
// replace blank nodes in remaining statements with variables
StringBuffer patternBuff = new StringBuffer();
Iterator<Triple> tripIt = g.find(null, null, null);
while(tripIt.hasNext()) {
Triple t = tripIt.next();
patternBuff.append(SparqlGraph.sparqlNodeDelete(t.getSubject(), null));
patternBuff.append(" ");
patternBuff.append(SparqlGraph.sparqlNodeDelete(t.getPredicate(), null));
patternBuff.append(" ");
patternBuff.append(SparqlGraph.sparqlNodeDelete(t.getObject(), null));
patternBuff.append(" .\n");
}
StringBuffer queryBuff = new StringBuffer();
String graphURI = graph.getGraphURI();
queryBuff.append("DELETE { " + ((graphURI != null) ? "GRAPH <" + graphURI + "> { " : "" ) + " \n");
queryBuff.append(patternBuff);
if (graphURI != null) {
queryBuff.append(" } \n");
}
queryBuff.append("} WHERE { \n");
if (graphURI != null) {
queryBuff.append(" GRAPH <" + graphURI + "> { \n");
}
queryBuff.append(patternBuff);
if (graphURI != null) {
queryBuff.append(" } \n");
}
queryBuff.append("} \n");
log.debug(queryBuff.toString());
graph.executeUpdate(queryBuff.toString());
} }
public void addModel(Model model) { public void addModel(Model model) {
verbModel(model, "INSERT");
}
public void deleteModel(Model model) {
verbModel(model, "DELETE");
}
private void verbModel(Model model, String verb) {
Model m = ModelFactory.createDefaultModel(); Model m = ModelFactory.createDefaultModel();
int testLimit = 1000; int testLimit = 1000;
StmtIterator stmtIt = model.listStatements(); StmtIterator stmtIt = model.listStatements();
@ -96,7 +167,7 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
m.write(sw, "N-TRIPLE"); m.write(sw, "N-TRIPLE");
StringBuffer updateStringBuff = new StringBuffer(); StringBuffer updateStringBuff = new StringBuffer();
String graphURI = graph.getGraphURI(); String graphURI = graph.getGraphURI();
updateStringBuff.append("INSERT DATA { " + ((graphURI != null) ? "GRAPH <" + graphURI + "> { " : "" )); updateStringBuff.append(verb + " DATA { " + ((graphURI != null) ? "GRAPH <" + graphURI + "> { " : "" ));
updateStringBuff.append(sw); updateStringBuff.append(sw);
updateStringBuff.append(((graphURI != null) ? " } " : "") + " }"); updateStringBuff.append(((graphURI != null) ? " } " : "") + " }");
@ -133,10 +204,6 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
public static void removeAll(Graph g, Node s, Node p, Node o) public static void removeAll(Graph g, Node s, Node p, Node o)
{ {
// OK, so the strategy here should be to remove all triples without blank nodes first
// Then, feel the entire remaining part of the graph as a DELETE WHERE
// with the blank nodes as variables?
ExtendedIterator<Triple> it = g.find( s, p, o ); ExtendedIterator<Triple> it = g.find( s, p, o );
try { try {
while (it.hasNext()) { while (it.hasNext()) {

View file

@ -38,6 +38,7 @@ import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.query.Syntax; import com.hp.hpl.jena.query.Syntax;
import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.RDFNode; import com.hp.hpl.jena.rdf.model.RDFNode;
import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.rdf.model.ResourceFactory; import com.hp.hpl.jena.rdf.model.ResourceFactory;
@ -620,9 +621,13 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
supURIs.add(getClassURIStr(cls)); supURIs.add(getClassURIStr(cls));
} }
} catch (Exception e) { } catch (Exception e) {
//TODO make this attempt respect the direct argument log.debug(e,e);
// we'll try this again using a different method that doesn't try to convert to OntClass // we'll try this again using a different method
List<Resource> supList = this.listDirectObjectPropertyValues(getOntModel().getResource(classURI), RDFS.subClassOf); // that doesn't try to convert to OntClass
supURIs.clear();
List<Resource> supList = (direct)
? listDirectObjectPropertyValues(subClass, RDFS.subClassOf)
: listObjectPropertyValues(subClass, RDFS.subClassOf);
for (Resource res : supList) { for (Resource res : supList) {
supURIs.add(getClassURIStr(res)); supURIs.add(getClassURIStr(res));
} }
@ -630,6 +635,18 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
return supURIs; return supURIs;
} }
private List<Resource> listObjectPropertyValues(Resource res, Property prop) {
List<Resource> values = new ArrayList<Resource>();
StmtIterator stmtIt = res.listProperties(prop);
while (stmtIt.hasNext()) {
Statement s = stmtIt.nextStatement();
if (s.getObject().isResource()) {
values.add(s.getObject().asResource());
}
}
return values;
}
public VClass getTopConcept() { public VClass getTopConcept() {
VClass top = new VClass(); VClass top = new VClass();
if (getOntModel().getProfile().NAMESPACE().equals(RDFS.getURI())) { if (getOntModel().getProfile().NAMESPACE().equals(RDFS.getURI())) {

View file

@ -28,9 +28,7 @@ import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.graph.Graph; import com.hp.hpl.jena.graph.Graph;
import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec; import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.query.DataSource;
import com.hp.hpl.jena.query.Dataset; import com.hp.hpl.jena.query.Dataset;
import com.hp.hpl.jena.query.DatasetFactory;
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 com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.sdb.SDBFactory; import com.hp.hpl.jena.sdb.SDBFactory;
@ -43,10 +41,9 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector; import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
import edu.cornell.mannlib.vitro.webapp.dao.jena.SingleContentOntModelSelector; import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlDataset;
import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlDatasetGraph; import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlDatasetGraph;
import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlGraphMultilingual; import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlGraphMultilingual;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB; import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase; import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
@ -198,7 +195,7 @@ public class WebappDaoFactorySDBPrep implements Filter {
OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, m); OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, m);
//oms = new SingleContentOntModelSelector(om, oms.getDisplayModel(), oms.getUserAccountsModel()); //oms = new SingleContentOntModelSelector(om, oms.getDisplayModel(), oms.getUserAccountsModel());
Dataset dataset = DatasetFactory.create(new SparqlDatasetGraph(endpointURI)); Dataset dataset = new SparqlDataset(new SparqlDatasetGraph(endpointURI));
//DataSource datasource = DatasetFactory.create(); //DataSource datasource = DatasetFactory.create();
//datasource.addNamedModel("fake:fake", m); //datasource.addNamedModel("fake:fake", m);

View file

@ -19,7 +19,6 @@ import com.hp.hpl.jena.graph.Graph;
import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec; import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.query.Dataset; import com.hp.hpl.jena.query.Dataset;
import com.hp.hpl.jena.query.DatasetFactory;
import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.QueryExecutionFactory;
@ -32,7 +31,6 @@ import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.rdf.model.ResourceFactory; import com.hp.hpl.jena.rdf.model.ResourceFactory;
import com.hp.hpl.jena.rdf.model.Statement; import com.hp.hpl.jena.rdf.model.Statement;
import com.hp.hpl.jena.rdf.model.StmtIterator; import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.sdb.SDB;
import com.hp.hpl.jena.sdb.SDBFactory; import com.hp.hpl.jena.sdb.SDBFactory;
import com.hp.hpl.jena.sdb.Store; import com.hp.hpl.jena.sdb.Store;
import com.hp.hpl.jena.sdb.StoreDesc; import com.hp.hpl.jena.sdb.StoreDesc;
@ -54,6 +52,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer; import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector; import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl; import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl;
import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlDataset;
import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlDatasetGraph; import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlDatasetGraph;
import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlGraph; import edu.cornell.mannlib.vitro.webapp.dao.jena.SparqlGraph;
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker; import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker;
@ -129,7 +128,7 @@ public class JenaDataSourceSetupSparql2 extends JenaDataSourceSetupBase
ctx).getProperty("VitroConnection.DataSource.endpointURI"); ctx).getProperty("VitroConnection.DataSource.endpointURI");
Graph g = new SparqlGraph(endpointURI); Graph g = new SparqlGraph(endpointURI);
Dataset dataset = DatasetFactory.create(new SparqlDatasetGraph(endpointURI)); Dataset dataset = new SparqlDataset(new SparqlDatasetGraph(endpointURI));
setStartupDataset(dataset, ctx); setStartupDataset(dataset, ctx);
// setStartupDataset(SDBFactory.connectDataset(store), ctx); // setStartupDataset(SDBFactory.connectDataset(store), ctx);
@ -191,6 +190,7 @@ public class JenaDataSourceSetupSparql2 extends JenaDataSourceSetupBase
tboxAssertions.getBaseModel().register(new ModelSynchronizer( tboxAssertions.getBaseModel().register(new ModelSynchronizer(
tboxAssertionsDB)); tboxAssertionsDB));
baseOms.setTBoxModel(tboxAssertions); baseOms.setTBoxModel(tboxAssertions);
} catch (Throwable e) { } catch (Throwable e) {
log.error("Unable to load tbox assertion cache from DB", e); log.error("Unable to load tbox assertion cache from DB", e);