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 <a,gn,c> is
  much less storage-efficient.

ParadigmsGer: completed

ParamGer: VType
ResGer, ParadigmsGer: the consequences of this

BasicGer; started

