NIHVIVO-3971 setup of inference rebuild and scratchpad models; also bugfix to SimpleBridgingRule

This commit is contained in:
brianjlowe 2012-09-25 15:44:15 +00:00
parent 0b3d14ebab
commit 88e44af429
3 changed files with 12 additions and 17 deletions

View file

@ -7,6 +7,7 @@ import java.util.HashSet;
import com.hp.hpl.jena.rdf.model.ModelChangedListener; import com.hp.hpl.jena.rdf.model.ModelChangedListener;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase; import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.SimpleReasonerSetup;
public class ABoxJenaChangeListener extends JenaChangeListener { public class ABoxJenaChangeListener extends JenaChangeListener {
@ -17,6 +18,8 @@ public class ABoxJenaChangeListener extends JenaChangeListener {
ignoredGraphs.add(JenaDataSourceSetupBase.JENA_INF_MODEL); ignoredGraphs.add(JenaDataSourceSetupBase.JENA_INF_MODEL);
ignoredGraphs.add(JenaDataSourceSetupBase.JENA_TBOX_ASSERTIONS_MODEL); ignoredGraphs.add(JenaDataSourceSetupBase.JENA_TBOX_ASSERTIONS_MODEL);
ignoredGraphs.add(JenaDataSourceSetupBase.JENA_TBOX_INF_MODEL); ignoredGraphs.add(JenaDataSourceSetupBase.JENA_TBOX_INF_MODEL);
ignoredGraphs.add(SimpleReasonerSetup.JENA_INF_MODEL_REBUILD);
ignoredGraphs.add(SimpleReasonerSetup.JENA_INF_MODEL_SCRATCHPAD);
} }
@Override @Override

View file

@ -74,7 +74,7 @@ public abstract class SimpleBridgingRule implements ReasonerPlugin {
Model aboxAssertionsModel, Model aboxAssertionsModel,
Model aboxInferencesModel, Model aboxInferencesModel,
OntModel TBoxInferencesModel) { OntModel TBoxInferencesModel) {
if (ignore(stmt)) { if (!isInterestedInAddedStatement(stmt) || ignore(stmt)) {
return; return;
} }
Model inf = constructInferences(this.queryStr, stmt, aboxAssertionsModel); Model inf = constructInferences(this.queryStr, stmt, aboxAssertionsModel);
@ -151,7 +151,7 @@ public abstract class SimpleBridgingRule implements ReasonerPlugin {
Model aboxInferencesModel, Model aboxInferencesModel,
OntModel TBoxInferencesModel) { OntModel TBoxInferencesModel) {
if (ignore(stmt)) { if (!isInterestedInRemovedStatement(stmt) || ignore(stmt)) {
return; return;
} }

View file

@ -17,12 +17,14 @@ import javax.sql.DataSource;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
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.vocabulary.OWL; import com.hp.hpl.jena.vocabulary.OWL;
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; 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.ModelContext;
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.RDFServiceDataset;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena; import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.PelletListener; import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.PelletListener;
import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.ReasonerConfiguration; import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.ReasonerConfiguration;
@ -87,23 +89,13 @@ public class SimpleReasonerSetup implements ServletContextListener {
String dbType = ConfigurationProperties.getBean(ctx).getProperty( // database type String dbType = ConfigurationProperties.getBean(ctx).getProperty( // database type
"VitroConnection.DataSource.dbtype","MySQL"); "VitroConnection.DataSource.dbtype","MySQL");
RDFService rdfService = RDFServiceUtils.getRDFServiceFactory(ctx).getRDFService();
Dataset dataset = new RDFServiceDataset(rdfService);
Model rebuildModel = JenaDataSourceSetupBase.makeDBModel( Model rebuildModel = dataset.getNamedModel(JENA_INF_MODEL_REBUILD);
bds, Model scratchModel = dataset.getNamedModel(JENA_INF_MODEL_SCRATCHPAD);
JENA_INF_MODEL_REBUILD,
JenaDataSourceSetupBase.DB_ONT_MODEL_SPEC,
TripleStoreType.SDB,
dbType, ctx);
Model scratchModel = JenaDataSourceSetupBase.makeDBModel(
bds,
JENA_INF_MODEL_SCRATCHPAD,
JenaDataSourceSetupBase.DB_ONT_MODEL_SPEC,
TripleStoreType.SDB,
dbType, ctx);
// the simple reasoner will register itself as a listener to the ABox assertions // the simple reasoner will register itself as a listener to the ABox assertions
RDFService rdfService = RDFServiceUtils.getRDFServiceFactory(ctx).getRDFService();
SimpleReasoner simpleReasoner = new SimpleReasoner( SimpleReasoner simpleReasoner = new SimpleReasoner(
unionOms.getTBoxModel(), rdfService, inferencesOms.getABoxModel(), rebuildModel, scratchModel); unionOms.getTBoxModel(), rdfService, inferencesOms.getABoxModel(), rebuildModel, scratchModel);
sce.getServletContext().setAttribute(SimpleReasoner.class.getName(),simpleReasoner); sce.getServletContext().setAttribute(SimpleReasoner.class.getName(),simpleReasoner);