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;
}
VClassDao vcDao = request.getFullWebappDaoFactory().getVClassDao();
VClassDao vcDao = request.getAssertionsWebappDaoFactory().getVClassDao();
String modeStr = request.getParameter("opMode");
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.ontology.OntClass;
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.Restriction;
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.shared.Lock;
@ -57,129 +60,12 @@ public class RestrictionOperationController extends BaseEditController {
if (epo == null) {
response.sendRedirect(defaultLandingPage);
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 ) ) {
ontModel.enterCriticalSection(Lock.WRITE);
try {
ontModel.getBaseModel().notifyEvent(new EditEvent(request.getFullWebappDaoFactory().getUserURI(),true));
if ( request.getParameter("_action") != null && request.getParameter("_action").equals("delete") ) {
String restId = request.getParameter("restrictionId");
if (restId != null) {
OntClass restrictedClass = ontModel.getOntClass( request.getParameter( "classUri" ) );
OntClass rest = null;
for ( Iterator i = restrictedClass.listEquivalentClasses(); i.hasNext(); ) {
OntClass equivClass = (OntClass) i.next();
if (equivClass.isAnon() && equivClass.getId().toString().equals(restId)) {
rest = equivClass;
}
}
if ( rest == null ) {
for ( Iterator i = restrictedClass.listSuperClasses(); i.hasNext(); ) {
OntClass superClass = (OntClass) i.next();
if (superClass.isAnon() && superClass.getId().toString().equals(restId)) {
rest = superClass;
}
}
}
if ( rest != null ) {
rest.remove();
}
}
} else {
OntProperty onProperty = ontModel.getOntProperty( (String) request.getParameter("onProperty") );
String conditionTypeStr = request.getParameter("conditionType");
String restrictionTypeStr = (String) epo.getAttribute("restrictionType");
Restriction rest = null;
OntClass ontClass = ontModel.getOntClass( (String) epo.getAttribute("VClassURI") );
String roleFillerURIStr = request.getParameter("ValueClass");
Resource roleFiller = null;
if (roleFillerURIStr != null) {
roleFiller = ontModel.getResource(roleFillerURIStr);
}
int cardinality = -1;
String cardinalityStr = request.getParameter("cardinality");
if (cardinalityStr != null) {
cardinality = Integer.decode(cardinalityStr);
}
if (restrictionTypeStr.equals("allValuesFrom")) {
rest = ontModel.createAllValuesFromRestriction(null,onProperty,roleFiller);
} else if (restrictionTypeStr.equals("someValuesFrom")) {
rest = ontModel.createSomeValuesFromRestriction(null,onProperty,roleFiller);
} else if (restrictionTypeStr.equals("hasValue")) {
String valueURI = request.getParameter("ValueIndividual");
if (valueURI != null) {
Resource valueRes = ontModel.getResource(valueURI);
if (valueRes != null) {
rest = ontModel.createHasValueRestriction(null, onProperty, valueRes);
}
} else {
String valueLexicalForm = request.getParameter("ValueLexicalForm");
if (valueLexicalForm != null) {
String valueDatatype = request.getParameter("ValueDatatype");
Literal value = null;
if (valueDatatype != null && valueDatatype.length() > 0) {
RDFDatatype dtype = null;
try {
dtype = TypeMapper.getInstance().getSafeTypeByName(valueDatatype);
} catch (Exception e) {
log.warn ("Unable to get safe type " + valueDatatype + " using TypeMapper");
}
if (dtype != null) {
value = ontModel.createTypedLiteral(valueLexicalForm, dtype);
} else {
value = ontModel.createLiteral(valueLexicalForm);
}
} else {
value = ontModel.createLiteral(valueLexicalForm);
}
rest = ontModel.createHasValueRestriction(null, onProperty, value);
}
}
} else if (restrictionTypeStr.equals("minCardinality")) {
rest = ontModel.createMinCardinalityRestriction(null,onProperty,cardinality);
} else if (restrictionTypeStr.equals("maxCardinality")) {
rest = ontModel.createMaxCardinalityRestriction(null,onProperty,cardinality);
} else if (restrictionTypeStr.equals("cardinality")) {
rest = ontModel.createCardinalityRestriction(null,onProperty,cardinality);
}
if (conditionTypeStr.equals("necessary")) {
ontClass.addSuperClass(rest);
} else if (conditionTypeStr.equals("necessaryAndSufficient")) {
ontClass.addEquivalentClass(rest);
}
}
} finally {
ontModel.getBaseModel().notifyEvent(new EditEvent(request.getFullWebappDaoFactory().getUserURI(),false));
ontModel.leaveCriticalSection();
}
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) {
@ -198,7 +84,144 @@ public class RestrictionOperationController extends BaseEditController {
throw new RuntimeException(f);
}
}
}
private void processRestriction(VitroRequest request, EditProcessObject epo, OntModel ontModel) {
ontModel.enterCriticalSection(Lock.WRITE);
try {
ontModel.getBaseModel().notifyEvent(new EditEvent(request.getFullWebappDaoFactory().getUserURI(),true));
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");
if (restId != null) {
OntClass restrictedClass = ontModel.getOntClass( request.getParameter( "classUri" ) );
OntClass rest = null;
for ( Iterator i = restrictedClass.listEquivalentClasses(); i.hasNext(); ) {
OntClass equivClass = (OntClass) i.next();
if (equivClass.isAnon() && equivClass.getId().toString().equals(restId)) {
rest = equivClass;
}
}
if ( rest == null ) {
for ( Iterator i = restrictedClass.listSuperClasses(); i.hasNext(); ) {
OntClass superClass = (OntClass) i.next();
if (superClass.isAnon() && superClass.getId().toString().equals(restId)) {
rest = superClass;
}
}
}
/**
* removing by graph subtraction so that statements with blank nodes
* stick together and are processed appropriately by the bulk update
* handler
*/
if ( rest != null ) {
Model temp = ModelFactory.createDefaultModel();
temp.add(rest.listProperties());
ontModel.getBaseModel().remove(temp);
}
}
}
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") );
String conditionTypeStr = request.getParameter("conditionType");
String restrictionTypeStr = (String) epo.getAttribute("restrictionType");
Restriction rest = null;
OntClass ontClass = ontModel.getOntClass( (String) epo.getAttribute("VClassURI") );
String roleFillerURIStr = request.getParameter("ValueClass");
Resource roleFiller = null;
if (roleFillerURIStr != null) {
roleFiller = ontModel.getResource(roleFillerURIStr);
}
int cardinality = -1;
String cardinalityStr = request.getParameter("cardinality");
if (cardinalityStr != null) {
cardinality = Integer.decode(cardinalityStr);
}
if (restrictionTypeStr.equals("allValuesFrom")) {
rest = ontModel.createAllValuesFromRestriction(null,onProperty,roleFiller);
} else if (restrictionTypeStr.equals("someValuesFrom")) {
rest = ontModel.createSomeValuesFromRestriction(null,onProperty,roleFiller);
} else if (restrictionTypeStr.equals("hasValue")) {
String valueURI = request.getParameter("ValueIndividual");
if (valueURI != null) {
Resource valueRes = ontModel.getResource(valueURI);
if (valueRes != null) {
rest = ontModel.createHasValueRestriction(null, onProperty, valueRes);
}
} else {
String valueLexicalForm = request.getParameter("ValueLexicalForm");
if (valueLexicalForm != null) {
String valueDatatype = request.getParameter("ValueDatatype");
Literal value = null;
if (valueDatatype != null && valueDatatype.length() > 0) {
RDFDatatype dtype = null;
try {
dtype = TypeMapper.getInstance().getSafeTypeByName(valueDatatype);
} catch (Exception e) {
log.warn ("Unable to get safe type " + valueDatatype + " using TypeMapper");
}
if (dtype != null) {
value = ontModel.createTypedLiteral(valueLexicalForm, dtype);
} else {
value = ontModel.createLiteral(valueLexicalForm);
}
} else {
value = ontModel.createLiteral(valueLexicalForm);
}
rest = ontModel.createHasValueRestriction(null, onProperty, value);
}
}
} else if (restrictionTypeStr.equals("minCardinality")) {
rest = ontModel.createMinCardinalityRestriction(null,onProperty,cardinality);
} else if (restrictionTypeStr.equals("maxCardinality")) {
rest = ontModel.createMaxCardinalityRestriction(null,onProperty,cardinality);
} else if (restrictionTypeStr.equals("cardinality")) {
rest = ontModel.createCardinalityRestriction(null,onProperty,cardinality);
}
if (conditionTypeStr.equals("necessary")) {
ontClass.addSuperClass(rest);
} else if (conditionTypeStr.equals("necessaryAndSufficient")) {
ontClass.addEquivalentClass(rest);
}
origModel.add(temp);
}
}

