From c2e8541732de6e9ca9f7b9fcbb1be4cc4a76e391 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Wed, 6 Nov 2013 11:03:17 -0500 Subject: [PATCH] fixes bug retrieving property inverses --- .../vitro/webapp/dao/jena/ObjectPropertyDaoJena.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 {