after lecture 5 (will finish AgreementSwe on Wednesday)

This commit is contained in:
Arianna Masciolini
2025-04-14 12:03:38 +02:00
parent 9dac582f1c
commit cb72c1da1b
5 changed files with 110 additions and 4 deletions

View File

@@ -7,12 +7,15 @@ abstract Agreement = {
Det ; Det ;
fun fun
DetCN : Det -> CN -> NP ; -- the black cat DetCN : Det -> CN -> NP ; -- this black cat
AdjCN : A -> N -> CN ; -- black cat AdjCN : A -> N -> CN ; -- black cat
UseN : N -> CN ; -- cat UseN : N -> CN ; -- cat
cat_N : N ; cat_N : N ;
house_N : N ;
black_A : A ; black_A : A ;
the_Sg : Det ; big_A : A ;
the_Pl : Det ; -- simplification of pronouns just to make English interesting
this_Det : Det ;
these_Det : Det ;
} }

View File

@@ -0,0 +1,32 @@
concrete AgreementEng of Agreement = open MorphologyEng in {
lincat
NP = {s: Str; n: Number} ;
CN = Noun ;
N = Noun ;
A = {s: Str} ;
Det = {s: Str; n: Number} ;
lin
DetCN d cn = {
s = d.s ++ (cn.s ! d.n) ;
n = d.n ;
} ;
AdjCN a cn = {
s = \\n => a.s ++ (cn.s ! n) ;
} ;
UseN n = n ;
cat_N = regNoun "cat" ;
house_N = regNoun "house" ;
black_A = {s = "black"} ;
big_A = {s = "big"} ;
this_Det = {
s = "this";
n = Sg ;
} ;
these_Det = {
s = "these";
n = Pl ;
} ;
}

View File

@@ -0,0 +1,39 @@
concrete AgreementSwe of Agreement = open MorphologySwe in {
lincat
NP = {s: Str; a: NPAgreement} ;
CN = Noun ;
N = Noun ;
A = Adjective ;
Det = {s : Gender => Str; n: Number;} ; -- and possible Definiteness
lin
-- DetCN d cn = {
-- s = d.s ++ (cn.s ! d.n) ;
-- n = d.n ;
-- } ;
-- AdjCN a cn = {
-- s = \\n => let agr ? ? cn.g = NPAgr in (a.s ! agr) ++ (cn.s ! n) ;
-- } ;
UseN n = n ;
cat_N = mk4Noun "katt" "katten" "katter" "katterna" ;
house_N = mk4Noun "hus" "huset" "hus" "husen" ;
black_A = mk3Adjective "svart" "svart" "svarta" ;
big_A = mk3Adjective "stor" "stort" "stora" ;
this_Det = {
s = table {
Com => "den här" ;
Neut => "det här"
} ;
n = Sg ;
d = Def ;
} ;
these_Det = {
s = table {
Com => "de här" ;
Neut => "de här"
};
n = Pl ;
} ;
}

View File

@@ -7,11 +7,14 @@ param
Number = Sg | Pl ; Number = Sg | Pl ;
NForm = NF Number Definite Case ; -- NF is a constructor NForm = NF Number Definite Case ; -- NF is a constructor
NPAgreement = NPAgr Number Definite Gender ;
oper oper
-- Noun = {s : Number => Definite => Case => Str ; g : Gender} ; -- Noun = {s : Number => Definite => Case => Str ; g : Gender} ;
Noun = {s : NForm => Str ; g : Gender} ; Noun = {s : NForm => Str ; g : Gender} ;
Adjective = { s: NPAgreement => Str } ;
mkNoun : (sin, sig, sdn, sdg, pin, pig, pdn, pdg : Str) -> Gender -> Noun = mkNoun : (sin, sig, sdn, sdg, pin, pig, pdn, pdg : Str) -> Gender -> Noun =
\sin, sig, sdn, sdg, pin, pig, pdn, pdg, g -> { \sin, sig, sdn, sdg, pin, pig, pdn, pdg, g -> {
s = table { s = table {
@@ -32,6 +35,19 @@ oper
_ => s + "s" _ => s + "s"
} ; } ;
mk3Adjective : (stor, stort, stora : Str) -> Adjective = \stor, stort, stora -> {
s = table {
NPAgr Sg Ind Com => stor ;
NPAgr Sg Ind Neut => stort ;
NPAgr Sg Def Com => stora ;
NPAgr Sg Def Neut => stora ;
NPAgr Pl Ind Com => stora ;
NPAgr Pl Ind Neut => stora ;
NPAgr Pl Def Com => stora ;
NPAgr Pl Def Neut => stora
}
} ;
mk4Noun : (sin, sdn, pin, pdn : Str) -> Noun = mk4Noun : (sin, sdn, pin, pdn : Str) -> Noun =
\sin, sdn, pin, pdn -> { \sin, sdn, pin, pdn -> {
s = table { s = table {

View File

@@ -15,3 +15,19 @@
| zwarte kat | zwarte katten | | zwarte kat | zwarte katten |
| gato preto | gatos __pretos__ | | gato preto | gatos __pretos__ |
| черная кошка | __черные__ кошки | | черная кошка | __черные__ кошки |
- these black cats - de här svarta katterna
- these black houses - de här svarta husen
- these cats - de här katterna
- these houses - de här husen
- this black cat - den här svarta katten
- this black house - det här svarta huset
- this cat - den här katten
- this house - det här huset
- big cat(s) - stor katt / stora katten / stora katter / stora katterna
- black cat(s) - svart katt / svarta katten / svarta katter / svarta katterna
- big house(s) - stort hus / stora huset / stora hus / stora husen
- black house(s) - svart hus / svarta huset / svarta hus / svarta husen
- cat - katt
- house - hus