Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## edu.stanford.nlp.trees
Class GrammaticalStructure

    java.lang.Object
      edu.stanford.nlp.trees.TreeGraph
          edu.stanford.nlp.trees.GrammaticalStructure

All Implemented Interfaces:
  Serializable

    public abstract class GrammaticalStructure

extends TreeGraph

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.

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

Author:
  Bill MacCartney, Galen Andrew (refactoring English-specific stuff), Ilya Sherman (dependencies)
See Also:
  `EnglishGrammaticalRelations`, `GrammaticalRelation`, `EnglishGrammaticalStructure`, Serialized Form

Field Summary
`protected List<TypedDependency>` | `allTypedDependencies`
`protected Set<Dependency<Label,Label,Object>>` | `dependencies`
`protected List<TypedDependency>` | `typedDependencies`

Fields inherited from class edu.stanford.nlp.trees.TreeGraph
`root`

Constructor Summary
`GrammaticalStructure(List<TypedDependency> projectiveDependencies, TreeGraphNode root)`
`GrammaticalStructure(Tree t, Collection<GrammaticalRelation> relations, HeadFinder hf, Filter<String> puncFilter)`
`GrammaticalStructure(Tree t, Collection<GrammaticalRelation> relations, Lock relationsLock, HeadFinder hf, Filter<String> puncFilter)` Create a new GrammaticalStructure, analyzing the parse tree and populate the GrammaticalStructure with as many labeled grammatical relation arcs as possible.

Method Summary
`Collection<TypedDependency>` | `allTypedDependencies()` Returns all the typed dependencies of this grammatical structure.
`protected void` | `collapseDependencies(List<TypedDependency> list, boolean CCprocess)` Destructively modify the `Collection<TypedDependency>` to collapse language-dependent transitive dependencies.
`protected void` | `collapseDependenciesTree(List<TypedDependency> list)` Destructively modify the `Collection<TypedDependency>` to collapse language-dependent transitive dependencies but keeping a tree structure.
`protected void` | `correctDependencies(Collection<TypedDependency> list)` Destructively modify the `TypedDependencyGraph` to correct language-dependent dependencies.
`Set<Dependency<Label,Label,Object>>` | `dependencies()` Returns the set of (governor, dependent) dependencies in this `GrammaticalStructure`.
`List<String>` | `getDependencyPath(int nodeIndex, int rootIndex)` Returns the dependency path as a list of String, from node to root, it is assumed that that root is an ancestor of node
`List<String>` | `getDependencyPath(TreeGraphNode node, TreeGraphNode root)` Returns the dependency path as a list of String, from node to root, it is assumed that that root is an ancestor of node
`Set<TreeGraphNode>` | `getDependents(TreeGraphNode t)` Tries to return a `Set` of leaf (terminal) nodes which are the ``DEPENDENT``s of the given node `t`.
`static 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
`static List<GrammaticalRelation>` | `getListGrammaticalRelation(TreeGraphNode gov, TreeGraphNode dep)` Get a list of GrammaticalRelation between gov and dep.
`static TreeGraphNode` | `getNodeInRelation(TreeGraphNode t, GrammaticalRelation r)`
`Collection<TypedDependency>` | `getRoots(Collection<TypedDependency> list)` Return a list of TypedDependencies which are not dependent on any node from the list
`boolean` | `isConnected(Collection<TypedDependency> list)` Checks if all the typeDependencies are connected
`String` | `toString()` Return a `String` representing this treegraph.
`Collection<TypedDependency>` | `typedDependencies()` Returns the typed dependencies of this grammatical structure which do not break the tree structure of dependencies
`List<TypedDependency>` | `typedDependencies(boolean includeExtras)` Returns the typed dependencies of this grammatical structure.
`List<TypedDependency>` | `typedDependenciesCCprocessed(boolean includeExtras)` Get the typed dependencies after collapsing them and processing eventual CC complements.
`Collection<TypedDependency>` | `typedDependenciesCollapsed()` Get the typed dependencies after collapsing them.
`List<TypedDependency>` | `typedDependenciesCollapsed(boolean includeExtras)` Get the typed dependencies after collapsing them.
`Collection<TypedDependency>` | `typedDependenciesCollapsedTree()` Get the typed dependencies after collapsing them, but keep a tree structure: no relative clause processing no xsubj relations no propagation of conjuncts

Methods inherited from class edu.stanford.nlp.trees.TreeGraph
`addNodeToIndexMap, getNodeByIndex, getNodes, 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<Label,Label,Object>> dependencies

### typedDependencies

    protected List<TypedDependency> typedDependencies

### allTypedDependencies

    protected List<TypedDependency> allTypedDependencies

Constructor Detail

