package de.uka.ipd.consensus.foundation.schema;

/**
 * <p>This is a wrapper interface for special associations that manage the synonym-relationship between two topics.</p>
 * <p>Note that while this interface is of type Rateable, the RatingManager cannot assign ratings to Synonym objects directly.
 * Instead, it assigns the rating to the wrapped association. Therefore, an implementation simply delegates all Rateable methods
 * to the wrapped association.</p>
 * <p>The OntologyManager is responsible for creating and managing objects of this type.</p>
 * @author Thomas Much
 * @version 2006-06-14
 * @see de.uka.ipd.consensus.foundation.rating.RatingManager
 * @see de.uka.ipd.consensus.foundation.ontology.OntologyManager
 * @see Topic
 */
public interface Synonym extends Rateable,Comparable {

	/**
	 * Returns the synonymous topic of a synonym-relationship between two topics.
	 * @return the synonymous topic, never <code>null</code>
	 */
	public Topic getSynonym();
	
	
	/**
	 * Returns the base topic of a synonym-relationship between two topics, i.e. the topic from which the Synonym object is retrieved.
	 * @return the base topic, never <code>null</code>
	 */
	public Topic getTopic();

}
