mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-14 07:19:31 -06:00
298 lines
8.7 KiB
Plaintext
298 lines
8.7 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).
|
||
|
||
|
||
22/1
|
||
|
||
Fixed double infinitives with a new field (isAux : Bool) in VP. Used in
|
||
mkClause.
|
||
|
||
31/1
|
||
|
||
Fine-tuned the place of negation by changing in ResGerman.mkClause and
|
||
VerbGerman.UseCompl. Want to say "ich bin nicht alt" and "ich liebe sie nicht".
|
||
|
||
31/5
|
||
|
||
Added inherent Case to RS, RCl and Gender to Agr in order to handle it clefts
|
||
properly. (In the meantime, the module IdiomGer had required some incremental
|
||
work.)
|
||
|
||
26/6
|
||
|
||
The German resource implementation is considered complete, and it is released
|
||
in the resource grammar version 1.0.
|
||
|
||
--------------
|
||
|
||
13/12
|
||
|
||
When adding polite imperatives, have to change the lincat of Imp: ImpForm instead
|
||
of Number. But the required inflections exist already.
|
||
|
||
--------------
|
||
|
||
20/3/2007
|
||
|
||
Spent half a day adding prefix gluing to the morphology and also
|
||
making conjunctive forms accessible as top-level tenses. These facilities
|
||
were requested by Nadine Perera writing a paper with me.
|