org.erasmusmc.data_mining.ontology.api.Term Maven / Gradle / Ivy
/**
* Peregrine is an indexing engine that can recognize concepts in human readable
* text, based on a database (thesaurus) of known terms.
*
* Copyright 2005-2011 Erasmus University Medical Centre (EMC)
* Copyright 2009-2011 Netherlands Bioinformatics Centre (NBIC)
*
* Contact us at: [email protected]
*
* This file is part of Peregrine. Peregrine is free software: you can
* redistribute it and/or modify it under the terms of the GNU Affero General
* Public License as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package org.erasmusmc.data_mining.ontology.api;
import java.io.Serializable;
/**
* The interface for the ontology term.
*
* @author Dmitry Katsubo
*/
public interface Term extends Label {
/**
* The interface for the Term.Id.
*/
interface Id extends Serializable {
/**
* Get the identifier of the concept that is linked to this term.
* @return the concept identifier.
*/
Serializable getConceptId();
}
/**
* Get the identief of the parent concept.
*
* @return The identifier of the parent concept.
*/
Id getId();
/**
* Get the case-sensitivity flag for matching of the term. This defines if
* the term should be matched with a case-sensitive or not case-sensitive
* matcher.
*
* Case sensitive means that two words that differ only in the case of the
* letters are not consider the same term.
*
* @return The state of the CaseInsensitive flag. True means that the term
* is NOT case-sensitive, false (the default) means that the term IS
* case-sensitive.
*/
boolean isCaseInsensitive();
/**
* Get the order-sensitivity flag for matching of the term. This defines
* whether the order of the words of the term is important.
*
* Order sensitive means that two sequences of words that consist of only
* the same word, but that are not in the same order are not considered the
* same term.
*
* @return The state of the OrderSensitive flag. The default value is false
* (the order of terms is not important).
*/
boolean isOrderSensitive();
/**
* Get the nomalisation flag for matching of the term. This defines whether
* the term must be normalised before matching.
*
* Normalisation is the process of reducing the word to its stem.
*
* @return The state of the normalized flag. The default value is false
* (the term should not be normalized).
*/
boolean isNormalized();
}