### GrammaticalStructure

    public GrammaticalStructure(Tree t,
                                Collection<GrammaticalRelation> relations,
                                Lock relationsLock,
                                HeadFinder hf,
                                Filter<String> puncFilter)

  Create a new GrammaticalStructure, analyzing the parse tree and populate the GrammaticalStructure with as many labeled grammatical relation arcs as possible.

  Parameters:
    `t` - A Tree to analyze
    `relations` - A set of GrammaticalRelations to consider
    `relationsLock` - Something needed to make this thread-safe
    `hf` - A HeadFinder for analysis
    `puncFilter` - A Filter to reject punctuation. To delete punctuation dependencies, this filter should return false on punctuation word strings, and true otherwise. If punctuation dependencies should be kept, you should pass in a Filters.<String>acceptFilter().

### GrammaticalStructure

    public GrammaticalStructure(List<TypedDependency> projectiveDependencies,
                                TreeGraphNode root)

### GrammaticalStructure

    public GrammaticalStructure(Tree t,
                                Collection<GrammaticalRelation> relations,
                                HeadFinder hf,
                                Filter<String> puncFilter)

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<Label,Label,Object>> dependencies()

  Returns the set of (governor, dependent) dependencies in this `GrammaticalStructure`.

  Returns:
    The set of (governor, dependent) dependencies in this `GrammaticalStructure`.

### getDependents

    public Set<TreeGraphNode> getDependents(TreeGraphNode t)

  Tries to return a `Set` of leaf (terminal) nodes which are the ``DEPENDENT``s 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 static 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 static 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

### getListGrammaticalRelation

    public static List<GrammaticalRelation> getListGrammaticalRelation(TreeGraphNode gov,
                                                                       TreeGraphNode dep)

  Get a list of GrammaticalRelation between gov and dep. Useful for getting extra dependencies, in which two nodes can be linked by multiple arcs.

### typedDependencies

    public Collection<TypedDependency> typedDependencies()

  Returns the typed dependencies of this grammatical structure which do not break the tree structure of dependencies

### allTypedDependencies

    public Collection<TypedDependency> allTypedDependencies()

  Returns all the typed dependencies of this grammatical structure.

### typedDependencies

    public List<TypedDependency> 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", and does not follow a tree structure.

### typedDependenciesCollapsed

    public Collection<TypedDependency> typedDependenciesCollapsed()

  Get the typed dependencies after collapsing them. No guarantee that the dependencies are in a tree structure.

  Returns:
    collapsed dependencies

### typedDependenciesCollapsedTree

    public Collection<TypedDependency> typedDependenciesCollapsedTree()

  Get the typed dependencies after collapsing them, but keep a tree structure:

  no relative clause processing

  no xsubj relations

  no propagation of conjuncts

  Returns:
    collapsed dependencies keeping a tree structure

### typedDependenciesCollapsed

    public List<TypedDependency> 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

### typedDependenciesCCprocessed

    public List<TypedDependency> typedDependenciesCCprocessed(boolean includeExtras)

  Get the typed dependencies after collapsing them and processing eventual CC complements.

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

  Returns:
    collapsed dependencies with CC processed

### collapseDependencies

    protected void collapseDependencies(List<TypedDependency> list,
                                        boolean CCprocess)

  Destructively modify the `Collection<TypedDependency>` to collapse language-dependent transitive dependencies.

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

  Parameters:
    `list` - A list of dependencies to process for possible collapsing
    `CCprocess` - apply CC process?

### collapseDependenciesTree

    protected void collapseDependenciesTree(List<TypedDependency> list)

  Destructively modify the `Collection<TypedDependency>` to collapse language-dependent transitive dependencies but keeping a tree structure.

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

  Parameters:
    `list` - A list of dependencies to process for possible collapsing

### correctDependencies

    protected void correctDependencies(Collection<TypedDependency> list)

  Destructively modify the `TypedDependencyGraph` to correct language-dependent dependencies. (e.g., nsubjpass in a relative clause)

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

### getDependencyPath

    public List<String> getDependencyPath(int nodeIndex,
                                          int rootIndex)

  Returns the dependency path as a list of String, from node to root, it is assumed that that root is an ancestor of node

  Returns:
    a list of dependency labels

### getDependencyPath

    public List<String> getDependencyPath(TreeGraphNode node,
                                          TreeGraphNode root)

  Returns the dependency path as a list of String, from node to root, it is assumed that that root is an ancestor of node

  Parameters:
    `node` - Note to return path from
    `root` - The root of the tree, an ancestor of node
  Returns:
    A list of dependency labels

### isConnected

    public boolean isConnected(Collection<TypedDependency> list)

  Checks if all the typeDependencies are connected

  Parameters:
    `list` - a list of typedDependencies
  Returns:
    true if the list represents a connected graph, false otherwise

### getRoots

    public Collection<TypedDependency> getRoots(Collection<TypedDependency> list)

  Return a list of TypedDependencies which are not dependent on any node from the list

  Returns:
    A list of TypedDependencies which are not dependent on any node from the list

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Stanford NLP Group