org.jscience.ml.tigerxml.theories.hobbs78
Class Hobbs78

java.lang.Object
  extended by org.jscience.ml.tigerxml.theories.hobbs78.Hobbs78

public class Hobbs78
extends java.lang.Object

This class provides a set of static functions as defined in Hobbs 1978.


Constructor Summary
Hobbs78()
           
 
Method Summary
static GraphNode hobbsSearch(GraphNode poss_pron)
          This method implements Hobbs' algorithm for finding an antecedent for a pronoun.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Hobbs78

public Hobbs78()
Method Detail

hobbsSearch

public static final GraphNode hobbsSearch(GraphNode poss_pron)
This method implements Hobbs' algorithm for finding an antecedent for a pronoun.

Hobbs' Algorithm (adapted to Negra Syntax)

(1) Begin at any terminal tagged PPER.

(2) Go up the tree to the first NP-like or S-like node encountered. Call this node X, and the path used to reach it p.

(3) Traverse all branches below node X to the left of path p in a subject-first-then-left-to-right and breadth-first fashion. Take into account any NP-like item encountered which has an NP-like or S-like node between it and X. "To take into account" here means that the algorithm will return the item in question as the antecedent if it matches the pronoun in its index features.

(4) If node X is the highest S-like node in the sentence, traverse the surface parse trees of previous sentences in the text in order of recency, the most recent first; each tree is traversed in a subject-first-then-left-to-right, breadth-first manner, and when an NP-like item is encountered, it is taken into account. If X is not the highest S-like node in the sentence, continue to step 5.

(5) From node X, go up the tree to the first NP-like or S-like node encountered. Call this new node X, and call the path traversed to reach it p.

(6) If X is an NP-like node, take X into account.

(7) Traverse all branches below node X to the left of path p in a subject-first-then-left-to-right, breadth-first manner. Take into account any NP-like item encountered.

(8) If X is an S-like node, traverse all branches of node X to the right of path p in a subject-first-then-left-to-right and breath-first manner, but do not go below any NP-like or S-like node encountered. Propose any NP-like item encountered as the antecedent.

(9) Go to step 4.

Parameters:
poss_pron - The GraphNode for which to find the antecedent.
Returns:
The GraphNode which is considered the antecedent.