// This file is part of AceWiki. // Copyright 2008-2013, AceWiki developers. // // AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU // Lesser General Public License as published by the Free Software Foundation, either version 3 of // the License, or (at your option) any later version. // // AceWiki 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License along with AceWiki. If // not, see http://www.gnu.org/licenses/. package ch.uzh.ifi.attempto.acewiki.core; /** * This class represents an ontology element. Such ontology elements include individuals, concepts * and relations, and meta-elements such as topics. * * @author Tobias Kuhn */ public interface OntologyElement { /** * Initializes the id of this ontology element. * * @param id The id. */ public void initId(long id); /** * Initializes the ontology of this ontology element. * * @param ontology The ontology. */ public void initOntology(Ontology ontology); /** * Initializes the article of this ontology element. * * @param article The article. */ public void initArticle(Article article); /** * Returns the numerical id of this ontology element. * * @return The id. */ public long getId(); /** * Returns the ontology of this ontology element. * * @return The ontology. */ public Ontology getOntology(); /** * Returns the article of this ontology element. * * @return The article. */ public Article getArticle(); /** * Returns an array of all word forms. * * @return An array containing all word forms. */ public String[] getWords(); /** * Returns the word form for the given word form id. * * @param wordFormID The word form id. * @return The word form. */ public String getWord(int wordFormID); /** * Returns the main word form. * * @return The word form. */ public String getWord(); /** * Returns the headwords that are used in the GUI (title, index, etc) to refer to this ontology * element. At least one headword is required. * * @return The headwords. */ public String[] getHeadwords(); /** * Returns the word type as it is used internally. * * @return The internal word type. */ public String getInternalType(); /** * Sets the word forms. * * @param serializedWords The serialized word forms to be set. */ public void setWords(String serializedWords); /** * Returns the word forms of this ontology element in a serialized form. * * @return The serialized word forms. */ public String serializeWords(); /** * Returns the word type as it is shown to the user. * * @return The word type. */ public String getType(); }