
package com.thesett.aima.logic.fol;

/**
 * Defines the sentence type for a logical language build over terms in first order logic. Sentences are usually marker
 * interfaces to capture a languages abstract syntax tree (Term) or compiled form, and mark it as belonging to a
 * particular type. The method {@link #getT()} is used to get the wrapped expression.
 *
 * <pre><p/><table id="crc"><caption>CRC Card</caption>
 * <tr><th> Responsibilities
 * <tr><td> Signifies a sentence over logical terms.
 * </table></pre>
 *
 * @author Rupert Smith
 */
public interface Sentence<T>
{
    /**
     * Gets the wrapped sentence in the logical language over T.
     *
     * @return The wrapped sentence in the logical language.
     */
    T getT();
}
