diff --git a/webapp/ontologies/system/vitro-0.7.owl b/webapp/ontologies/system/vitro-0.7.owl
index b41d84715..97e505a2b 100644
--- a/webapp/ontologies/system/vitro-0.7.owl
+++ b/webapp/ontologies/system/vitro-0.7.owl
@@ -57,27 +57,6 @@ xmlns:vitro="&vitro;"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java
index ffdcb8ee4..13f22bc27 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java
@@ -21,6 +21,7 @@ import com.hp.hpl.jena.rdf.listeners.StatementListener;
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.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;
@@ -401,6 +402,7 @@ public class SimpleReasoner extends StatementListener {
* that B is of that type.
*
*/
+
public void removedABoxTypeAssertion(Statement stmt, Model inferenceModel) {
//log.debug("stmt = " + stmt.toString());
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java
index 0092d5c9b..517e4ab74 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java
@@ -26,7 +26,8 @@ import com.hp.hpl.jena.sdb.SDBFactory;
import com.hp.hpl.jena.sdb.Store;
import com.hp.hpl.jena.sdb.util.StoreUtils;
-import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl;
+import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
+import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
// This ContextListener must run after the JenaDataSourceSetup ContextListener
@@ -47,10 +48,10 @@ public class FileGraphSetup implements ServletContextListener {
boolean aboxChanged = false; // indicates whether any ABox file graph model has changed
boolean tboxChanged = false; // indicates whether any TBox file graph model has changed
- OntModelSelectorImpl baseOms = null;
+ OntModelSelector baseOms = null;
try {
- baseOms = (OntModelSelectorImpl) sce.getServletContext().getAttribute("baseOntModelSelector");
+ baseOms = ModelContext.getBaseOntModelSelector(sce.getServletContext());
Store kbStore = (Store) sce.getServletContext().getAttribute("kbStore");
// ABox files
@@ -83,7 +84,6 @@ public class FileGraphSetup implements ServletContextListener {
}
if (aboxChanged || tboxChanged) {
-
if ( !JenaDataSourceSetup.updateRequired(sce.getServletContext(), baseOms.getTBoxModel())) {
log.info("a full recompute of the Abox will be performed because" +
" the filegraph abox(s) and/or tbox(s) have changed, or are being read for the first time." );
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetup.java
index 3f8101a0f..91e7db2ae 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetup.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetup.java
@@ -73,8 +73,6 @@ public class JenaDataSourceSetup extends JenaDataSourceSetupBase implements java
setUpJenaDataSource(ctx);
log.info((System.currentTimeMillis() - startTime) / 1000 +
" seconds to set up SDB store");
- } catch (MigrationRequiredError mre) {
- throw new MigrationRequiredError(mre.getMessage());
} catch (SQLException sqle) {
// SQL exceptions are fatal and should halt startup
AbortStartup.abortStartup(ctx);
@@ -94,18 +92,7 @@ public class JenaDataSourceSetup extends JenaDataSourceSetupBase implements java
}
private void setUpJenaDataSource(ServletContext ctx) throws SQLException {
-
- /*
- if ( updateRequired(ctx, memModel)) {
- log.error(getMigrationErrString());
- System.out.println(getMigrationErrString());
- // The rest of the application should not
- // start if this condition is encountered
- AbortStartup.abortStartup(ctx);
- throw new MigrationRequiredError(getMigrationErrString());
- }
- */
-
+
OntModelSelectorImpl baseOms = new OntModelSelectorImpl();
OntModelSelectorImpl inferenceOms = new OntModelSelectorImpl();
OntModelSelectorImpl unionOms = new OntModelSelectorImpl();
@@ -646,12 +633,5 @@ public class JenaDataSourceSetup extends JenaDataSourceSetupBase implements java
return required;
}
-
- private class MigrationRequiredError extends Error {
- public MigrationRequiredError(String string) {
- super(string);
- }
- }
-
}
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java
index b3a6040d2..afc4d2e65 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java
@@ -15,6 +15,7 @@ import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.vocabulary.OWL;
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
+import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.PelletListener;
@@ -41,9 +42,10 @@ public class SimpleReasonerSetup implements ServletContextListener {
try {
// set up Pellet reasoning for the TBox
- OntModelSelector assertionsOms = (OntModelSelector) sce.getServletContext().getAttribute("baseOntModelSelector");
- OntModelSelector inferencesOms = (OntModelSelector) sce.getServletContext().getAttribute("inferenceOntModelSelector");
- OntModelSelector unionOms = (OntModelSelector) sce.getServletContext().getAttribute("unionOntModelSelector");
+
+ OntModelSelector assertionsOms = ModelContext.getBaseOntModelSelector(sce.getServletContext());
+ OntModelSelector inferencesOms = ModelContext.getInferenceOntModelSelector(sce.getServletContext());
+ OntModelSelector unionOms = ModelContext.getUnionOntModelSelector(sce.getServletContext());
WebappDaoFactoryJena wadf = (WebappDaoFactoryJena) sce.getServletContext().getAttribute("webappDaoFactory");
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java
index fce1e90d4..f8ac4b245 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java
@@ -6,6 +6,8 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
@@ -26,9 +28,8 @@ import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.shared.Lock;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
-import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao;
+import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
-import edu.cornell.mannlib.vitro.webapp.dao.jena.SimpleOntModelSelector;
import edu.cornell.mannlib.vitro.webapp.ontology.update.KnowledgeBaseUpdater;
import edu.cornell.mannlib.vitro.webapp.ontology.update.UpdateSettings;
import edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneSetup;
@@ -52,8 +53,6 @@ public class UpdateKnowledgeBase implements ServletContextListener {
private static final String SUCCESS_ASSERTIONS_FILE = DATA_DIR + "success.n3";
private static final String SUCCESS_RDF_FORMAT = "N3";
private static final String DIFF_FILE = DATA_DIR + "diff.tab.txt";
- private static final String LOG_FILE = DATA_DIR + LOG_DIR + "knowledgeBaseUpdate.log";
- private static final String ERROR_LOG_FILE = DATA_DIR + LOG_DIR + "knowledgeBaseUpdate.error.log";
private static final String REMOVED_DATA_FILE = DATA_DIR + CHANGED_DATA_DIR + "removedData.n3";
private static final String ADDED_DATA_FILE = DATA_DIR + CHANGED_DATA_DIR + "addedData.n3";
private static final String SPARQL_CONSTRUCT_ADDITIONS_DIR = DATA_DIR + "sparqlConstructs/additions/";
@@ -73,9 +72,11 @@ public class UpdateKnowledgeBase implements ServletContextListener {
try {
ServletContext ctx = sce.getServletContext();
+ OntModelSelector assertionsOms = ModelContext.getBaseOntModelSelector(ctx);
- OntModelSelector oms = new SimpleOntModelSelector((OntModel) sce.getServletContext().getAttribute(JenaBaseDao.ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME));
-
+ String logFileName = DATA_DIR + LOG_DIR + timestampedFileName("knowledgeBaseUpdate", "log");
+ String errorLogFileName = DATA_DIR + LOG_DIR + timestampedFileName("knowledgeBaseUpdate.error", "log");
+
UpdateSettings settings = new UpdateSettings();
settings.setAskQueryFile(getAskQueryPath(ctx));
settings.setAskEverQueryFile(getAskEverQueryPath(ctx));
@@ -86,14 +87,14 @@ public class UpdateKnowledgeBase implements ServletContextListener {
settings.setDiffFile(ctx.getRealPath(DIFF_FILE));
settings.setSuccessAssertionsFile(ctx.getRealPath(SUCCESS_ASSERTIONS_FILE));
settings.setSuccessRDFFormat(SUCCESS_RDF_FORMAT);
- settings.setLogFile(ctx.getRealPath(LOG_FILE));
- settings.setErrorLogFile(ctx.getRealPath(ERROR_LOG_FILE));
+ settings.setLogFile(ctx.getRealPath(logFileName));
+ settings.setErrorLogFile(ctx.getRealPath(errorLogFileName));
settings.setAddedDataFile(ctx.getRealPath(ADDED_DATA_FILE));
settings.setRemovedDataFile(ctx.getRealPath(REMOVED_DATA_FILE));
WebappDaoFactory wadf = (WebappDaoFactory) ctx.getAttribute("webappDaoFactory");
settings.setDefaultNamespace(wadf.getDefaultNamespace());
- settings.setOntModelSelector(oms);
+ settings.setOntModelSelector(assertionsOms);
try {
OntModel oldTBoxModel = loadModelFromDirectory(ctx.getRealPath(OLD_TBOX_MODEL_DIR));
settings.setOldTBoxModel(oldTBoxModel);
@@ -181,7 +182,7 @@ public class UpdateKnowledgeBase implements ServletContextListener {
}
}
} catch (FileNotFoundException fnfe) {
- log.info("No miscellaneous application metadata replacements were performed.");
+ log.warn("Couldn't find miscellaneous application metadata replacement file: " + filename);
} catch (Exception e) {
log.error("Error performing miscellaneous application metadata " +
@@ -255,6 +256,11 @@ public class UpdateKnowledgeBase implements ServletContextListener {
}
+ private static String timestampedFileName(String prefix, String suffix) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH-mm-sss");
+ return prefix + "." + sdf.format(new Date()) + suffix;
+ }
+
private class ModelDirectoryNotFoundException extends RuntimeException {
public ModelDirectoryNotFoundException(String msg) {
super(msg);