View file

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

View file

@ -671,7 +671,7 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
static {
List<String> namespaceFilters = new ArrayList<String>();
for (String namespace : EXCLUDED_NAMESPACES) {
namespaceFilters.add("( afn:namespace(?property) != \"" + namespace + "\" )");
namespaceFilters.add("( !regex(str(?property), \"^" + namespace + "\" ))");
}
PROPERTY_FILTERS = StringUtils.join(namespaceFilters, " && ");
}
@ -683,11 +683,11 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
" ?property a owl:DatatypeProperty . \n" +
" FILTER ( \n" +
" isLiteral(?object) && \n" +
" ( afn:namespace(?property) != \"" + VitroVocabulary.PUBLIC + "\" ) && \n" +
" ( afn:namespace(?property) != \"" + VitroVocabulary.OWL + "\" ) && \n" +
" ( !regex(str(?property), \"^" + VitroVocabulary.PUBLIC + "\" )) && \n" +
" ( !regex(str(?property), \"^" + VitroVocabulary.OWL + "\" )) && \n" +
// 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.
" ( ?property = <" + VitroVocabulary.MONIKER + "> || afn:namespace(?property) != \"" + VitroVocabulary.vitroURI + "\" ) \n" +
" ( ?property = <" + VitroVocabulary.MONIKER + "> || !regex(str(?property), \"^" + VitroVocabulary.vitroURI + "\" )) \n" +
" ) \n" +
"}";

