VIVO-82 Use ModelAccess to get or set the BaseOntModel

a.k.a the Base Full model, or AssertionsModel
This commit is contained in:
j2blake 2013-05-17 13:19:46 -04:00
parent 6a4c7ba6fc
commit 9b7f6c92e6
13 changed files with 37 additions and 76 deletions

View file

@ -191,11 +191,7 @@ public class VitroRequest extends HttpServletRequestWrapper {
public OntModel getAssertionsOntModel() {
OntModel jenaOntModel = (OntModel)_req.getSession().getAttribute( JenaBaseDao.ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME );
if ( jenaOntModel == null ) {
jenaOntModel = (OntModel)_req.getSession().getServletContext().getAttribute( JenaBaseDao.ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME );
}
return jenaOntModel;
return ModelAccess.on(getSession()).getBaseOntModel();
}
public OntModel getInferenceOntModel() {

View file

@ -7,7 +7,6 @@ import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
@ -40,7 +39,6 @@ import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.shared.InvalidPropertyURIException;
import com.hp.hpl.jena.shared.Lock;
import com.hp.hpl.jena.util.ResourceUtils;
import com.hp.hpl.jena.util.iterator.ClosableIterator;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
import com.hp.hpl.jena.vocabulary.RDF;
@ -50,6 +48,7 @@ import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
import edu.cornell.mannlib.vitro.webapp.dao.jena.event.EditEvent;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.FileGraphSetup;
@ -74,7 +73,7 @@ public class RefactorOperationController extends BaseEditController {
request.setAttribute("title","Check Datatype Properties");
request.setAttribute("css", "<link rel=\"stylesheet\" type=\"text/css\" href=\""+vreq.getAppBean().getThemeDir()+"css/edit.css\"/>");
OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel");
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
ontModel.enterCriticalSection(Lock.WRITE);
ArrayList<String> results = new ArrayList<String>();
@ -330,7 +329,7 @@ public class RefactorOperationController extends BaseEditController {
private void doMovePropertyStatements(VitroRequest request, HttpServletResponse response, EditProcessObject epo) {
String userURI = LoginStatusBean.getBean(request).getUserURI();
OntModel ontModel = ModelContext.getBaseOntModel(getServletContext());
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
Model tempRetractModel = ModelFactory.createDefaultModel();
Model tempAddModel = ModelFactory.createDefaultModel();
@ -414,7 +413,7 @@ public class RefactorOperationController extends BaseEditController {
private void doMoveInstances(VitroRequest request, HttpServletResponse response, EditProcessObject epo) {
String userURI = LoginStatusBean.getBean(request).getUserURI();
OntModel ontModel = ModelContext.getBaseOntModel(getServletContext());
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
String oldClassURIStr = (String) epo.getAttribute("VClassURI");
String newClassURIStr = (String) request.getParameter("NewVClassURI");

View file

@ -94,7 +94,7 @@ public class JenaAdminActions extends BaseEditController {
* @param response
*/
private void outputTbox(HttpServletResponse response) {
OntModel memoryModel = (OntModel) getServletContext().getAttribute("baseOntModel");
OntModel memoryModel = ModelAccess.on(getServletContext()).getBaseOntModel();
try {
OntModel tempOntModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
Property DescriptionProp = ResourceFactory.createProperty(VitroVocabulary.DESCRIPTION_ANNOT);
@ -306,7 +306,7 @@ public class JenaAdminActions extends BaseEditController {
if (actionStr.equals("output")) {
OntModel memoryModel = null;
if (request.getParameter("assertionsOnly") != null) {
memoryModel = (OntModel) getServletContext().getAttribute("baseOntModel");
memoryModel = ModelAccess.on(getServletContext()).getBaseOntModel();
System.out.println("baseOntModel");
} else if (request.getParameter("inferences") != null) {
memoryModel = (OntModel) getServletContext().getAttribute("inferenceOntModel");
@ -375,7 +375,7 @@ public class JenaAdminActions extends BaseEditController {
ClosableIterator ooIt = persistentModel.listObjects();
clean(oIt,persistentModel);
} else if (actionStr.equals("outputTaxonomy")) {
OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel");
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
Model taxonomyModel = extractTaxonomy(ontModel);
try {
taxonomyModel.write(response.getOutputStream());

View file

@ -283,7 +283,6 @@ public class JenaExportController extends BaseEditController {
}
}
static final String ASSERTIONS_ONT_MODEL_ATTR = "baseOntModel";
static final String INFERENCES_ONT_MODEL_ATTR = "inferenceOntModel";
static final String FULL_GRAPH = "?g";
static final String ASSERTIONS_GRAPH = "<http://vitro.mannlib.cornell.edu/default/vitro-kb-2>";

View file

@ -661,8 +661,7 @@ public class JenaIngestController extends BaseEditController {
/*
* get baseOnt and infOnt models
*/
OntModel baseOntModel = ModelContext.getBaseOntModel(
getServletContext());
OntModel baseOntModel = ModelAccess.on(getServletContext()).getBaseOntModel();
OntModel tboxOntModel = ModelContext.getUnionOntModelSelector(
getServletContext()).getTBoxModel();
@ -1314,12 +1313,7 @@ public class JenaIngestController extends BaseEditController {
if ("vitro:jenaOntModel".equals(name)) {
return ModelAccess.on(request.getSession()).getJenaOntModel();
} else if ("vitro:baseOntModel".equals(name)) {
Object sessionOntModel = request.getSession().getAttribute("baseOntModel");
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {
return (OntModel) sessionOntModel;
} else {
return (OntModel) context.getAttribute("baseOntModel");
}
return ModelAccess.on(request.getSession()).getBaseOntModel();
} else if ("vitro:inferenceOntModel".equals(name)) {
Object sessionOntModel = request.getSession().getAttribute("inferenceOntModel");
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {

View file

@ -106,18 +106,14 @@ public class ModelAccess {
return getOntModel(ModelID.UNION_FULL);
}
// /** Is this the same as Assertions model? */
// // public OntModel getBaseOntModel() {
// // throw new RuntimeException(
// // "ModelAccess.getBaseOntModel not implemented.");
// // }
//
// public OntModel getAssertionsOntModel() {
// throw new RuntimeException(
// "ModelAccess.getAssertionsOntModel not implemented.");
// }
//
public void setBaseOntModel(OntModel m) {
setOntModel(ModelID.BASE_FULL, m);
}
public OntModel getBaseOntModel() {
return getOntModel(ModelID.BASE_FULL);
}
// public OntModel getDisplayTboxOntModel() {
// throw new RuntimeException(
// "ModelAccess.getDisplayTboxOntModel not implemented.");
@ -233,14 +229,6 @@ public class ModelAccess {
* ctx.setAttribute(INFERENCE_ONT_MODEL_SELECTOR, oms);
* }
*
* public static OntModel getBaseOntModel(ServletContext ctx) {
* return (OntModel) ctx.getAttribute(BASE_ONT_MODEL);
* }
*
* public static void setBaseOntModel(OntModel ontModel, ServletContext ctx) {
* ctx.setAttribute(BASE_ONT_MODEL, ontModel);
* }
*
* public static OntModel getInferenceOntModel(ServletContext ctx) {
* return (OntModel) ctx.getAttribute(INFERENCE_ONT_MODEL);
* }

View file

@ -54,7 +54,6 @@ public class JenaBaseDao extends JenaBaseDaoCon {
public static final boolean KEEP_ONLY_IF_TRUE = true; //used for updatePropertyBooleanValue()
public static final boolean KEEP_ONLY_IF_FALSE = false; //used for updatePropertyBooleanValue()
public static final String ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME = "baseOntModel";
public static final String INFERENCE_ONT_MODEL_ATTRIBUTE_NAME = "inferenceOntModel";
protected static final Log log = LogFactory.getLog(JenaBaseDao.class.getName());

View file

@ -22,7 +22,6 @@ public class ModelContext {
private static final String BASE_ONT_MODEL_SELECTOR = "baseOntModelSelector";
private static final String INFERENCE_ONT_MODEL_SELECTOR = "inferenceOntModelSelector";
private static final String BASE_ONT_MODEL = "baseOntModel";
private static final String INFERENCE_ONT_MODEL = "inferenceOntModel";
public ModelContext() {}
@ -59,14 +58,6 @@ public class ModelContext {
ctx.setAttribute(INFERENCE_ONT_MODEL_SELECTOR, oms);
}
public static OntModel getBaseOntModel(ServletContext ctx) {
return (OntModel) ctx.getAttribute(BASE_ONT_MODEL);
}
public static void setBaseOntModel(OntModel ontModel, ServletContext ctx) {
ctx.setAttribute(BASE_ONT_MODEL, ontModel);
}
public static OntModel getInferenceOntModel(ServletContext ctx) {
return (OntModel) ctx.getAttribute(INFERENCE_ONT_MODEL);
}

View file

@ -314,12 +314,7 @@ public class VitroJenaModelMaker implements ModelMaker {
if ("vitro:jenaOntModel".equals(modelName)) {
return ModelAccess.on(request.getSession()).getJenaOntModel();
} else if ("vitro:baseOntModel".equals(modelName)) {
Object sessionOntModel = request.getSession().getAttribute("baseOntModel");
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {
return (OntModel) sessionOntModel;
} else {
return (OntModel) request.getSession().getServletContext().getAttribute("baseOntModel");
}
return ModelAccess.on(request.getSession()).getBaseOntModel();
} else if ("vitro:inferenceOntModel".equals(modelName)) {
Object sessionOntModel = request.getSession().getAttribute("inferenceOntModel");
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {

View file

@ -119,12 +119,7 @@ public class VitroJenaSpecialModelMaker implements ModelMaker {
if ("vitro:jenaOntModel".equals(modelName)) {
return ModelAccess.on(request.getSession()).getJenaOntModel();
} else if ("vitro:baseOntModel".equals(modelName)) {
Object sessionOntModel = request.getSession().getAttribute("baseOntModel");
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {
return (OntModel) sessionOntModel;
} else {
return (OntModel) request.getSession().getServletContext().getAttribute("baseOntModel");
}
return ModelAccess.on(request.getSession()).getBaseOntModel();
} else if ("vitro:inferenceOntModel".equals(modelName)) {
Object sessionOntModel = request.getSession().getAttribute("inferenceOntModel");
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {

View file

@ -22,6 +22,7 @@ import com.hp.hpl.jena.rdf.model.ResourceFactory;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
import com.hp.hpl.jena.vocabulary.RDF;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
/**
@ -42,14 +43,7 @@ public class AssembleModelsSetup implements ServletContextListener {
private String SYNTAX = "N3";
public void contextInitialized(ServletContextEvent sce) {
OntModel jenaOntModel = null;
try {
jenaOntModel = (OntModel) sce.getServletContext().getAttribute("baseOntModel");
} catch (Exception e) {
log.error("No baseOntModel found to which to attach assembled models");
return;
}
OntModel jenaOntModel = ModelAccess.on(sce.getServletContext()).getBaseOntModel();
// read assemblers out of assemblers directory
Set pathSet = sce.getServletContext().getResourcePaths(ASSEMBLERS_DIR_PATH);
for (String path : (Set<String>)pathSet) {

View file

@ -90,8 +90,20 @@ public class ContentModelSetup extends JenaDataSourceSetupBase
OntModel baseFullModel = createCombinedBulkUpdatingModel(baseABoxModel, baseTBoxModel);
OntModel inferenceFullModel = createCombinedModel(inferenceABoxModel, inferenceTBoxModel);
OntModel unionFullModel = ModelFactory.createOntologyModel(DB_ONT_MODEL_SPEC, dataset.getDefaultModel());
ModelAccess.on(ctx).setOntModel(ModelID.APPLICATION_METADATA, applicationMetadataModel);
ModelAccess.on(ctx).setOntModel(ModelID.USER_ACCOUNTS, userAccountsModel);
ModelAccess.on(ctx).setOntModel(ModelID.DISPLAY, displayModel);
ModelAccess.on(ctx).setOntModel(ModelID.BASE_ABOX, baseABoxModel);
ModelAccess.on(ctx).setOntModel(ModelID.BASE_TBOX, baseTBoxModel);
ModelAccess.on(ctx).setOntModel(ModelID.BASE_FULL, baseFullModel);
ModelAccess.on(ctx).setOntModel(ModelID.INFERRED_ABOX, inferenceABoxModel);
ModelAccess.on(ctx).setOntModel(ModelID.INFERRED_TBOX, inferenceTBoxModel);
ModelAccess.on(ctx).setOntModel(ModelID.INFERRED_FULL, inferenceFullModel);
ModelAccess.on(ctx).setOntModel(ModelID.UNION_ABOX, unionABoxModel);
ModelAccess.on(ctx).setOntModel(ModelID.UNION_TBOX, unionTBoxModel);
ModelAccess.on(ctx).setOntModel(ModelID.UNION_FULL, unionFullModel);
ModelContext.setBaseOntModel(baseFullModel, ctx);
ModelContext.setInferenceOntModel(inferenceFullModel, ctx);
checkForNamespaceMismatch( applicationMetadataModel, ctx );
@ -127,8 +139,6 @@ public class ContentModelSetup extends JenaDataSourceSetupBase
log.info("Setting up DAO factories");
ModelAccess.on(ctx).setJenaOntModel(unionFullModel);
WebappDaoFactoryConfig config = new WebappDaoFactoryConfig();
config.setDefaultNamespace(getDefaultNamespace(ctx));

View file

@ -28,6 +28,7 @@ import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.util.ResourceUtils;
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
public class RunSparqlConstructs implements ServletContextListener {
@ -46,7 +47,7 @@ public class RunSparqlConstructs implements ServletContextListener {
String namespace = (wadf != null && wadf.getDefaultNamespace() != null)
? wadf.getDefaultNamespace() : DEFAULT_DEFAULT_NAMESPACE;
OntModel baseOntModel = (OntModel) sce.getServletContext().getAttribute("baseOntModel");
OntModel baseOntModel = ModelAccess.on(sce.getServletContext()).getBaseOntModel();
Model anonModel = ModelFactory.createDefaultModel();
Model namedModel = ModelFactory.createDefaultModel();