From 0a71b802dff8a3f1452efb60cf574a327a828586 Mon Sep 17 00:00:00 2001 From: bjl23 Date: Mon, 22 Nov 2010 16:24:00 +0000 Subject: [PATCH] SDB code into trunk; not yet active by default --- webapp/config/web.xml | 3 +- .../webapp/controller/SparqlQueryServlet.java | 24 +- .../vitro/webapp/controller/VitroRequest.java | 30 +- .../Properties2PropertiesRetryController.java | 8 +- .../freemarker/BrowseController.java | 62 +- .../controller/jena/RDFUploadController.java | 7 +- .../dao/filtering/VClassDaoFiltering.java | 1 + .../jena/DataPropertyStatementDaoJena.java | 11 +- .../dao/jena/DataPropertyStatementDaoSDB.java | 100 ++ .../webapp/dao/jena/IndividualDaoJena.java | 30 +- .../webapp/dao/jena/IndividualDaoSDB.java | 444 ++++++ .../vitro/webapp/dao/jena/IndividualSDB.java | 1248 +++++++++++++++++ .../vitro/webapp/dao/jena/IndividualSDB2.java | 1167 +++++++++++++++ .../KeywordIndividualRelationDaoJena.java | 3 +- .../vitro/webapp/dao/jena/LinksDaoJena.java | 3 +- .../jena/ObjectPropertyStatementDaoJena.java | 7 +- .../jena/ObjectPropertyStatementDaoSDB.java | 139 ++ .../webapp/dao/jena/OntModelSelectorImpl.java | 68 + .../webapp/dao/jena/SDBGraphGenerator.java | 50 + .../vitro/webapp/dao/jena/VClassDaoJena.java | 48 +- .../vitro/webapp/dao/jena/VClassDaoSDB.java | 110 ++ .../webapp/dao/jena/WebappDaoFactoryJena.java | 2 +- .../webapp/dao/jena/WebappDaoFactorySDB.java | 60 + .../edit/n3editing/StandardModelSelector.java | 14 +- .../webapp/filters/VitroRequestPrep.java | 8 +- .../filters/WebappDaoFactorySDBPrep.java | 135 ++ .../vitro/webapp/reasoner/SimpleReasoner.java | 575 ++++++++ .../support/SimpleReasonerTBoxListener.java | 39 + .../webapp/servlet/setup/AttachSubmodels.java | 3 +- .../webapp/servlet/setup/FileGraphSetup.java | 233 +++ .../servlet/setup/JenaDataSourceSetup.java | 2 + .../setup/JenaDataSourceSetupBase.java | 94 +- .../servlet/setup/JenaDataSourceSetupSDB.java | 415 ++++++ .../setup/JenaPersistentDataSourceSetup.java | 4 + .../servlet/setup/SimpleReasonerSetup.java | 125 ++ .../webapp/reasoner/SimpleReasonerTest.java | 312 +++++ webapp/web/admin/sparqlquery/sparqlForm.jsp | 4 +- 37 files changed, 5507 insertions(+), 81 deletions(-) create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/DataPropertyStatementDaoSDB.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB2.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyStatementDaoSDB.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/OntModelSelectorImpl.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SDBGraphGenerator.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VClassDaoSDB.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/WebappDaoFactorySDB.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySDBPrep.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/support/SimpleReasonerTBoxListener.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSDB.java create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java create mode 100644 webapp/test/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasonerTest.java diff --git a/webapp/config/web.xml b/webapp/config/web.xml index 8e7f69fa4..1cc4d26d2 100644 --- a/webapp/config/web.xml +++ b/webapp/config/web.xml @@ -108,10 +108,11 @@ + diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java index ed5d24314..d8078c4b9 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java @@ -24,6 +24,7 @@ import org.apache.commons.logging.LogFactory; 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.query.Query; import com.hp.hpl.jena.query.QueryExecution; @@ -57,9 +58,11 @@ import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; public class SparqlQueryServlet extends BaseEditController { private static final Log log = LogFactory.getLog(SparqlQueryServlet.class.getName()); + private static final String kb2 = "http://vitro.mannlib.cornell.edu/default/vitro-kb-2"; protected static final Syntax SYNTAX = Syntax.syntaxARQ; + protected static HashMapformatSymbols = new HashMap(); static{ formatSymbols.put( ResultSetFormat.syntaxXML.getSymbol(), ResultSetFormat.syntaxXML); @@ -141,6 +144,7 @@ public class SparqlQueryServlet extends BaseEditController { } DataSource dataSource = DatasetFactory.create() ; + Dataset dataset = null; ModelMaker maker = (ModelMaker) getServletContext().getAttribute("vitroJenaModelMaker"); boolean someModelSet = false; @@ -156,21 +160,27 @@ public class SparqlQueryServlet extends BaseEditController { ontModel.addSubModel(modelNamed); someModelSet = true; } - } + } + if (someModelSet) { + dataSource.setDefaultModel(ontModel); } + } - if( ! someModelSet ) - dataSource.setDefaultModel(model) ; - - executeQuery(request, response, resultFormatParam, rdfResultFormatParam, queryParam, dataSource); + if( ! someModelSet ){ + dataset = vreq.getDataset(); + if(dataset==null){ + dataSource.setDefaultModel(model) ; + } + } + executeQuery(request, response, resultFormatParam, rdfResultFormatParam, queryParam, (dataset != null) ? dataset : dataSource); return; } private void executeQuery(HttpServletRequest req, - HttpServletResponse response, String resultFormatParam, String rdfResultFormatParam, String queryParam, DataSource dataSource ) throws IOException { + HttpServletResponse response, String resultFormatParam, String rdfResultFormatParam, String queryParam, Dataset dataset ) throws IOException { ResultSetFormat rsf = null; /* BJL23 2008-11-06 @@ -188,7 +198,7 @@ public class SparqlQueryServlet extends BaseEditController { QueryExecution qe = null; try{ Query query = QueryFactory.create(queryParam, SYNTAX); - qe = QueryExecutionFactory.create(query, dataSource); + qe = QueryExecutionFactory.create(query, dataset); if( query.isSelectType() ){ ResultSet results = null; results = qe.execSelect(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java index 74e8e4a00..7c0f508fc 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java @@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import com.hp.hpl.jena.ontology.OntModel; +import com.hp.hpl.jena.query.Dataset; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.beans.Portal; @@ -68,14 +69,31 @@ public class VitroRequest implements HttpServletRequest { return (WebappDaoFactory) getAttribute("webappDaoFactory"); } + public void setFullWebappDaoFactory(WebappDaoFactory wdf) { + setAttribute("fullWebappDaoFactory", wdf); + } + + public Dataset getDataset() { + return (Dataset) getAttribute("dataset"); + } + + public void setDataset(Dataset dataset) { + setAttribute("dataset", dataset); + } + /** gets assertions + inferences WebappDaoFactory with no filtering **/ public WebappDaoFactory getFullWebappDaoFactory() { - Object webappDaoFactoryAttr = _req.getSession().getAttribute("webappDaoFactory"); - if (webappDaoFactoryAttr instanceof WebappDaoFactory) { - return (WebappDaoFactory) webappDaoFactoryAttr; - } else { - return (WebappDaoFactory) _req.getSession().getServletContext().getAttribute("webappDaoFactory"); - } + Object webappDaoFactoryAttr = _req.getAttribute("fullWebappDaoFactory"); + if (webappDaoFactoryAttr instanceof WebappDaoFactory) { + return (WebappDaoFactory) webappDaoFactoryAttr; + } else { + webappDaoFactoryAttr = _req.getSession().getAttribute("webappDaoFactory"); + if (webappDaoFactoryAttr instanceof WebappDaoFactory) { + return (WebappDaoFactory) webappDaoFactoryAttr; + } else { + return (WebappDaoFactory) _req.getSession().getServletContext().getAttribute("webappDaoFactory"); + } + } } /** gets assertions-only WebappDaoFactory with no filtering */ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java index 97db38126..d0f1d3373 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/Properties2PropertiesRetryController.java @@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.controller.edit; import java.text.CollationKey; import java.util.ArrayList; import java.util.Collection; +import java.text.Collator; +import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -12,6 +14,7 @@ import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.TreeMap; +import java.util.ListIterator; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; @@ -73,9 +76,8 @@ public class Properties2PropertiesRetryController extends BaseEditController { Collections.sort(propList); - String superpropertyURIstr = request.getParameter("SuperpropertyURI"); - String subpropertyURIstr = request.getParameter("SubpropertyURI"); - + String superpropertyURIstr = request.getParameter("SuperpropertyURI"); + String subpropertyURIstr = request.getParameter("SubpropertyURI"); HashMap hashMap = new HashMap(); List