diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ABoxJenaChangeListener.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ABoxJenaChangeListener.java index 0d374f030..124e7b8c1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ABoxJenaChangeListener.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ABoxJenaChangeListener.java @@ -7,6 +7,7 @@ import java.util.HashSet; 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.SimpleReasonerSetup; public class ABoxJenaChangeListener extends JenaChangeListener { @@ -17,6 +18,8 @@ public class ABoxJenaChangeListener extends JenaChangeListener { ignoredGraphs.add(JenaDataSourceSetupBase.JENA_INF_MODEL); ignoredGraphs.add(JenaDataSourceSetupBase.JENA_TBOX_ASSERTIONS_MODEL); ignoredGraphs.add(JenaDataSourceSetupBase.JENA_TBOX_INF_MODEL); + ignoredGraphs.add(SimpleReasonerSetup.JENA_INF_MODEL_REBUILD); + ignoredGraphs.add(SimpleReasonerSetup.JENA_INF_MODEL_SCRATCHPAD); } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/plugin/SimpleBridgingRule.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/plugin/SimpleBridgingRule.java index 5cd43fdf5..18179e0c4 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/plugin/SimpleBridgingRule.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/plugin/SimpleBridgingRule.java @@ -74,7 +74,7 @@ public abstract class SimpleBridgingRule implements ReasonerPlugin { Model aboxAssertionsModel, Model aboxInferencesModel, OntModel TBoxInferencesModel) { - if (ignore(stmt)) { + if (!isInterestedInAddedStatement(stmt) || ignore(stmt)) { return; } Model inf = constructInferences(this.queryStr, stmt, aboxAssertionsModel); @@ -151,7 +151,7 @@ public abstract class SimpleBridgingRule implements ReasonerPlugin { Model aboxInferencesModel, OntModel TBoxInferencesModel) { - if (ignore(stmt)) { + if (!isInterestedInRemovedStatement(stmt) || ignore(stmt)) { return; } 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 42f5bf2ba..02295bb63 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 @@ -17,12 +17,14 @@ import javax.sql.DataSource; import org.apache.commons.logging.Log; 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.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.RDFServiceDataset; 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.ReasonerConfiguration; @@ -87,23 +89,13 @@ public class SimpleReasonerSetup implements ServletContextListener { String dbType = ConfigurationProperties.getBean(ctx).getProperty( // database type "VitroConnection.DataSource.dbtype","MySQL"); - - Model rebuildModel = JenaDataSourceSetupBase.makeDBModel( - bds, - 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); - + RDFService rdfService = RDFServiceUtils.getRDFServiceFactory(ctx).getRDFService(); + Dataset dataset = new RDFServiceDataset(rdfService); + Model rebuildModel = dataset.getNamedModel(JENA_INF_MODEL_REBUILD); + Model scratchModel = dataset.getNamedModel(JENA_INF_MODEL_SCRATCHPAD); + // the simple reasoner will register itself as a listener to the ABox assertions - RDFService rdfService = RDFServiceUtils.getRDFServiceFactory(ctx).getRDFService(); SimpleReasoner simpleReasoner = new SimpleReasoner( unionOms.getTBoxModel(), rdfService, inferencesOms.getABoxModel(), rebuildModel, scratchModel); sce.getServletContext().setAttribute(SimpleReasoner.class.getName(),simpleReasoner);