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:
- The order of display derivations is different.
- The mutation information is different when -m option is used.
- The new version only displays derivations which are in lvg.
- With choosing detail options -d, all paths of derivations can be traced in the new version.
- Features:
- Generate derivations recursively until there are no more or a cycle is detected.
- Symbol:
R
- Examples:
shell> lvg -f:R -m
happy
happy|happiness|128|1|R|1|FACT|happy|adj|E0030812|happiness|noun|E0030811|S|O|None|d|NounAdj|
happy|happily|2|1|R|1|FACT|happy|adj|E0030812|happily|adv|E0218480|S|O|None|d|NotNounAdj|
kind
kind|kindliness|128|1|R|1|FACT|kindly|adj|E0036529|kindliness|noun|E0036528|S|O|None|dd|NounAdj|
kind|kindness|128|1|R|1|FACT|kind|adj|E0036524|kindness|noun|E0036531|S|O|None|d|NounAdj|
kind|kindly|2|1|R|1|FACT|kind|adj|E0036524|kindly|adv|E0036530|S|O|None|d|NotNounAdj|
kind|in-kind|1|1|R|1|FACT|kind|noun|E0036525|in-kind|adj|E0555638|P|O|in-|d|NounAdj|
kind|kindly|1|1|R|1|FACT|kind|noun|E0036525|kindly|adj|E0036529|S|O|None|d|NounAdj|
More examples
Implementation Logic:
- Generate derivations based on the input term.
- Generate derivations based on the generated derivations, repeatedly.
- Check if the generated derivation is new, if so, add to output list.
- 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