mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-12 16:40:11 -06:00
105 lines
2.7 KiB
Plaintext
105 lines
2.7 KiB
Plaintext
--1 Differences between Bantu languages
|
|
|
|
interface DiffBantu = open CommonBantu, Prelude in {
|
|
flags coding=utf8 ;
|
|
|
|
|
|
|
|
oper
|
|
Gender : PType ;
|
|
firstGender : Gender ;
|
|
secondGender : Gender ; -- G2
|
|
|
|
Noun : Type = {s : Number => Case => Str ; g : Gender};
|
|
CNoun : Type = {s : Number => Case => Str ; g : Gender; s2 : Number => Str};
|
|
AAgr : Type = {g : Gender ; n : Number} ;
|
|
|
|
param
|
|
Agr = Ag Gender Number Person ;
|
|
|
|
oper
|
|
-- AGRE = {g : Gender ; n : Number ; p : Person} ;
|
|
Agre : Type = {g : Gender ; n : Number ; p : Person} ;
|
|
agre : Gender -> Number -> Person -> Agre = \g,n,p -> {g = g ; n = n ; p = p} ;
|
|
|
|
agrFeatures : Agr -> Agre = \a -> case a of {Ag g n p => {g = g ; n = n ; p = p}} ;
|
|
getGender : Agr -> Gender = \a -> case a of {Ag g _ _ => g};
|
|
getNumber : Agr -> Number = \a -> case a of {Ag _ n _ => n};
|
|
getPerson : Agr -> Person = \a -> case a of {Ag _ _ p => p};
|
|
|
|
clitAgr : Agr -> {n : Number ; p : Person} = \a -> case a of {
|
|
Ag _ n p => {n = n; p = p}
|
|
} ;
|
|
complAgr : Agr -> {g : Gender ; n : Number} = \a -> case a of {
|
|
Ag g n _ => {g = g ; n = n}
|
|
} ;
|
|
predetAgr : Agr -> {g : Gender} = \a -> case a of {
|
|
Ag g _ _ => {g = g}
|
|
} ;
|
|
verbAgr : Agr -> {g : Gender ; n : Number ; p : Person} = \a -> case a of {
|
|
Ag g n p => {g = g ; n = n ; p = p}
|
|
|
|
} ; --
|
|
|
|
|
|
detAgr : Agr -> {g : Gender ; p : Person} = \a -> case a of {
|
|
Ag g _ p => {g = g; p = p}
|
|
} ;
|
|
|
|
agrG1 : Number -> Person -> Agr = \n,p ->
|
|
Ag firstGender n p ;
|
|
dapagr : Gender -> Person -> Agr = \g,p ->
|
|
Ag g Sg p ;
|
|
agrP3 : Gender -> Number -> Agr = \g,n ->
|
|
Ag g n P3 ;
|
|
|
|
aagr : Gender -> Number -> AAgr = \g,n ->
|
|
{g = g ; n = n} ;
|
|
|
|
---- Conjunction Agreements----
|
|
|
|
conjAgr : Number -> Agr -> Agr -> Agr = \n,xa,ya ->
|
|
let
|
|
x = agrFeatures xa ; y = agrFeatures ya
|
|
in
|
|
Ag (conjGender x.g y.g) (conjNumber (conjNumber x.n y.n) n)
|
|
(conjPPerson x.p y.p) ;
|
|
|
|
conjGender : Gender -> Gender -> Gender ;
|
|
|
|
param
|
|
-- AForm = AAdj Gender Number | AComp Gender Number ;
|
|
PronForm= Pers | Poss Number Gender;
|
|
DetForm = Sub | Obj Gender ;
|
|
|
|
|
|
|
|
oper
|
|
conjThan : Str ; --one of them in bantu
|
|
conjThat : Str ;
|
|
superVery : Str ; -- one of bantu
|
|
|
|
reflPron : Agr => Str ; -- second of bantu.
|
|
|
|
param
|
|
VForm ;
|
|
DForm ;
|
|
AForm;
|
|
oper
|
|
|
|
ProunSgprefix : Gender -> Str ;
|
|
ProunPlprefix : Gender -> Str ;
|
|
|
|
Cardoneprefix : Gender -> Str;
|
|
Cardtwoprefix : Gender -> Str;
|
|
Allpredetprefix : Gender -> Str;
|
|
PrefixPlNom : Gender -> Str;
|
|
mkprefix,Ordprefix : Gender -> Str;
|
|
Cardprefix : Gender -> Str ;
|
|
Mostpredetprefix : Gender -> Str;
|
|
Adjpprefix : Gender -> Number -> Str;
|
|
VowelAdjprefix: Gender -> Number -> Str;
|
|
ConsonantAdjprefix: Gender -> Number -> Str;
|
|
}
|
|
|