jimregan / foma

Automatically exported from code.google.com/p/foma
0 stars 0 forks source link

flookup reports file format error and file error #6

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
echo regék | flookup -x hun41.foma
File format error foma!
: Success
File error: hun41.foma

Hun41 lexc/foma look:
!!!hun41.lexc!!!

Multichar_Symbols +N +V +Nom +Pl

!Poss
+Posss1 +Posss2 +Posss3 +Possp1 +Possp2 +Possp3 
+Posss1p +Posss2p +Posss3p +Possp1p +Possp2p +Possp3p 

!Genitiv
+Gen 
+Genpl

!Cases
+Abl +Acc +Ade +All
+Cau +Dat +Del 
+Ela +Fac +For
+Ill +Ine +Ins 
+Sub +Sup +Ter       

!Special cases
+Dis +Ess +Fam +Soc +Tem

LEXICON Root
        Noun ; 

LEXICON Noun
!+N:kar   Plur;
!+N:kéz   Plur;
!+N:kör   Plur;
!+N:hajó  Plur;
rege      Poss;

LEXICON Poss
+Dis:^Lnként   #;
+Ess:^Zl       #;
+Soc:^NstZl    #;
+Tem:^kor      #;
+Posss1:^Bm       Plur;
+Posss2:^Bd       Plur;
+Posss3:^JC       Plur;
+Possp1:^Hnk      Plur;
+Possp2:^KtQk     Plur;
+Possp3:^JRk      Plur;
+Posss1p:^STim    Plur;
+Posss2p:^STid    Plur;
+Posss3p:^STi     Plur;
+Possp1p:^STink   Plur;
+Possp2p:^STitWk  Plur;
+Possp3p:^STik    Plur;
                  Plur;

LEXICON Plur
+Plur:^Ok      Fam;
               Fam;

LEXICON Fam
+Fam:^ék     Gen;
             Gen;

LEXICON Gen
+Gen:^é         Case;
+Genpl:^éi      Case;
                Case;

! H, K, unused
LEXICON Case
+Abl:^tUl      #;
+Acc:^Gt       #;
+Ade:^nDl      #;
+All:^hIz      #;
+Cau:^ért      #;
+Dat:^nFk      #;
+Del:^rUl      #;
+Ela:^bUl      #;
+Fac:^VD       #;
+For:^ként     #;
+Ill:^bF       #;
+Ine:^bFn      #;
+Ins:^VFl      #;
+Sub:^rF       #;
+Sup:^Pn       #;
+Ter:^ig;      #;

### hun4.foma ###

# Vowels
define Vowel [ a | á | e | é | i | í | o | ó | u | ú | ü | ű | ö | ő ];
define BackVowel [ a | á | o | ó | u | ú ];
define FrontUnroundedVowel [ e | é | i | í | ü | ű ];
define FrontRoundedVowel [ ö | ő ];
define FrontVowel [e | é | i | í | ü | ű | ö | ő ];

# E to é: if any ending e-> é
define Etoee e -> é || _ "^" [ \0 ] ;

# Cleanup: remove morpheme boundaries
define Cleanup "^" -> 0;

#define DelRule O -> 0 || Vowel %^ _ ;
define HarmRuleO O -> 0 // Vowel %^ _  .o.
                 O -> o // BackVowel \Vowel+  _ ,,
                 O -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 O -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleB B -> 0 // Vowel %^ _ .o.
                 B -> o // BackVowel \Vowel+  _ ,,
                 B -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 B -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleA A -> 0 // Vowel %^ _ .o.
                 A -> a // BackVowel \Vowel+  _ ,,
                 A -> e // FrontVowel \Vowel+ _ ;
define HarmRuleC C -> a // BackVowel \Vowel+  _ .#. .o.
                 C -> e // FrontVowel \Vowel+ _ .#. .o.
                 C -> á // BackVowel \Vowel+  _ .o.
                 C -> é // FrontVowel \Vowel+ _ ;
define HarmRuleJ J -> j ||  Vowel %^  _ .o.
                 J -> 0 //  \Vowel+ _ ;
define HarmRuleU U -> ó // BackVowel \Vowel+  _ ,,
                 U -> ő // FrontVowel \Vowel+ _ ;
define HarmRuleZ Z -> u // BackVowel \Vowel+  _ ,,
                 Z -> ü // FrontVowel \Vowel+ _ ;
define HarmRuleD D -> á // BackVowel \Vowel+  _ ,,
                 D -> é // FrontVowel \Vowel+ _ ;
