mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-12-08 20:38:47 +00:00
Merge branch 'master' into obj_cpp
Conflicts: lib/linguist/samples.json
This commit is contained in:
@@ -719,6 +719,16 @@ Gosu:
|
|||||||
color: "#82937f"
|
color: "#82937f"
|
||||||
primary_extension: .gs
|
primary_extension: .gs
|
||||||
|
|
||||||
|
Grammatical Framework:
|
||||||
|
type: programming
|
||||||
|
lexer: Haskell
|
||||||
|
aliases:
|
||||||
|
- gf
|
||||||
|
wrap: false
|
||||||
|
primary_extension: .gf
|
||||||
|
searchable: true
|
||||||
|
color: "#ff0000"
|
||||||
|
|
||||||
Groff:
|
Groff:
|
||||||
primary_extension: .man
|
primary_extension: .man
|
||||||
extensions:
|
extensions:
|
||||||
|
|||||||
@@ -162,6 +162,9 @@
|
|||||||
".gsx",
|
".gsx",
|
||||||
".vark"
|
".vark"
|
||||||
],
|
],
|
||||||
|
"Grammatical Framework": [
|
||||||
|
".gf"
|
||||||
|
],
|
||||||
"Groovy": [
|
"Groovy": [
|
||||||
".gradle",
|
".gradle",
|
||||||
".script!"
|
".script!"
|
||||||
@@ -594,8 +597,8 @@
|
|||||||
".gemrc"
|
".gemrc"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"tokens_total": 512837,
|
"tokens_total": 523444,
|
||||||
"languages_total": 593,
|
"languages_total": 634,
|
||||||
"tokens": {
|
"tokens": {
|
||||||
"ABAP": {
|
"ABAP": {
|
||||||
"*/**": 1,
|
"*/**": 1,
|
||||||
@@ -21842,6 +21845,676 @@
|
|||||||
"PersonCSVTemplate.renderToString": 1,
|
"PersonCSVTemplate.renderToString": 1,
|
||||||
"PersonCSVTemplate.render": 1
|
"PersonCSVTemplate.render": 1
|
||||||
},
|
},
|
||||||
|
"Grammatical Framework": {
|
||||||
|
"-": 594,
|
||||||
|
"(": 256,
|
||||||
|
"c": 73,
|
||||||
|
")": 256,
|
||||||
|
"Aarne": 13,
|
||||||
|
"Ranta": 13,
|
||||||
|
"under": 33,
|
||||||
|
"LGPL": 33,
|
||||||
|
"abstract": 1,
|
||||||
|
"Foods": 34,
|
||||||
|
"{": 579,
|
||||||
|
"flags": 32,
|
||||||
|
"startcat": 1,
|
||||||
|
"Comment": 31,
|
||||||
|
";": 1399,
|
||||||
|
"cat": 1,
|
||||||
|
"Item": 31,
|
||||||
|
"Kind": 33,
|
||||||
|
"Quality": 34,
|
||||||
|
"fun": 1,
|
||||||
|
"Pred": 30,
|
||||||
|
"This": 29,
|
||||||
|
"That": 29,
|
||||||
|
"These": 28,
|
||||||
|
"Those": 28,
|
||||||
|
"Mod": 29,
|
||||||
|
"Wine": 29,
|
||||||
|
"Cheese": 29,
|
||||||
|
"Fish": 29,
|
||||||
|
"Pizza": 28,
|
||||||
|
"Very": 29,
|
||||||
|
"Fresh": 29,
|
||||||
|
"Warm": 29,
|
||||||
|
"Italian": 29,
|
||||||
|
"Expensive": 29,
|
||||||
|
"Delicious": 29,
|
||||||
|
"Boring": 29,
|
||||||
|
"}": 580,
|
||||||
|
"Laurette": 2,
|
||||||
|
"Pretorius": 2,
|
||||||
|
"Sr": 2,
|
||||||
|
"&": 2,
|
||||||
|
"Jr": 2,
|
||||||
|
"and": 4,
|
||||||
|
"Ansu": 2,
|
||||||
|
"Berg": 2,
|
||||||
|
"concrete": 33,
|
||||||
|
"FoodsAfr": 1,
|
||||||
|
"of": 89,
|
||||||
|
"open": 23,
|
||||||
|
"Prelude": 11,
|
||||||
|
"Predef": 3,
|
||||||
|
"in": 32,
|
||||||
|
"coding": 29,
|
||||||
|
"utf8": 29,
|
||||||
|
"lincat": 28,
|
||||||
|
"s": 365,
|
||||||
|
"Str": 394,
|
||||||
|
"Number": 207,
|
||||||
|
"n": 206,
|
||||||
|
"AdjAP": 10,
|
||||||
|
"lin": 28,
|
||||||
|
"item": 36,
|
||||||
|
"quality": 90,
|
||||||
|
"item.s": 24,
|
||||||
|
"+": 480,
|
||||||
|
"quality.s": 50,
|
||||||
|
"Predic": 3,
|
||||||
|
"kind": 115,
|
||||||
|
"kind.s": 46,
|
||||||
|
"Sg": 184,
|
||||||
|
"Pl": 182,
|
||||||
|
"table": 148,
|
||||||
|
"Attr": 9,
|
||||||
|
"declNoun_e": 2,
|
||||||
|
"declNoun_aa": 2,
|
||||||
|
"declNoun_ss": 2,
|
||||||
|
"declNoun_s": 2,
|
||||||
|
"veryAdj": 2,
|
||||||
|
"regAdj": 61,
|
||||||
|
"smartAdj_e": 4,
|
||||||
|
"param": 22,
|
||||||
|
"|": 122,
|
||||||
|
"oper": 29,
|
||||||
|
"Noun": 9,
|
||||||
|
"operations": 2,
|
||||||
|
"wyn": 1,
|
||||||
|
"kaas": 1,
|
||||||
|
"vis": 1,
|
||||||
|
"pizza": 1,
|
||||||
|
"x": 74,
|
||||||
|
"let": 8,
|
||||||
|
"v": 6,
|
||||||
|
"tk": 1,
|
||||||
|
"last": 3,
|
||||||
|
"Adjective": 9,
|
||||||
|
"mkAdj": 27,
|
||||||
|
"y": 3,
|
||||||
|
"declAdj_e": 2,
|
||||||
|
"declAdj_g": 2,
|
||||||
|
"w": 15,
|
||||||
|
"init": 4,
|
||||||
|
"declAdj_oog": 2,
|
||||||
|
"i": 2,
|
||||||
|
"a": 57,
|
||||||
|
"x.s": 8,
|
||||||
|
"case": 44,
|
||||||
|
"_": 68,
|
||||||
|
"FoodsAmh": 1,
|
||||||
|
"Krasimir": 1,
|
||||||
|
"Angelov": 1,
|
||||||
|
"FoodsBul": 1,
|
||||||
|
"Gender": 94,
|
||||||
|
"Masc": 67,
|
||||||
|
"Fem": 65,
|
||||||
|
"Neutr": 21,
|
||||||
|
"Agr": 3,
|
||||||
|
"ASg": 23,
|
||||||
|
"APl": 11,
|
||||||
|
"g": 132,
|
||||||
|
"qual": 8,
|
||||||
|
"item.a": 2,
|
||||||
|
"qual.s": 8,
|
||||||
|
"kind.g": 38,
|
||||||
|
"#": 14,
|
||||||
|
"path": 14,
|
||||||
|
".": 13,
|
||||||
|
"present": 7,
|
||||||
|
"Jordi": 2,
|
||||||
|
"Saludes": 2,
|
||||||
|
"FoodsCat": 1,
|
||||||
|
"FoodsI": 6,
|
||||||
|
"with": 5,
|
||||||
|
"Syntax": 7,
|
||||||
|
"SyntaxCat": 2,
|
||||||
|
"LexFoods": 12,
|
||||||
|
"LexFoodsCat": 2,
|
||||||
|
"FoodsChi": 1,
|
||||||
|
"p": 11,
|
||||||
|
"quality.p": 2,
|
||||||
|
"kind.c": 11,
|
||||||
|
"geKind": 5,
|
||||||
|
"longQuality": 8,
|
||||||
|
"mkKind": 2,
|
||||||
|
"Katerina": 2,
|
||||||
|
"Bohmova": 2,
|
||||||
|
"FoodsCze": 1,
|
||||||
|
"ResCze": 2,
|
||||||
|
"NounPhrase": 3,
|
||||||
|
"copula": 33,
|
||||||
|
"item.n": 29,
|
||||||
|
"item.g": 12,
|
||||||
|
"det": 86,
|
||||||
|
"noun": 51,
|
||||||
|
"regnfAdj": 2,
|
||||||
|
"Femke": 1,
|
||||||
|
"Johansson": 1,
|
||||||
|
"FoodsDut": 1,
|
||||||
|
"AForm": 4,
|
||||||
|
"APred": 8,
|
||||||
|
"AAttr": 3,
|
||||||
|
"regNoun": 38,
|
||||||
|
"f": 16,
|
||||||
|
"a.s": 8,
|
||||||
|
"regadj": 6,
|
||||||
|
"adj": 38,
|
||||||
|
"noun.s": 7,
|
||||||
|
"man": 10,
|
||||||
|
"men": 10,
|
||||||
|
"wijn": 3,
|
||||||
|
"koud": 3,
|
||||||
|
"duur": 2,
|
||||||
|
"dure": 2,
|
||||||
|
"FoodsEng": 1,
|
||||||
|
"language": 2,
|
||||||
|
"en_US": 1,
|
||||||
|
"car": 6,
|
||||||
|
"cold": 4,
|
||||||
|
"Julia": 1,
|
||||||
|
"Hammar": 1,
|
||||||
|
"FoodsEpo": 1,
|
||||||
|
"SS": 6,
|
||||||
|
"ss": 13,
|
||||||
|
"d": 6,
|
||||||
|
"cn": 11,
|
||||||
|
"cn.s": 8,
|
||||||
|
"vino": 3,
|
||||||
|
"nova": 3,
|
||||||
|
"FoodsFin": 1,
|
||||||
|
"SyntaxFin": 2,
|
||||||
|
"LexFoodsFin": 2,
|
||||||
|
"../foods": 1,
|
||||||
|
"FoodsFre": 1,
|
||||||
|
"SyntaxFre": 1,
|
||||||
|
"ParadigmsFre": 1,
|
||||||
|
"Utt": 4,
|
||||||
|
"NP": 4,
|
||||||
|
"CN": 4,
|
||||||
|
"AP": 4,
|
||||||
|
"mkUtt": 4,
|
||||||
|
"mkCl": 4,
|
||||||
|
"mkNP": 16,
|
||||||
|
"this_QuantSg": 2,
|
||||||
|
"that_QuantSg": 2,
|
||||||
|
"these_QuantPl": 2,
|
||||||
|
"those_QuantPl": 2,
|
||||||
|
"mkCN": 20,
|
||||||
|
"mkAP": 28,
|
||||||
|
"very_AdA": 4,
|
||||||
|
"mkN": 46,
|
||||||
|
"masculine": 4,
|
||||||
|
"feminine": 2,
|
||||||
|
"mkA": 47,
|
||||||
|
"FoodsGer": 1,
|
||||||
|
"SyntaxGer": 2,
|
||||||
|
"LexFoodsGer": 2,
|
||||||
|
"alltenses": 3,
|
||||||
|
"Dana": 1,
|
||||||
|
"Dannells": 1,
|
||||||
|
"Licensed": 1,
|
||||||
|
"FoodsHeb": 2,
|
||||||
|
"Species": 8,
|
||||||
|
"mod": 7,
|
||||||
|
"Modified": 5,
|
||||||
|
"sp": 11,
|
||||||
|
"Indef": 6,
|
||||||
|
"Def": 21,
|
||||||
|
"T": 2,
|
||||||
|
"regAdj2": 3,
|
||||||
|
"F": 2,
|
||||||
|
"Type": 9,
|
||||||
|
"Adj": 4,
|
||||||
|
"m": 9,
|
||||||
|
"cn.mod": 2,
|
||||||
|
"cn.g": 10,
|
||||||
|
"gvina": 6,
|
||||||
|
"hagvina": 3,
|
||||||
|
"gvinot": 6,
|
||||||
|
"hagvinot": 3,
|
||||||
|
"defH": 7,
|
||||||
|
"replaceLastLetter": 7,
|
||||||
|
"adjective": 22,
|
||||||
|
"tov": 6,
|
||||||
|
"tova": 3,
|
||||||
|
"tovim": 3,
|
||||||
|
"tovot": 3,
|
||||||
|
"to": 6,
|
||||||
|
"c@": 3,
|
||||||
|
"italki": 3,
|
||||||
|
"italk": 4,
|
||||||
|
"Vikash": 1,
|
||||||
|
"Rauniyar": 1,
|
||||||
|
"FoodsHin": 2,
|
||||||
|
"regN": 15,
|
||||||
|
"lark": 8,
|
||||||
|
"ms": 4,
|
||||||
|
"mp": 4,
|
||||||
|
"acch": 6,
|
||||||
|
"incomplete": 1,
|
||||||
|
"this_Det": 2,
|
||||||
|
"that_Det": 2,
|
||||||
|
"these_Det": 2,
|
||||||
|
"those_Det": 2,
|
||||||
|
"wine_N": 7,
|
||||||
|
"pizza_N": 7,
|
||||||
|
"cheese_N": 7,
|
||||||
|
"fish_N": 8,
|
||||||
|
"fresh_A": 7,
|
||||||
|
"warm_A": 8,
|
||||||
|
"italian_A": 7,
|
||||||
|
"expensive_A": 7,
|
||||||
|
"delicious_A": 7,
|
||||||
|
"boring_A": 7,
|
||||||
|
"prelude": 2,
|
||||||
|
"Martha": 1,
|
||||||
|
"Dis": 1,
|
||||||
|
"Brandt": 1,
|
||||||
|
"FoodsIce": 1,
|
||||||
|
"Defin": 9,
|
||||||
|
"Ind": 14,
|
||||||
|
"the": 7,
|
||||||
|
"word": 3,
|
||||||
|
"is": 6,
|
||||||
|
"more": 1,
|
||||||
|
"commonly": 1,
|
||||||
|
"used": 2,
|
||||||
|
"Iceland": 1,
|
||||||
|
"but": 1,
|
||||||
|
"Icelandic": 1,
|
||||||
|
"for": 6,
|
||||||
|
"it": 2,
|
||||||
|
"defOrInd": 2,
|
||||||
|
"order": 1,
|
||||||
|
"given": 1,
|
||||||
|
"forms": 2,
|
||||||
|
"mSg": 1,
|
||||||
|
"fSg": 1,
|
||||||
|
"nSg": 1,
|
||||||
|
"mPl": 1,
|
||||||
|
"fPl": 1,
|
||||||
|
"nPl": 1,
|
||||||
|
"mSgDef": 1,
|
||||||
|
"f/nSgDef": 1,
|
||||||
|
"_PlDef": 1,
|
||||||
|
"masc": 3,
|
||||||
|
"fem": 2,
|
||||||
|
"neutr": 2,
|
||||||
|
"x1": 3,
|
||||||
|
"x9": 1,
|
||||||
|
"ferskur": 5,
|
||||||
|
"fersk": 11,
|
||||||
|
"ferskt": 2,
|
||||||
|
"ferskir": 2,
|
||||||
|
"ferskar": 2,
|
||||||
|
"fersk_pl": 2,
|
||||||
|
"ferski": 2,
|
||||||
|
"ferska": 2,
|
||||||
|
"fersku": 2,
|
||||||
|
"t": 28,
|
||||||
|
"<g,n,t>": 1,
|
||||||
|
"<": 10,
|
||||||
|
"Predef.tk": 2,
|
||||||
|
"FoodsIta": 1,
|
||||||
|
"SyntaxIta": 2,
|
||||||
|
"LexFoodsIta": 2,
|
||||||
|
"../lib/src/prelude": 1,
|
||||||
|
"Zofia": 1,
|
||||||
|
"Stankiewicz": 1,
|
||||||
|
"FoodsJpn": 1,
|
||||||
|
"Style": 3,
|
||||||
|
"AdjUse": 4,
|
||||||
|
"AdjType": 4,
|
||||||
|
"quality.t": 3,
|
||||||
|
"IAdj": 4,
|
||||||
|
"Plain": 3,
|
||||||
|
"Polite": 4,
|
||||||
|
"NaAdj": 4,
|
||||||
|
"na": 1,
|
||||||
|
"adjectives": 2,
|
||||||
|
"have": 2,
|
||||||
|
"different": 1,
|
||||||
|
"as": 2,
|
||||||
|
"attributes": 1,
|
||||||
|
"predicates": 2,
|
||||||
|
"phrase": 1,
|
||||||
|
"types": 1,
|
||||||
|
"can": 1,
|
||||||
|
"form": 4,
|
||||||
|
"without": 1,
|
||||||
|
"cannot": 1,
|
||||||
|
"sakana": 6,
|
||||||
|
"chosenna": 2,
|
||||||
|
"chosen": 2,
|
||||||
|
"akai": 2,
|
||||||
|
"Inese": 1,
|
||||||
|
"Bernsone": 1,
|
||||||
|
"FoodsLav": 1,
|
||||||
|
"Q": 5,
|
||||||
|
"Q1": 5,
|
||||||
|
"q": 10,
|
||||||
|
"spec": 2,
|
||||||
|
"Q2": 3,
|
||||||
|
"specAdj": 2,
|
||||||
|
"skaists": 5,
|
||||||
|
"skaista": 2,
|
||||||
|
"skaisti": 2,
|
||||||
|
"skaistas": 2,
|
||||||
|
"skaistais": 2,
|
||||||
|
"skaistaa": 2,
|
||||||
|
"skaistie": 2,
|
||||||
|
"skaistaas": 2,
|
||||||
|
"skaist": 8,
|
||||||
|
"John": 1,
|
||||||
|
"J.": 1,
|
||||||
|
"Camilleri": 1,
|
||||||
|
"FoodsMlt": 1,
|
||||||
|
"uniAdj": 2,
|
||||||
|
"Create": 6,
|
||||||
|
"an": 2,
|
||||||
|
"full": 1,
|
||||||
|
"function": 1,
|
||||||
|
"Params": 4,
|
||||||
|
"Sing": 4,
|
||||||
|
"Plural": 2,
|
||||||
|
"iswed": 2,
|
||||||
|
"sewda": 2,
|
||||||
|
"suwed": 3,
|
||||||
|
"regular": 2,
|
||||||
|
"Param": 2,
|
||||||
|
"frisk": 4,
|
||||||
|
"eg": 1,
|
||||||
|
"tal": 1,
|
||||||
|
"buzz": 1,
|
||||||
|
"uni": 4,
|
||||||
|
"Singular": 1,
|
||||||
|
"inherent": 1,
|
||||||
|
"ktieb": 2,
|
||||||
|
"kotba": 2,
|
||||||
|
"Copula": 1,
|
||||||
|
"linking": 1,
|
||||||
|
"verb": 1,
|
||||||
|
"article": 3,
|
||||||
|
"taking": 1,
|
||||||
|
"into": 1,
|
||||||
|
"account": 1,
|
||||||
|
"first": 1,
|
||||||
|
"letter": 1,
|
||||||
|
"next": 1,
|
||||||
|
"pre": 1,
|
||||||
|
"cons@": 1,
|
||||||
|
"cons": 1,
|
||||||
|
"determinant": 1,
|
||||||
|
"Sg/Pl": 1,
|
||||||
|
"string": 1,
|
||||||
|
"default": 1,
|
||||||
|
"gender": 2,
|
||||||
|
"number": 2,
|
||||||
|
"/GF/lib/src/prelude": 1,
|
||||||
|
"Nyamsuren": 1,
|
||||||
|
"Erdenebadrakh": 1,
|
||||||
|
"FoodsMon": 1,
|
||||||
|
"prefixSS": 1,
|
||||||
|
"Dinesh": 1,
|
||||||
|
"Simkhada": 1,
|
||||||
|
"FoodsNep": 1,
|
||||||
|
"adjPl": 2,
|
||||||
|
"bor": 2,
|
||||||
|
"FoodsOri": 1,
|
||||||
|
"FoodsPes": 1,
|
||||||
|
"optimize": 1,
|
||||||
|
"noexpand": 1,
|
||||||
|
"Add": 8,
|
||||||
|
"prep": 11,
|
||||||
|
"Indep": 4,
|
||||||
|
"kind.prep": 1,
|
||||||
|
"quality.prep": 1,
|
||||||
|
"at": 3,
|
||||||
|
"a.prep": 1,
|
||||||
|
"must": 1,
|
||||||
|
"be": 1,
|
||||||
|
"written": 1,
|
||||||
|
"x4": 2,
|
||||||
|
"pytzA": 3,
|
||||||
|
"pytzAy": 1,
|
||||||
|
"pytzAhA": 3,
|
||||||
|
"pr": 4,
|
||||||
|
"<a,n>": 1,
|
||||||
|
"<Indep,Sg>": 1,
|
||||||
|
"<Indep,Pl>": 1,
|
||||||
|
"<Attr,Sg>": 1,
|
||||||
|
"<Attr,Pl>": 1,
|
||||||
|
"mrd": 8,
|
||||||
|
"tAzh": 8,
|
||||||
|
"tAzhy": 2,
|
||||||
|
"Rami": 1,
|
||||||
|
"Shashati": 1,
|
||||||
|
"FoodsPor": 1,
|
||||||
|
"mkAdjReg": 7,
|
||||||
|
"QualityT": 5,
|
||||||
|
"bonito": 2,
|
||||||
|
"bonita": 2,
|
||||||
|
"bonitos": 2,
|
||||||
|
"bonitas": 2,
|
||||||
|
"pattern": 1,
|
||||||
|
"adjSozinho": 2,
|
||||||
|
"sozinho": 3,
|
||||||
|
"sozinh": 4,
|
||||||
|
"independent": 1,
|
||||||
|
"adjUtil": 2,
|
||||||
|
"util": 3,
|
||||||
|
"uteis": 3,
|
||||||
|
"smart": 1,
|
||||||
|
"paradigm": 1,
|
||||||
|
"adjcetives": 1,
|
||||||
|
"ItemT": 2,
|
||||||
|
"KindT": 4,
|
||||||
|
"num": 6,
|
||||||
|
"noun.g": 3,
|
||||||
|
"animal": 2,
|
||||||
|
"animais": 2,
|
||||||
|
"gen": 4,
|
||||||
|
"carro": 3,
|
||||||
|
"Ramona": 1,
|
||||||
|
"Enache": 1,
|
||||||
|
"FoodsRon": 1,
|
||||||
|
"NGender": 6,
|
||||||
|
"NMasc": 2,
|
||||||
|
"NFem": 3,
|
||||||
|
"NNeut": 2,
|
||||||
|
"mkTab": 5,
|
||||||
|
"mkNoun": 5,
|
||||||
|
"getAgrGender": 3,
|
||||||
|
"acesta": 2,
|
||||||
|
"aceasta": 2,
|
||||||
|
"gg": 3,
|
||||||
|
"det.s": 1,
|
||||||
|
"peste": 2,
|
||||||
|
"pesti": 2,
|
||||||
|
"scump": 2,
|
||||||
|
"scumpa": 2,
|
||||||
|
"scumpi": 2,
|
||||||
|
"scumpe": 2,
|
||||||
|
"<n,g>": 1,
|
||||||
|
"<Sg,Masc>": 1,
|
||||||
|
"<Sg,Fem>": 1,
|
||||||
|
"<Pl,Masc>": 1,
|
||||||
|
"<Pl,Fem>": 1,
|
||||||
|
"ng": 1,
|
||||||
|
"<ng,n>": 1,
|
||||||
|
"<NMasc,_>": 1,
|
||||||
|
"<NFem,_>": 1,
|
||||||
|
"<NNeut,Sg>": 1,
|
||||||
|
"<NNeut,Pl>": 1,
|
||||||
|
"FoodsSpa": 1,
|
||||||
|
"SyntaxSpa": 1,
|
||||||
|
"StructuralSpa": 1,
|
||||||
|
"ParadigmsSpa": 1,
|
||||||
|
"FoodsSwe": 1,
|
||||||
|
"SyntaxSwe": 2,
|
||||||
|
"LexFoodsSwe": 2,
|
||||||
|
"**": 1,
|
||||||
|
"sv_SE": 1,
|
||||||
|
"FoodsTha": 1,
|
||||||
|
"SyntaxTha": 1,
|
||||||
|
"LexiconTha": 1,
|
||||||
|
"ParadigmsTha": 1,
|
||||||
|
"R": 4,
|
||||||
|
"ResTha": 1,
|
||||||
|
"R.thword": 4,
|
||||||
|
"FoodsTsn": 1,
|
||||||
|
"NounClass": 28,
|
||||||
|
"r": 9,
|
||||||
|
"b": 9,
|
||||||
|
"Bool": 5,
|
||||||
|
"p_form": 18,
|
||||||
|
"TType": 16,
|
||||||
|
"mkPredDescrCop": 2,
|
||||||
|
"item.c": 1,
|
||||||
|
"quality.p_form": 1,
|
||||||
|
"kind.w": 4,
|
||||||
|
"mkDemPron1": 3,
|
||||||
|
"kind.q": 4,
|
||||||
|
"mkDemPron2": 3,
|
||||||
|
"mkMod": 2,
|
||||||
|
"Lexicon": 1,
|
||||||
|
"mkNounNC14_6": 2,
|
||||||
|
"mkNounNC9_10": 4,
|
||||||
|
"smartVery": 2,
|
||||||
|
"mkVarAdj": 2,
|
||||||
|
"mkOrdAdj": 4,
|
||||||
|
"mkPerAdj": 2,
|
||||||
|
"mkVerbRel": 2,
|
||||||
|
"NC9_10": 14,
|
||||||
|
"NC14_6": 14,
|
||||||
|
"P": 4,
|
||||||
|
"V": 4,
|
||||||
|
"ModV": 4,
|
||||||
|
"y.b": 1,
|
||||||
|
"True": 3,
|
||||||
|
"y.w": 2,
|
||||||
|
"y.r": 2,
|
||||||
|
"y.c": 14,
|
||||||
|
"y.q": 4,
|
||||||
|
"smartQualRelPart": 5,
|
||||||
|
"x.t": 10,
|
||||||
|
"smartDescrCop": 5,
|
||||||
|
"False": 3,
|
||||||
|
"mkVeryAdj": 2,
|
||||||
|
"x.p_form": 2,
|
||||||
|
"mkVeryVerb": 3,
|
||||||
|
"mkQualRelPart_PName": 2,
|
||||||
|
"mkQualRelPart": 2,
|
||||||
|
"mkDescrCop_PName": 2,
|
||||||
|
"mkDescrCop": 2,
|
||||||
|
"FoodsTur": 1,
|
||||||
|
"Case": 10,
|
||||||
|
"softness": 4,
|
||||||
|
"Softness": 5,
|
||||||
|
"h": 4,
|
||||||
|
"Harmony": 5,
|
||||||
|
"Reason": 1,
|
||||||
|
"excluding": 1,
|
||||||
|
"plural": 3,
|
||||||
|
"In": 1,
|
||||||
|
"Turkish": 1,
|
||||||
|
"if": 1,
|
||||||
|
"subject": 1,
|
||||||
|
"not": 2,
|
||||||
|
"human": 2,
|
||||||
|
"being": 1,
|
||||||
|
"then": 1,
|
||||||
|
"singular": 1,
|
||||||
|
"regardless": 1,
|
||||||
|
"subject.": 1,
|
||||||
|
"Since": 1,
|
||||||
|
"all": 1,
|
||||||
|
"possible": 1,
|
||||||
|
"subjects": 1,
|
||||||
|
"are": 1,
|
||||||
|
"non": 1,
|
||||||
|
"do": 1,
|
||||||
|
"need": 1,
|
||||||
|
"form.": 1,
|
||||||
|
"quality.softness": 1,
|
||||||
|
"quality.h": 1,
|
||||||
|
"quality.c": 1,
|
||||||
|
"Nom": 9,
|
||||||
|
"Gen": 5,
|
||||||
|
"a.c": 1,
|
||||||
|
"a.softness": 1,
|
||||||
|
"a.h": 1,
|
||||||
|
"I_Har": 4,
|
||||||
|
"Ih_Har": 4,
|
||||||
|
"U_Har": 4,
|
||||||
|
"Uh_Har": 4,
|
||||||
|
"Ih": 1,
|
||||||
|
"Uh": 1,
|
||||||
|
"Soft": 3,
|
||||||
|
"Hard": 3,
|
||||||
|
"overload": 1,
|
||||||
|
"mkn": 1,
|
||||||
|
"peynir": 2,
|
||||||
|
"peynirler": 2,
|
||||||
|
"[": 2,
|
||||||
|
"]": 2,
|
||||||
|
"sarap": 2,
|
||||||
|
"saraplar": 2,
|
||||||
|
"sarabi": 2,
|
||||||
|
"saraplari": 2,
|
||||||
|
"italyan": 4,
|
||||||
|
"ca": 2,
|
||||||
|
"getSoftness": 2,
|
||||||
|
"getHarmony": 2,
|
||||||
|
"See": 1,
|
||||||
|
"comment": 1,
|
||||||
|
"lines": 1,
|
||||||
|
"excluded": 1,
|
||||||
|
"copula.": 1,
|
||||||
|
"base": 4,
|
||||||
|
"*": 1,
|
||||||
|
"Shafqat": 1,
|
||||||
|
"Virk": 1,
|
||||||
|
"FoodsUrd": 1,
|
||||||
|
"coupla": 2,
|
||||||
|
"interface": 1,
|
||||||
|
"N": 4,
|
||||||
|
"A": 6,
|
||||||
|
"instance": 5,
|
||||||
|
"ParadigmsCat": 1,
|
||||||
|
"M": 1,
|
||||||
|
"MorphoCat": 1,
|
||||||
|
"M.Masc": 2,
|
||||||
|
"ParadigmsFin": 1,
|
||||||
|
"ParadigmsGer": 1,
|
||||||
|
"ParadigmsIta": 1,
|
||||||
|
"ParadigmsSwe": 1,
|
||||||
|
"resource": 1,
|
||||||
|
"ne": 2,
|
||||||
|
"muz": 2,
|
||||||
|
"muzi": 2,
|
||||||
|
"msg": 3,
|
||||||
|
"fsg": 3,
|
||||||
|
"nsg": 3,
|
||||||
|
"mpl": 3,
|
||||||
|
"fpl": 3,
|
||||||
|
"npl": 3,
|
||||||
|
"mlad": 7,
|
||||||
|
"vynikajici": 7
|
||||||
|
},
|
||||||
"Groovy": {
|
"Groovy": {
|
||||||
"task": 1,
|
"task": 1,
|
||||||
"echoDirListViaAntBuilder": 1,
|
"echoDirListViaAntBuilder": 1,
|
||||||
@@ -53347,6 +54020,7 @@
|
|||||||
"GLSL": 3766,
|
"GLSL": 3766,
|
||||||
"Gnuplot": 1023,
|
"Gnuplot": 1023,
|
||||||
"Gosu": 410,
|
"Gosu": 410,
|
||||||
|
"Grammatical Framework": 10607,
|
||||||
"Groovy": 69,
|
"Groovy": 69,
|
||||||
"Groovy Server Pages": 91,
|
"Groovy Server Pages": 91,
|
||||||
"Haml": 4,
|
"Haml": 4,
|
||||||
@@ -53504,6 +54178,7 @@
|
|||||||
"GLSL": 3,
|
"GLSL": 3,
|
||||||
"Gnuplot": 6,
|
"Gnuplot": 6,
|
||||||
"Gosu": 4,
|
"Gosu": 4,
|
||||||
|
"Grammatical Framework": 41,
|
||||||
"Groovy": 2,
|
"Groovy": 2,
|
||||||
"Groovy Server Pages": 4,
|
"Groovy Server Pages": 4,
|
||||||
"Haml": 1,
|
"Haml": 1,
|
||||||
@@ -53615,5 +54290,5 @@
|
|||||||
"Xtend": 2,
|
"Xtend": 2,
|
||||||
"YAML": 2
|
"YAML": 2
|
||||||
},
|
},
|
||||||
"md5": "0ba2f0aa493079e13250748fcf12aa7a"
|
"md5": "856e1bcc53c067f8a7e56e6aa1563b0e"
|
||||||
}
|
}
|
||||||
15
samples/Grammatical Framework/Foods.gf
Normal file
15
samples/Grammatical Framework/Foods.gf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
abstract Foods = {
|
||||||
|
flags startcat = Comment ;
|
||||||
|
cat
|
||||||
|
Comment ; Item ; Kind ; Quality ;
|
||||||
|
fun
|
||||||
|
Pred : Item -> Quality -> Comment ;
|
||||||
|
This, That, These, Those : Kind -> Item ;
|
||||||
|
Mod : Quality -> Kind -> Kind ;
|
||||||
|
Wine, Cheese, Fish, Pizza : Kind ;
|
||||||
|
Very : Quality -> Quality ;
|
||||||
|
Fresh, Warm, Italian,
|
||||||
|
Expensive, Delicious, Boring : Quality ;
|
||||||
|
}
|
||||||
79
samples/Grammatical Framework/FoodsAfr.gf
Normal file
79
samples/Grammatical Framework/FoodsAfr.gf
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
-- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL
|
||||||
|
|
||||||
|
concrete FoodsAfr of Foods = open Prelude, Predef in{
|
||||||
|
|
||||||
|
flags coding=utf8;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = {s: Str} ;
|
||||||
|
Kind = {s: Number => Str} ;
|
||||||
|
Item = {s: Str ; n: Number} ;
|
||||||
|
Quality = {s: AdjAP => Str} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = {s = item.s ++ "is" ++ (quality.s ! Predic)};
|
||||||
|
This kind = {s = "hierdie" ++ (kind.s ! Sg); n = Sg};
|
||||||
|
That kind = {s = "daardie" ++ (kind.s ! Sg); n = Sg};
|
||||||
|
These kind = {s = "hierdie" ++ (kind.s ! Pl); n = Pl};
|
||||||
|
Those kind = {s = "daardie" ++ (kind.s ! Pl); n = Pl};
|
||||||
|
Mod quality kind = {s = table{n => (quality.s ! Attr) ++ (kind.s!n)}};
|
||||||
|
|
||||||
|
Wine = declNoun_e "wyn";
|
||||||
|
Cheese = declNoun_aa "kaas";
|
||||||
|
Fish = declNoun_ss "vis";
|
||||||
|
Pizza = declNoun_s "pizza";
|
||||||
|
|
||||||
|
Very quality = veryAdj quality;
|
||||||
|
|
||||||
|
Fresh = regAdj "vars";
|
||||||
|
Warm = regAdj "warm";
|
||||||
|
Italian = smartAdj_e "Italiaans";
|
||||||
|
Expensive = regAdj "duur";
|
||||||
|
Delicious = smartAdj_e "heerlik";
|
||||||
|
Boring = smartAdj_e "vervelig";
|
||||||
|
|
||||||
|
param
|
||||||
|
AdjAP = Attr | Predic ;
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
--Noun operations (wyn, kaas, vis, pizza)
|
||||||
|
|
||||||
|
declNoun_aa: Str -> {s: Number => Str} = \x ->
|
||||||
|
let v = tk 2 x
|
||||||
|
in
|
||||||
|
{s = table{Sg => x ; Pl => v + (last x) +"e"}};
|
||||||
|
|
||||||
|
declNoun_e: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + "e"}} ;
|
||||||
|
declNoun_s: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + "s"}} ;
|
||||||
|
|
||||||
|
declNoun_ss: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + (last x) + "e"}} ;
|
||||||
|
|
||||||
|
|
||||||
|
--Adjective operations
|
||||||
|
|
||||||
|
mkAdj : Str -> Str -> {s: AdjAP => Str} = \x,y -> {s = table{Attr => x; Predic => y}};
|
||||||
|
|
||||||
|
declAdj_e : Str -> {s : AdjAP=> Str} = \x -> mkAdj (x + "e") x;
|
||||||
|
declAdj_g : Str -> {s : AdjAP=> Str} = \w ->
|
||||||
|
let v = init w
|
||||||
|
in mkAdj (v + "ë") w ;
|
||||||
|
|
||||||
|
declAdj_oog : Str -> {s : AdjAP=> Str} = \w ->
|
||||||
|
let v = init w
|
||||||
|
in
|
||||||
|
let i = init v
|
||||||
|
in mkAdj (i + "ë") w ;
|
||||||
|
|
||||||
|
regAdj : Str -> {s : AdjAP=> Str} = \x -> mkAdj x x;
|
||||||
|
|
||||||
|
veryAdj : {s: AdjAP => Str} -> {s : AdjAP=> Str} = \x -> {s = table{a => "baie" ++ (x.s!a)}};
|
||||||
|
|
||||||
|
|
||||||
|
smartAdj_e : Str -> {s : AdjAP=> Str} = \a -> case a of
|
||||||
|
{
|
||||||
|
_ + "oog" => declAdj_oog a ;
|
||||||
|
_ + ("e" | "ie" | "o" | "oe") + "g" => declAdj_g a ;
|
||||||
|
_ => declAdj_e a
|
||||||
|
};
|
||||||
|
}
|
||||||
21
samples/Grammatical Framework/FoodsAmh.gf
Normal file
21
samples/Grammatical Framework/FoodsAmh.gf
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
concrete FoodsAmh of Foods ={
|
||||||
|
flags coding = utf8;
|
||||||
|
lincat
|
||||||
|
Comment,Item,Kind,Quality = Str;
|
||||||
|
lin
|
||||||
|
Pred item quality = item ++ quality++ "ነው::" ;
|
||||||
|
This kind = "ይህ" ++ kind;
|
||||||
|
That kind = "ያ" ++ kind;
|
||||||
|
Mod quality kind = quality ++ kind;
|
||||||
|
Wine = "ወይን";
|
||||||
|
Cheese = "አይብ";
|
||||||
|
Fish = "ዓሳ";
|
||||||
|
Very quality = "በጣም" ++ quality;
|
||||||
|
Fresh = "አዲስ";
|
||||||
|
Warm = "ትኩስ";
|
||||||
|
Italian = "የጥልያን";
|
||||||
|
Expensive = "ውድ";
|
||||||
|
Delicious = "ጣፋጭ";
|
||||||
|
Boring = "አስቀያሚ";
|
||||||
|
|
||||||
|
}
|
||||||
43
samples/Grammatical Framework/FoodsBul.gf
Normal file
43
samples/Grammatical Framework/FoodsBul.gf
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
-- (c) 2009 Krasimir Angelov under LGPL
|
||||||
|
|
||||||
|
concrete FoodsBul of Foods = {
|
||||||
|
|
||||||
|
flags
|
||||||
|
coding = utf8;
|
||||||
|
|
||||||
|
param
|
||||||
|
Gender = Masc | Fem | Neutr;
|
||||||
|
Number = Sg | Pl;
|
||||||
|
Agr = ASg Gender | APl ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = Str ;
|
||||||
|
Quality = {s : Agr => Str} ;
|
||||||
|
Item = {s : Str; a : Agr} ;
|
||||||
|
Kind = {s : Number => Str; g : Gender} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item qual = item.s ++ case item.a of {ASg _ => "е"; APl => "са"} ++ qual.s ! item.a ;
|
||||||
|
|
||||||
|
This kind = {s=case kind.g of {Masc=>"този"; Fem=>"тази"; Neutr=>"това" } ++ kind.s ! Sg; a=ASg kind.g} ;
|
||||||
|
That kind = {s=case kind.g of {Masc=>"онзи"; Fem=>"онази"; Neutr=>"онова"} ++ kind.s ! Sg; a=ASg kind.g} ;
|
||||||
|
These kind = {s="тези" ++ kind.s ! Pl; a=APl} ;
|
||||||
|
Those kind = {s="онези" ++ kind.s ! Pl; a=APl} ;
|
||||||
|
|
||||||
|
Mod qual kind = {s=\\n => qual.s ! (case n of {Sg => ASg kind.g; Pl => APl}) ++ kind.s ! n; g=kind.g} ;
|
||||||
|
|
||||||
|
Wine = {s = table {Sg => "вино"; Pl => "вина"}; g = Neutr};
|
||||||
|
Cheese = {s = table {Sg => "сирене"; Pl => "сирена"}; g = Neutr};
|
||||||
|
Fish = {s = table {Sg => "риба"; Pl => "риби"}; g = Fem};
|
||||||
|
Pizza = {s = table {Sg => "пица"; Pl => "пици"}; g = Fem};
|
||||||
|
|
||||||
|
Very qual = {s = \\g => "много" ++ qual.s ! g};
|
||||||
|
|
||||||
|
Fresh = {s = table {ASg Masc => "свеж"; ASg Fem => "свежа"; ASg Neutr => "свежо"; APl => "свежи"}};
|
||||||
|
Warm = {s = table {ASg Masc => "горещ"; ASg Fem => "гореща"; ASg Neutr => "горещо"; APl => "горещи"}};
|
||||||
|
Italian = {s = table {ASg Masc => "италиански"; ASg Fem => "италианска"; ASg Neutr => "италианско"; APl => "италиански"}};
|
||||||
|
Expensive = {s = table {ASg Masc => "скъп"; ASg Fem => "скъпа"; ASg Neutr => "скъпо"; APl => "скъпи"}};
|
||||||
|
Delicious = {s = table {ASg Masc => "превъзходен"; ASg Fem => "превъзходна"; ASg Neutr => "превъзходно"; APl => "превъзходни"}};
|
||||||
|
Boring = {s = table {ASg Masc => "еднообразен"; ASg Fem => "еднообразна"; ASg Neutr => "еднообразно"; APl => "еднообразни"}};
|
||||||
|
|
||||||
|
}
|
||||||
7
samples/Grammatical Framework/FoodsCat.gf
Normal file
7
samples/Grammatical Framework/FoodsCat.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
-- (c) 2009 Jordi Saludes under LGPL
|
||||||
|
|
||||||
|
concrete FoodsCat of Foods = FoodsI with
|
||||||
|
(Syntax = SyntaxCat),
|
||||||
|
(LexFoods = LexFoodsCat) ;
|
||||||
35
samples/Grammatical Framework/FoodsChi.gf
Normal file
35
samples/Grammatical Framework/FoodsChi.gf
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
concrete FoodsChi of Foods = {
|
||||||
|
flags coding = utf8 ;
|
||||||
|
lincat
|
||||||
|
Comment, Item = Str ;
|
||||||
|
Kind = {s,c : Str} ;
|
||||||
|
Quality = {s,p : Str} ;
|
||||||
|
lin
|
||||||
|
Pred item quality = item ++ "是" ++ quality.s ++ quality.p ;
|
||||||
|
This kind = "这" ++ kind.c ++ kind.s ;
|
||||||
|
That kind = "那" ++ kind.c ++ kind.s ;
|
||||||
|
These kind = "这" ++ "些" ++ kind.s ;
|
||||||
|
Those kind = "那" ++ "些" ++ kind.s ;
|
||||||
|
Mod quality kind = {
|
||||||
|
s = quality.s ++ quality.p ++ kind.s ;
|
||||||
|
c = kind.c
|
||||||
|
} ;
|
||||||
|
Wine = geKind "酒" ;
|
||||||
|
Pizza = geKind "比 萨 饼" ;
|
||||||
|
Cheese = geKind "奶 酪" ;
|
||||||
|
Fish = geKind "鱼" ;
|
||||||
|
Very quality = longQuality ("非 常" ++ quality.s) ;
|
||||||
|
Fresh = longQuality "新 鲜" ;
|
||||||
|
Warm = longQuality "温 热" ;
|
||||||
|
Italian = longQuality "意 大 利 式" ;
|
||||||
|
Expensive = longQuality "昂 贵" ;
|
||||||
|
Delicious = longQuality "美 味" ;
|
||||||
|
Boring = longQuality "难 吃" ;
|
||||||
|
oper
|
||||||
|
mkKind : Str -> Str -> {s,c : Str} = \s,c ->
|
||||||
|
{s = s ; c = c} ;
|
||||||
|
geKind : Str -> {s,c : Str} = \s ->
|
||||||
|
mkKind s "个" ;
|
||||||
|
longQuality : Str -> {s,p : Str} = \s ->
|
||||||
|
{s = s ; p = "的"} ;
|
||||||
|
}
|
||||||
35
samples/Grammatical Framework/FoodsCze.gf
Normal file
35
samples/Grammatical Framework/FoodsCze.gf
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
-- (c) 2011 Katerina Bohmova under LGPL
|
||||||
|
|
||||||
|
concrete FoodsCze of Foods = open ResCze in {
|
||||||
|
flags
|
||||||
|
coding = utf8 ;
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str} ;
|
||||||
|
Quality = Adjective ;
|
||||||
|
Kind = Noun ;
|
||||||
|
Item = NounPhrase ;
|
||||||
|
lin
|
||||||
|
Pred item quality =
|
||||||
|
{s = item.s ++ copula ! item.n ++
|
||||||
|
quality.s ! item.g ! item.n} ;
|
||||||
|
This = det Sg "tento" "tato" "toto" ;
|
||||||
|
That = det Sg "tamten" "tamta" "tamto" ;
|
||||||
|
These = det Pl "tyto" "tyto" "tato" ;
|
||||||
|
Those = det Pl "tamty" "tamty" "tamta" ;
|
||||||
|
Mod quality kind = {
|
||||||
|
s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
|
||||||
|
g = kind.g
|
||||||
|
} ;
|
||||||
|
Wine = noun "víno" "vína" Neutr ;
|
||||||
|
Cheese = noun "sýr" "sýry" Masc ;
|
||||||
|
Fish = noun "ryba" "ryby" Fem ;
|
||||||
|
Pizza = noun "pizza" "pizzy" Fem ;
|
||||||
|
Very qual = {s = \\g,n => "velmi" ++ qual.s ! g ! n} ;
|
||||||
|
Fresh = regAdj "čerstv" ;
|
||||||
|
Warm = regAdj "tepl" ;
|
||||||
|
Italian = regAdj "italsk" ;
|
||||||
|
Expensive = regAdj "drah" ;
|
||||||
|
Delicious = regnfAdj "vynikající" ;
|
||||||
|
Boring = regAdj "nudn" ;
|
||||||
|
}
|
||||||
|
|
||||||
58
samples/Grammatical Framework/FoodsDut.gf
Normal file
58
samples/Grammatical Framework/FoodsDut.gf
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
-- (c) 2009 Femke Johansson under LGPL
|
||||||
|
|
||||||
|
concrete FoodsDut of Foods = {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str};
|
||||||
|
Quality = {s : AForm => Str};
|
||||||
|
Kind = { s : Number => Str};
|
||||||
|
Item = {s : Str ; n : Number};
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality =
|
||||||
|
{s = item.s ++ copula ! item.n ++ quality.s ! APred};
|
||||||
|
This = det Sg "deze";
|
||||||
|
These = det Pl "deze";
|
||||||
|
That = det Sg "die";
|
||||||
|
Those = det Pl "die";
|
||||||
|
|
||||||
|
Mod quality kind =
|
||||||
|
{s = \\n => quality.s ! AAttr ++ kind.s ! n};
|
||||||
|
Wine = regNoun "wijn";
|
||||||
|
Cheese = noun "kaas" "kazen";
|
||||||
|
Fish = noun "vis" "vissen";
|
||||||
|
Pizza = noun "pizza" "pizza's";
|
||||||
|
|
||||||
|
Very a = {s = \\f => "erg" ++ a.s ! f};
|
||||||
|
|
||||||
|
Fresh = regadj "vers";
|
||||||
|
Warm = regadj "warm";
|
||||||
|
Italian = regadj "Italiaans";
|
||||||
|
Expensive = adj "duur" "dure";
|
||||||
|
Delicious = regadj "lekker";
|
||||||
|
Boring = regadj "saai";
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl;
|
||||||
|
AForm = APred | AAttr;
|
||||||
|
|
||||||
|
oper
|
||||||
|
det : Number -> Str ->
|
||||||
|
{s : Number => Str} -> {s : Str ; n: Number} =
|
||||||
|
\n,det,noun -> {s = det ++ noun.s ! n ; n=n};
|
||||||
|
|
||||||
|
noun : Str -> Str -> {s : Number => Str} =
|
||||||
|
\man,men -> {s = table {Sg => man; Pl => men}};
|
||||||
|
|
||||||
|
regNoun : Str -> {s : Number => Str} =
|
||||||
|
\wijn -> noun wijn (wijn + "en");
|
||||||
|
|
||||||
|
regadj : Str -> {s : AForm => Str} =
|
||||||
|
\koud -> adj koud (koud+"e");
|
||||||
|
|
||||||
|
adj : Str -> Str -> {s : AForm => Str} =
|
||||||
|
\duur, dure -> {s = table {APred => duur; AAttr => dure}};
|
||||||
|
|
||||||
|
copula : Number => Str =
|
||||||
|
table {Sg => "is" ; Pl => "zijn"};
|
||||||
|
}
|
||||||
43
samples/Grammatical Framework/FoodsEng.gf
Normal file
43
samples/Grammatical Framework/FoodsEng.gf
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
concrete FoodsEng of Foods = {
|
||||||
|
flags language = en_US;
|
||||||
|
lincat
|
||||||
|
Comment, Quality = {s : Str} ;
|
||||||
|
Kind = {s : Number => Str} ;
|
||||||
|
Item = {s : Str ; n : Number} ;
|
||||||
|
lin
|
||||||
|
Pred item quality =
|
||||||
|
{s = item.s ++ copula ! item.n ++ quality.s} ;
|
||||||
|
This = det Sg "this" ;
|
||||||
|
That = det Sg "that" ;
|
||||||
|
These = det Pl "these" ;
|
||||||
|
Those = det Pl "those" ;
|
||||||
|
Mod quality kind =
|
||||||
|
{s = \\n => quality.s ++ kind.s ! n} ;
|
||||||
|
Wine = regNoun "wine" ;
|
||||||
|
Cheese = regNoun "cheese" ;
|
||||||
|
Fish = noun "fish" "fish" ;
|
||||||
|
Pizza = regNoun "pizza" ;
|
||||||
|
Very a = {s = "very" ++ a.s} ;
|
||||||
|
Fresh = adj "fresh" ;
|
||||||
|
Warm = adj "warm" ;
|
||||||
|
Italian = adj "Italian" ;
|
||||||
|
Expensive = adj "expensive" ;
|
||||||
|
Delicious = adj "delicious" ;
|
||||||
|
Boring = adj "boring" ;
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
oper
|
||||||
|
det : Number -> Str ->
|
||||||
|
{s : Number => Str} -> {s : Str ; n : Number} =
|
||||||
|
\n,det,noun -> {s = det ++ noun.s ! n ; n = n} ;
|
||||||
|
noun : Str -> Str -> {s : Number => Str} =
|
||||||
|
\man,men -> {s = table {Sg => man ; Pl => men}} ;
|
||||||
|
regNoun : Str -> {s : Number => Str} =
|
||||||
|
\car -> noun car (car + "s") ;
|
||||||
|
adj : Str -> {s : Str} =
|
||||||
|
\cold -> {s = cold} ;
|
||||||
|
copula : Number => Str =
|
||||||
|
table {Sg => "is" ; Pl => "are"} ;
|
||||||
|
}
|
||||||
48
samples/Grammatical Framework/FoodsEpo.gf
Normal file
48
samples/Grammatical Framework/FoodsEpo.gf
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
-- (c) 2009 Julia Hammar under LGPL
|
||||||
|
|
||||||
|
concrete FoodsEpo of Foods = open Prelude in {
|
||||||
|
|
||||||
|
flags coding =utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = SS ;
|
||||||
|
Kind, Quality = {s : Number => Str} ;
|
||||||
|
Item = {s : Str ; n : Number} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = ss (item.s ++ copula ! item.n ++ quality.s ! item.n) ;
|
||||||
|
This = det Sg "ĉi tiu" ;
|
||||||
|
That = det Sg "tiu" ;
|
||||||
|
These = det Pl "ĉi tiuj" ;
|
||||||
|
Those = det Pl "tiuj" ;
|
||||||
|
Mod quality kind = {s = \\n => quality.s ! n ++ kind.s ! n} ;
|
||||||
|
Wine = regNoun "vino" ;
|
||||||
|
Cheese = regNoun "fromaĝo" ;
|
||||||
|
Fish = regNoun "fiŝo" ;
|
||||||
|
Pizza = regNoun "pico" ;
|
||||||
|
Very quality = {s = \\n => "tre" ++ quality.s ! n} ;
|
||||||
|
Fresh = regAdj "freŝa" ;
|
||||||
|
Warm = regAdj "varma" ;
|
||||||
|
Italian = regAdj "itala" ;
|
||||||
|
Expensive = regAdj "altekosta" ;
|
||||||
|
Delicious = regAdj "bongusta" ;
|
||||||
|
Boring = regAdj "enuiga" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} =
|
||||||
|
\n,d,cn -> {
|
||||||
|
s = d ++ cn.s ! n ;
|
||||||
|
n = n
|
||||||
|
} ;
|
||||||
|
regNoun : Str -> {s : Number => Str} =
|
||||||
|
\vino -> {s = table {Sg => vino ; Pl => vino + "j"}
|
||||||
|
} ;
|
||||||
|
regAdj : Str -> {s : Number => Str} =
|
||||||
|
\nova -> {s = table {Sg => nova ; Pl => nova + "j"}
|
||||||
|
} ;
|
||||||
|
copula : Number => Str = \\_ => "estas" ;
|
||||||
|
}
|
||||||
|
|
||||||
7
samples/Grammatical Framework/FoodsFin.gf
Normal file
7
samples/Grammatical Framework/FoodsFin.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
concrete FoodsFin of Foods = FoodsI with
|
||||||
|
(Syntax = SyntaxFin),
|
||||||
|
(LexFoods = LexFoodsFin) ;
|
||||||
32
samples/Grammatical Framework/FoodsFre.gf
Normal file
32
samples/Grammatical Framework/FoodsFre.gf
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
--# -path=.:../foods:present
|
||||||
|
|
||||||
|
concrete FoodsFre of Foods = open SyntaxFre, ParadigmsFre in {
|
||||||
|
|
||||||
|
flags coding = utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = Utt ;
|
||||||
|
Item = NP ;
|
||||||
|
Kind = CN ;
|
||||||
|
Quality = AP ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = mkUtt (mkCl item quality) ;
|
||||||
|
This kind = mkNP this_QuantSg kind ;
|
||||||
|
That kind = mkNP that_QuantSg kind ;
|
||||||
|
These kind = mkNP these_QuantPl kind ;
|
||||||
|
Those kind = mkNP those_QuantPl kind ;
|
||||||
|
Mod quality kind = mkCN quality kind ;
|
||||||
|
Very quality = mkAP very_AdA quality ;
|
||||||
|
|
||||||
|
Wine = mkCN (mkN "vin" masculine) ;
|
||||||
|
Pizza = mkCN (mkN "pizza" feminine) ;
|
||||||
|
Cheese = mkCN (mkN "fromage" masculine) ;
|
||||||
|
Fish = mkCN (mkN "poisson" masculine) ;
|
||||||
|
Fresh = mkAP (mkA "frais" "fraîche" "frais" "fraîchement") ;
|
||||||
|
Warm = mkAP (mkA "chaud") ;
|
||||||
|
Italian = mkAP (mkA "italien") ;
|
||||||
|
Expensive = mkAP (mkA "cher") ;
|
||||||
|
Delicious = mkAP (mkA "délicieux") ;
|
||||||
|
Boring = mkAP (mkA "ennuyeux") ;
|
||||||
|
}
|
||||||
7
samples/Grammatical Framework/FoodsGer.gf
Normal file
7
samples/Grammatical Framework/FoodsGer.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
concrete FoodsGer of Foods = FoodsI with
|
||||||
|
(Syntax = SyntaxGer),
|
||||||
|
(LexFoods = LexFoodsGer) ;
|
||||||
108
samples/Grammatical Framework/FoodsHeb.gf
Normal file
108
samples/Grammatical Framework/FoodsHeb.gf
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
--# -path=alltenses
|
||||||
|
|
||||||
|
--(c) 2009 Dana Dannells
|
||||||
|
-- Licensed under LGPL
|
||||||
|
|
||||||
|
concrete FoodsHeb of Foods = open Prelude in {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = SS ;
|
||||||
|
Quality = {s: Number => Species => Gender => Str} ;
|
||||||
|
Kind = {s : Number => Species => Str ; g : Gender ; mod : Modified} ;
|
||||||
|
Item = {s : Str ; g : Gender ; n : Number ; sp : Species ; mod : Modified} ;
|
||||||
|
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = ss (item.s ++ quality.s ! item.n ! Indef ! item.g ) ;
|
||||||
|
This = det Sg Def "הזה" "הזאת";
|
||||||
|
That = det Sg Def "ההוא" "ההיא" ;
|
||||||
|
These = det Pl Def "האלה" "האלה" ;
|
||||||
|
Those = det Pl Def "ההם" "ההן" ;
|
||||||
|
Mod quality kind = {
|
||||||
|
s = \\n,sp => kind.s ! n ! sp ++ quality.s ! n ! sp ! kind.g;
|
||||||
|
g = kind.g ;
|
||||||
|
mod = T
|
||||||
|
} ;
|
||||||
|
Wine = regNoun "יין" "יינות" Masc ;
|
||||||
|
Cheese = regNoun "גבינה" "גבינות" Fem ;
|
||||||
|
Fish = regNoun "דג" "דגים" Masc ;
|
||||||
|
Pizza = regNoun "פיצה" "פיצות" Fem ;
|
||||||
|
Very qual = {s = \\g,n,sp => "מאוד" ++ qual.s ! g ! n ! sp} ;
|
||||||
|
Fresh = regAdj "טרי" ;
|
||||||
|
Warm = regAdj "חם" ;
|
||||||
|
Italian = regAdj2 "איטלקי" ;
|
||||||
|
Expensive = regAdj "יקר" ;
|
||||||
|
Delicious = regAdj "טעים" ;
|
||||||
|
Boring = regAdj2 "משעמם";
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Gender = Masc | Fem ;
|
||||||
|
Species = Def | Indef ;
|
||||||
|
Modified = T | F ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
Noun : Type = {s : Number => Species => Str ; g : Gender ; mod : Modified } ;
|
||||||
|
Adj : Type = {s : Number => Species => Gender => Str} ;
|
||||||
|
|
||||||
|
det : Number -> Species -> Str -> Str -> Noun ->
|
||||||
|
{s : Str ; g :Gender ; n : Number ; sp : Species ; mod : Modified} =
|
||||||
|
\n,sp,m,f,cn -> {
|
||||||
|
s = case cn.mod of { _ => cn.s ! n ! sp ++ case cn.g of {Masc => m ; Fem => f} };
|
||||||
|
g = cn.g ;
|
||||||
|
n = n ;
|
||||||
|
sp = sp ;
|
||||||
|
mod = cn.mod
|
||||||
|
} ;
|
||||||
|
|
||||||
|
noun : (gvina,hagvina,gvinot,hagvinot : Str) -> Gender -> Noun =
|
||||||
|
\gvina,hagvina,gvinot,hagvinot,g -> {
|
||||||
|
s = table {
|
||||||
|
Sg => table {
|
||||||
|
Indef => gvina ;
|
||||||
|
Def => hagvina
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Indef => gvinot ;
|
||||||
|
Def => hagvinot
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
g = g ;
|
||||||
|
mod = F
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regNoun : Str -> Str -> Gender -> Noun =
|
||||||
|
\gvina,gvinot, g ->
|
||||||
|
noun gvina (defH gvina) gvinot (defH gvinot) g ;
|
||||||
|
|
||||||
|
defH : Str -> Str = \cn ->
|
||||||
|
case cn of {_ => "ה" + cn};
|
||||||
|
|
||||||
|
replaceLastLetter : Str -> Str = \c ->
|
||||||
|
case c of {"ף" => "פ" ; "ם" => "מ" ; "ן" => "נ" ; "ץ" => "צ" ; "ך" => "כ"; _ => c} ;
|
||||||
|
|
||||||
|
adjective : (_,_,_,_ : Str) -> Adj =
|
||||||
|
\tov,tova,tovim,tovot -> {
|
||||||
|
s = table {
|
||||||
|
Sg => table {
|
||||||
|
Indef => table { Masc => tov ; Fem => tova } ;
|
||||||
|
Def => table { Masc => defH tov ; Fem => defH tova }
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Indef => table {Masc => tovim ; Fem => tovot } ;
|
||||||
|
Def => table { Masc => defH tovim ; Fem => defH tovot }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regAdj : Str -> Adj = \tov ->
|
||||||
|
case tov of { to + c@? =>
|
||||||
|
adjective tov (to + replaceLastLetter (c) + "ה" ) (to + replaceLastLetter (c) +"ים" ) (to + replaceLastLetter (c) + "ות" )};
|
||||||
|
|
||||||
|
regAdj2 : Str -> Adj = \italki ->
|
||||||
|
case italki of { italk+ c@? =>
|
||||||
|
adjective italki (italk + replaceLastLetter (c) +"ת" ) (italk + replaceLastLetter (c)+ "ים" ) (italk + replaceLastLetter (c) + "ות" )};
|
||||||
|
|
||||||
|
} -- FoodsHeb
|
||||||
75
samples/Grammatical Framework/FoodsHin.gf
Normal file
75
samples/Grammatical Framework/FoodsHin.gf
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
-- (c) 2010 Vikash Rauniyar under LGPL
|
||||||
|
|
||||||
|
concrete FoodsHin of Foods = {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Gender = Masc | Fem ;
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str} ;
|
||||||
|
Item = {s : Str ; g : Gender ; n : Number} ;
|
||||||
|
Kind = {s : Number => Str ; g : Gender} ;
|
||||||
|
Quality = {s : Gender => Number => Str} ;
|
||||||
|
lin
|
||||||
|
Pred item quality = {
|
||||||
|
s = item.s ++ quality.s ! item.g ! item.n ++ copula item.n
|
||||||
|
} ;
|
||||||
|
This kind = {s = "यह" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
|
||||||
|
That kind = {s = "वह" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
|
||||||
|
These kind = {s = "ये" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
|
||||||
|
Those kind = {s = "वे" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
|
||||||
|
Mod quality kind = {
|
||||||
|
s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
|
||||||
|
g = kind.g
|
||||||
|
} ;
|
||||||
|
Wine = regN "मदिरा" ;
|
||||||
|
Cheese = regN "पनीर" ;
|
||||||
|
Fish = regN "मछली" ;
|
||||||
|
Pizza = regN "पिज़्ज़ा" ;
|
||||||
|
Very quality = {s = \\g,n => "अति" ++ quality.s ! g ! n} ;
|
||||||
|
Fresh = regAdj "ताज़ा" ;
|
||||||
|
Warm = regAdj "गरम" ;
|
||||||
|
Italian = regAdj "इटली" ;
|
||||||
|
Expensive = regAdj "बहुमूल्य" ;
|
||||||
|
Delicious = regAdj "स्वादिष्ट" ;
|
||||||
|
Boring = regAdj "अरुचिकर" ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
mkN : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
|
||||||
|
\s,p,g -> {
|
||||||
|
s = table {
|
||||||
|
Sg => s ;
|
||||||
|
Pl => p
|
||||||
|
} ;
|
||||||
|
g = g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regN : Str -> {s : Number => Str ; g : Gender} = \s -> case s of {
|
||||||
|
lark + "ा" => mkN s (lark + "े") Masc ;
|
||||||
|
lark + "ी" => mkN s (lark + "ीयँा") Fem ;
|
||||||
|
_ => mkN s s Masc
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkAdj : Str -> Str -> Str -> {s : Gender => Number => Str} = \ms,mp,f -> {
|
||||||
|
s = table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => ms ;
|
||||||
|
Pl => mp
|
||||||
|
} ;
|
||||||
|
Fem => \\_ => f
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regAdj : Str -> {s : Gender => Number => Str} = \a -> case a of {
|
||||||
|
acch + "ा" => mkAdj a (acch + "े") (acch + "ी") ;
|
||||||
|
_ => mkAdj a a a
|
||||||
|
} ;
|
||||||
|
|
||||||
|
copula : Number -> Str = \n -> case n of {
|
||||||
|
Sg => "है" ;
|
||||||
|
Pl => "हैं"
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
29
samples/Grammatical Framework/FoodsI.gf
Normal file
29
samples/Grammatical Framework/FoodsI.gf
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
incomplete concrete FoodsI of Foods =
|
||||||
|
open Syntax, LexFoods in {
|
||||||
|
lincat
|
||||||
|
Comment = Utt ;
|
||||||
|
Item = NP ;
|
||||||
|
Kind = CN ;
|
||||||
|
Quality = AP ;
|
||||||
|
lin
|
||||||
|
Pred item quality = mkUtt (mkCl item quality) ;
|
||||||
|
This kind = mkNP this_Det kind ;
|
||||||
|
That kind = mkNP that_Det kind ;
|
||||||
|
These kind = mkNP these_Det kind ;
|
||||||
|
Those kind = mkNP those_Det kind ;
|
||||||
|
Mod quality kind = mkCN quality kind ;
|
||||||
|
Very quality = mkAP very_AdA quality ;
|
||||||
|
|
||||||
|
Wine = mkCN wine_N ;
|
||||||
|
Pizza = mkCN pizza_N ;
|
||||||
|
Cheese = mkCN cheese_N ;
|
||||||
|
Fish = mkCN fish_N ;
|
||||||
|
Fresh = mkAP fresh_A ;
|
||||||
|
Warm = mkAP warm_A ;
|
||||||
|
Italian = mkAP italian_A ;
|
||||||
|
Expensive = mkAP expensive_A ;
|
||||||
|
Delicious = mkAP delicious_A ;
|
||||||
|
Boring = mkAP boring_A ;
|
||||||
|
}
|
||||||
84
samples/Grammatical Framework/FoodsIce.gf
Normal file
84
samples/Grammatical Framework/FoodsIce.gf
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
--# -path=.:prelude
|
||||||
|
|
||||||
|
-- (c) 2009 Martha Dis Brandt under LGPL
|
||||||
|
|
||||||
|
concrete FoodsIce of Foods = open Prelude in {
|
||||||
|
|
||||||
|
flags coding=utf8;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = SS ;
|
||||||
|
Quality = {s : Gender => Number => Defin => Str} ;
|
||||||
|
Kind = {s : Number => Str ; g : Gender} ;
|
||||||
|
Item = {s : Str ; g : Gender ; n : Number} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = ss (item.s ++ copula item.n ++ quality.s ! item.g ! item.n ! Ind) ;
|
||||||
|
This, That = det Sg "þessi" "þessi" "þetta" ;
|
||||||
|
These, Those = det Pl "þessir" "þessar" "þessi" ;
|
||||||
|
Mod quality kind = { s = \\n => quality.s ! kind.g ! n ! Def ++ kind.s ! n ; g = kind.g } ;
|
||||||
|
Wine = noun "vín" "vín" Neutr ;
|
||||||
|
Cheese = noun "ostur" "ostar" Masc ;
|
||||||
|
Fish = noun "fiskur" "fiskar" Masc ;
|
||||||
|
-- the word "pizza" is more commonly used in Iceland, but "flatbaka" is the Icelandic word for it
|
||||||
|
Pizza = noun "flatbaka" "flatbökur" Fem ;
|
||||||
|
Very qual = {s = \\g,n,defOrInd => "mjög" ++ qual.s ! g ! n ! defOrInd } ;
|
||||||
|
Fresh = regAdj "ferskur" ;
|
||||||
|
Warm = regAdj "heitur" ;
|
||||||
|
Boring = regAdj "leiðinlegur" ;
|
||||||
|
-- the order of the given adj forms is: mSg fSg nSg mPl fPl nPl mSgDef f/nSgDef _PlDef
|
||||||
|
Italian = adjective "ítalskur" "ítölsk" "ítalskt" "ítalskir" "ítalskar" "ítölsk" "ítalski" "ítalska" "ítalsku" ;
|
||||||
|
Expensive = adjective "dýr" "dýr" "dýrt" "dýrir" "dýrar" "dýr" "dýri" "dýra" "dýru" ;
|
||||||
|
Delicious = adjective "ljúffengur" "ljúffeng" "ljúffengt" "ljúffengir" "ljúffengar" "ljúffeng" "ljúffengi" "ljúffenga" "ljúffengu" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Gender = Masc | Fem | Neutr ;
|
||||||
|
Defin = Ind | Def ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
det : Number -> Str -> Str -> Str -> {s : Number => Str ; g : Gender} ->
|
||||||
|
{s : Str ; g : Gender ; n : Number} =
|
||||||
|
\n,masc,fem,neutr,cn -> {
|
||||||
|
s = case cn.g of {Masc => masc ; Fem => fem; Neutr => neutr } ++ cn.s ! n ;
|
||||||
|
g = cn.g ;
|
||||||
|
n = n
|
||||||
|
} ;
|
||||||
|
|
||||||
|
noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
|
||||||
|
\man,men,g -> {
|
||||||
|
s = table {
|
||||||
|
Sg => man ;
|
||||||
|
Pl => men
|
||||||
|
} ;
|
||||||
|
g = g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
adjective : (x1,_,_,_,_,_,_,_,x9 : Str) -> {s : Gender => Number => Defin => Str} =
|
||||||
|
\ferskur,fersk,ferskt,ferskir,ferskar,fersk_pl,ferski,ferska,fersku -> {
|
||||||
|
s = \\g,n,t => case <g,n,t> of {
|
||||||
|
< Masc, Sg, Ind > => ferskur ;
|
||||||
|
< Masc, Pl, Ind > => ferskir ;
|
||||||
|
< Fem, Sg, Ind > => fersk ;
|
||||||
|
< Fem, Pl, Ind > => ferskar ;
|
||||||
|
< Neutr, Sg, Ind > => ferskt ;
|
||||||
|
< Neutr, Pl, Ind > => fersk_pl;
|
||||||
|
< Masc, Sg, Def > => ferski ;
|
||||||
|
< Fem, Sg, Def > | < Neutr, Sg, Def > => ferska ;
|
||||||
|
< _ , Pl, Def > => fersku
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regAdj : Str -> {s : Gender => Number => Defin => Str} = \ferskur ->
|
||||||
|
let fersk = Predef.tk 2 ferskur
|
||||||
|
in adjective
|
||||||
|
ferskur fersk (fersk + "t")
|
||||||
|
(fersk + "ir") (fersk + "ar") fersk
|
||||||
|
(fersk + "i") (fersk + "a") (fersk + "u") ;
|
||||||
|
|
||||||
|
copula : Number -> Str =
|
||||||
|
\n -> case n of {
|
||||||
|
Sg => "er" ;
|
||||||
|
Pl => "eru"
|
||||||
|
} ;
|
||||||
|
}
|
||||||
8
samples/Grammatical Framework/FoodsIta.gf
Normal file
8
samples/Grammatical Framework/FoodsIta.gf
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
concrete FoodsIta of Foods = FoodsI with
|
||||||
|
(Syntax = SyntaxIta),
|
||||||
|
(LexFoods = LexFoodsIta) ;
|
||||||
|
|
||||||
72
samples/Grammatical Framework/FoodsJpn.gf
Normal file
72
samples/Grammatical Framework/FoodsJpn.gf
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
--# -path=.:../lib/src/prelude
|
||||||
|
|
||||||
|
-- (c) 2009 Zofia Stankiewicz under LGPL
|
||||||
|
|
||||||
|
concrete FoodsJpn of Foods = open Prelude in {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = {s: Style => Str};
|
||||||
|
Quality = {s: AdjUse => Str ; t: AdjType} ;
|
||||||
|
Kind = {s : Number => Str} ;
|
||||||
|
Item = {s : Str ; n : Number} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = {s = case quality.t of {
|
||||||
|
IAdj => table {Plain => item.s ++ quality.s ! APred ; Polite => item.s ++ quality.s ! APred ++ copula ! Polite ! item.n } ;
|
||||||
|
NaAdj => \\p => item.s ++ quality.s ! APred ++ copula ! p ! item.n }
|
||||||
|
} ;
|
||||||
|
This = det Sg "この" ;
|
||||||
|
That = det Sg "その" ;
|
||||||
|
These = det Pl "この" ;
|
||||||
|
Those = det Pl "その" ;
|
||||||
|
Mod quality kind = {s = \\n => quality.s ! Attr ++ kind.s ! n} ;
|
||||||
|
Wine = regNoun "ワインは" ;
|
||||||
|
Cheese = regNoun "チーズは" ;
|
||||||
|
Fish = regNoun "魚は" ;
|
||||||
|
Pizza = regNoun "ピザは" ;
|
||||||
|
Very quality = {s = \\a => "とても" ++ quality.s ! a ; t = quality.t } ;
|
||||||
|
Fresh = adj "新鮮な" "新鮮";
|
||||||
|
Warm = regAdj "あたたかい" ;
|
||||||
|
Italian = adj "イタリアの" "イタリアのもの";
|
||||||
|
Expensive = regAdj "たかい" ;
|
||||||
|
Delicious = regAdj "おいしい" ;
|
||||||
|
Boring = regAdj "つまらない" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
AdjUse = Attr | APred ; -- na-adjectives have different forms as noun attributes and predicates
|
||||||
|
Style = Plain | Polite ; -- for phrase types
|
||||||
|
AdjType = IAdj | NaAdj ; -- IAdj can form predicates without the copula, NaAdj cannot
|
||||||
|
|
||||||
|
oper
|
||||||
|
det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} =
|
||||||
|
\n,d,cn -> {
|
||||||
|
s = d ++ cn.s ! n ;
|
||||||
|
n = n
|
||||||
|
} ;
|
||||||
|
noun : Str -> Str -> {s : Number => Str} =
|
||||||
|
\sakana,sakana -> {s = \\_ => sakana } ;
|
||||||
|
|
||||||
|
regNoun : Str -> {s : Number => Str} =
|
||||||
|
\sakana -> noun sakana sakana ;
|
||||||
|
|
||||||
|
adj : Str -> Str -> {s : AdjUse => Str ; t : AdjType} =
|
||||||
|
\chosenna, chosen -> {
|
||||||
|
s = table {
|
||||||
|
Attr => chosenna ;
|
||||||
|
APred => chosen
|
||||||
|
} ;
|
||||||
|
t = NaAdj
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regAdj : Str -> {s: AdjUse => Str ; t : AdjType} =\akai -> {
|
||||||
|
s = \\_ => akai ; t = IAdj} ;
|
||||||
|
|
||||||
|
copula : Style => Number => Str =
|
||||||
|
table {
|
||||||
|
Plain => \\_ => "だ" ;
|
||||||
|
Polite => \\_ => "です" } ;
|
||||||
|
|
||||||
|
}
|
||||||
91
samples/Grammatical Framework/FoodsLav.gf
Normal file
91
samples/Grammatical Framework/FoodsLav.gf
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
--# -path=.:prelude
|
||||||
|
|
||||||
|
-- (c) 2009 Inese Bernsone under LGPL
|
||||||
|
|
||||||
|
concrete FoodsLav of Foods = open Prelude in {
|
||||||
|
|
||||||
|
flags
|
||||||
|
coding=utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = SS ;
|
||||||
|
Quality = {s : Q => Gender => Number => Defin => Str } ;
|
||||||
|
Kind = {s : Number => Str ; g : Gender} ;
|
||||||
|
Item = {s : Str ; g : Gender ; n : Number } ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = ss (item.s ++ {- copula item.n -} "ir" ++ quality.s ! Q1 ! item.g ! item.n ! Ind ) ;
|
||||||
|
This = det Sg "šis" "šī" ;
|
||||||
|
That = det Sg "tas" "tā" ;
|
||||||
|
These = det Pl "šie" "šīs" ;
|
||||||
|
Those = det Pl "tie" "tās" ;
|
||||||
|
Mod quality kind = {s = \\n => quality.s ! Q1 ! kind.g ! n ! Def ++ kind.s ! n ; g = kind.g } ;
|
||||||
|
Wine = noun "vīns" "vīni" Masc ;
|
||||||
|
Cheese = noun "siers" "sieri" Masc ;
|
||||||
|
Fish = noun "zivs" "zivis" Fem ;
|
||||||
|
Pizza = noun "pica" "picas" Fem ;
|
||||||
|
Very qual = {s = \\q,g,n,spec => "ļoti" ++ qual.s ! Q2 ! g ! n ! spec };
|
||||||
|
|
||||||
|
Fresh = adjective "svaigs" "svaiga" "svaigi" "svaigas" "svaigais" "svaigā" "svaigie" "svaigās" ;
|
||||||
|
Warm = regAdj "silts" ;
|
||||||
|
Italian = specAdj "itāļu" (regAdj "itālisks") ;
|
||||||
|
Expensive = regAdj "dārgs" ;
|
||||||
|
Delicious = regAdj "garšīgs" ;
|
||||||
|
Boring = regAdj "garlaicīgs" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Gender = Masc | Fem ;
|
||||||
|
Defin = Ind | Def ;
|
||||||
|
Q = Q1 | Q2 ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
det : Number -> Str -> Str -> {s : Number => Str ; g : Gender} ->
|
||||||
|
{s : Str ; g : Gender ; n : Number} =
|
||||||
|
\n,m,f,cn -> {
|
||||||
|
s = case cn.g of {Masc => m ; Fem => f} ++ cn.s ! n ;
|
||||||
|
g = cn.g ;
|
||||||
|
n = n
|
||||||
|
} ;
|
||||||
|
noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
|
||||||
|
\man,men,g -> {
|
||||||
|
s = table {
|
||||||
|
Sg => man ;
|
||||||
|
Pl => men
|
||||||
|
} ;
|
||||||
|
g = g
|
||||||
|
} ;
|
||||||
|
adjective : (_,_,_,_,_,_,_,_ : Str) -> {s : Q => Gender => Number => Defin => Str} =
|
||||||
|
\skaists,skaista,skaisti,skaistas,skaistais,skaistaa,skaistie,skaistaas -> {
|
||||||
|
s = table {
|
||||||
|
_ => table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => table {Ind => skaists ; Def => skaistais} ;
|
||||||
|
Pl => table {Ind => skaisti ; Def => skaistie}
|
||||||
|
} ;
|
||||||
|
Fem => table {
|
||||||
|
Sg => table {Ind => skaista ; Def => skaistaa} ;
|
||||||
|
Pl => table {Ind => skaistas ; Def => skaistaas}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
{- irregAdj : Str -> {s : Gender => Number => Defin => Str} = \itaalju ->
|
||||||
|
let itaalju = itaalju
|
||||||
|
in adjective itaalju (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) ; -}
|
||||||
|
|
||||||
|
regAdj : Str -> {s : Q => Gender => Number => Defin => Str} = \skaists ->
|
||||||
|
let skaist = init skaists
|
||||||
|
in adjective skaists (skaist + "a") (skaist + "i") (skaist + "as") (skaist + "ais") (skaist + "ā") (skaist + "ie") (skaist + "ās");
|
||||||
|
|
||||||
|
Adjective : Type = {s : Q => Gender => Number => Defin => Str} ;
|
||||||
|
|
||||||
|
specAdj : Str -> Adjective -> Adjective = \s,a -> {
|
||||||
|
s = table {
|
||||||
|
Q2 => a.s ! Q1 ;
|
||||||
|
Q1 => \\_,_,_ => s
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
105
samples/Grammatical Framework/FoodsMlt.gf
Normal file
105
samples/Grammatical Framework/FoodsMlt.gf
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
-- (c) 2013 John J. Camilleri under LGPL
|
||||||
|
|
||||||
|
concrete FoodsMlt of Foods = open Prelude in {
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = SS ;
|
||||||
|
Quality = {s : Gender => Number => Str} ;
|
||||||
|
Kind = {s : Number => Str ; g : Gender} ;
|
||||||
|
Item = {s : Str ; g : Gender ; n : Number} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
-- Pred item quality = ss (item.s ++ copula item.n item.g ++ quality.s ! item.g ! item.n) ;
|
||||||
|
Pred item quality = ss (item.s ++ quality.s ! item.g ! item.n) ;
|
||||||
|
|
||||||
|
This kind = det Sg "dan" "din" kind ;
|
||||||
|
That kind = det Sg "dak" "dik" kind ;
|
||||||
|
These kind = det Pl "dawn" "" kind ;
|
||||||
|
Those kind = det Pl "dawk" "" kind ;
|
||||||
|
|
||||||
|
Mod quality kind = {
|
||||||
|
s = \\n => kind.s ! n ++ quality.s ! kind.g ! n ;
|
||||||
|
g = kind.g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
Wine = noun "inbid" "inbejjed" Masc ;
|
||||||
|
Cheese = noun "ġobon" "ġobniet" Masc ;
|
||||||
|
Fish = noun "ħuta" "ħut" Fem ;
|
||||||
|
Pizza = noun "pizza" "pizzez" Fem ;
|
||||||
|
|
||||||
|
Very qual = {s = \\g,n => qual.s ! g ! n ++ "ħafna"} ;
|
||||||
|
|
||||||
|
Warm = adjective "sħun" "sħuna" "sħan" ;
|
||||||
|
Expensive = adjective "għali" "għalja" "għaljin" ;
|
||||||
|
Delicious = adjective "tajjeb" "tajba" "tajbin" ;
|
||||||
|
Boring = uniAdj "tad-dwejjaq" ;
|
||||||
|
Fresh = regAdj "frisk" ;
|
||||||
|
Italian = regAdj "Taljan" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Gender = Masc | Fem ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
--Create an adjective (full function)
|
||||||
|
--Params: Sing Masc, Sing Fem, Plural
|
||||||
|
adjective : (_,_,_ : Str) -> {s : Gender => Number => Str} = \iswed,sewda,suwed -> {
|
||||||
|
s = table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => iswed ;
|
||||||
|
Pl => suwed
|
||||||
|
} ;
|
||||||
|
Fem => table {
|
||||||
|
Sg => sewda ;
|
||||||
|
Pl => suwed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
--Create a regular adjective
|
||||||
|
--Param: Sing Masc
|
||||||
|
regAdj : Str -> {s : Gender => Number => Str} = \frisk ->
|
||||||
|
adjective frisk (frisk + "a") (frisk + "i") ;
|
||||||
|
|
||||||
|
--Create a "uni-adjective" eg tal-buzz
|
||||||
|
--Param: Sing Masc
|
||||||
|
uniAdj : Str -> {s : Gender => Number => Str} = \uni ->
|
||||||
|
adjective uni uni uni ;
|
||||||
|
|
||||||
|
--Create a noun
|
||||||
|
--Params: Singular, Plural, Gender (inherent)
|
||||||
|
noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} = \ktieb,kotba,g -> {
|
||||||
|
s = table {
|
||||||
|
Sg => ktieb ;
|
||||||
|
Pl => kotba
|
||||||
|
} ;
|
||||||
|
g = g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
--Copula is a linking verb
|
||||||
|
--Params: Number, Gender
|
||||||
|
-- copula : Number -> Gender -> Str = \n,g -> case n of {
|
||||||
|
-- Sg => case g of { Masc => "huwa" ; Fem => "hija" } ;
|
||||||
|
-- Pl => "huma"
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
--Create an article, taking into account first letter of next word
|
||||||
|
article = pre {
|
||||||
|
"a"|"e"|"i"|"o"|"u" => "l-" ;
|
||||||
|
--cons@("ċ"|"d"|"n"|"r"|"s"|"t"|"x"|"ż") => "i" + cons + "-" ;
|
||||||
|
_ => "il-"
|
||||||
|
} ;
|
||||||
|
|
||||||
|
--Create a determinant
|
||||||
|
--Params: Sg/Pl, Masc, Fem
|
||||||
|
det : Number -> Str -> Str -> {s : Number => Str ; g : Gender} -> {s : Str ; g : Gender ; n : Number} = \n,m,f,cn -> {
|
||||||
|
s = case n of {
|
||||||
|
Sg => case cn.g of {Masc => m ; Fem => f}; --string
|
||||||
|
Pl => m --default to masc
|
||||||
|
} ++ article ++ cn.s ! n ;
|
||||||
|
g = cn.g ; --gender
|
||||||
|
n = n --number
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
49
samples/Grammatical Framework/FoodsMon.gf
Normal file
49
samples/Grammatical Framework/FoodsMon.gf
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
--# -path=.:/GF/lib/src/prelude
|
||||||
|
|
||||||
|
-- (c) 2009 Nyamsuren Erdenebadrakh under LGPL
|
||||||
|
|
||||||
|
concrete FoodsMon of Foods = open Prelude in {
|
||||||
|
flags coding=utf8;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment, Quality = SS ;
|
||||||
|
Kind = {s : Number => Str} ;
|
||||||
|
Item = {s : Str ; n : Number} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = ss (item.s ++ "бол" ++ quality.s) ;
|
||||||
|
This = det Sg "энэ" ;
|
||||||
|
That = det Sg "тэр" ;
|
||||||
|
These = det Pl "эдгээр" ;
|
||||||
|
Those = det Pl "тэдгээр" ;
|
||||||
|
Mod quality kind = {s = \\n => quality.s ++ kind.s ! n} ;
|
||||||
|
Wine = regNoun "дарс" ;
|
||||||
|
Cheese = regNoun "бяслаг" ;
|
||||||
|
Fish = regNoun "загас" ;
|
||||||
|
Pizza = regNoun "пицца" ;
|
||||||
|
Very = prefixSS "маш" ;
|
||||||
|
Fresh = ss "шинэ" ;
|
||||||
|
Warm = ss "халуун" ;
|
||||||
|
Italian = ss "итали" ;
|
||||||
|
Expensive = ss "үнэтэй" ;
|
||||||
|
Delicious = ss "амттай" ;
|
||||||
|
Boring = ss "амтгүй" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} =
|
||||||
|
\n,d,cn -> {
|
||||||
|
s = d ++ cn.s ! n ;
|
||||||
|
n = n
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regNoun : Str -> {s : Number => Str} =
|
||||||
|
\x -> {s = table {
|
||||||
|
Sg => x ;
|
||||||
|
Pl => x + "нууд"}
|
||||||
|
} ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
60
samples/Grammatical Framework/FoodsNep.gf
Normal file
60
samples/Grammatical Framework/FoodsNep.gf
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
-- (c) 2011 Dinesh Simkhada under LGPL
|
||||||
|
|
||||||
|
concrete FoodsNep of Foods = {
|
||||||
|
|
||||||
|
flags coding = utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment, Quality = {s : Str} ;
|
||||||
|
Kind = {s : Number => Str} ;
|
||||||
|
Item = {s : Str ; n : Number} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality =
|
||||||
|
{s = item.s ++ quality.s ++ copula ! item.n} ;
|
||||||
|
|
||||||
|
This = det Sg "यो" ;
|
||||||
|
That = det Sg "त्यो" ;
|
||||||
|
These = det Pl "यी" ;
|
||||||
|
Those = det Pl "ती" ;
|
||||||
|
Mod quality kind =
|
||||||
|
{s = \\n => quality.s ++ kind.s ! n} ;
|
||||||
|
|
||||||
|
Wine = regNoun "रक्सी" ;
|
||||||
|
Cheese = regNoun "चिज" ;
|
||||||
|
Fish = regNoun "माछा" ;
|
||||||
|
Pizza = regNoun "पिज्जा" ;
|
||||||
|
Very a = {s = "धेरै" ++ a.s} ;
|
||||||
|
Fresh = adj "ताजा" ;
|
||||||
|
Warm = adj "तातो" ;
|
||||||
|
Italian = adj "इटालियन" ;
|
||||||
|
Expensive = adj "महँगो" | adj "बहुमूल्य" ;
|
||||||
|
Delicious = adj "स्वादिष्ट" | adj "मीठो" ;
|
||||||
|
Boring = adjPl "नमिठो" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
det : Number -> Str ->
|
||||||
|
{s : Number => Str} -> {s : Str ; n : Number} =
|
||||||
|
\n,det,noun -> {s = det ++ noun.s ! n ; n = n} ;
|
||||||
|
|
||||||
|
noun : Str -> Str -> {s : Number => Str} =
|
||||||
|
\man,men -> {s = table {Sg => man ; Pl => men}} ;
|
||||||
|
|
||||||
|
regNoun : Str -> {s : Number => Str} =
|
||||||
|
\car -> noun car (car + "हरु") ;
|
||||||
|
|
||||||
|
adjPl : Str -> {s : Str} = \a -> case a of {
|
||||||
|
bor + "ठो" => adj (bor + "ठा") ;
|
||||||
|
_ => adj a
|
||||||
|
} ;
|
||||||
|
|
||||||
|
adj : Str -> {s : Str} =
|
||||||
|
\cold -> {s = cold} ;
|
||||||
|
|
||||||
|
copula : Number => Str =
|
||||||
|
table {Sg => "छ" ; Pl => "छन्"} ;
|
||||||
|
}
|
||||||
|
|
||||||
30
samples/Grammatical Framework/FoodsOri.gf
Normal file
30
samples/Grammatical Framework/FoodsOri.gf
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
concrete FoodsOri of Foods = {
|
||||||
|
|
||||||
|
flags coding = utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = Str;
|
||||||
|
Item = Str;
|
||||||
|
Kind = Str;
|
||||||
|
Quality = Str;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = item ++ quality ++ "ଅଟେ";
|
||||||
|
This kind = "ଏଇ" ++ kind;
|
||||||
|
That kind = "ସେଇ" ++ kind;
|
||||||
|
These kind = "ଏଇ" ++ kind ++ "ଗୁଡିକ" ;
|
||||||
|
Those kind = "ସେଇ" ++ kind ++ "ଗୁଡିକ" ;
|
||||||
|
Mod quality kind = quality ++ kind;
|
||||||
|
Wine = "ମଦ";
|
||||||
|
Cheese = "ଛେନା";
|
||||||
|
Fish = "ମାଛ";
|
||||||
|
Pizza = "ପିଜଜ଼ା" ;
|
||||||
|
Very quality = "ଅତି" ++ quality;
|
||||||
|
Fresh = "ତାଜା";
|
||||||
|
Warm = "ଗରମ";
|
||||||
|
Italian = "ଇଟାଲି";
|
||||||
|
Expensive = "ମୁଲ୍ୟବାନ୍";
|
||||||
|
Delicious = "ସ୍ଵାଦିସ୍ଟ ";
|
||||||
|
Boring = "ଅରୁଚିକର";
|
||||||
|
|
||||||
|
}
|
||||||
65
samples/Grammatical Framework/FoodsPes.gf
Normal file
65
samples/Grammatical Framework/FoodsPes.gf
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
concrete FoodsPes of Foods = {
|
||||||
|
|
||||||
|
flags optimize=noexpand ; coding=utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str} ;
|
||||||
|
Quality = {s : Add => Str; prep : Str} ;
|
||||||
|
Kind = {s : Add => Number => Str ; prep : Str};
|
||||||
|
Item = {s : Str ; n : Number};
|
||||||
|
lin
|
||||||
|
Pred item quality = {s = item.s ++ quality.s ! Indep ++ copula ! item.n} ;
|
||||||
|
This = det Sg "این" ;
|
||||||
|
That = det Sg "آن" ;
|
||||||
|
These = det Pl "این" ;
|
||||||
|
Those = det Pl "آن" ;
|
||||||
|
|
||||||
|
Mod quality kind = {s = \\a,n => kind.s ! Attr ! n ++ kind.prep ++ quality.s ! a ;
|
||||||
|
prep = quality.prep
|
||||||
|
};
|
||||||
|
Wine = regN "شراب" ;
|
||||||
|
Cheese = regN "پنیر" ;
|
||||||
|
Fish = regN "ماهى" ;
|
||||||
|
Pizza = regN "پیتزا" ;
|
||||||
|
Very a = {s = \\at => "خیلی" ++ a.s ! at ; prep = a.prep} ;
|
||||||
|
Fresh = adj "تازه" ;
|
||||||
|
Warm = adj "گرم" ;
|
||||||
|
Italian = adj "ایتالیایی" ;
|
||||||
|
Expensive = adj "گران" ;
|
||||||
|
Delicious = adj "لذىذ" ;
|
||||||
|
Boring = adj "ملال آور" ; -- it must be written as ملال آور.
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Add = Indep | Attr ;
|
||||||
|
oper
|
||||||
|
det : Number -> Str -> {s: Add => Number => Str ; prep : Str} -> {s : Str ; n: Number} =
|
||||||
|
\n,det,noun -> {s = det ++ noun.s ! Indep ! n ; n = n };
|
||||||
|
|
||||||
|
noun : (x1,_,_,x4 : Str) -> {s : Add => Number => Str ; prep : Str} = \pytzA, pytzAy, pytzAhA,pr ->
|
||||||
|
{s = \\a,n => case <a,n> of
|
||||||
|
{<Indep,Sg> => pytzA ; <Indep,Pl> => pytzAhA ;
|
||||||
|
<Attr,Sg> =>pytzA ; <Attr,Pl> => pytzAhA + "ى" };
|
||||||
|
prep = pr
|
||||||
|
};
|
||||||
|
|
||||||
|
regN : Str -> {s: Add => Number => Str ; prep : Str} = \mrd ->
|
||||||
|
case mrd of
|
||||||
|
{ _ + ("ا"|"ه"|"ى"|"و"|"") => noun mrd (mrd+"ى") (mrd + "ها") "";
|
||||||
|
_ => noun mrd mrd (mrd + "ها") "e"
|
||||||
|
};
|
||||||
|
|
||||||
|
adj : Str -> {s : Add => Str; prep : Str} = \tAzh ->
|
||||||
|
case tAzh of
|
||||||
|
{ _ + ("ا"|"ه"|"ى"|"و"|"") => mkAdj tAzh (tAzh ++ "ى") "" ;
|
||||||
|
_ => mkAdj tAzh tAzh "ه"
|
||||||
|
};
|
||||||
|
|
||||||
|
mkAdj : Str -> Str -> Str -> {s : Add => Str; prep : Str} = \tAzh, tAzhy, pr ->
|
||||||
|
{s = table {Indep => tAzh;
|
||||||
|
Attr => tAzhy};
|
||||||
|
prep = pr
|
||||||
|
};
|
||||||
|
copula : Number => Str = table {Sg => "است"; Pl => "هستند"};
|
||||||
|
|
||||||
|
}
|
||||||
79
samples/Grammatical Framework/FoodsPor.gf
Normal file
79
samples/Grammatical Framework/FoodsPor.gf
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
-- (c) 2009 Rami Shashati under LGPL
|
||||||
|
|
||||||
|
concrete FoodsPor of Foods = open Prelude in {
|
||||||
|
flags coding=utf8;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str} ;
|
||||||
|
Quality = {s : Gender => Number => Str} ;
|
||||||
|
Kind = {s : Number => Str ; g : Gender} ;
|
||||||
|
Item = {s : Str ; n : Number ; g : Gender } ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality =
|
||||||
|
{s = item.s ++ copula ! item.n ++ quality.s ! item.g ! item.n } ;
|
||||||
|
This = det Sg (table {Masc => "este" ; Fem => "esta"}) ;
|
||||||
|
That = det Sg (table {Masc => "esse" ; Fem => "essa"}) ;
|
||||||
|
These = det Pl (table {Masc => "estes" ; Fem => "estas"}) ;
|
||||||
|
Those = det Pl (table {Masc => "esses" ; Fem => "essas"}) ;
|
||||||
|
|
||||||
|
Mod quality kind = { s = \\n => kind.s ! n ++ quality.s ! kind.g ! n ; g = kind.g } ;
|
||||||
|
|
||||||
|
Wine = regNoun "vinho" Masc ;
|
||||||
|
Cheese = regNoun "queijo" Masc ;
|
||||||
|
Fish = regNoun "peixe" Masc ;
|
||||||
|
Pizza = regNoun "pizza" Fem ;
|
||||||
|
|
||||||
|
Very a = { s = \\g,n => "muito" ++ a.s ! g ! n } ;
|
||||||
|
|
||||||
|
Fresh = mkAdjReg "fresco" ;
|
||||||
|
Warm = mkAdjReg "quente" ;
|
||||||
|
Italian = mkAdjReg "Italiano" ;
|
||||||
|
Expensive = mkAdjReg "caro" ;
|
||||||
|
Delicious = mkAdjReg "delicioso" ;
|
||||||
|
Boring = mkAdjReg "chato" ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Gender = Masc | Fem ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
QualityT : Type = {s : Gender => Number => Str} ;
|
||||||
|
|
||||||
|
mkAdj : (_,_,_,_ : Str) -> QualityT = \bonito,bonita,bonitos,bonitas -> {
|
||||||
|
s = table {
|
||||||
|
Masc => table { Sg => bonito ; Pl => bonitos } ;
|
||||||
|
Fem => table { Sg => bonita ; Pl => bonitas }
|
||||||
|
} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- regular pattern
|
||||||
|
adjSozinho : Str -> QualityT = \sozinho ->
|
||||||
|
let sozinh = Predef.tk 1 sozinho
|
||||||
|
in mkAdj sozinho (sozinh + "a") (sozinh + "os") (sozinh + "as") ;
|
||||||
|
|
||||||
|
-- for gender-independent adjectives
|
||||||
|
adjUtil : Str -> Str -> QualityT = \util,uteis ->
|
||||||
|
mkAdj util util uteis uteis ;
|
||||||
|
|
||||||
|
-- smart paradigm for adjcetives
|
||||||
|
mkAdjReg : Str -> QualityT = \a -> case last a of {
|
||||||
|
"o" => adjSozinho a ;
|
||||||
|
"e" => adjUtil a (a + "s")
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ItemT : Type = {s : Str ; n : Number ; g : Gender } ;
|
||||||
|
|
||||||
|
det : Number -> (Gender => Str) -> KindT -> ItemT =
|
||||||
|
\num,det,noun -> {s = det ! noun.g ++ noun.s ! num ; n = num ; g = noun.g } ;
|
||||||
|
|
||||||
|
KindT : Type = {s : Number => Str ; g : Gender} ;
|
||||||
|
|
||||||
|
noun : Str -> Str -> Gender -> KindT =
|
||||||
|
\animal,animais,gen -> {s = table {Sg => animal ; Pl => animais} ; g = gen } ;
|
||||||
|
|
||||||
|
regNoun : Str -> Gender -> KindT =
|
||||||
|
\carro,gen -> noun carro (carro + "s") gen ;
|
||||||
|
|
||||||
|
copula : Number => Str = table {Sg => "é" ; Pl => "são"} ;
|
||||||
|
}
|
||||||
72
samples/Grammatical Framework/FoodsRon.gf
Normal file
72
samples/Grammatical Framework/FoodsRon.gf
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
-- (c) 2009 Ramona Enache under LGPL
|
||||||
|
|
||||||
|
concrete FoodsRon of Foods =
|
||||||
|
{
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
param Number = Sg | Pl ;
|
||||||
|
Gender = Masc | Fem ;
|
||||||
|
NGender = NMasc | NFem | NNeut ;
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str};
|
||||||
|
Quality = {s : Number => Gender => Str};
|
||||||
|
Kind = {s : Number => Str; g : NGender};
|
||||||
|
Item = {s : Str ; n : Number; g : Gender};
|
||||||
|
|
||||||
|
lin
|
||||||
|
|
||||||
|
This = det Sg (mkTab "acest" "această");
|
||||||
|
That = det Sg (mkTab "acel" "acea");
|
||||||
|
These = det Pl (mkTab "acești" "aceste");
|
||||||
|
Those = det Pl (mkTab "acei" "acele");
|
||||||
|
|
||||||
|
Wine = mkNoun "vin" "vinuri" NNeut ;
|
||||||
|
Cheese = mkNoun "brânză" "brânzeturi" NFem ;
|
||||||
|
Fish = mkNoun "peşte" "peşti" NMasc ;
|
||||||
|
Pizza = mkNoun "pizza" "pizze" NFem;
|
||||||
|
|
||||||
|
Very a = {s = \\n,g => "foarte" ++ a.s ! n ! g};
|
||||||
|
|
||||||
|
Fresh = mkAdj "proaspăt" "proaspătă" "proaspeţi" "proaspete" ;
|
||||||
|
Warm = mkAdj "cald" "caldă" "calzi" "calde" ;
|
||||||
|
Italian = mkAdj "italian" "italiană" "italieni" "italiene" ;
|
||||||
|
Expensive = mkAdj "scump" "scumpă" "scumpi" "scumpe" ;
|
||||||
|
Delicious = mkAdj "delicios" "delcioasă" "delicioşi" "delicioase" ;
|
||||||
|
Boring = mkAdj "plictisitor" "plictisitoare" "plictisitori" "plictisitoare" ;
|
||||||
|
|
||||||
|
Pred item quality = {s = item.s ++ copula ! item.n ++ quality.s ! item.n ! item.g} ;
|
||||||
|
|
||||||
|
Mod quality kind = {s = \\n => kind.s ! n ++ quality.s ! n ! (getAgrGender kind.g n) ; g = kind.g};
|
||||||
|
|
||||||
|
oper
|
||||||
|
|
||||||
|
mkTab : Str -> Str -> {s : Gender => Str} = \acesta, aceasta ->
|
||||||
|
{s = table{Masc => acesta;
|
||||||
|
Fem => aceasta}};
|
||||||
|
|
||||||
|
det : Number -> {s : Gender => Str} -> {s : Number => Str ; g : NGender} -> {s : Str; n : Number; g : Gender} =
|
||||||
|
\n,det,noun -> let gg = getAgrGender noun.g n
|
||||||
|
in
|
||||||
|
{s = det.s ! gg ++ noun.s ! n ; n = n ; g = gg};
|
||||||
|
|
||||||
|
mkNoun : Str -> Str -> NGender -> {s : Number => Str; g : NGender} = \peste, pesti,g ->
|
||||||
|
{s = table {Sg => peste;
|
||||||
|
Pl => pesti};
|
||||||
|
g = g
|
||||||
|
};
|
||||||
|
|
||||||
|
oper mkAdj : (x1,_,_,x4 : Str) -> {s : Number => Gender => Str} = \scump, scumpa, scumpi, scumpe ->
|
||||||
|
{s = \\n,g => case <n,g> of
|
||||||
|
{<Sg,Masc> => scump ; <Sg,Fem> => scumpa;
|
||||||
|
<Pl,Masc> => scumpi ; <Pl,Fem> => scumpe
|
||||||
|
}};
|
||||||
|
|
||||||
|
copula : Number => Str = table {Sg => "este" ; Pl => "sunt"};
|
||||||
|
|
||||||
|
getAgrGender : NGender -> Number -> Gender = \ng,n ->
|
||||||
|
case <ng,n> of
|
||||||
|
{<NMasc,_> => Masc ; <NFem,_> => Fem;
|
||||||
|
<NNeut,Sg> => Masc ; <NNeut,Pl> => Fem
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
31
samples/Grammatical Framework/FoodsSpa.gf
Normal file
31
samples/Grammatical Framework/FoodsSpa.gf
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
concrete FoodsSpa of Foods = open SyntaxSpa, StructuralSpa, ParadigmsSpa in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = Utt ;
|
||||||
|
Item = NP ;
|
||||||
|
Kind = CN ;
|
||||||
|
Quality = AP ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = mkUtt (mkCl item quality) ;
|
||||||
|
This kind = mkNP this_QuantSg kind ;
|
||||||
|
That kind = mkNP that_QuantSg kind ;
|
||||||
|
These kind = mkNP these_QuantPl kind ;
|
||||||
|
Those kind = mkNP those_QuantPl kind ;
|
||||||
|
Mod quality kind = mkCN quality kind ;
|
||||||
|
Very quality = mkAP very_AdA quality ;
|
||||||
|
Wine = mkCN (mkN "vino") ;
|
||||||
|
Pizza = mkCN (mkN "pizza") ;
|
||||||
|
Cheese = mkCN (mkN "queso") ;
|
||||||
|
Fish = mkCN (mkN "pescado") ;
|
||||||
|
Fresh = mkAP (mkA "fresco") ;
|
||||||
|
Warm = mkAP (mkA "caliente") ;
|
||||||
|
Italian = mkAP (mkA "italiano") ;
|
||||||
|
Expensive = mkAP (mkA "caro") ;
|
||||||
|
Delicious = mkAP (mkA "delicioso") ;
|
||||||
|
Boring = mkAP (mkA "aburrido") ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
7
samples/Grammatical Framework/FoodsSwe.gf
Normal file
7
samples/Grammatical Framework/FoodsSwe.gf
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
concrete FoodsSwe of Foods = FoodsI with
|
||||||
|
(Syntax = SyntaxSwe),
|
||||||
|
(LexFoods = LexFoodsSwe) ** {flags language = sv_SE;} ;
|
||||||
33
samples/Grammatical Framework/FoodsTha.gf
Normal file
33
samples/Grammatical Framework/FoodsTha.gf
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
--# -path=.:alltenses
|
||||||
|
|
||||||
|
concrete FoodsTha of Foods = open SyntaxTha, LexiconTha,
|
||||||
|
ParadigmsTha, (R=ResTha) in {
|
||||||
|
|
||||||
|
flags coding = utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = Utt ;
|
||||||
|
Item = NP ;
|
||||||
|
Kind = CN ;
|
||||||
|
Quality = AP ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = mkUtt (mkCl item quality) ;
|
||||||
|
This kind = mkNP this_Det kind ;
|
||||||
|
That kind = mkNP that_Det kind ;
|
||||||
|
These kind = mkNP these_Det kind ;
|
||||||
|
Those kind = mkNP those_Det kind ;
|
||||||
|
Mod quality kind = mkCN quality kind ;
|
||||||
|
Very quality = mkAP very_AdA quality ;
|
||||||
|
Wine = mkCN (mkN (R.thword "เหล้าอ" "งุ่น") "ขวด") ;
|
||||||
|
Pizza = mkCN (mkN (R.thword "พิซ" "ซา") "ถาด") ;
|
||||||
|
Cheese = mkCN (mkN (R.thword "เนย" "แข็ง") "ก้อน") ;
|
||||||
|
Fish = mkCN fish_N ;
|
||||||
|
Fresh = mkAP (mkA "สด") ;
|
||||||
|
Warm = mkAP warm_A ;
|
||||||
|
Italian = mkAP (mkA " อิตาลี") ;
|
||||||
|
Expensive = mkAP (mkA "แพง") ;
|
||||||
|
Delicious = mkAP (mkA "อร่อย") ;
|
||||||
|
Boring = mkAP (mkA (R.thword "น่า" "เบิ่อ")) ;
|
||||||
|
|
||||||
|
}
|
||||||
178
samples/Grammatical Framework/FoodsTsn.gf
Normal file
178
samples/Grammatical Framework/FoodsTsn.gf
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
--# -path=alltenses
|
||||||
|
|
||||||
|
-- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL
|
||||||
|
|
||||||
|
concrete FoodsTsn of Foods = open Prelude, Predef in {
|
||||||
|
flags coding = utf8;
|
||||||
|
lincat
|
||||||
|
Comment = {s:Str};
|
||||||
|
Item = {s:Str; c:NounClass; n:Number};
|
||||||
|
Kind = {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool};
|
||||||
|
Quality = {s: NounClass => Number => Str; p_form: Str; t: TType};
|
||||||
|
lin
|
||||||
|
Pred item quality = {s = item.s ++ ((mkPredDescrCop quality.t) ! item.c ! item.n) ++ quality.p_form};
|
||||||
|
|
||||||
|
This kind = {s = (kind.w ! Sg) ++ (mkDemPron1 ! kind.c ! Sg) ++ (kind.q ! Sg); c = kind.c; n = Sg};
|
||||||
|
That kind = {s = (kind.w ! Sg) ++ (mkDemPron2 ! kind.c ! Sg) ++ (kind.q ! Sg); c = kind.c; n = Sg};
|
||||||
|
These kind = {s = (kind.w ! Pl) ++ (mkDemPron1 ! kind.c ! Pl) ++ (kind.q ! Pl); c = kind.c; n = Pl};
|
||||||
|
Those kind = {s = (kind.w ! Pl) ++ (mkDemPron2 ! kind.c ! Pl) ++ (kind.q ! Pl); c = kind.c; n = Pl};
|
||||||
|
|
||||||
|
Mod quality kind = mkMod quality kind;
|
||||||
|
|
||||||
|
-- Lexicon
|
||||||
|
Wine = mkNounNC14_6 "jalwa";
|
||||||
|
Cheese = mkNounNC9_10 "kase";
|
||||||
|
Fish = mkNounNC9_10 "thlapi";
|
||||||
|
Pizza = mkNounNC9_10 "pizza";
|
||||||
|
Very quality = smartVery quality;
|
||||||
|
Fresh = mkVarAdj "ntsha";
|
||||||
|
Warm = mkOrdAdj "bothitho";
|
||||||
|
Italian = mkPerAdj "Itali";
|
||||||
|
Expensive = mkVerbRel "tura";
|
||||||
|
Delicious = mkOrdAdj "monate";
|
||||||
|
Boring = mkOrdAdj "bosula";
|
||||||
|
|
||||||
|
param
|
||||||
|
NounClass = NC9_10 | NC14_6;
|
||||||
|
Number = Sg | Pl;
|
||||||
|
TType = P | V | ModV | R ;
|
||||||
|
oper
|
||||||
|
mkMod : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str;
|
||||||
|
b: Bool} = \x,y -> case y.b of
|
||||||
|
{
|
||||||
|
True => {w = y.w; r = y.r; c = y.c;
|
||||||
|
q = table {
|
||||||
|
Sg => ((y.q ! Sg) ++ "le" ++ ((smartQualRelPart (x.t)) ! y.c ! Sg) ++ ((smartDescrCop (x.t)) ! y.c ! Sg) ++ (x.s ! y.c ! Sg));
|
||||||
|
Pl => ((y.q ! Pl) ++ "le" ++ ((smartQualRelPart (x.t))! y.c ! Pl) ++ ((smartDescrCop (x.t)) ! y.c ! Pl) ++(x.s ! y.c ! Pl))
|
||||||
|
}; b = True
|
||||||
|
};
|
||||||
|
False => {w = y.w; r = y.r; c = y.c;
|
||||||
|
q = table {
|
||||||
|
Sg => ((y.q ! Sg) ++ ((smartQualRelPart (x.t)) ! y.c ! Sg) ++ ((smartDescrCop (x.t)) ! y.c ! Sg) ++ (x.s ! y.c ! Sg));
|
||||||
|
Pl => ((y.q ! Pl) ++ ((smartQualRelPart (x.t)) ! y.c ! Pl) ++ ((smartDescrCop (x.t)) ! y.c ! Pl) ++(x.s ! y.c ! Pl))
|
||||||
|
}; b = True
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mkNounNC14_6 : Str -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} = \x -> {w = table {Sg => "bo" + x; Pl => "ma" + x}; r = x; c = NC14_6;
|
||||||
|
q = table {Sg => ""; Pl => ""}; b = False};
|
||||||
|
|
||||||
|
mkNounNC9_10 : Str -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} = \x -> {w = table {Sg => "" + x; Pl => "di" + x}; r = x; c = NC9_10;
|
||||||
|
q = table {Sg => ""; Pl => ""}; b = False};
|
||||||
|
|
||||||
|
mkVarAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
|
||||||
|
{
|
||||||
|
s = table {
|
||||||
|
NC9_10 => table {Sg => "" + x; Pl => "di" + x};
|
||||||
|
NC14_6 => table {Sg => "bo" + x; Pl => "ma" + x}
|
||||||
|
};
|
||||||
|
p_form = x;
|
||||||
|
t = R;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkOrdAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
|
||||||
|
{
|
||||||
|
s = table {
|
||||||
|
NC9_10 => table {Sg => "" + x; Pl => "" + x};
|
||||||
|
NC14_6 => table {Sg => "" + x; Pl => "" + x}
|
||||||
|
};
|
||||||
|
p_form = x;
|
||||||
|
t = R;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkVerbRel : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
|
||||||
|
{
|
||||||
|
s = table {
|
||||||
|
NC9_10 => table {Sg => x + "ng"; Pl => x + "ng"};
|
||||||
|
NC14_6 => table {Sg => x + "ng"; Pl => x + "ng"}
|
||||||
|
};
|
||||||
|
p_form = x;
|
||||||
|
t = V;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkPerAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
|
||||||
|
{
|
||||||
|
s = table {
|
||||||
|
NC9_10 => table {Sg => "" + x; Pl => "" + x};
|
||||||
|
NC14_6 => table {Sg => "" + x; Pl => "" + x}
|
||||||
|
};
|
||||||
|
p_form = "mo" ++ x;
|
||||||
|
t = P;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkVeryAdj : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
|
||||||
|
{
|
||||||
|
s = table{c => table{n => (x.s!c!n) ++ "thata"}}; p_form = x.p_form ++ "thata"; t = x.t
|
||||||
|
};
|
||||||
|
|
||||||
|
mkVeryVerb : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
|
||||||
|
{
|
||||||
|
s = table{c => table{n => (x.s!c!n) ++ "thata"}}; p_form = x.p_form ++ "thata"; t = ModV
|
||||||
|
};
|
||||||
|
|
||||||
|
smartVery : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} =
|
||||||
|
\x -> case x.t of --(x.s!c!n)
|
||||||
|
{
|
||||||
|
(V | ModV) => mkVeryVerb x;
|
||||||
|
--ModV => mkVeryVerb x;
|
||||||
|
_ => mkVeryAdj x
|
||||||
|
};
|
||||||
|
|
||||||
|
mkDemPron1 : NounClass => Number => Str = table
|
||||||
|
{
|
||||||
|
NC9_10 => table {Sg => "e"; Pl => "tse"};
|
||||||
|
NC14_6 => table {Sg => "bo"; Pl => "a"}
|
||||||
|
};
|
||||||
|
|
||||||
|
mkDemPron2 : NounClass => Number => Str = table
|
||||||
|
{
|
||||||
|
NC9_10 => table {Sg => "eo"; Pl => "tseo"};
|
||||||
|
NC14_6 => table {Sg => "boo"; Pl => "ao"}
|
||||||
|
};
|
||||||
|
|
||||||
|
smartQualRelPart : TType -> (NounClass => Number => Str) = \x -> case x of
|
||||||
|
{
|
||||||
|
P => mkQualRelPart_PName;
|
||||||
|
_ => mkQualRelPart
|
||||||
|
};
|
||||||
|
|
||||||
|
mkQualRelPart : NounClass => Number => Str = table
|
||||||
|
{
|
||||||
|
NC9_10 => table {Sg => "e"; Pl => "tse"};
|
||||||
|
NC14_6 => table {Sg => "bo"; Pl => "a"}
|
||||||
|
};
|
||||||
|
|
||||||
|
mkQualRelPart_PName : NounClass => Number => Str = table
|
||||||
|
{
|
||||||
|
NC9_10 => table {Sg => "ya"; Pl => "tsa"};
|
||||||
|
NC14_6 => table {Sg => "ba"; Pl => "a"}
|
||||||
|
};
|
||||||
|
|
||||||
|
smartDescrCop : TType -> (NounClass => Number => Str) = \x -> case x of
|
||||||
|
{
|
||||||
|
P => mkDescrCop_PName;
|
||||||
|
_ => mkDescrCop
|
||||||
|
};
|
||||||
|
|
||||||
|
mkDescrCop : NounClass => Number => Str = table
|
||||||
|
{
|
||||||
|
NC9_10 => table {Sg => "e"; Pl => "di"};
|
||||||
|
NC14_6 => table {Sg => "bo"; Pl => "a"}
|
||||||
|
};
|
||||||
|
|
||||||
|
mkDescrCop_PName : NounClass => Number => Str = table
|
||||||
|
{
|
||||||
|
NC9_10 => table {Sg => "ga"; Pl => "ga"};
|
||||||
|
NC14_6 => table {Sg => "ga"; Pl => "ga"}
|
||||||
|
};
|
||||||
|
|
||||||
|
mkPredDescrCop : TType -> (NounClass => Number => Str) = \x -> case x of
|
||||||
|
{
|
||||||
|
V => table {NC9_10 => table {Sg => "e" ++ "a"; Pl => "di" ++ "a"};
|
||||||
|
NC14_6 => table {Sg => "bo" ++ "a"; Pl => "a" ++ "a"}};
|
||||||
|
|
||||||
|
_ => table {NC9_10 => table {Sg => "e"; Pl => "di"};
|
||||||
|
NC14_6 => table {Sg => "bo"; Pl => "a"}}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
140
samples/Grammatical Framework/FoodsTur.gf
Normal file
140
samples/Grammatical Framework/FoodsTur.gf
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
{-
|
||||||
|
File : FoodsTur.gf
|
||||||
|
Author : Server Çimen
|
||||||
|
Version : 1.0
|
||||||
|
Created on: August 26, 2009
|
||||||
|
|
||||||
|
This file contains concrete grammar of Foods abstract grammar for Turkish Language.
|
||||||
|
This grammar is to be used for Fridge demo and developed in the scope of GF Resource
|
||||||
|
Grammar Summer School.
|
||||||
|
|
||||||
|
-}
|
||||||
|
|
||||||
|
concrete FoodsTur of Foods = open Predef in {
|
||||||
|
flags
|
||||||
|
coding=utf8 ;
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str} ;
|
||||||
|
Quality = {s : Str ; c : Case; softness : Softness; h : Harmony} ;
|
||||||
|
Kind = {s : Case => Number => Str} ;
|
||||||
|
Item = {s : Str; n : Number} ;
|
||||||
|
lin
|
||||||
|
This = det Sg "bu" ;
|
||||||
|
That = det Sg "şu" ;
|
||||||
|
These = det Pl "bu" ;
|
||||||
|
Those = det Pl "şu" ;
|
||||||
|
-- Reason for excluding plural form of copula: In Turkish if subject is not a human being,
|
||||||
|
-- then singular form of copula is used regardless of the number of subject. Since all
|
||||||
|
-- possible subjects are non human, copula do not need to have plural form.
|
||||||
|
Pred item quality = {s = item.s ++ quality.s ++ "&+" ++ copula ! quality.softness ! quality.h} ;--! item.n} ;
|
||||||
|
Mod quality kind = {s = case quality.c of {
|
||||||
|
Nom => \\t,n => quality.s ++ kind.s ! t ! n ;
|
||||||
|
Gen => \\t,n => quality.s ++ kind.s ! Gen ! n
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Wine = mkN "şarap" "şaraplar" "şarabı" "şarapları" ;
|
||||||
|
Cheese = mkN "peynir" "peynirler" "peyniri" "peynirleri" ;
|
||||||
|
Fish = mkN "balık" "balıklar" "balığı" "balıkları" ;
|
||||||
|
Pizza = mkN "pizza" "pizzalar" "pizzası" "pizzaları" ;
|
||||||
|
Very a = {s = "çok" ++ a.s ; c = a.c; softness = a.softness; h = a.h} ;
|
||||||
|
Fresh = adj "taze" Nom;
|
||||||
|
Warm = adj "ılık" Nom;
|
||||||
|
Italian = adj "İtalyan" Gen ;
|
||||||
|
Expensive = adj "pahalı" Nom;
|
||||||
|
Delicious = adj "lezzetli" Nom;
|
||||||
|
Boring = adj "sıkıcı" Nom;
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Case = Nom | Gen ;
|
||||||
|
Harmony = I_Har | Ih_Har | U_Har | Uh_Har ; --Ih = İ; Uh = Ü
|
||||||
|
Softness = Soft | Hard ;
|
||||||
|
oper
|
||||||
|
det : Number -> Str -> {s : Case => Number => Str} -> {s : Str; n : Number} =
|
||||||
|
\num,det,noun -> {s = det ++ noun.s ! Nom ! num; n = num} ;
|
||||||
|
mkN = overload {
|
||||||
|
mkN : Str -> Str -> {s : Case => Number => Str} = regNoun ;
|
||||||
|
mkn : Str -> Str -> Str -> Str-> {s : Case => Number => Str} = noun ;
|
||||||
|
} ;
|
||||||
|
regNoun : Str -> Str -> {s : Case => Number => Str} =
|
||||||
|
\peynir,peynirler -> noun peynir peynirler [] [] ;
|
||||||
|
noun : Str -> Str -> Str -> Str-> {s : Case => Number => Str} =
|
||||||
|
\sarap,saraplar,sarabi,saraplari -> {
|
||||||
|
s = table {
|
||||||
|
Nom => table {
|
||||||
|
Sg => sarap ;
|
||||||
|
Pl => saraplar
|
||||||
|
} ;
|
||||||
|
Gen => table {
|
||||||
|
Sg => sarabi ;
|
||||||
|
Pl => saraplari
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
{-
|
||||||
|
Since there is a bug in overloading, this overload is useless.
|
||||||
|
|
||||||
|
mkA = overload {
|
||||||
|
mkA : Str -> {s : Str; c : Case; softness : Softness; h : Harmony} = \base -> adj base Nom ;
|
||||||
|
mkA : Str -> Case -> {s : Str; c : Case; softness : Softness; h : Harmony} = adj ;
|
||||||
|
} ;
|
||||||
|
-}
|
||||||
|
adj : Str -> Case -> {s : Str; c : Case; softness : Softness; h : Harmony} =
|
||||||
|
\italyan,ca -> {s = italyan ; c = ca; softness = (getSoftness italyan); h = (getHarmony italyan)} ;
|
||||||
|
-- See the comment at lines 26 and 27 for excluded plural form of copula.
|
||||||
|
copula : Softness => Harmony {-=> Number-} => Str =
|
||||||
|
table {
|
||||||
|
Soft => table {
|
||||||
|
I_Har => "dır" ;--table {
|
||||||
|
-- Sg => "dır" ;
|
||||||
|
-- Pl => "dırlar"
|
||||||
|
--} ;
|
||||||
|
Ih_Har => "dir" ;--table {
|
||||||
|
--Sg => "dir" ;
|
||||||
|
--Pl => "dirler"
|
||||||
|
--} ;
|
||||||
|
U_Har => "dur" ;--table {
|
||||||
|
-- Sg => "dur" ;
|
||||||
|
-- Pl => "durlar"
|
||||||
|
--} ;
|
||||||
|
Uh_Har => "dür" --table {
|
||||||
|
--Sg => "dür" ;
|
||||||
|
--Pl => "dürler"
|
||||||
|
--}
|
||||||
|
} ;
|
||||||
|
Hard => table {
|
||||||
|
I_Har => "tır" ;--table {
|
||||||
|
--Sg => "tır" ;
|
||||||
|
--Pl => "tırlar"
|
||||||
|
--} ;
|
||||||
|
Ih_Har => "tir" ;--table {
|
||||||
|
--Sg => "tir" ;
|
||||||
|
--Pl => "tirler"
|
||||||
|
--} ;
|
||||||
|
U_Har => "tur" ;--table {
|
||||||
|
-- Sg => "tur" ;
|
||||||
|
-- Pl => "turlar"
|
||||||
|
--} ;
|
||||||
|
Uh_Har => "tür"--table {
|
||||||
|
--Sg => "tür" ;
|
||||||
|
--Pl => "türler"
|
||||||
|
--}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
getHarmony : Str -> Harmony
|
||||||
|
= \base -> case base of {
|
||||||
|
_+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
|
||||||
|
("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* =>
|
||||||
|
case c of {
|
||||||
|
("ı"|"a") => I_Har ;
|
||||||
|
("i"|"e") => Ih_Har ;
|
||||||
|
("u"|"o") => U_Har ;
|
||||||
|
("ü"|"ö") => Uh_Har
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
getSoftness : Str -> Softness
|
||||||
|
= \base -> case base of {
|
||||||
|
_+("f"|"s"|"t"|"k"|"ç"|"ş"|"h"|"p") => Hard ;
|
||||||
|
_ => Soft
|
||||||
|
} ;
|
||||||
|
}
|
||||||
53
samples/Grammatical Framework/FoodsUrd.gf
Normal file
53
samples/Grammatical Framework/FoodsUrd.gf
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
-- (c) 2009 Shafqat Virk under LGPL
|
||||||
|
|
||||||
|
concrete FoodsUrd of Foods = {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
|
||||||
|
param Number = Sg | Pl ;
|
||||||
|
param Gender = Masc | Fem;
|
||||||
|
|
||||||
|
oper coupla : Number -> Str =\n -> case n of {Sg => "ہے" ; Pl => "ہیں"};
|
||||||
|
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str} ;
|
||||||
|
Item = {s: Str ; n: Number ; g:Gender};
|
||||||
|
Kind = {s: Number => Str ; g:Gender};
|
||||||
|
Quality = {s: Gender => Number => Str};
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = {s = item.s ++ quality.s ! item.g ! item.n ++ coupla item.n} ;
|
||||||
|
This kind = {s = "یھ" ++ kind.s ! Sg; n= Sg ; g = kind.g } ;
|
||||||
|
These kind = {s = "یھ" ++ kind.s ! Pl; n = Pl ; g = kind.g} ;
|
||||||
|
That kind = {s = "وہ" ++ kind.s ! Sg; n= Sg ; g = kind.g} ;
|
||||||
|
Those kind = {s = "وہ" ++ kind.s ! Pl; n=Pl ; g = kind.g} ;
|
||||||
|
Mod quality kind = {s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ; g = kind.g};
|
||||||
|
Wine = {s = table { Sg => "شراب" ; Pl => "شرابیں"} ; g = Fem};
|
||||||
|
Cheese = {s = table { Sg => "پنیر" ; Pl => "پنیریں"} ; g = Fem};
|
||||||
|
Fish = {s = table { Sg => "مچھلی" ; Pl => "مچھلیاں"} ; g = Fem};
|
||||||
|
Pizza = {s = table { Sg => "پیزہ" ; Pl => "پیزے"} ; g = Masc};
|
||||||
|
Very quality = {s = \\g,n => "بہت" ++ quality.s ! g ! n} ;
|
||||||
|
Fresh = regAdj "تازہ" ;
|
||||||
|
Warm = regAdj "گرم" ;
|
||||||
|
Italian = regAdj "اٹا لوی" ;
|
||||||
|
Expensive = regAdj "مہنگا" ;
|
||||||
|
Delicious = regAdj "مزیدار" ;
|
||||||
|
Boring = regAdj "فضول" ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
regAdj : Str -> {s: Gender => Number => Str} = \a -> case a of {
|
||||||
|
x + "ا" => mkAdj a (x+"ے") (x+"ی");
|
||||||
|
_ => mkAdj a a a
|
||||||
|
};
|
||||||
|
mkAdj : Str -> Str -> Str -> {s: Gender => Number => Str} = \s,p,f -> {
|
||||||
|
s = table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => s;
|
||||||
|
Pl => p
|
||||||
|
};
|
||||||
|
Fem => \\_ => f
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
15
samples/Grammatical Framework/LexFoods.gf
Normal file
15
samples/Grammatical Framework/LexFoods.gf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
interface LexFoods = open Syntax in {
|
||||||
|
oper
|
||||||
|
wine_N : N ;
|
||||||
|
pizza_N : N ;
|
||||||
|
cheese_N : N ;
|
||||||
|
fish_N : N ;
|
||||||
|
fresh_A : A ;
|
||||||
|
warm_A : A ;
|
||||||
|
italian_A : A ;
|
||||||
|
expensive_A : A ;
|
||||||
|
delicious_A : A ;
|
||||||
|
boring_A : A ;
|
||||||
|
}
|
||||||
18
samples/Grammatical Framework/LexFoodsCat.gf
Normal file
18
samples/Grammatical Framework/LexFoodsCat.gf
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-- (c) 2009 Jordi Saludes under LGPL
|
||||||
|
|
||||||
|
instance LexFoodsCat of LexFoods =
|
||||||
|
open SyntaxCat, ParadigmsCat, (M = MorphoCat) in {
|
||||||
|
flags
|
||||||
|
coding = utf8 ;
|
||||||
|
oper
|
||||||
|
wine_N = mkN "vi" "vins" M.Masc ;
|
||||||
|
pizza_N = mkN "pizza" ;
|
||||||
|
cheese_N = mkN "formatge" ;
|
||||||
|
fish_N = mkN "peix" "peixos" M.Masc;
|
||||||
|
fresh_A = mkA "fresc" "fresca" "frescos" "fresques" "frescament";
|
||||||
|
warm_A = mkA "calent" ;
|
||||||
|
italian_A = mkA "italià" "italiana" "italians" "italianes" "italianament" ;
|
||||||
|
expensive_A = mkA "car" ;
|
||||||
|
delicious_A = mkA "deliciós" "deliciosa" "deliciosos" "delicioses" "deliciosament";
|
||||||
|
boring_A = mkA "aburrit" "aburrida" "aburrits" "aburrides" "aburridament" ;
|
||||||
|
}
|
||||||
21
samples/Grammatical Framework/LexFoodsFin.gf
Normal file
21
samples/Grammatical Framework/LexFoodsFin.gf
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
instance LexFoodsFin of LexFoods =
|
||||||
|
open SyntaxFin, ParadigmsFin in {
|
||||||
|
flags coding=utf8;
|
||||||
|
oper
|
||||||
|
wine_N = mkN "viini" ;
|
||||||
|
pizza_N = mkN "pizza" ;
|
||||||
|
cheese_N = mkN "juusto" ;
|
||||||
|
fish_N = mkN "kala" ;
|
||||||
|
fresh_A = mkA "tuore" ;
|
||||||
|
warm_A = mkA
|
||||||
|
(mkN "lämmin" "lämpimän" "lämmintä" "lämpimänä" "lämpimään"
|
||||||
|
"lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin"
|
||||||
|
)
|
||||||
|
"lämpimämpi" "lämpimin" ;
|
||||||
|
italian_A = mkA "italialainen" ;
|
||||||
|
expensive_A = mkA "kallis" ;
|
||||||
|
delicious_A = mkA "herkullinen" ;
|
||||||
|
boring_A = mkA "tylsä" ;
|
||||||
|
}
|
||||||
17
samples/Grammatical Framework/LexFoodsGer.gf
Normal file
17
samples/Grammatical Framework/LexFoodsGer.gf
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
instance LexFoodsGer of LexFoods =
|
||||||
|
open SyntaxGer, ParadigmsGer in {
|
||||||
|
flags coding=utf8;
|
||||||
|
oper
|
||||||
|
wine_N = mkN "Wein" ;
|
||||||
|
pizza_N = mkN "Pizza" "Pizzen" feminine ;
|
||||||
|
cheese_N = mkN "Käse" "Käse" masculine ;
|
||||||
|
fish_N = mkN "Fisch" ;
|
||||||
|
fresh_A = mkA "frisch" ;
|
||||||
|
warm_A = mkA "warm" "wärmer" "wärmste" ;
|
||||||
|
italian_A = mkA "italienisch" ;
|
||||||
|
expensive_A = mkA "teuer" ;
|
||||||
|
delicious_A = mkA "köstlich" ;
|
||||||
|
boring_A = mkA "langweilig" ;
|
||||||
|
}
|
||||||
16
samples/Grammatical Framework/LexFoodsIta.gf
Normal file
16
samples/Grammatical Framework/LexFoodsIta.gf
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
instance LexFoodsIta of LexFoods =
|
||||||
|
open SyntaxIta, ParadigmsIta in {
|
||||||
|
oper
|
||||||
|
wine_N = mkN "vino" ;
|
||||||
|
pizza_N = mkN "pizza" ;
|
||||||
|
cheese_N = mkN "formaggio" ;
|
||||||
|
fish_N = mkN "pesce" ;
|
||||||
|
fresh_A = mkA "fresco" ;
|
||||||
|
warm_A = mkA "caldo" ;
|
||||||
|
italian_A = mkA "italiano" ;
|
||||||
|
expensive_A = mkA "caro" ;
|
||||||
|
delicious_A = mkA "delizioso" ;
|
||||||
|
boring_A = mkA "noioso" ;
|
||||||
|
}
|
||||||
17
samples/Grammatical Framework/LexFoodsSwe.gf
Normal file
17
samples/Grammatical Framework/LexFoodsSwe.gf
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
instance LexFoodsSwe of LexFoods =
|
||||||
|
open SyntaxSwe, ParadigmsSwe in {
|
||||||
|
flags coding=utf8;
|
||||||
|
oper
|
||||||
|
wine_N = mkN "vin" "vinet" "viner" "vinerna" ;
|
||||||
|
pizza_N = mkN "pizza" ;
|
||||||
|
cheese_N = mkN "ost" ;
|
||||||
|
fish_N = mkN "fisk" ;
|
||||||
|
fresh_A = mkA "färsk" ;
|
||||||
|
warm_A = mkA "varm" ;
|
||||||
|
italian_A = mkA "italiensk" ;
|
||||||
|
expensive_A = mkA "dyr" ;
|
||||||
|
delicious_A = mkA "läcker" ;
|
||||||
|
boring_A = mkA "tråkig" ;
|
||||||
|
}
|
||||||
46
samples/Grammatical Framework/ResCze.gf
Normal file
46
samples/Grammatical Framework/ResCze.gf
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
-- (c) 2011 Katerina Bohmova under LGPL
|
||||||
|
|
||||||
|
resource ResCze = open Prelude in {
|
||||||
|
flags
|
||||||
|
coding = utf8 ;
|
||||||
|
param
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
Gender = Masc | Fem | Neutr;
|
||||||
|
oper
|
||||||
|
NounPhrase : Type =
|
||||||
|
{s : Str ; g : Gender ; n : Number} ;
|
||||||
|
Noun : Type = {s : Number => Str ; g : Gender} ;
|
||||||
|
Adjective : Type = {s : Gender => Number => Str} ;
|
||||||
|
|
||||||
|
det : Number -> Str -> Str -> Str -> Noun -> NounPhrase =
|
||||||
|
\n,m,f,ne,cn -> {
|
||||||
|
s = table {Masc => m ; Fem => f; Neutr => ne} ! cn.g ++
|
||||||
|
cn.s ! n ;
|
||||||
|
g = cn.g ;
|
||||||
|
n = n
|
||||||
|
} ;
|
||||||
|
noun : Str -> Str -> Gender -> Noun =
|
||||||
|
\muz,muzi,g -> {
|
||||||
|
s = table {Sg => muz ; Pl => muzi} ;
|
||||||
|
g = g
|
||||||
|
} ;
|
||||||
|
adjective : (msg,fsg,nsg,mpl,fpl,npl : Str) -> Adjective =
|
||||||
|
\msg,fsg,nsg,mpl,fpl,npl -> {
|
||||||
|
s = table {
|
||||||
|
Masc => table {Sg => msg ; Pl => mpl} ;
|
||||||
|
Fem => table {Sg => fsg ; Pl => fpl} ;
|
||||||
|
Neutr => table {Sg => nsg ; Pl => npl}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
regAdj : Str -> Adjective =
|
||||||
|
\mlad ->
|
||||||
|
adjective (mlad+"ý") (mlad+"á") (mlad+"é")
|
||||||
|
(mlad+"é") (mlad+"é") (mlad+"á") ;
|
||||||
|
regnfAdj : Str -> Adjective =
|
||||||
|
\vynikajici ->
|
||||||
|
adjective vynikajici vynikajici vynikajici
|
||||||
|
vynikajici vynikajici vynikajici;
|
||||||
|
copula : Number => Str =
|
||||||
|
table {Sg => "je" ; Pl => "jsou"} ;
|
||||||
|
}
|
||||||
|
|
||||||
75
samples/Grammatical Framework/transFoodsHin.gf
Normal file
75
samples/Grammatical Framework/transFoodsHin.gf
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
concrete FoodsHin of Foods = {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Gender = Masc | Fem ;
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str} ;
|
||||||
|
Item = {s : Str ; g : Gender ; n : Number} ;
|
||||||
|
Kind = {s : Number => Str ; g : Gender} ;
|
||||||
|
Quality = {s : Gender => Number => Str} ;
|
||||||
|
lin
|
||||||
|
Pred item quality = {
|
||||||
|
s = item.s ++ quality.s ! item.g ! item.n ++ copula item.n
|
||||||
|
} ;
|
||||||
|
This kind = {s = "yah" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
|
||||||
|
That kind = {s = "vah" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
|
||||||
|
These kind = {s = "ye" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
|
||||||
|
Those kind = {s = "ve" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
|
||||||
|
Mod quality kind = {
|
||||||
|
s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
|
||||||
|
g = kind.g
|
||||||
|
} ;
|
||||||
|
Wine = regN "madirA" ;
|
||||||
|
Cheese = regN "panIr" ;
|
||||||
|
Fish = regN "maClI" ;
|
||||||
|
Pizza = regN "pijjA" ;
|
||||||
|
Very quality = {s = \\g,n => "bahut" ++ quality.s ! g ! n} ;
|
||||||
|
Fresh = regAdj "tAzA" ;
|
||||||
|
Warm = regAdj "garam" ;
|
||||||
|
Italian = regAdj "i-t.alI" ;
|
||||||
|
Expensive = regAdj "mahaNgA" ;
|
||||||
|
Delicious = regAdj "rucikar" ;
|
||||||
|
Boring = regAdj "pEriyA" ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
mkN : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
|
||||||
|
\s,p,g -> {
|
||||||
|
s = table {
|
||||||
|
Sg => s ;
|
||||||
|
Pl => p
|
||||||
|
} ;
|
||||||
|
g = g
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regN : Str -> {s : Number => Str ; g : Gender} = \s -> case s of {
|
||||||
|
lark + "A" => mkN s (lark + "e") Masc ;
|
||||||
|
lark + "I" => mkN s (lark + "iyaM") Fem ;
|
||||||
|
_ => mkN s s Masc
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkAdj : Str -> Str -> Str -> {s : Gender => Number => Str} = \ms,mp,f -> {
|
||||||
|
s = table {
|
||||||
|
Masc => table {
|
||||||
|
Sg => ms ;
|
||||||
|
Pl => mp
|
||||||
|
} ;
|
||||||
|
Fem => \\_ => f
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regAdj : Str -> {s : Gender => Number => Str} = \a -> case a of {
|
||||||
|
acch + "A" => mkAdj a (acch + "e") (acch + "I") ;
|
||||||
|
_ => mkAdj a a a
|
||||||
|
} ;
|
||||||
|
|
||||||
|
copula : Number -> Str = \n -> case n of {
|
||||||
|
Sg => "hE" ;
|
||||||
|
Pl => "hEN"
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user