From 54619a728fbd672969a5b0ab48f5f4c805e3cd2c Mon Sep 17 00:00:00 2001 From: Paul Cuddihy Date: Fri, 11 Mar 2022 12:11:37 -0500 Subject: [PATCH] improve /suggestNodeClass ordering --- .../ge/research/semtk/belmont/ValidationAssistant.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sparqlGraphLibrary/src/main/java/com/ge/research/semtk/belmont/ValidationAssistant.java b/sparqlGraphLibrary/src/main/java/com/ge/research/semtk/belmont/ValidationAssistant.java index 8a1cdc9c4..2cc7d0349 100644 --- a/sparqlGraphLibrary/src/main/java/com/ge/research/semtk/belmont/ValidationAssistant.java +++ b/sparqlGraphLibrary/src/main/java/com/ge/research/semtk/belmont/ValidationAssistant.java @@ -23,6 +23,7 @@ import com.ge.research.semtk.ontologyTools.OntologyClass; import com.ge.research.semtk.ontologyTools.OntologyInfo; import com.ge.research.semtk.ontologyTools.OntologyProperty; +import com.ge.research.semtk.ontologyTools.OntologyRange; public class ValidationAssistant { @@ -43,7 +44,13 @@ public static ArrayList suggestNodeClass(OntologyInfo oInfo, NodeGroup n int localScore = 1000; ArrayList incoming = ng.getConnectingNodeItems(snode); for (NodeItem nItem : incoming) { - for (String range : nItem.getRangeUris()) { + // don't presume nItem.getRangeUris is validated. Check oInfo instead. + Node incomingNode = ng.getNodeItemParentSNode(nItem); + OntologyClass incomingClass = oInfo.getClass(incomingNode.getUri()); + OntologyProperty nItemOProp = oInfo.getProperty(nItem.getUriConnectBy()); + OntologyRange oRange = nItemOProp.getRange(incomingClass, oInfo); + + for (String range : oRange.getUriList()) { if (oInfo.classIsA(oClass, oInfo.getClass(range))) { // add incoming node range score.put(range, ++localScore);