View file

@ -785,12 +785,12 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp
static {
List<String> namespaceFilters = new ArrayList<String>();
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
namespaceFilters.add("( ?property = vitro:primaryLink ||" +
"?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, " && ");
}

View file

@ -1,59 +1,62 @@
package edu.cornell.mannlib.vitro.webapp.dao.jena;
import java.util.ArrayList;
import java.util.Iterator;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.query.Dataset;
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.sparql.core.DatasetGraph;
public class SparqlDataset implements Dataset {
private String endpointURI;
private SparqlDatasetGraph g;
public SparqlDataset(String endpointURI) {
this.endpointURI = endpointURI;
public SparqlDataset(SparqlDatasetGraph g) {
this.g = g;
}
@Override
public DatasetGraph asDatasetGraph() {
// TODO Auto-generated method stub
return null;
return g;
}
@Override
public void close() {
// TODO Auto-generated method stub
g.close();
}
@Override
public boolean containsNamedModel(String arg0) {
return true;
return g.containsGraph(Node.createURI(arg0));
}
@Override
public Model getDefaultModel() {
// TODO Auto-generated method stub
return null;
return ModelFactory.createModelForGraph(g.getDefaultGraph());
}
@Override
public Lock getLock() {
// TODO Auto-generated method stub
return null;
return g.getLock();
}
@Override
public Model getNamedModel(String arg0) {
// TODO Auto-generated method stub
return null;
return ModelFactory.createModelForGraph(g.getGraph(Node.createURI(arg0)));
}
@Override
public Iterator<String> listNames() {
// TODO Auto-generated method stub
return null;
ArrayList<String> nameList = new ArrayList<String>();
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(), "") + " } "
+ ((graphURI != null) ? " } " : "");
//log.info(updateString);
if (graphURI != null) {
log.info("=====> update to graph " + graphURI);
}
log.info(updateString);
executeUpdate(updateString);
@ -195,7 +199,6 @@ public class SparqlGraph implements GraphWithPerform {
@Override
public void delete(Triple arg0) throws DeleteDeniedException {
//log.info("********************** DELETE!!!!!! ************************");
performDelete(arg0);
}
@ -228,7 +231,7 @@ public class SparqlGraph implements GraphWithPerform {
literalBuff.append("^^<").append(node.getLiteralDatatypeURI()).append(">");
} else if (node.getLiteralLanguage() != null && node.getLiteralLanguage() != "") {
literalBuff.append("@").append(node.getLiteralLanguage());
; }
}
return literalBuff.toString();
} else {
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
public ExtendedIterator<Triple> find(Node subject, Node predicate, Node object) {
if (!isVar(subject) && !isVar(predicate) && !isVar(object)) {
@ -265,7 +276,16 @@ public class SparqlGraph implements GraphWithPerform {
findQuery.append(" } ");
}
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());

View file

@ -65,6 +65,21 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
@Override
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 blankNodeModel = ModelFactory.createDefaultModel();
Model nonBlankNodeModel = ModelFactory.createDefaultModel();
@ -77,12 +92,68 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
blankNodeModel.add(stmt);
}
}
addModel(nonBlankNodeModel);
// replace following call with different method
addModel(blankNodeModel);
Model[] result = new Model[2];
result[0] = 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) {
verbModel(model, "INSERT");
}
public void deleteModel(Model model) {
verbModel(model, "DELETE");
}
private void verbModel(Model model, String verb) {
Model m = ModelFactory.createDefaultModel();
int testLimit = 1000;
StmtIterator stmtIt = model.listStatements();
@ -96,7 +167,7 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
m.write(sw, "N-TRIPLE");
StringBuffer updateStringBuff = new StringBuffer();
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(((graphURI != null) ? " } " : "") + " }");
@ -132,11 +203,7 @@ public class SparqlGraphBulkUpdater extends SimpleBulkUpdateHandler {
}
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 );
try {
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.rdf.model.Literal;
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.Resource;
import com.hp.hpl.jena.rdf.model.ResourceFactory;
@ -620,9 +621,13 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
supURIs.add(getClassURIStr(cls));
}
} catch (Exception e) {
//TODO make this attempt respect the direct argument
// we'll try this again using a different method that doesn't try to convert to OntClass
List<Resource> supList = this.listDirectObjectPropertyValues(getOntModel().getResource(classURI), RDFS.subClassOf);
log.debug(e,e);
// we'll try this again using a different method
// 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) {
supURIs.add(getClassURIStr(res));
}
@ -630,6 +635,18 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
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() {
VClass top = new VClass();
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.ontology.OntModel;
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.DatasetFactory;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
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.WebappDaoFactoryConfig;
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.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.servlet.setup.JenaDataSourceSetupBase;
@ -198,7 +195,7 @@ public class WebappDaoFactorySDBPrep implements Filter {
OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, m);
//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.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.OntModelSpec;
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.QueryExecution;
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.Statement;
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.Store;
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.OntModelSelector;
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.SparqlGraph;
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker;
@ -129,7 +128,7 @@ public class JenaDataSourceSetupSparql2 extends JenaDataSourceSetupBase
ctx).getProperty("VitroConnection.DataSource.endpointURI");
Graph g = new SparqlGraph(endpointURI);
Dataset dataset = DatasetFactory.create(new SparqlDatasetGraph(endpointURI));
Dataset dataset = new SparqlDataset(new SparqlDatasetGraph(endpointURI));
setStartupDataset(dataset, ctx);
// setStartupDataset(SDBFactory.connectDataset(store), ctx);
@ -191,6 +190,7 @@ public class JenaDataSourceSetupSparql2 extends JenaDataSourceSetupBase
tboxAssertions.getBaseModel().register(new ModelSynchronizer(
tboxAssertionsDB));
baseOms.setTBoxModel(tboxAssertions);
} catch (Throwable e) {
log.error("Unable to load tbox assertion cache from DB", e);