edu.stanford.nlp.trees
Class GrammaticalStructure

java.lang.Object
  extended by edu.stanford.nlp.trees.TreeGraph
      extended by edu.stanford.nlp.trees.GrammaticalStructure
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
EnglishGrammaticalStructure

public abstract class GrammaticalStructure
extends TreeGraph
implements Serializable

A GrammaticalStructure is a TreeGraph (that is, a tree with additional labeled arcs between nodes) for representing the grammatical relations in a parse tree. A new GrammaticalStructure is constructed from an existing parse tree with the help of GrammaticalRelation, which defines a hierarchy of grammatical relations, along with patterns for identifying them in parse trees. The constructor for GrammaticalStructure uses these definitions to populate the new GrammaticalStructure with as many labeled grammatical relations as it can. Once constructed, the new GrammaticalStructure can be printed in various formats, or interrogated using the interface methods in this class.

Author:
Bill MacCartney, Galen Andrew (refactoring English-specific stuff)
See Also:
EnglishGrammaticalRelations, GrammaticalRelation,

Caveat emptor! This is a work in progress. Nothing in here should be relied upon to function perfectly. Feedback welcome., Serialized Form


Field Summary
protected  Set<Dependency> dependencies
           
protected  TypedDependencyList typedDependencies
           
 
Fields inherited from class edu.stanford.nlp.trees.TreeGraph
root
 
Constructor Summary
GrammaticalStructure(Tree t, Collection<GrammaticalRelation> relations, HeadFinder hf, Filter puncFilter)
          Create a new GrammaticalStructure, analyzing the parse tree and populate the GrammaticalStructure with as many labeled grammatical relation arcs as possible.
 
Method Summary
protected  void collapseDependencies(TypedDependencyList list)
          Destructively modify the TypedDependencyList to collapse language-dependent transitive dependencies.
 Set<Dependency> dependencies()
          Returns the set of (governor, dependent) dependencies in this GrammaticalStructure.
 List getDependencyPath(int nodeIndex, int rootIndex)
          Returns the dependency path as a list of labels, from node to root, it is assumed that that root is an ancestor of node
 List getDependencyPath(TreeGraphNode node, TreeGraphNode root)
          Returns the dependency path as a list of labels, from node to root, it is assumed that that root is an ancestor of node
 Set getDependents(TreeGraphNode t)
          Tries to return a Set of leaf (terminal) nodes which are the DEPENDENTs of the given node t.
 TreeGraphNode getGovernor(TreeGraphNode t)
          Tries to return a leaf (terminal) node which is the GOVERNOR of the given node t.
 GrammaticalRelation getGrammaticalRelation(int govIndex, int depIndex)
          Get GrammaticalRelation between gov and dep, and null if gov is not the governor of dep
 GrammaticalRelation getGrammaticalRelation(TreeGraphNode gov, TreeGraphNode dep)
          Get GrammaticalRelation between gov and dep, and null if gov is not the governor of dep
 TreeGraphNode getNodeInRelation(TreeGraphNode t, GrammaticalRelation r)
           
protected  TypedDependencyList moreTypedDependencies()
          Get "extra" dependencies.
 String toString()
          Return a String representing this treegraph.
 TypedDependencyList typedDependencies()
          Returns the typed dependencies of this grammatical structure.
 TypedDependencyList typedDependencies(boolean includeExtras)
          Returns the typed dependencies of this grammatical structure.
 TypedDependencyList typedDependenciesCollapsed()
          Get the typed dependencies after collapsing them.
 TypedDependencyList typedDependenciesCollapsed(boolean includeExtras)
          Get the typed dependencies after collapsing them.
 
Methods inherited from class edu.stanford.nlp.trees.TreeGraph
addNodeToIndexMap, getNodeByIndex, main, root
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

dependencies

protected Set<Dependency> dependencies

typedDependencies

protected TypedDependencyList typedDependencies
Constructor Detail

GrammaticalStructure

public GrammaticalStructure(Tree t,
                            Collection<GrammaticalRelation> relations,
                            HeadFinder hf,
                            Filter puncFilter)
Create a new GrammaticalStructure, analyzing the parse tree and populate the GrammaticalStructure with as many labeled grammatical relation arcs as possible.

Parameters:
relations - a set of GrammaticalRelations to consider
t - a Tree to analyze
hf - a HeadFinder for analysis
puncFilter - a Filter to reject punctuation
Method Detail

toString

public String toString()
Description copied from class: TreeGraph
Return a String representing this treegraph. By default, the nodes of the treegraph are printed in Lispy (parenthesized) format, with one node per line, indented according to depth.

Overrides:
toString in class TreeGraph
Returns:
a String representation of this treegraph

dependencies

public Set<Dependency> dependencies()
Returns the set of (governor, dependent) dependencies in this GrammaticalStructure.


getDependents

public Set getDependents(TreeGraphNode t)
Tries to return a Set of leaf (terminal) nodes which are the DEPENDENTs of the given node t. Probably, t should be a leaf node as well.

Parameters:
t - a leaf node in this GrammaticalStructure
Returns:
a Set of nodes which are dependents of node t, or else null

getGovernor

public TreeGraphNode getGovernor(TreeGraphNode t)
Tries to return a leaf (terminal) node which is the GOVERNOR of the given node t. Probably, t should be a leaf node as well.

Parameters:
t - a leaf node in this GrammaticalStructure
Returns:
a node which is the governor for node t, or else null

getNodeInRelation

public TreeGraphNode getNodeInRelation(TreeGraphNode t,
                                       GrammaticalRelation r)

getGrammaticalRelation

public GrammaticalRelation getGrammaticalRelation(int govIndex,
                                                  int depIndex)
Get GrammaticalRelation between gov and dep, and null if gov is not the governor of dep


getGrammaticalRelation

public GrammaticalRelation getGrammaticalRelation(TreeGraphNode gov,
                                                  TreeGraphNode dep)
Get GrammaticalRelation between gov and dep, and null if gov is not the governor of dep


typedDependencies

public TypedDependencyList typedDependencies()
Returns the typed dependencies of this grammatical structure.


typedDependencies

public TypedDependencyList typedDependencies(boolean includeExtras)
Returns the typed dependencies of this grammatical structure.

If the boolean argument is true, the list of typed dependencies returned may include "extras".


typedDependenciesCollapsed

public TypedDependencyList typedDependenciesCollapsed()
Get the typed dependencies after collapsing them.

Returns:
collapsed dependencies

typedDependenciesCollapsed

public TypedDependencyList typedDependenciesCollapsed(boolean includeExtras)
Get the typed dependencies after collapsing them.

If the boolean argument is true, the list of typed dependencies returned may include "extras".

Returns:
collapsed dependencies

collapseDependencies

protected void collapseDependencies(TypedDependencyList list)
Destructively modify the TypedDependencyList to collapse language-dependent transitive dependencies.

Default is no-op; to be over-ridden in subclasses.

Parameters:
list -

moreTypedDependencies

protected TypedDependencyList moreTypedDependencies()
Get "extra" dependencies.

Default is an empty list; to be overridden in subclasses.


getDependencyPath

public List getDependencyPath(int nodeIndex,
                              int rootIndex)
Returns the dependency path as a list of labels, from node to root, it is assumed that that root is an ancestor of node

Parameters:
nodeIndex -
rootIndex -
Returns:
a list of dependency labels

getDependencyPath

public List getDependencyPath(TreeGraphNode node,
                              TreeGraphNode root)
Returns the dependency path as a list of labels, from node to root, it is assumed that that root is an ancestor of node

Parameters:
node -
root -
Returns:
a list of dependency labels


Stanford NLP Group