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.