Log in Help
Print
HomegatepluginsLang_Russiansrccomontotextrussiemorph 〉 Lemma.java
 
package com.ontotext.russie.morph;

import gate.FeatureMap;

import java.util.Set;

/**
 * Lemma.java
 * 
 * @todo : make it allow not distinct types and wfs The Lemma consists of
 *       alternative word-forms and syntactic and morphological information and
 *       allows its access.
 *       <p>
 *       Title: RussIE
 *       </p>
 *       <p>
 *       Description: Russian Information Extraction based on GATE
 *       </p>
 *       <p>
 *       Copyright: Copyright (c) 2003
 *       </p>
 *       <p>
 *       Company: Ontotext Lab.
 *       </p>
 * @author borislav popov
 * @version 1.0
 */
public interface Lemma {

  String getAnnotationType();

  void setAnnotationType(String type);

  FeatureMap getFeatureMap();

  void setFeatureMap(FeatureMap fm);

  /**
   * Sets the main word-form with its type.
   * 
   * @param wf
   *          word form
   * @param type
   *          the type of the word form
   */
  void setMainForm(String wf, String type);

  /**
   * Fetch the main word-form.
   * 
   * @return the main word-form
   */
  String getMainForm();

  /**
   * Fetch the main word-form type.
   * 
   * @return the main word-form type
   */
  String getMainFormType();

  /**
   * Fetch the root of the lemma.
   * 
   * @return the root of the lemma
   */
  String getRoot();

  /**
   * Adds a word form with its type
   * 
   * @param wf
   *          word-form
   * @param type
   *          the type of the word-form
   */
  void addWordForm(String wf, String type);

  /**
   * Get the word form by type.
   * 
   * @param type
   *          the word-form type
   * @return the word-form that has this type
   */
  String getWordForm(String type);

  /**
   * Get suffix by type.
   * 
   * @param type
   *          the word-form type
   * @return the suffix that has this type
   */
  String getSuffix(String type);

  /**
   * Fetch a set of the word-form suffixes in the lemma according to the root.
   * 
   * @return the word-form suffixes in this lemma
   */
  public Set<String> getSuffixes();

  /**
   * Get the set of types relevant to a word-form
   * 
   * @param wf
   *          the word-form
   * @return the set of types relevant to the word-form
   */
  Set<String> getTypeByWF(String wf);

  /**
   * Get the set of types relevant to a word-form suffix
   * 
   * @param suffix
   *          the suffix of the wf
   * @return the set of types relevant to the word-form with this suffix
   */
  Set<String> getTypeBySuffix(String suffix);

  /**
   * Fetch a set of the word-forms in the lemma.
   * 
   * @return the word-forms in this lemma
   */
  Set<String> getWordForms();

  /**
   * Fetch the set of word-form types in the lemma
   * 
   * @return the set of word-form types in the lemma
   */
  Set<String> getTypes();

  /**
   * Get the suffix nest associated with this lemma.
   * 
   * @return the nest
   */
  SuffixNest getSuffixNest();

  /**
   * Synchronizes the current nest with the pool of nests and sets the unique
   * nest to the lemma. To be called after finishing the incremental uploading
   * of suffixes and types to the lemma
   */
  void synchWithSuffixPool();

  /**
   * Calculates the difference between the specified name and this lemma in
   * terms of finding a common root and returns the count of characters
   * different at the suffix of the name compared to the lemma.
   * 
   * @param name
   * @return
   */
  int difference2(String name);

} // interface Lemma