Steps of building the German implementation. 4/1/2006 ParamGer: Case, Gender, Adjf CatGer: N, CN ResGer: mkNoun, mkN2, mkN4 > cc mkN2 "Stube" "Stuben" Fem ResGer: mkA, mkV, regA, regV > cc regV "machen" CatGer: V*, A* LexGer: N*, A*, V* > l -table walk_V NounGer: determiner rules, UseN ParamGer: gennum, adjAgr ResGer: pronForms > p -cat=NP "der Hund" | l -table 5/1 LexGer: Pron, Det > p "mein Hund" AdjectiveGer: PositA, ComparA, AdAP > p -cat=NP "ein warmer Hund" | l -table > p -cat=NP -lexer=literals "alle meine 3 sehr warmen Hünde" ResGer: predV, mkClause, aux verbs VerbGer: UseV SentenceGer: PredVP > l -table PredVP (UsePron i_Pron) (UseV walk_V) ("ich nicht gegangen hatte" etc) ParamGer: VAux ResGer: added aux : VAux to Verb and mkV LexGer: mkV updates > l -table PredVP (UsePron i_Pron) (UseV walk_V) ("ich nicht gegangen war" etc, now correct) ResGer: appPrep, insertObj, insertAdv VerbGer: ComplV2, ComplV3 SentenceGer: PosCl, NegCl > p -cat=S -mcfg "ich zeige ihn meinem warmen Hund" wc *.gfc 122385 total 70667 CatGer.gfc (largest) add flags optimize=all_subs to this module: 5781 CatGer.gfc 57499 total VerbGer: UseComp, Comp* > p -cat=Cl -mcfg "ich bin ein Hund" | l -table > vg (see complex figure) > i english/TestEng.gf > vg (see complex symmetric figure) ResGer: wollen_V, auxVV, insertExtrapos VerbGer: ComplVS > p -cat=Cl -mcfg "ich behaupte daß wir gehen" | l -table (gets OK with proper extrapos) VerbGer: ComplVV = insertObj (\\a => v.part ++ (vp.s ! a ! VPInfinit Simul).inf) (predV v) ; > p -cat=Cl "ich will gehen" | l -table Pres Anter Pos Main : ich habe gehen gewollen Pres Anter Pos Inv : habe ich gehen gewollen Pres Anter Pos Sub : ich gehen gewollen habe (Thus "double infinitives" don't get right.) Added routine stuff to AdverbGer and AdjectiveGer. Noticed failure with comparison ("schneller als ein Zug" pro "mehr schnell als ein Zug") SentenceGer: ImpVP PhraseGer: almost all (actually copied from PhraseScand) > p -cat=Imp -mcfg "geh hier" ImpVP (AdvVP (UseV walk_V) here_Adv) QuestionGer: almost all (copied from Scand) UntensedGer: PosQCl, NegQCl > p -cat=QS -mcfg "gehen wir nicht" | l -table QDir : gehen wir nicht QIndir : ob wir nicht gehen VerbGer: ComplVQ > p -cat=S -mcfg "ich frage ob wir warm sind" LexGer: *IDet, *IP, *Prep QuestionGer: IDetCN (using NounGer.MkDet) > p -cat=QS -mcfg "welcher Hund geht" > p -cat=QS -mcfg "in welchem Hund geht er" wc german/*.gfc 69407 total NounGer: ComplN2, ComplN3, SentCN, QuestCN LexGer: N2, N3 > p -cat=NP "der Sohn von dem Hund" > p -cat=CN -mcfg "Hund ob er geht" SentenceGer: Slash rules > p -cat=QS -mcfg "wem hilft er" CatGer: RP, RS, RCl ParamGer: RAgr RelativeGer: all (copied from Scand; tweaking betw GenNum, Agr also in CatGer) UntensedGer: PosRCl, NegRCl NounGer: RelCN > p -cat=RCl -mcfg "der geht" | l -table > p -cat=NP -mcfg "der Hund dem wir helfen wollen" | l -table NounGer: Num and Ord related rules CatGer: Ord has parametric AForm; Num has no params ParamGer: CardOrd LexGer: Numeral > p -cat=NP "meine vierzig warmen Hünde" > p -cat=NP "mein vierzigter Hund" CatGer: Conj, DConj ConjunctionGer: all (mostly from Scand) LexGer: Conj, DConj > p -cat=NP "ich und der Hund" | l -table > p -cat=S -mcfg "ich und der Hund sind entweder warm oder warm" > pm -printer=missing TestGer AdVVP AdvSC ComplV2A ComplVA EmbedQS EmbedS EmbedVP PassV2 ReflA2 ReflV2 UttVP one_Numeral wc german/*.gfc 1231 4116 98878 total Now we have finished most of TestGer in two days, 4 + 8 hours. But we had the old morphology and other files, and the Scandinavian v 1.0 as help. -------------------- 13/1 CatGer: add prefix to V*, isAux to VV - the latter mostly to deal with double infinitives ResGer: generalize predV to predVGen LexGer: experiment with gehen --> ausgehen > l -table PredVP (UsePron he_Pron) (ComplVV want_VV (UseV walk_V)) --- the auxiliary is still in wrong place in subordinate double infinitives ResGer: reflPron VerbGer: ReflV2 AdjectiveGer: ReflA2 --- with missing person agreement > p -cat=Cl -mcfg "ich helfe mir" PredVP (UsePron i_Pron) (ComplV2 help_V2 (UsePron i_Pron)) PredVP (UsePron i_Pron) (ReflV2 help_V2) > p -cat=Cl -mcfg "er hilft sich" PredVP (UsePron he_Pron) (ReflV2 help_V2) > pm -printer=missing AdVVP AdvSC OrdInt UttVP A round of filling these completes the implementation of TestGer. ResGer: insertAdV > p -cat=Cl -mcfg "er hilft immer seinem Hund" PredVP (UsePron he_Pron) (AdVVP always_AdV (ComplV2 help_V2 (DetCN (DetSg (PossSg he_Pron) NoOrd) (UseN dog_N)))) wc german/*.gfc 63 203 4768 german/AdjectiveGer.gfc 63 198 1649 german/AdverbGer.gfc 55 184 7490 german/CatGer.gfc 76 260 4489 german/ConjunctionGer.gfc 94 315 13968 german/LexGer.gfc 121 445 2736 german/MorphoGer.gfc 86 306 6637 german/NounGer.gfc 41 160 1419 german/ParamGer.gfc 81 245 2256 german/PhraseGer.gfc 63 219 3333 german/QuestionGer.gfc 63 219 3800 german/RelativeGer.gfc 87 343 2081 german/ResGer.gfc 112 393 20890 german/SentenceGer.gfc 230 696 4752 german/TestGer.gfc 61 185 1483 german/UntensedGer.gfc 110 366 41629 german/VerbGer.gfc 1406 4737 123380 total Ca. 4h more work was needed, so we have spent 16h now. -------------------- 15/1 (3h) TensedGer: just uncomment, except S StructuralGer: almost complete with some determiner forms to revisit ParadigmsGer: almost complete with verb form variations to revisit MorphoGer: very few functions in this module 16/1 ParamGer: removed Strong/Weak from AForm to save lexicon storage. Done in agrAdj instead. Only affects NounGer and QuestionGer. Notice that making case analysis on is much less storage-efficient. ParadigmsGer: completed