diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-09-22 11:49:15 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-09-22 11:49:15 +0000 |
| commit | 98665df78b8018af30051cb4a9a31f845e0ba19d (patch) | |
| tree | 67ba30b09e2b9590a00a4b193bf7611caa935af8 /next-lib/src/scandinavian/CatScand.gf | |
| parent | 4862018f140a1bdcc7961d445ed9aa92facd742f (diff) | |
moved lib/next-resource to next-lib/src, to enable linking with next-lib as value of GF_LIB_PATH
Diffstat (limited to 'next-lib/src/scandinavian/CatScand.gf')
| -rw-r--r-- | next-lib/src/scandinavian/CatScand.gf | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/next-lib/src/scandinavian/CatScand.gf b/next-lib/src/scandinavian/CatScand.gf new file mode 100644 index 000000000..3b55f755f --- /dev/null +++ b/next-lib/src/scandinavian/CatScand.gf @@ -0,0 +1,105 @@ +incomplete concrete CatScand of Cat = + CommonX ** open ResScand, Prelude, CommonScand, (R = ParamX) in { + + flags optimize=all_subs ; + + lincat + +-- Tensed/Untensed + + S = {s : Order => Str} ; + QS = {s : QForm => Str} ; + RS = {s : Agr => Str ; c : NPForm} ; + SSlash = {s : Order => Str ; n3 : Agr => Str ; c2 : Complement} ; + +-- Sentence + + Cl = {s : R.Tense => Anteriority => Polarity => Order => Str} ; + ClSlash = { + s : R.Tense => Anteriority => Polarity => Order => Str ; + n3 : Agr => Str ; + c2 : Complement + } ; + Imp = {s : Polarity => Number => Str} ; + +-- Question + + QCl = {s : R.Tense => Anteriority => Polarity => QForm => Str} ; + IP = {s : NPForm => Str ; gn : GenNum} ; + IComp = {s : AFormPos => Str} ; + IDet = {s : Gender => Str ; n : Number ; det : DetSpecies} ; + IQuant = {s : Number => Gender => Str ; det : DetSpecies} ; + +-- Relative; the case $c$ is for "det" clefts. + + RCl = {s : R.Tense => Anteriority => Polarity => Agr => Str ; c : NPForm} ; + RP = {s : GenNum => RCase => Str ; a : RAgr} ; + +-- Verb + + VP = { + s : VPForm => { + fin : Str ; -- V1 har ---s1 + inf : Str -- V2 sagt ---s4 + } ; + a1 : Polarity => Str ; -- A1 inte ---s3 + n2 : Agr => Str ; -- N2 dig ---s5 + a2 : Str ; -- A2 idag ---s6 + ext : Str ; -- S-Ext att hon går ---s7 + en2,ea2,eext : Bool -- indicate if the field exists + } ; + VPSlash = CommonScand.VP ** { + n3 : Agr => Str ; -- object-control complement + c2 : Complement + } ; + Comp = {s : AFormPos => Str} ; + + +-- Adjective + + AP = {s : AFormPos => Str ; isPre : Bool} ; + +-- Noun + +-- The fields $isMod$ and $isDet$, and the boolean parameter of +-- determiners, are a hack (the simples possible we found) that +-- permits treating definite articles "huset - de fem husen - det gamla huset" +-- as $Quant$. + + CN = {s : Number => DetSpecies => Case => Str ; g : Gender ; isMod : Bool} ; + NP,Pron = {s : NPForm => Str ; a : Agr} ; + Det = {s : Bool => Gender => Str ; n : Number ; det : DetSpecies} ; + Quant = {s : Number => Bool => Bool => Gender => Str ; det : DetSpecies} ; + Predet = {s : GenNum => Str} ; + Num = {s : Gender => Str ; isDet : Bool ; n : Number} ; + Card = {s : Gender => Str ; n : Number} ; + Ord = {s : Str} ; + +-- Numeral + + Numeral = {s : CardOrd => Str ; n : Number} ; + Digits = {s : CardOrd => Str ; n : Number} ; + +-- Structural + + Conj = {s1,s2 : Str ; n : Number} ; + Subj = {s : Str} ; + Prep = {s : Str} ; + +-- Open lexical classes, e.g. Lexicon + + V, VS, VQ, VA = Verb ; + V2, VV, V2Q, V2S, V2A = Verb ** {c2 : Complement} ; + V3, V2V = Verb ** {c2,c3 : Complement} ; + + A = Adjective ** {isComp : Bool} ; + -- {s : AForm => Str} ; + A2 = Adjective ** {isComp : Bool ; c2 : Complement} ; + + N = Noun ; + -- {s : Number => Species => Case => Str ; g : Gender} ; + N2 = Noun ** {c2 : Complement} ; + N3 = Noun ** {c2,c3 : Complement} ; + PN = {s : Case => Str ; g : Gender} ; + +} |
