section on agreement

This commit is contained in:
aarne
2007-08-16 21:35:11 +00:00
parent 76477c82b9
commit daeaa0f114
4 changed files with 187 additions and 58 deletions

View File

@@ -1,14 +1,16 @@
abstract Foods = {
flags startcat=Phr ;
cat
S ; Item ; Kind ; Quality ;
Phr ; Item ; Kind ; Quality ;
fun
Is : Item -> Quality -> S ;
Is : Item -> Quality -> Phr ;
This, That, These, Those : Kind -> Item ;
QKind : Quality -> Kind -> Kind ;
Wine, Cheese, Fish, Pizza : Kind ;
Very : Quality -> Quality ;
Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
}
}

View File

@@ -1,23 +1,23 @@
--# -path=.:resource:prelude
--# -path=.:prelude
concrete FoodsEng of Foods = open Prelude in {
lincat
S, Quality = SS ;
Phr, Quality = SS ;
Kind = {s : Number => Str} ;
Item = {s : Str ; n : Number} ;
lin
Is item quality = ss (item.s ++ copula item.n ++ quality.s) ;
Is item quality = ss (item.s ++ copula ! item.n ++ quality.s) ;
This = det Sg "this" ;
That = det Sg "that" ;
These = det Pl "these" ;
Those = det Pl "those" ;
QKind quality kind = {s = \\n => quality.s ++ kind.s ! n} ;
Wine = noun "wine" "wines" ;
Cheese = noun "cheese" "cheeses" ;
Wine = regNoun "wine" ;
Cheese = regNoun "cheese" ;
Fish = noun "fish" "fish" ;
Pizza = noun "pizza" "pizzas" ;
Pizza = regNoun "pizza" ;
Very = prefixSS "very" ;
Fresh = ss "fresh" ;
Warm = ss "warm" ;
@@ -41,8 +41,10 @@ concrete FoodsEng of Foods = open Prelude in {
Pl => men
}
} ;
copula : Number -> Str =
\n -> case n of {
regNoun : Str -> {s : Number => Str} =
\car -> noun car (car + "s") ;
copula : Number => Str =
table {
Sg => "is" ;
Pl => "are"
} ;

View File

@@ -1,9 +1,9 @@
--# -path=.:resource:prelude
--# -path=.:prelude
concrete FoodsIta of Foods = open Prelude in {
lincat
S = SS ;
Phr = SS ;
Quality = {s : Gender => Number => Str} ;
Kind = {s : Number => Str ; g : Gender} ;
Item = {s : Str ; g : Gender ; n : Number} ;
@@ -74,4 +74,3 @@ concrete FoodsIta of Foods = open Prelude in {
Pl => "sono"
} ;
}