diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJena.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJena.java index 9c38774ab..4031627d2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJena.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ObjectPropertyDaoJena.java @@ -271,7 +271,6 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp public ObjectProperty getObjectPropertyByURI(String propertyURI) { - long start = System.currentTimeMillis(); if( propertyURI == null ) return null; OntModel ontModel = getOntModel(); @@ -279,7 +278,16 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp ontModel.enterCriticalSection(Lock.READ); try { - localModel.add(ontModel.listStatements(ontModel.getResource(propertyURI), null, (RDFNode) null)); + Resource prop = ontModel.getResource(propertyURI); + localModel.add(ontModel.listStatements(prop, null, (RDFNode) null)); + StmtIterator invit = ontModel.listStatements(prop, OWL.inverseOf, (RDFNode) null); + while (invit.hasNext()) { + Statement invSit = invit.nextStatement(); + if (invSit.getObject().isURIResource()) { + Resource invProp = (Resource) invSit.getObject(); + localModel.add(ontModel.listStatements(invProp, null, (RDFNode) null)); + } + } OntProperty op = localModel.getObjectProperty(propertyURI); return propertyFromOntProperty(op); } finally { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/FakeApplicationOntologyService.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/FakeApplicationOntologyService.java index 8096c799c..92fcc8ae7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/FakeApplicationOntologyService.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/services/shortview/FakeApplicationOntologyService.java @@ -442,7 +442,7 @@ public class FakeApplicationOntologyService { private static String QUERY_STRING = "" + "PREFIX obo: \n" + "PREFIX vcard: \n" - + "SELECT ?uri ?pt \n" + "WHERE { \n" + + "SELECT ?pt \n" + "WHERE { \n" + " ?uri obo:ARG_2000028 ?vIndividual . \n" + " ?vIndividual vcard:hasTitle ?vTitle . \n" + " ?vTitle vcard:title ?pt . \n" + "} LIMIT 1"; 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 4256de861..6d99d4c52 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 @@ -33,6 +33,7 @@ import edu.cornell.mannlib.vitro.webapp.reasoner.ReasonerPlugin; import edu.cornell.mannlib.vitro.webapp.reasoner.SimpleReasoner; import edu.cornell.mannlib.vitro.webapp.reasoner.SimpleReasonerTBoxListener; import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; +import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread; public class SimpleReasonerSetup implements ServletContextListener { @@ -121,7 +122,7 @@ public class SimpleReasonerSetup implements ServletContextListener { simpleReasoner.recompute(); } else if (RecomputeMode.BACKGROUND.equals(mode)) { log.info("starting ABox inference recompute in a separate thread."); - new Thread( + new VitroBackgroundThread( new ABoxRecomputer( simpleReasoner),"ABoxRecomputer").start(); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java index e7ded50e9..341e2e030 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/dataGetter/SparqlQueryDataGetter.java @@ -148,6 +148,10 @@ public class SparqlQueryDataGetter extends DataGetterBase implements DataGetter{ for (String key: pageData.keySet()) { merged.put(key, String.valueOf(pageData.get(key))); } + if (log.isDebugEnabled()) { + log.debug("Merging request parameters " + parameterMap + + " with page data " + pageData + " results in " + merged); + } return merged; } @@ -161,9 +165,13 @@ public class SparqlQueryDataGetter extends DataGetterBase implements DataGetter{ private String bindParameters(String text, Map merged) { String bound = text; for (String key : merged.keySet()) { - bound.replace('?' + key, '<' + merged.get(key) + '>'); + bound = bound.replace('?' + key, '<' + merged.get(key) + '>'); + } + if (log.isDebugEnabled()) { + log.debug("parameters: " + merged); + log.debug("query before binding parameters:" + text); + log.debug("query after binding parameters: " + bound); } - log.debug("query after binding parameters: " + bound); return bound; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java index a009847c9..3c61f3b0b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java @@ -300,21 +300,26 @@ public class GroupedPropertyList extends BaseTemplateModel { return false; } for (ObjectProperty op : opList) { - if (op.getURI() != null && op.getURI().equals(pi.getPropertyURI())) { - if(op.getDomainVClassURI() == null) { - if(pi.getDomainClassURI() == null) { - return true; - } - } else if (op.getDomainVClassURI().equals(pi.getDomainClassURI())) { - return true; + boolean uriMatches = (op.getURI() != null + && op.getURI().equals(pi.getPropertyURI())); + boolean domainMatches = false; + boolean rangeMatches = false; + if(op.getDomainVClassURI() == null) { + if(pi.getDomainClassURI() == null) { + domainMatches = true; } - if(op.getRangeVClassURI() == null) { - if (pi.getDomainClassURI() == null) { - return true; - } - } else if (op.getRangeVClassURI().equals(pi.getRangeClassURI())) { - return true; + } else if (op.getDomainVClassURI().equals(pi.getDomainClassURI())) { + domainMatches = true; + } + if(op.getRangeVClassURI() == null) { + if (pi.getDomainClassURI() == null) { + rangeMatches = true; } + } else if (op.getRangeVClassURI().equals(pi.getRangeClassURI())) { + rangeMatches = true; + } + if (uriMatches && domainMatches && rangeMatches) { + return true; } } return false;