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;