Some aspirational TODO notes.
Chris Pressey
10 months ago
66 | 66 | `relwrite` uses the term "derivation" as a generic term meaning "a parse or a generated utterance". |
67 | 67 | It also uses the term "utterance" to mean "any string of terminals and non-terminals". |
68 | 68 | |
69 | ### TODO | |
69 | ### TODO (immediate) | |
70 | 70 | |
71 | * specify output filename | |
71 | * `--output-file` to specify output filename | |
72 | 72 | * `--goal` to assert that a particular final utterance appears |
73 | * Turn `complete` into a strategy that must be explicitly selected. | |
74 | ||
75 | ### TODO (aspirational) | |
76 | ||
77 | Analyze the input grammar and classify it in the Chomsky hierarchy. | |
78 | ||
79 | If the input grammar is context-free, use an algorithm such as Earley or CYK to | |
80 | efficiently parse or generate it. | |
81 | ||
82 | Allow strategies to be defined richly, perhaps in JSON files, and let | |
83 | them configure parameters like beam width, max rewrites per utterance, etc. | |
84 | ||
85 | For max rewrites per utterance, allow them to be taken from random | |
86 | points (or at least from a randomly-chosen start point) in the utterace. | |
87 | ||
88 | Support random search. For `contract` strategy, it should be sufficient to | |
89 | identify the subset of the next states that is sufficiently contracting | |
90 | (this is not a "beam width" so much as a "pre-filter"), | |
91 | then select a single instance from it at random (beam width of 1). |