From b276cd5049de5e98d297e43aaf6be3bb40df5558 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Wed, 6 Nov 2013 11:02:33 -0500 Subject: [PATCH 1/2] VIVO-499 fixes bug in deduping applicable properties --- .../individual/GroupedPropertyList.java | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) 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; From c2e8541732de6e9ca9f7b9fcbb1be4cc4a76e391 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Wed, 6 Nov 2013 11:03:17 -0500 Subject: [PATCH 2/2] 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 {