| Machine | Graph | Text file | Command |
|---|---|---|---|
| FSA | ![]() | fsa.txt | ASTL_compile -i $SYMB fsa.txt >fsa.fsa |
| WFSA | ![]() | wfsa.txt | ASTL_compile -i $SYMB wfsa.txt >wfsa.wfa |
| FST | ![]() | fst.txt | ASTL_compile -i $SYMB fst.txt >fst.fst |
| WFST | ![]() | wfst.txt | ASTL_compile -i $SYMB wfst.txt >wfst.wfst |
| Operation | Machines | Input | Result | Command |
|---|---|---|---|---|
| Compilation | all | text file | compiled machine | ASTL_compile -i $SYMB in.txt >out.fsm |
| Drawing | all | compiled machine | ATT dot file | ASTL_draw -i $SYMB in.fsm >out.dot |
| Printing | all | compiled machine | text file | ASTL_print -i $SYMB in.fsm >out.txt |
| Operation | Machines | Input | Result | Command |
|---|---|---|---|---|
| Closure | all | fsm | fsm | ASTL_closure a.fsm >closure.fsm |
| Epsilon-removal | (~W)FSA, (~W)FST | fsm | fsm | ASTL_rmepsilon a.fsm >rmeps.fsm |
| Reversal | all | fsm | fsm | ASTL_reverse a.fsm >reverse.fsm |
| Connection | all | fsm | fsm | ASTL_connect a.fsm >connect.fsm |
| Inversion | FST, WFST | fsm | fsm | ASTL_invert a.fsm >invert.fsm |
| Completion | all | fsm | fsm | ASTL_complete a.fsm >complete.fsm |
| Determinization | FSA, UFST, UWFSA, UWFST | fsm | Dfsm | ASTL_determinize a.fsm >det.fsm |
| Minimization | FSA, UFST, UWFSA, UWFST | fsm | MD(U)fsm | ASTL_minimize a.fsm >min.fsm |
| Best path | WFSA, WFST | fsm | fsm | ASTL_bestpath a.fsm >bestpath.fsm |
| Projection | FST, WFSA, WFST | fsm | FSA | ASTL_project a.fsm >a.fsa |
| Operation | Machines | Input | Result | Command |
|---|---|---|---|---|
| Union | all | fsms | fsm | ASTL_union a.fsm b.fsm c.fsm >d.fsm |
| Concatenation | all | fsms | fsm | ASTL_concat a.fsm b.fsm c.fsm >d.fsm |
| Intersection | FSA, UFST, WFSA, UWFST | fsms | fsm | ASTL_intersect a.fsm b.fsm c.fsm >d.fsm |
| Difference | FSA, UFST, WFSA, UWFST | D(U)fsms | fsm | ASTL_difference a.fsm b.fsm c.fsm >d.fsm |
| Composition | FST, WFST | fsms | fsm | ASTL_compose a.fsm b.fsm c.fsm >d.fsm |
| Local grammar (layer=3) | DAFSAs | DAFSAs | DAFSA | ASTL_applygram a.fsm b.fsm c.fsm >d.fsm |
| Operator | Operation |
|---|---|
| [@file] | Reference to a compiled fsm on disk |
| [] | Brackets (force atomic symbol) |
| () | Parentheses |
| * | Kleene closure |
| + | Kleene Plus |
| . | Concatenation (default between two symbols) |
| - | Difference |
| | | Union |
| Symbol | Use | Rank in symbol file | Name in symbol file |
|---|---|---|---|
| Epsilon | Empty string/word transition | 0 | eps |
| Epsilon 1 | Empty string/word transition for composition | 1 | eps1 |
| Epsilon 2 | Empty string/word transition for composition | 2 | eps2 |
| Default | Transition on all symbols except those existing from a state | 3 | /? |
| Stop | No transition allowed | compulsory | /X |
| Machine | Graph | Expression | Command |
|---|---|---|---|
| FSA | ![]() | a*b+ | echo "a*b+" | ASTLreg >fsa.fsa |
| WFSA | ![]() | ((a/1)|(b/0))* | echo "((a/1)|(b/0))*" | ASTLreg >wfsa.wfa |
| FST | ![]() | (a:b)*(b:c)(b:d)* | echo "(a:b)*(b:c)(b:d)*" | ASTLreg >fst.fst |
| WFST | ![]() | (a:A/0.5)*(b:B/0.3)((c:C/0)|(d:D/0.6)) | echo "(a:A/0.5)*(b:B/0.3)((c:C/0)|(d:D/0.6))" >wfst.wfst |
| Name | Description | Machine type required | Comment |
|---|---|---|---|
| ASTL_DTW | Genetic sequence alignment | WFST | Just an example |
| ASTL_HMM | Viterbi decoding with HMM | WFST | see the main report for details |
| ASTL_grammar | Application of local grammars | FSA, FST, WFST | see the main report for details |
| ASTL_grammar/blois | Application of Blois-Buydens rules | FSA | see the main report and Thierry Dutoit's thesis (LIPSS) for details |
| ASTL_kk | Application of Kaplan and Kay rules | FST, WFST | heavy and non efficient but good test ! |