diff --git a/owlsim-core/src/main/java/org/monarchinitiative/owlsim/compute/classmatch/ClassMatcher.java b/owlsim-core/src/main/java/org/monarchinitiative/owlsim/compute/classmatch/ClassMatcher.java index d4cfc37..91bf9d1 100644 --- a/owlsim-core/src/main/java/org/monarchinitiative/owlsim/compute/classmatch/ClassMatcher.java +++ b/owlsim-core/src/main/java/org/monarchinitiative/owlsim/compute/classmatch/ClassMatcher.java @@ -47,7 +47,7 @@ public ClassMatcher(BMKnowledgeBase kb) { */ public List matchEntity(String entity, String tOnt) { Set tids = kb.getClassIdsByOntology(tOnt); - return matchClassSets(Sets.newHashSet(entity), tids); + return matchClassSets(Sets.newHashSet(kb.resolveIri(entity)), tids); } public List matchClassSets(Set qids, Set tids) { diff --git a/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/BMKnowledgeBase.java b/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/BMKnowledgeBase.java index 212adcc..c360197 100644 --- a/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/BMKnowledgeBase.java +++ b/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/BMKnowledgeBase.java @@ -351,9 +351,12 @@ public int getRootIndex(); - - - + /** + * Resolves a CURIE into an IRI, if possible. + * + * @return IRI version of a CURIE, or the string itself + */ + public String resolveIri(String entity); } diff --git a/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/impl/BMKnowledgeBaseOWLAPIImpl.java b/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/impl/BMKnowledgeBaseOWLAPIImpl.java index 7823293..3bb84df 100644 --- a/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/impl/BMKnowledgeBaseOWLAPIImpl.java +++ b/owlsim-core/src/main/java/org/monarchinitiative/owlsim/kb/impl/BMKnowledgeBaseOWLAPIImpl.java @@ -172,12 +172,8 @@ public void setKbMetdata(KBMetadata kbMetdata) { } private String getShortForm(IRI iri) { - if (curieUtil.getCurieMap().isEmpty()) { - return iri.toString(); - } else { - String iriString = iri.toString(); - return curieUtil.getCurie(iriString).orElse(iriString); - } + String iriString = iri.toString(); + return curieUtil.getCurie(iriString).orElse(iriString); } private void populateLabelsFromOntology(LabelMapper labelMapper, OWLOntology ontology) { @@ -1037,11 +1033,7 @@ protected String getIdentifier(OWLNamedObject obj) { */ private OWLClass getOWLClass(String id) { Preconditions.checkNotNull(id); - if (curieUtil.getCurieMap().isEmpty()) { - return getOWLClass(IRI.create(id)); - } else { - return getOWLClass(IRI.create(curieUtil.getIri(id).orElse(id))); - } + return getOWLClass(IRI.create(curieUtil.getIri(id).orElse(id))); } /** @@ -1067,12 +1059,7 @@ private OWLNamedIndividual getOWLNamedIndividual(IRI iri) { */ public OWLNamedIndividual getOWLNamedIndividual(String id) { Preconditions.checkNotNull(id); - //TODO: check - this is redundant code simply return getOWLNamedIndividual(IRI.create(curieUtil.getIri(id).orElse(id))); will suffice - if (curieUtil.getCurieMap().isEmpty()) { - return getOWLNamedIndividual(IRI.create(id)); - } else { - return getOWLNamedIndividual(IRI.create(curieUtil.getIri(id).orElse(id))); - } + return getOWLNamedIndividual(IRI.create(curieUtil.getIri(id).orElse(id))); } public Attribute getAttribute(String id) { @@ -1144,4 +1131,9 @@ public EWAHCompressedBitmap getFilteredDirectTypesBM(Set classIds, Strin } + @Override + public String resolveIri(String entity) { + return curieUtil.getIri(entity).orElse(entity); + } + } diff --git a/owlsim-services/src/main/java/org/monarchinitiative/owlsim/services/resources/OntologyMatchResource.java b/owlsim-services/src/main/java/org/monarchinitiative/owlsim/services/resources/OntologyMatchResource.java index 4cab58f..da0f57e 100644 --- a/owlsim-services/src/main/java/org/monarchinitiative/owlsim/services/resources/OntologyMatchResource.java +++ b/owlsim-services/src/main/java/org/monarchinitiative/owlsim/services/resources/OntologyMatchResource.java @@ -67,12 +67,8 @@ @ApiParam(value = "ontology to be matched, e.g. HP", required = true) @PathParam("ontology") String ontology) throws UnknownFilterException, IncoherentStateException { - - // TODO it's weird to resolve the curie here - String resolveEntity = curieUtil.getIri(entity).orElse(entity); - List matches = - classMatcher.matchEntity(resolveEntity, ontology); + classMatcher.matchEntity(entity, ontology); return matches; }