define HarmRuleF F -> a // BackVowel \Vowel+  _ ,,
                 F -> e // FrontVowel \Vowel+ _ ;
define HarmRuleV V -> v || Vowel %^  _ ,,
                 V -> k || k %^ _ ,,
                 V -> m || m %^ _ ,,
                 V -> d || d %^ _ ,,
                 V -> r || r %^ _ ;
define HarmRuleG G -> 0 // Vowel %^ _  .o.
                 G -> o // BackVowel \Vowel+  _ ,,
                 G -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 G -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleI I -> o // BackVowel \Vowel+  _ ,,
                 I -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 I -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleP P -> 0 // Vowel %^ _  .o.
                 P -> o // BackVowel \Vowel+  _ ,,
                 P -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 P -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleL L -> 0 // Vowel %^ _  .o.
                 L -> o // BackVowel \Vowel+  _ ,,
                 L -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 L -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleN N -> 0 // Vowel %^ _  .o.
                 N -> o // BackVowel \Vowel+  _ ,,
                 N -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 N -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleH H -> 0 // Vowel %^ _  .o.
                 H -> u // BackVowel \Vowel+  _ ,,
                 H -> ü // FrontVowel \Vowel+ _ ;
define HarmRuleK K -> 0 // Vowel %^ _  .o.
                 K -> o // BackVowel \Vowel+  _ ,,
                 K -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 K -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleQ Q -> o // BackVowel \Vowel+  _ ,,
                 Q -> e // FrontUnroundedVowel \Vowel+ _ ,,
                 Q -> ö // FrontRoundedVowel \Vowel+  _ ;
define HarmRuleR R -> u // BackVowel \Vowel+  _ ,,
                 R -> ü // FrontVowel \Vowel+ _ ;
define HarmRuleS S -> j ||  Vowel %^  _ .o.
                 S -> 0 //  \Vowel+ _ ;
define HarmRuleT T -> a // BackVowel \Vowel+  _ ,,
                 T -> e // FrontVowel \Vowel+ _ ;
define HarmRuleW W -> o // BackVowel \Vowel+  _ ,,
                 W -> e // FrontVowel \Vowel+ _ ;

define Ablaut   é -> e || _ z "^" [ \0 ] ; 

read lexc hun41.lexc
define Lexicon

define Grammar Lexicon           .o.
               HarmRuleO         .o. 
               HarmRuleB         .o. 
               HarmRuleA         .o. 
               HarmRuleJ         .o. 
               HarmRuleU         .o. 
               HarmRuleC         .o. 
               HarmRuleZ         .o. 
               HarmRuleD         .o. 
               HarmRuleF         .o. 
               HarmRuleV         .o. 
               HarmRuleG         .o. 
               HarmRuleI         .o. 
               HarmRuleP         .o. 
               HarmRuleL         .o. 
               HarmRuleN         .o. 
               HarmRuleH         .o. 
               HarmRuleK         .o. 
               HarmRuleQ         .o. 
               HarmRuleR         .o. 
               HarmRuleS         .o. 
               HarmRuleT         .o. 
               HarmRuleW         .o. 
               Ablaut            .o. 
               Etoee             .o. 
               Cleanup;

regex Grammar;

Original issue reported on code.google.com by eleonor...@gmx.net on 1 Jan 2012 at 7:03

GoogleCodeExporter commented 8 years ago
hun41.foma works perfectly well with foma.

Original comment by eleonor...@gmx.net on 1 Jan 2012 at 10:15

GoogleCodeExporter commented 8 years ago
Are you sure hun41.foma is a binary file. That is, did you create it by having 
only one network on the stack in foma with the command "save stack"? Like so:

foma[1]: save stack hun41.foma

What's pasted looks like a lexc-file.

Original comment by mans.hul...@gmail.com on 2 Jan 2012 at 10:09

GoogleCodeExporter commented 8 years ago
Thanks, that works.

en@en-desktop ~/program/foma/tktest $ echo regék | flookup hun41.fst
regék  rege+Plur+Nom
en@en-desktop ~/program/foma/tktest $ echo rege+Plur+Nom  | flookup -i 
hun41.fst 
rege+Plur+Nom   regék

It would be good, if this (save stack file.fst needed)  were mentioned in the 
flookup documentation. For me .foma is a txt file.

Original comment by eleonor...@gmx.net on 2 Jan 2012 at 6:49