java.lang.Object
de.saar.chorus.domgraph.codec.InputCodec
de.saar.chorus.domgraph.codec.basic.Chain

public class Chain extends InputCodec
An input codec that generates pure chains. Pure chains are normal dominance graphs in which upper and lower fragments alternate in a zig-zag shape (see e.g. Koller's Ph.D. thesis, Chapter 6.4). They correspond to the predicate-argument structure of (possibly nested) NPs and (possibly transitive) verbs, and as such are a convenient type of graphs for benchmarks.

Author:
Alexander Koller
  • Field Details

    • ERROR_CHAIN_LENGTH

      public static int ERROR_CHAIN_LENGTH
  • Constructor Details

    • Chain

      public Chain()
  • Method Details

    • decode

      public void decode(Reader inputStream, DomGraph graph, NodeLabels labels) throws IOException, ParserException, MalformedDomgraphException
      Description copied from class: InputCodec
      Reads an USR representation from a Reader. This method converts the USR into an equivalent labelled dominance graph and stores this graph in a DomGraph and the labels in a NodeLabels object. You must implement this method in every concrete input codec.

      The graph and labels objects passed to this method need not be empty; it is the responsibility of this method to clear them first.

      Specified by:
      decode in class InputCodec
      Parameters:
      inputStream - the reader from which the USR is read
      graph - the dominance graph into which the USR is converted
      labels - the node labels of the labelled dominance graph
      Throws:
      IOException - if an I/O error occurred while reading from reader
      ParserException - if a syntactic error occurred while parsing the USR
      MalformedDomgraphException - if a semantic error occurred, i.e. the USR cannot be converted into a dominance graph
    • getReaderForSpecification

      public Reader getReaderForSpecification(String spec)
      Determines a Reader from which the USR specified by the spec will be read. In the context of the Chain input codec, the spec must be a string representing a number, which is taken to specify the length of the chain to generate. (This is different than the implementation in InputCodec, where spec is read as a filename.)
      Overrides:
      getReaderForSpecification in class InputCodec
      Parameters:
      spec - a string specifying the length of the chain
      Returns:
      a StringReader for the given string