package org.molgenis.ontology.sorta.service;
import org.molgenis.data.Entity;
public interface SortaService
{
/**
* Get all ontology entities in generic type
*
* @return list of untyped ontology entities
*/
Iterable<Entity> getAllOntologyEntities();
/**
* Get a specified ontology entity in generic type based on the given ontologyIri
*
* @param ontologyIri
* @return specified ontology entity in generic type
*/
Entity getOntologyEntity(String ontologyIri);
/**
* Get a specified ontologyterm in generic type based on the given ontologyIri and ontologyTermIri
*
* @param ontologyTermIri
* @param ontologyIri
* @return specifieid ontologyterm entity in a generic type
*/
Entity getOntologyTermEntity(String ontologyTermIri, String ontologyIri);
/**
* Find a list of relevant ontologyterm typed entities using lexical matching (elasticsearch + ngram) in generic
* type based on given ontologyIri and a set of query inputs (name, synonym, ontology database id, e.g. hpo, omim)
*
* @param ontologyIri
* @param inputEntity
* @return a list of ontologyterm entities in generic type
*/
Iterable<Entity> findOntologyTermEntities(String ontologyIri, Entity inputEntity);
}