uk.ac.essex.malexa.nlp.dp.GuiTAR
Class DefiniteDescription

java.lang.Object
  extended byuk.ac.essex.malexa.nlp.dp.GuiTAR.Cf
      extended byuk.ac.essex.malexa.nlp.dp.GuiTAR.NominalGroup
          extended byuk.ac.essex.malexa.nlp.dp.GuiTAR.DefiniteDescription
All Implemented Interfaces:
AnaphoraResolution

public class DefiniteDescription
extends NominalGroup

A class that encapsulates the functionality for processing Definite Descriptions (i.e. "the red car"). It's mainly meant to provide the implementation for resolving anaphoric definite descriptions, identifying discourse new ones, and resolving bridging references. The algorithms employed to process a definite description are covered in detail in: - Renata Vieira and Massimo Poesio, 2000, "An Empirically-Based System for Processing Definite Descriptions", Computational Linguistics, v. 26, n.4, p. 539-593. - Renata Vieira and Massimo Poesio, 2000, "Corpus-based development and evaluation of a system for processing definite descriptions", Proc. of the 18th COLING, Saarbruecken, August.

Version:
1.0
Author:
Mijail A. Kabadjov

Field Summary
private  Cf antecedent
           
static int WINDOW_SIZE
           
 
Fields inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.NominalGroup
A_NP, ANOTHER_NP, BARE_NP, COORD_NP, DEFINITE, DIRECT_OBJECT, INDEFINITE, INDIRECT_OBJECT, MEAS_NP, NUM_NP, PERS_PRO, PN, POSS_NP, POSS_PRO, PRONOUNS, Q_NP, Q_PRO, SUBJECT, SUCH_NP, THAT_NP, THAT_PRO, THE_NP, THE_PN, THIS_NP, THIS_PRO, WH_PRO
 
Fields inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.Cf
 
Constructor Summary
DefiniteDescription(Node theNode, Utterance theUtterance, byte theType)
          Constructor.
 
Method Summary
private  boolean bridging(DiscourseModel dm)
           
private  boolean directAnaphora(DiscourseModel dm)
          Implements the heuristics for Direct Anaphora.
private  boolean discourseNew()
           
private  Cf getLastNonReducedCf(DiscourseEntity deAnte)
           
private  boolean isIdentical(Cf antecedent)
          Implements the identical NP heuristic.
private  boolean isSubsequentMention(DiscourseEntity deAnte, DiscourseEntity deAnaphor)
          Implements the subsequent mention heuristic.
private  boolean postAnaphoraDiscourseNew()
           
 Cf resolveAnaphor(DiscourseModel dm)
          The implementation of Vieira & Poesio's algorithm for processing Definite Descriptions.
 
Methods inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.NominalGroup
findType, getAgreement, getAntecedentIndicators, getByteType, getHeadNode, getPostModifiers, getPreModifiers, getStringType, newInstance, setAntecedentIndicators
 
Methods inherited from class uk.ac.essex.malexa.nlp.dp.GuiTAR.Cf
findCfById, getNode, getType, getUtterance, isAnaphoric, setAnaphoric, setNode, setType, setUtterance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WINDOW_SIZE

public static final int WINDOW_SIZE
See Also:
Constant Field Values

antecedent

private Cf antecedent
Constructor Detail

DefiniteDescription

public DefiniteDescription(Node theNode,
                           Utterance theUtterance,
                           byte theType)
Constructor. Just calls the constructor of NominalGroup.

Method Detail

resolveAnaphor

public Cf resolveAnaphor(DiscourseModel dm)
The implementation of Vieira & Poesio's algorithm for processing Definite Descriptions.

Specified by:
resolveAnaphor in interface AnaphoraResolution
Overrides:
resolveAnaphor in class NominalGroup
Parameters:
dm - The Discourse Model to which this Cf belongs
Returns:
Cf The proposed antecedent

discourseNew

private boolean discourseNew()

postAnaphoraDiscourseNew

private boolean postAnaphoraDiscourseNew()

directAnaphora

private boolean directAnaphora(DiscourseModel dm)
Implements the heuristics for Direct Anaphora. Outputs a log of the processing steps to the standard output.

Returns:
boolean True if an anaphoric link was successfully identified, false otherwise

bridging

private boolean bridging(DiscourseModel dm)

isSubsequentMention

private boolean isSubsequentMention(DiscourseEntity deAnte,
                                    DiscourseEntity deAnaphor)
Implements the subsequent mention heuristic. Checks whether the potential antecedent is a subsequent mention (anaphoric) itself. If it is then the same heuristics as if the antecedent were within the same segment of the given DD are applied plus a check for compatible post-modification (if both, DD and a potential antecedent, are post modified, then their postmodification should be identical in order to accept the antecedent).

Parameters:
deAnte - The DiscourseEntity of the potential antecedent
deAnaphor - The DiscourseEntity of the anaphor
Returns:
boolean True if the check succeeds, false otherwise

isIdentical

private boolean isIdentical(Cf antecedent)
Implements the identical NP heuristic. Checks whether the potential antecedent is an identical NP, including the article, to the DD. It converts both, the antecedent NP and the DD, to normalised strings (all letters are lowercase and one white space between words) and casts the problem to string comparison.

Parameters:
antecedent - The Cf of the potential antecedent
Returns:
boolean True if the check succeeds, false otherwise

getLastNonReducedCf

private Cf getLastNonReducedCf(DiscourseEntity deAnte)