mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-06-24 18:46:26 -06:00
261 lines
7.8 KiB
Plaintext
261 lines
7.8 KiB
Plaintext
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 (4h)
|
|
|
|
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. Strategy: fill all you know without consulting dictionary;
|
|
mark ---- before what you dont know, and after what you are uncertain about.
|
|
|
|
Insight: to write a *resource* grammar you need not be a fluent speaker, but
|
|
just to understand what grammar books say. It is when writing application
|
|
grammars that you need to make stylistic judgements to do the right choices
|
|
from the resource.
|
|
|
|
17/1 (4h)
|
|
|
|
MorphoGer: for numerals
|
|
NumeralGer: all
|
|
> make stat
|
|
66123 german/NumeralGer.gfc
|
|
added flags optimize=all_subs ;
|
|
17046 german/NumeralGer.gfc
|
|
|
|
BasicGer: completed. Idea: work in pairs, one consulting the dictionary (or
|
|
giving native speaker advice)
|
|
ParadigmsGer: remove second arg from mkA ; add heuristics for el/er/en masculines in regN
|
|
|
|
wc german/*.gfc
|
|
63 203 3360 german/AdjectiveGer.gfc
|
|
63 198 1649 german/AdverbGer.gfc
|
|
276 1159 89069 german/BasicGer.gfc
|
|
55 182 7704 german/CatGer.gfc
|
|
76 260 4489 german/ConjunctionGer.gfc
|
|
523 1575 11728 german/LangGer.gfc
|
|
94 315 10783 german/LexGer.gfc
|
|
128 469 2892 german/MorphoGer.gfc
|
|
99 375 12394 german/NounGer.gfc
|
|
100 321 17046 german/NumeralGer.gfc
|
|
0 5 83 german/ParadigmsGer.gfc
|
|
42 162 1446 german/ParamGer.gfc
|
|
81 245 2256 german/PhraseGer.gfc
|
|
68 244 4372 german/QuestionGer.gfc
|
|
63 219 3800 german/RelativeGer.gfc
|
|
90 355 2155 german/ResGer.gfc
|
|
123 423 22590 german/SentenceGer.gfc
|
|
151 451 14559 german/StructuralGer.gfc
|
|
69 224 1715 german/TensedGer.gfc
|
|
230 696 4752 german/TestGer.gfc
|
|
61 185 1483 german/UntensedGer.gfc
|
|
121 406 45746 german/VerbGer.gfc
|
|
2576 8672 266071 total
|
|
|
|
Known bugs: double infinitives in subordinate clauses.
|
|
Known uncertainties: marked with ----, mostly in Structural and Basic.
|
|
|
|
Work: ca 27h for whole German (but with support in 0.6 esp. morphology, Swedish).
|