Lexical Tools

Generate Derivational Variants, Recursively

  • Short Description: Recursively generate derivational variants.

  • Full Description:

    This is a more aggressive form of derivation generation. That is, return derivations of a derivation until there are no more, or until a cycle is detected. In other words, this flow component returns the entire derivational network instead of the related derivational pairs of the input term.

    When the -m flag is specified, the fact or rules that applied is reported along with the detail history of the mutations. The formats are described as follows:

    • |FACT|term for derivations|category|derivation|category|history|
    • |RULE|term for derivations|derivation|match pattern|category|inflection|replace pattern|category|inflection|history|
    In addition, the last field shows information on the category of derivation. "Noun/Adj" and "NotNounAdj" are used to represent if the derivation is from noun/adjective to adjective/noun and all other cases, respectively.

  • Difference:
    1. The order of display derivations is different.
    2. The mutation information is different when -m option is used.
    3. The new version only displays derivations which are in lvg.
    4. With choosing detail options -d, all paths of derivations can be traced in the new version.

  • Features:
    1. Generate derivations recursively until there are no more or a cycle is detected.

  • Symbol: R

  • Examples:
    shell> lvg -f:R -m
    More examples

  • Implementation Logic:
    1. Generate derivations based on the input term.
    2. Generate derivations based on the generated derivations, repeatedly.
    3. Check if the generated derivation is new, if so, add to output list.
    4. The check is on term and category only. Inflections of all derivations are set to be base (1).

  • Source Code: ToRecursiveDerivations.java

  • Hierarchy: Object -> Transformation -> ToRecursiveDerivations