sibstantival det forms in scandinavian

This commit is contained in:
aarne
2008-12-02 08:22:32 +00:00
parent 947d22129f
commit d0a129dabc
9 changed files with 49 additions and 31 deletions

View File

@@ -41,6 +41,7 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
Utr => "en" ; Utr => "en" ;
Neutr => "et" Neutr => "et"
} ; } ;
detIndefPl = "nogle" ;
verbHave = verbHave =
mkVerb "have" "har" "hav" "havde" "haft" "haven" "havet" "havne" ** mkVerb "have" "har" "hav" "havde" "haft" "haven" "havet" "havne" **

View File

@@ -25,10 +25,10 @@ concrete StructuralDan of Structural = CatDan **
during_Prep = ss "under" ; during_Prep = ss "under" ;
either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ; either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ;
everybody_NP = regNP "alle" "alles" Plg ; everybody_NP = regNP "alle" "alles" Plg ;
every_Det = {s = \\_,_ => "hver" ; n = Sg ; det = DDef Indef} ; every_Det = {s = \\_,_ => "hver" ; sp = \\_,_ => "enhver" ; n = Sg ; det = DDef Indef} ;
everything_NP = regNP "alt" "alts" SgNeutr ; everything_NP = regNP "alt" "alts" SgNeutr ;
everywhere_Adv = ss "overalt" ; everywhere_Adv = ss "overalt" ;
few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ; few_Det = {s,sp = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ;
--- first_Ord = {s = "første" ; isDet = True} ; --- first_Ord = {s = "første" ; isDet = True} ;
for_Prep = ss "for" ; for_Prep = ss "for" ;
from_Prep = ss "fra" ; from_Prep = ss "fra" ;
@@ -45,16 +45,15 @@ concrete StructuralDan of Structural = CatDan **
in_Prep = ss "i" ; in_Prep = ss "i" ;
it_Pron = MorphoDan.regNP "det" "dets" SgNeutr ; it_Pron = MorphoDan.regNP "det" "dets" SgNeutr ;
less_CAdv = X.mkCAdv "mindre" conjThan ; less_CAdv = X.mkCAdv "mindre" conjThan ;
many_Det = {s = \\_,_ => "mange" ; n = Pl ; det = DDef Indef} ; many_Det = {s,sp = \\_,_ => "mange" ; n = Pl ; det = DDef Indef} ;
more_CAdv = X.mkCAdv "mer" conjThan ; more_CAdv = X.mkCAdv "mer" conjThan ;
most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ; most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ;
much_Det = {s = \\_,_ => "meget" ; n = Pl ; det = DDef Indef} ; much_Det = {s,sp = \\_,_ => "meget" ; n = Pl ; det = DDef Indef} ;
must_VV = must_VV =
mkV "måtte" "må" "må" "måtte" "måttet" "mått" ** mkV "måtte" "må" "må" "måtte" "måttet" "mått" **
{c2 = mkComplement [] ; lock_VV = <>} ; {c2 = mkComplement [] ; lock_VV = <>} ;
no_Utt = ss ["nej"] ; no_Utt = ss ["nej"] ;
on_Prep = ss "på" ; on_Prep = ss "på" ;
--- one_Quant = {s = \\_ => genderForms ["en"] ["et"] ; n = Sg ; det = DIndef} ; --- ei
only_Predet = {s = \\_ => "kun"} ; only_Predet = {s = \\_ => "kun"} ;
or_Conj = {s1 = [] ; s2 = "eller" ; n = Pl} ; or_Conj = {s1 = [] ; s2 = "eller" ; n = Pl} ;
otherwise_PConj = ss "anderledes" ; otherwise_PConj = ss "anderledes" ;
@@ -64,13 +63,13 @@ concrete StructuralDan of Structural = CatDan **
quite_Adv = ss "temmelig" ; quite_Adv = ss "temmelig" ;
she_Pron = MorphoDan.mkNP "hun" "hende" "hendes" "hendes" "hendes" SgUtr P3 ; she_Pron = MorphoDan.mkNP "hun" "hende" "hendes" "hendes" "hendes" SgUtr P3 ;
so_AdA = ss "så" ; so_AdA = ss "så" ;
someSg_Det = {s = \\_ => genderForms "nogen" "noget" ; n = Sg ; det = DIndef} ; someSg_Det = {s,sp = \\_ => genderForms "nogen" "noget" ; n = Sg ; det = DIndef} ;
somePl_Det = {s = \\_,_ => "nogle" ; n = Pl ; det = DIndef} ; somePl_Det = {s,sp = \\_,_ => "nogle" ; n = Pl ; det = DIndef} ;
somebody_NP = regNP "nogen" "nogens" SgUtr ; somebody_NP = regNP "nogen" "nogens" SgUtr ;
something_NP = regNP "noget" "nogets" SgNeutr ; something_NP = regNP "noget" "nogets" SgNeutr ;
somewhere_Adv = ss ["et eller annet sted"] ; ---- ? somewhere_Adv = ss ["et eller annet sted"] ; ---- ?
that_Quant = that_Quant =
{s = table { {s,sp = table {
Sg => \\_,_ => genderForms ["den der"] ["det der"] ; Sg => \\_,_ => genderForms ["den der"] ["det der"] ;
Pl => \\_,_,_ => ["de der"] Pl => \\_,_,_ => ["de der"]
} ; } ;
@@ -82,7 +81,7 @@ concrete StructuralDan of Structural = CatDan **
therefore_PConj = ss "derfor" ; therefore_PConj = ss "derfor" ;
they_Pron = MorphoDan.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ; they_Pron = MorphoDan.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ;
this_Quant = this_Quant =
{s = table { {s,sp = table {
Sg => \\_,_ => genderForms ["denne"] ["dette"] ; Sg => \\_,_ => genderForms ["denne"] ["dette"] ;
Pl => \\_,_,_ => ["disse"] Pl => \\_,_,_ => ["disse"]
} ; } ;

View File

@@ -43,6 +43,7 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
Utr Fem => "ei" ; Utr Fem => "ei" ;
Neutr => "et" Neutr => "et"
} ; } ;
detIndefPl = "noen" ;
verbHave = verbHave =
mkVerb "ha" "har" "ha" "hadde" "hatt" "haven" "havet" "havne" mkVerb "ha" "har" "ha" "hadde" "hatt" "haven" "havet" "havne"

View File

@@ -25,10 +25,10 @@ concrete StructuralNor of Structural = CatNor **
during_Prep = ss "under" ; during_Prep = ss "under" ;
either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ; either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ;
everybody_NP = regNP "alle" "alles" Plg ; everybody_NP = regNP "alle" "alles" Plg ;
every_Det = {s = \\_,_ => "hver" ; n = Sg ; det = DDef Indef} ; every_Det = {s = \\_,_ => "hver" ; sp = \\_,_ =>"enhver" ; n = Sg ; det = DDef Indef} ;
everything_NP = regNP "alt" "alts" SgNeutr ; everything_NP = regNP "alt" "alts" SgNeutr ;
everywhere_Adv = ss "overalt" ; everywhere_Adv = ss "overalt" ;
few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ; few_Det = {s,sp = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ;
--- first_Ord = {s = "første" ; isDet = True} ; DEPREC --- first_Ord = {s = "første" ; isDet = True} ; DEPREC
for_Prep = ss "for" ; for_Prep = ss "for" ;
from_Prep = ss "fra" ; from_Prep = ss "fra" ;
@@ -45,10 +45,10 @@ concrete StructuralNor of Structural = CatNor **
in_Prep = ss "i" ; in_Prep = ss "i" ;
it_Pron = MorphoNor.regNP "det" "dets" SgNeutr ; it_Pron = MorphoNor.regNP "det" "dets" SgNeutr ;
less_CAdv = X.mkCAdv "mindre" conjThan ; less_CAdv = X.mkCAdv "mindre" conjThan ;
many_Det = {s = \\_,_ => "mange" ; n = Pl ; det = DDef Indef} ; many_Det = {s,sp = \\_,_ => "mange" ; n = Pl ; det = DDef Indef} ;
more_CAdv = X.mkCAdv "mer" conjThan ; more_CAdv = X.mkCAdv "mer" conjThan ;
most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ; most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ;
much_Det = {s = \\_,_ => "mye" ; n = Pl ; det = DDef Indef} ; much_Det = {s,sp = \\_,_ => "mye" ; n = Pl ; det = DDef Indef} ;
must_VV = must_VV =
mkV "måtte" "må" "må" "måtte" "måttet" "mått" ** mkV "måtte" "må" "må" "måtte" "måttet" "mått" **
{c2 = mkComplement [] ; lock_VV = <>} ; {c2 = mkComplement [] ; lock_VV = <>} ;
@@ -64,13 +64,13 @@ concrete StructuralNor of Structural = CatNor **
quite_Adv = ss "temmelig" ; quite_Adv = ss "temmelig" ;
she_Pron = MorphoNor.mkNP "hun" "henne" "hennes" "hennes" "hennes" SgUtr P3 ; she_Pron = MorphoNor.mkNP "hun" "henne" "hennes" "hennes" "hennes" SgUtr P3 ;
so_AdA = ss "så" ; so_AdA = ss "så" ;
someSg_Det = {s = \\_ => genderForms "noen" "noe" ; n = Sg ; det = DIndef} ; someSg_Det = {s,sp = \\_ => genderForms "noen" "noe" ; n = Sg ; det = DIndef} ;
somePl_Det = {s = \\_,_ => "noen" ; n = Pl ; det = DIndef} ; somePl_Det = {s,sp = \\_,_ => "noen" ; n = Pl ; det = DIndef} ;
somebody_NP = regNP "noen" "noens" SgUtr ; somebody_NP = regNP "noen" "noens" SgUtr ;
something_NP = regNP "noe" "noes" SgNeutr ; something_NP = regNP "noe" "noes" SgNeutr ;
somewhere_Adv = ss ["et eller annet sted"] ; ---- ? somewhere_Adv = ss ["et eller annet sted"] ; ---- ?
that_Quant = that_Quant =
{s = table { {s,sp = table {
Sg => \\_,_ => genderForms ["den der"] ["det der"] ; Sg => \\_,_ => genderForms ["den der"] ["det der"] ;
Pl => \\_,_,_ => ["de der"] Pl => \\_,_,_ => ["de der"]
} ; } ;
@@ -82,7 +82,7 @@ concrete StructuralNor of Structural = CatNor **
therefore_PConj = ss "derfor" ; therefore_PConj = ss "derfor" ;
they_Pron = MorphoNor.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ; they_Pron = MorphoNor.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ;
this_Quant = this_Quant =
{s = table { {s,sp = table {
Sg => \\_,_ => genderForms ["denne"] ["dette"] ; Sg => \\_,_ => genderForms ["denne"] ["dette"] ;
Pl => \\_,_,_ => ["disse"] Pl => \\_,_,_ => ["disse"]
} ; } ;

View File

@@ -68,8 +68,8 @@ incomplete concrete CatScand of Cat =
CN = {s : Number => DetSpecies => Case => Str ; g : Gender ; isMod : Bool} ; CN = {s : Number => DetSpecies => Case => Str ; g : Gender ; isMod : Bool} ;
NP,Pron = {s : NPForm => Str ; a : Agr} ; NP,Pron = {s : NPForm => Str ; a : Agr} ;
Det = {s : Bool => Gender => Str ; n : Number ; det : DetSpecies} ; Det = {s,sp : Bool => Gender => Str ; n : Number ; det : DetSpecies} ;
Quant = {s : Number => Bool => Bool => Gender => Str ; det : DetSpecies} ; Quant = {s,sp : Number => Bool => Bool => Gender => Str ; det : DetSpecies} ;
Predet = {s : GenNum => Str} ; Predet = {s : GenNum => Str} ;
Num = {s : Gender => Str ; isDet : Bool ; n : Number} ; Num = {s : Gender => Str ; isDet : Bool ; n : Number} ;
Card = {s : Gender => Str ; n : Number} ; Card = {s : Gender => Str ; n : Number} ;

View File

@@ -34,6 +34,7 @@ interface DiffScand = open CommonScand, Prelude in {
subjIf : Str ; subjIf : Str ;
artIndef : Gender => Str ; artIndef : Gender => Str ;
detIndefPl : Str ;
verbHave : Verb ; verbHave : Verb ;
verbBe : Verb ; verbBe : Verb ;

View File

@@ -48,6 +48,8 @@ incomplete concrete NounScand of Noun =
DetQuantOrd quant num ord = { DetQuantOrd quant num ord = {
s = \\b,g => quant.s ! num.n ! b ! (orB b num.isDet) ! g ++ s = \\b,g => quant.s ! num.n ! b ! (orB b num.isDet) ! g ++
num.s ! g ++ ord.s ; num.s ! g ++ ord.s ;
sp = \\b,g => quant.s ! num.n ! b ! (orB b num.isDet) ! g ++
num.s ! g ++ ord.s ;
n = num.n ; n = num.n ;
det = quant.det det = quant.det
} ; } ;
@@ -56,11 +58,14 @@ incomplete concrete NounScand of Noun =
let let
md : Bool -> Bool = \b -> case quant.det of { md : Bool -> Bool = \b -> case quant.det of {
DDef _ => orB b num.isDet ; DDef _ => orB b num.isDet ;
DIndef => num.isDet ;
_ => False _ => False
} }
in { in {
s = \\b,g => quant.s ! num.n ! b ! md b ! g ++ s = \\b,g => quant.s ! num.n ! b ! md b ! g ++
num.s ! g ; num.s ! g ;
sp = \\b,g => quant.sp ! num.n ! b ! md b ! g ++
num.s ! g ;
n = num.n ; n = num.n ;
det = quant.det det = quant.det
} ; } ;
@@ -70,12 +75,12 @@ incomplete concrete NounScand of Noun =
g = Neutr ; ---- g = Neutr ; ----
m = True ; ---- is this needed for other than Art? m = True ; ---- is this needed for other than Art?
in { in {
s = \\c => det.s ! m ! g ; s = \\c => det.sp ! m ! g ;
a = agrP3 g det.n a = agrP3 g det.n
} ; } ;
PossPron p = { PossPron p = {
s = \\n,_,_,g => p.s ! NPPoss (gennum g n) ; s,sp = \\n,_,_,g => p.s ! NPPoss (gennum g n) ;
det = DDef Indef det = DDef Indef
} ; } ;
@@ -101,7 +106,8 @@ incomplete concrete NounScand of Noun =
} ; } ;
DefArt = { DefArt = {
s = \\n,bm,bn,g => if_then_Str (orB bm bn) (artDef (gennum g n)) [] ; s = \\n,bm,bn,g => if_then_Str (orB bm bn) (artDef (gennum g n)) [] ;
sp = \\n,bm,bn,g => artDef (gennum g n) ;
det = DDef Def det = DDef Def
} ; } ;
@@ -110,6 +116,10 @@ incomplete concrete NounScand of Noun =
Sg => \\_,bn,g => if_then_Str bn [] (artIndef ! g) ; Sg => \\_,bn,g => if_then_Str bn [] (artIndef ! g) ;
Pl => \\_,bn,_ => [] Pl => \\_,bn,_ => []
} ; } ;
sp = table {
Sg => \\_,bn,g => artIndef ! g ;
Pl => \\_,bn,_ => detIndefPl
} ;
det = DIndef det = DIndef
} ; } ;

View File

@@ -52,6 +52,7 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
Utr => "en" ; Utr => "en" ;
Neutr => "ett" Neutr => "ett"
} ; } ;
detIndefPl = "några" ;
verbHave = verbHave =
mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ** noPart ; mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ** noPart ;

View File

@@ -25,10 +25,15 @@ concrete StructuralSwe of Structural = CatSwe **
during_Prep = ss "under" ; during_Prep = ss "under" ;
either7or_DConj = sd2 "antingen" "eller" ** {n = Sg} ; either7or_DConj = sd2 "antingen" "eller" ** {n = Sg} ;
everybody_NP = regNP "alla" "allas" Plg ; everybody_NP = regNP "alla" "allas" Plg ;
every_Det = {s = \\_,_ => "varje" ; n = Sg ; det = DIndef} ; every_Det = {
s = \\_,_ => "varje" ;
sp = \\_,_ => "var och en" ; ----
n = Sg ;
det = DIndef
} ;
everything_NP = regNP "allting" "alltings" SgNeutr ; everything_NP = regNP "allting" "alltings" SgNeutr ;
everywhere_Adv = ss "överallt" ; everywhere_Adv = ss "överallt" ;
few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ; few_Det = {s,sp = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ;
--- first_Ord = {s = "första" ; isDet = True} ; --- first_Ord = {s = "första" ; isDet = True} ;
for_Prep = ss "för" ; for_Prep = ss "för" ;
from_Prep = ss "från" ; from_Prep = ss "från" ;
@@ -44,10 +49,10 @@ concrete StructuralSwe of Structural = CatSwe **
in_Prep = ss "i" ; in_Prep = ss "i" ;
it_Pron = MorphoSwe.regNP "det" "dess" SgNeutr ; it_Pron = MorphoSwe.regNP "det" "dess" SgNeutr ;
less_CAdv = X.mkCAdv "mindre" "än" ; less_CAdv = X.mkCAdv "mindre" "än" ;
many_Det = {s = \\_,_ => "många" ; n = Pl ; det = DDef Indef} ; many_Det = {s,sp = \\_,_ => "många" ; n = Pl ; det = DDef Indef} ;
more_CAdv = X.mkCAdv "mer" "än" ; more_CAdv = X.mkCAdv "mer" "än" ;
most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ; most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ;
much_Det = {s = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ; much_Det = {s,sp = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ;
must_VV = must_VV =
mkV "få" "måste" "få" "fick" "måst" "måst" ** mkV "få" "måste" "få" "fick" "måst" "måst" **
{c2 = mkComplement [] ; lock_VV = <>} ; {c2 = mkComplement [] ; lock_VV = <>} ;
@@ -63,13 +68,13 @@ concrete StructuralSwe of Structural = CatSwe **
quite_Adv = ss "ganska" ; quite_Adv = ss "ganska" ;
she_Pron = MorphoSwe.mkNP "hon" "henne" "hennes" "hennes" "hennes" SgUtr P3 ; she_Pron = MorphoSwe.mkNP "hon" "henne" "hennes" "hennes" "hennes" SgUtr P3 ;
so_AdA = ss "så" ; so_AdA = ss "så" ;
someSg_Det = {s = \\_ => genderForms "någon" "något" ; n = Sg ; det = DIndef} ; someSg_Det = {s,sp = \\_ => genderForms "någon" "något" ; n = Sg ; det = DIndef} ;
somePl_Det = {s = \\_,_ => "några" ; n = Pl ; det = DIndef} ; somePl_Det = {s,sp = \\_,_ => "några" ; n = Pl ; det = DIndef} ;
somebody_NP = regNP "någon" "någons" SgUtr ; somebody_NP = regNP "någon" "någons" SgUtr ;
something_NP = regNP "något" "någots" SgNeutr ; something_NP = regNP "något" "någots" SgNeutr ;
somewhere_Adv = ss "någonstans" ; somewhere_Adv = ss "någonstans" ;
that_Quant = that_Quant =
{s = table { {s,sp = table {
Sg => \\_,_ => genderForms ["den där"] ["det där"] ; Sg => \\_,_ => genderForms ["den där"] ["det där"] ;
Pl => \\_,_,_ => ["de där"] Pl => \\_,_,_ => ["de där"]
} ; } ;
@@ -81,7 +86,7 @@ concrete StructuralSwe of Structural = CatSwe **
therefore_PConj = ss "därför" ; therefore_PConj = ss "därför" ;
they_Pron = MorphoSwe.mkNP "de" "dem" "deras" "deras" "deras" Plg P1 ; they_Pron = MorphoSwe.mkNP "de" "dem" "deras" "deras" "deras" Plg P1 ;
this_Quant = this_Quant =
{s = table { {s,sp = table {
Sg => \\_,_ => genderForms ["den här"] ["det här"] ; Sg => \\_,_ => genderForms ["den här"] ["det här"] ;
Pl => \\_,_,_ => ["de här"] Pl => \\_,_,_ => ["de här"]
} ; } ;
@@ -126,7 +131,7 @@ concrete StructuralSwe of Structural = CatSwe **
lin lin
not_Predet = {s = \\_ => "inte"} ; not_Predet = {s = \\_ => "inte"} ;
no_Quant = no_Quant =
{s = table { {s,sp = table {
Sg => \\_,_ => genderForms "ingen" "inget" ; Sg => \\_,_ => genderForms "ingen" "inget" ;
Pl => \\_,_,_ => "inga" Pl => \\_,_,_ => "inga"
} ; } ;