1097 Commits

Author SHA1 Message Date
0e5b224f5c oops 2026-04-05 18:26:40 -06:00
7a1d1412fb toki preps 2026-04-05 12:33:43 -06:00
19e35edf09 oops NumPl 2026-04-05 11:52:21 -06:00
43979ed054 fix detcn 2026-04-05 11:48:07 -06:00
786340192f toki transitives 2026-04-05 10:15:24 -06:00
ecdc0a85f6 toki preverb 2026-04-05 09:33:58 -06:00
0bd3506e1b toki adjs 2026-04-05 09:18:03 -06:00
fc2b2a0954 Pron 2026-04-05 08:34:35 -06:00
eccbdcfb97 li in PredVP 2026-04-05 08:29:48 -06:00
d2568cf869 toki params 2026-04-04 20:05:26 -06:00
bcb16ae376 init toki pona 2026-04-04 20:05:26 -06:00
Krasimir Angelov
deb9d40b7e placeholders for morphological functions 2026-04-04 11:18:04 +02:00
Krasimir Angelov
25f422f5ca Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2026-04-03 16:57:43 +02:00
Krasimir Angelov
f0abf5deff added compoundV 2026-04-03 16:55:51 +02:00
Inari Listenmaa
e825d92233 (Fao) add particle to verbs e.g. "fara út" 2026-04-01 16:27:14 +02:00
Inari Listenmaa
1e436d84a1 (Ice) handle PNs that consist of multiple words 2026-04-01 16:26:14 +02:00
Inari Listenmaa
84e0e2c08f (Jpn) add GN, LN, SN + constructors 2026-04-01 16:21:58 +02:00
Inari Listenmaa
4c55592af4 make it not crash on mkPN "Jósefína" feminine 2026-04-01 15:41:22 +02:00
Inari Listenmaa
28be4fb450 add existing modules to GrammarHye 2026-04-01 15:28:28 +02:00
Krasimir Angelov
74848d304e implement UsePron 2026-03-20 08:27:46 +01:00
Krasimir Angelov
928889b2aa change NP to contain GenNum instead of Number and Gender 2026-03-20 08:14:10 +01:00
Krasimir Angelov
1d7b717866 added inherent parameters for pronouns 2026-03-20 08:04:26 +01:00
Krasimir Angelov
9d18d316c5 remove the flags 2026-03-19 17:49:58 +01:00
Krasimir Angelov
c8a4c28a51 added AdverbMkd 2026-03-19 17:48:52 +01:00
Krasimir Angelov
eeca67e787 add AdverbMkd 2026-03-19 17:45:00 +01:00
Krasimir Angelov
e8005bf071 added SlashV2a 2026-03-19 17:20:10 +01:00
Krasimir Angelov
cc1168634b added VocNP 2026-03-19 15:34:57 +01:00
Krasimir Angelov
76cbf0b75b remove the utf-8 flags 2026-03-19 15:27:53 +01:00
Krasimir Angelov
ce2f785f92 autogenerate parts of the syntax 2026-03-19 15:25:04 +01:00
Krasimir Angelov
0cd3450e08 update the paradigms 2026-03-13 10:58:41 +01:00
Krasimir Angelov
62c5030be1 fix compilation 2026-03-06 14:30:29 +01:00
Krasimir Angelov
bd41b3ccb7 Imperative -> imperative 2026-03-06 13:37:22 +01:00
Krasimir Angelov
53571672e3 started numerals in Macedonian 2026-03-03 14:59:07 +01:00
Krasimir Angelov
761597ad8c move NumeralX.inc to ParamX since it is used in many places 2026-03-03 14:34:52 +01:00
Krasimir Angelov
8e780d6263 use mair/maist for comparison 2026-02-24 08:54:13 +01:00
Krasimir Angelov
ec4bc75a64 added irregular Scots verbs 2026-02-18 15:37:16 +01:00
Krasimir Angelov
dbe6eba30a added PassV2 2026-02-18 09:08:19 +01:00
Krasimir Angelov
066133bbae fix compilation 2026-02-18 09:06:06 +01:00
Krasimir Angelov
e9ecb1a8d6 fix copula 2026-02-18 09:00:26 +01:00
Krasimir Angelov
090a6ea33d started DocumentationSwa.gf 2026-02-17 18:07:55 +01:00
Krasimir Angelov
dceb5252a2 remove the experimental AnaphPron 2026-01-08 09:03:26 +01:00
Krasimir Angelov
73fa89103b remove repeated record fields 2026-01-08 08:44:26 +01:00
Krasimir Angelov
115ad31e2d added lincat CN 2025-11-27 09:11:24 +01:00
Krasimir Angelov
f715e393cb fix the lock field in mkPrep 2025-11-17 14:01:14 +01:00
Krasimir Angelov
5e6ee94baa added TPastSimple 2025-11-16 13:22:01 +01:00
Krasimir Angelov
a73b6ad6ed fixes to make the WordNet compile 2025-11-16 08:52:14 +01:00
Krasimir Angelov
06f3602e00 fix compilation with the old type checker 2025-11-14 14:32:30 +01:00
Krasimir Angelov
c7fe453c12 use consistent lin X everywhere 2025-11-14 14:12:57 +01:00
Krasimir Angelov
48658e3689 fix some of the nouns 2025-11-14 10:52:59 +01:00
Krasimir Angelov
ffc10a32c9 guessed VocNP, UttCN, UttAP 2025-11-06 13:47:58 +01:00
Krasimir Angelov
fff1c40f24 added UttNP 2025-11-06 12:54:45 +01:00
Krasimir Angelov
fd817f80d6 add a lock field 2025-11-06 12:51:53 +01:00
Krasimir Angelov
b84d05034d more type signatures 2025-11-06 12:46:05 +01:00
Krasimir Angelov
d589cedc6b fix typechecking with the normal type checker 2025-11-06 12:41:31 +01:00
Krasimir Angelov
d833b24509 added AdjCN 2025-11-06 12:36:28 +01:00
Krasimir Angelov
071b2af9c3 added gaelic 2025-11-06 11:53:36 +01:00
Krasimir Angelov
1f5615c0bb missed AllGlaAbs.gf 2025-11-06 11:53:22 +01:00
Krasimir Angelov
fda1f49d17 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-11-06 11:48:06 +01:00
Krasimir Angelov
6b93e87363 merge of the manual and automatic grammars 2025-11-06 11:47:31 +01:00
Aarne Ranta
f4aae6a61a Merge pull request #466 from hleiss/corrections
(Ger) Corrections in Cat, Irreg, Lexicon ; added QVP in Question and GenIP, GenModIP in Extend
2025-10-31 17:18:05 +01:00
Krasimir Angelov
066d6f9c85 fix type errors with the old type checker 2025-10-27 10:00:29 +01:00
Krasimir Angelov
3e51c585ce fix mkA008 2025-10-27 09:51:16 +01:00
Krasimir Angelov
bba1de3605 fix type errors with the old type checker 2025-10-27 09:46:22 +01:00
Krasimir Angelov
4514ebfc00 fix type errors with the old type checker 2025-10-27 09:43:01 +01:00
Krasimir Angelov
cf947426dc extended documentation 2025-10-25 12:40:02 +02:00
Krasimir Angelov
7383b30cee started with documentation 2025-10-25 12:07:43 +02:00
Krasimir Angelov
c604bd3b77 added Sub1000000000 and Sub1000000000000 2025-10-25 11:15:21 +02:00
Krasimir Angelov
8e63f9b32d fix conflicts 2025-10-25 08:21:28 +02:00
Krasimir Angelov
1aed4c3b5f added missig functions 2025-10-25 08:20:33 +02:00
Hans Leiß
78564236b9 Merge branch 'GrammaticalFramework:master' into corrections 2025-10-05 19:15:50 +02:00
Krasimir Angelov
35a650141e fix UseN and PositA 2025-10-05 09:47:31 +02:00
Krasimir Angelov
5146748f37 added armenian 2025-10-04 19:44:23 +02:00
Hans Leiss
4bf528a429 (Ger) Implemented QVP in Question, GenIP and GenModIP in Extend 2025-09-28 18:15:45 +02:00
Krasimir Angelov
4a0cc4ec40 added linref for verbs and lincat for names 2025-09-26 07:31:56 +02:00
Krasimir Angelov
a5f4679405 refactor the noun paradigms 2025-09-26 07:24:08 +02:00
Krasimir Angelov
cad17e8404 fill in the neuter forms for adjectives 2025-09-26 06:20:16 +02:00
Krasimir Angelov
c9182284e7 added Belarusian 2025-09-25 21:54:33 +02:00
Krasimir Angelov
9649f348b2 a better table for nouns 2025-09-25 13:09:10 +02:00
Krasimir Angelov
3e066bd7ec Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-09-25 13:02:41 +02:00
Krasimir Angelov
7d4e40bac1 added Ukrainian 2025-09-25 13:02:21 +02:00
Hans Leiss
7e52a4759c (Ger) Corrections in Cat, Res, Lexicon, Structural, Morpho, Paradigms and Questions 2025-09-21 21:05:43 +02:00
Aarne Ranta
f01d509376 word order in Ger CompCN and CompNP: RS in ext part, adv before it; agr for CompCN todo 2025-09-18 20:36:03 +02:00
Krasimir Angelov
153ad8b41a added type signatures 2025-09-11 10:07:38 +02:00
Krasimir Angelov
5375cda243 add type signatures to keep the old type checker happy 2025-09-11 10:04:27 +02:00
Krasimir Angelov
e76e11e566 added PhraseKaz 2025-09-11 09:57:32 +02:00
Krasimir Angelov
bc41082247 added UttS 2025-09-11 09:50:53 +02:00
Krasimir Angelov
0e5bb779cc Particle->Participle 2025-09-10 19:44:07 +02:00
Krasimir Angelov
08aa91cdbb better inflection tables 2025-09-10 19:41:28 +02:00
Krasimir Angelov
7d695a6d49 fix typo 2025-09-10 19:40:57 +02:00
Krasimir Angelov
febd99be26 add faroese 2025-09-10 17:19:26 +02:00
Krasimir Angelov
7016ce8a32 bootstrapped faroese 2025-09-10 16:38:50 +02:00
Krasimir Angelov
1b57ef7fee added lindef for VPSlash 2025-09-09 11:58:17 +02:00
Krasimir Angelov
cd581dc6ac fix -ing -> -in 2025-09-07 11:55:39 +02:00
Krasimir Angelov
5b588daf85 forgot AllScoAbs 2025-09-07 08:59:56 +02:00
Krasimir Angelov
35a6456524 getting started on Scots 2025-09-07 08:19:10 +02:00
Krasimir Angelov
141074bec3 typo infitive -> infinitive 2025-09-04 16:19:12 +02:00
Krasimir Angelov
e78497e46d added CompoundN 2025-08-29 22:35:56 +02:00
Krasimir Angelov
52b6305cf2 a linref for verbs which shows P3 Sg 2025-08-29 13:11:25 +02:00
Krasimir Angelov
1cd582a322 added NamesLav.gf 2025-08-29 12:54:59 +02:00
Krasimir Angelov
2ff33ea968 added AdvS 2025-08-29 09:26:26 +02:00
Krasimir Angelov
b2e2b570e1 added trivial functions 2025-08-29 09:15:10 +02:00
Krasimir Angelov
4644ef0229 added pot3as4 and potas5 2025-08-29 08:33:35 +02:00
Krasimir Angelov
f546600fd2 TPastSimple in Latin and Hungarian 2025-08-29 07:02:44 +02:00
Krasimir Angelov
9c951e244c Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-08-28 19:36:09 +02:00
Krasimir Angelov
5cb67dadbf NON_EXISTANT -> nonExist 2025-08-28 19:35:49 +02:00
Inari Listenmaa
39f6a43717 fix Sg Dat for class 1B nouns 2025-08-28 17:18:58 +02:00
Inari Listenmaa
81f3531136 Merge pull request #464 from inariksit/gaelic
WIP: Gaelic RG
2025-08-28 16:02:42 +02:00
Inari Listenmaa
9f21a3d103 add the correct word for bird (tunnag is "duck") 2025-08-28 16:01:58 +02:00
Inari Listenmaa
e14833217e TODO notes 2025-08-28 15:47:14 +02:00
Inari Listenmaa
8c25bdeacc add lenition in the case table as separate dimension for Nom and Dat 2025-08-28 15:43:56 +02:00
Inari Listenmaa
d652c81fa7 WIP more preposition contractions + phonological mutation rules 2025-08-27 17:22:33 +02:00
Inari Listenmaa
ed745708b2 massive restructure, very broken, will fix later 2025-08-26 17:07:07 +02:00
Krasimir Angelov
625ddf1e1e added lindef VP 2025-08-26 16:40:42 +02:00
Krasimir Angelov
512412b4bb added invarA 2025-08-26 16:30:13 +02:00
Inari Listenmaa
d4056e7db3 add pronouns, very much WIP (no object forms, possessives) 2025-08-25 17:01:43 +02:00
Inari Listenmaa
c85e7a514b Add some prepositions, merge with pronouns (TODO: merge with articles too) 2025-08-25 17:01:43 +02:00
Inari Listenmaa
a539db3d55 allomorphs for definite article 2025-08-25 17:01:43 +02:00
Inari Listenmaa
b8d9098aaa add more words 2025-08-25 17:01:43 +02:00
Inari Listenmaa
1c87e5ac78 misc fixes in morpho (works for 4 nouns!) 2025-08-25 17:01:43 +02:00
Inari Listenmaa
4f5e67a581 make leaner param for CN (morpho still as wrong as always) 2025-08-25 17:01:43 +02:00
Inari Listenmaa
cabf56aea9 still broken but in a different way 2025-08-25 17:01:43 +02:00
Inari Listenmaa
4b78bd6c67 yep the morpho sucks, but let's fix it in next commits 2025-08-25 17:01:43 +02:00
Inari Listenmaa
c9c1723090 some morphology I pulled out of my ass 2025-08-25 17:01:43 +02:00
Inari Listenmaa
1f3a35a95c start Gla by cloning the template 2025-08-25 17:01:43 +02:00
Krasimir Angelov
3aeb0707f5 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-08-22 19:43:34 +02:00
Krasimir Angelov
94472bc4ab make sure that DocumentationLat is always compiled 2025-08-22 19:43:13 +02:00
Inari Listenmaa
e3c9a0045e (Ger) Fix complement number agreement with AgPlPol
"Sie sind ein Vogel", not *Sie sind Vögel
2025-08-22 14:50:35 +02:00
Inari Listenmaa
97227181fe (Ara) add the preposition ka 'كَ' which attaches to its head 2025-08-22 14:27:10 +02:00
Inari Listenmaa
f2afe03303 fix example in arabic documentation 2025-08-22 14:03:29 +02:00
Krasimir Angelov
75d291d26a Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-08-18 19:14:13 +02:00
Krasimir Angelov
338c347d7c another version of CompoundN 2025-08-18 19:13:53 +02:00
Krasimir Angelov
e24e0cc7ce number agreement when there is no preposition 2025-08-18 18:42:40 +02:00
Inari Listenmaa
51cb9c3091 the latest tag is called release-3.12, use it here 2025-08-12 15:29:06 +02:00
Inari Listenmaa
b84cbcfc28 Merge pull request #463 from inariksit/release-morphodict
Build morphodict and put in GF_LIB_PATH
2025-08-12 15:18:27 +02:00
Inari Listenmaa
de5468e40a control morphodict from Makefile (easy to comment out if desired) 2025-08-12 15:13:51 +02:00
Inari Listenmaa
b93fd7f051 add morphodict into Setup.hs 2025-08-12 15:13:19 +02:00
Inari Listenmaa
5aa5718ca5 add MorphoDict to languages.csv 2025-08-12 15:00:45 +02:00
Krasimir Angelov
fd0706fbc1 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-08-12 11:13:50 +02:00
Krasimir Angelov
145e1affe9 added missing bits and pieces 2025-08-12 11:13:29 +02:00
Inari Listenmaa
3d0aa460c5 build morphodict 2025-08-11 15:32:05 +02:00
Inari Listenmaa
a0a8d99872 don't use record extension with PTypes
the current (non-majestic) runtime doesn't support it
2025-08-11 14:43:38 +02:00
Inari Listenmaa
cdc1108a36 update GitHub workflows for GF 3.12 + newer runner 2025-08-11 14:40:02 +02:00
Krasimir Angelov
1308eb85d9 fix type errors detected by the new type checker 2025-08-07 13:35:36 +02:00
Krasimir Angelov
42d06dfafd added some missing funs and cats 2025-08-07 12:19:10 +02:00
Krasimir Angelov
04df53a17a remove dead code as detected by the new typechecker 2025-05-21 14:43:45 +02:00
Krasimir Angelov
41906a31c4 TTAnt must be reimplemented for Bulgarian after we changed the tenses 2025-05-21 13:46:25 +02:00
Krasimir Angelov
2d22802af4 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-05-21 13:45:46 +02:00
Krasimir Angelov
76f09c2464 fix vocative for paradigm N008b 2025-05-21 13:45:26 +02:00
Inari Listenmaa
1825904f4d (Chi) add mkAdv instance that doesn't pattern match any strings 2025-05-09 15:29:21 +02:00
Krasimir Angelov
3f4fd4565a better table layout 2025-03-26 18:23:38 +01:00
Krasimir Angelov
11d4f0c770 better table layout 2025-03-26 18:22:53 +01:00
Krasimir Angelov
574ed858bc Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-03-26 14:50:07 +01:00
Krasimir Angelov
176d63f0ac initial documentation module for Romanian 2025-03-26 14:49:47 +01:00
Aarne Ranta
607d9240c2 Merge pull request #460 from hleiss/master
(Ger) Added missing linearizations pot21 to pot5plus in NumeralGer
2025-03-17 08:02:35 +01:00
Hans Leiss
35f3b5e206 (Ger) Added missing linearizations pot21 to pot5plus 2025-03-16 15:34:46 +01:00
Aarne Ranta
ababe72fb8 started adding capital letters to Gre.FemAccFinalN; most letters still todo 2025-03-12 16:32:40 +01:00
Aarne Ranta
693cd88f7b heuristic rule for Gre mkPN 2025-02-13 10:43:17 +01:00
Krasimir Angelov
44eec8629b added Extend modules for Hindi, Urdu, Mongolian 2025-02-09 10:15:55 +01:00
Krasimir Angelov
ebba8b5894 for prepositions show the case as well 2025-02-09 09:15:03 +01:00
Krasimir Angelov
1633d11e06 added documentation and some missing paradigm functions 2025-02-08 22:03:10 +01:00
Krasimir Angelov
9e91511724 added mkInterj 2025-02-07 18:32:35 +01:00
Krasimir Angelov
777e572681 added missing paradigm functions 2025-02-07 18:24:27 +01:00
Krasimir Angelov
186a12df0c added linref and lindef for V2 and V3 2025-02-05 11:45:20 +01:00
Krasimir Angelov
904428fb36 don't show indefinte superlative adjectives 2025-02-05 10:53:56 +01:00
Krasimir Angelov
8723bde58e fixes 2025-02-05 09:49:28 +01:00
Krasimir Angelov
7b777c425e more in the documentation 2025-02-05 09:22:01 +01:00
Krasimir Angelov
f3811e8a0e Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2025-02-05 08:30:24 +01:00
Krasimir Angelov
f03d06b81d started DocumentationLav and ExtendLav 2025-02-05 08:30:04 +01:00
Aarne Ranta
6876b79d43 added MarkupFre to LangFre 2025-02-02 15:32:17 +01:00
Inari Listenmaa
33bd050b7a also remove lincat Voc from Kaz 2025-01-24 15:09:18 +01:00
Inari Listenmaa
08793614ab also remove redundant lincats Voc,PConj,Phr,Utt from Sqi 2025-01-24 15:08:17 +01:00
Inari Listenmaa
70e41e47a7 remove redundant lincat Interj (inherited from CommonX) 2025-01-24 14:57:46 +01:00
Inari Listenmaa
66b5e4108f add empty file for MorphoDictChi (TODO populate from WN) 2025-01-24 14:44:35 +01:00
aarneranta
8613a78929 changed a runtime + to BIND in Amharic 2024-12-20 11:17:11 +01:00
Krasimir Angelov
643ea07c3b support unarticulated adjectives 2024-12-08 13:39:55 +01:00
Krasimir Angelov
c6d43a8bbc improve morphology 2024-12-08 13:37:37 +01:00
Krasimir Angelov
1b6f42397d progress on the grammar 2024-12-07 22:17:32 +01:00
Krasimir Angelov
bcf5db743f bugfixes 2024-12-07 20:23:49 +01:00
Krasimir Angelov
02456811ee fix typo 2024-12-07 20:20:10 +01:00
Krasimir Angelov
dcbfb2a464 show word class 2024-12-07 17:53:17 +01:00
Krasimir Angelov
5e02340160 added that_Quant 2024-12-06 06:47:48 +01:00
Krasimir Angelov
4e034425b9 added this_Quant 2024-12-05 21:57:03 +01:00
Krasimir Angelov
7b7752c308 added pronouns 2024-12-05 19:32:22 +01:00
Krasimir Angelov
108bfb4163 added basic syntax 2024-12-05 19:13:13 +01:00
Krasimir Angelov
d8aaeeb682 support linking clitic 2024-12-05 18:23:28 +01:00
Krasimir Angelov
ffaedd718b fix pattern matching error 2024-12-05 16:40:51 +01:00
Krasimir Angelov
b01b94001e added good_A 2024-12-05 16:33:54 +01:00
Krasimir Angelov
dc143cc3ae nicer inflection table for adjectives 2024-12-05 16:31:52 +01:00
Krasimir Angelov
0a1df37340 fill in the inflection tables for adjectives 2024-12-05 16:22:05 +01:00
Krasimir Angelov
ad3fa455b1 another update + rename Alb to Sqi 2024-12-05 14:47:29 +01:00
Krasimir Angelov
b82bcde9f1 improved morphology 2024-12-05 12:42:54 +01:00
Krasimir Angelov
6fcf76e78e added two examples 2024-12-04 11:30:15 +01:00
Krasimir Angelov
aa4dc4c3df added documentation 2024-12-04 11:28:13 +01:00
Krasimir Angelov
3891cef66a added Albanian 2024-12-04 10:31:43 +01:00
Krasimir Angelov
8e47600671 update after changes in the rgl-learner 2024-12-04 07:55:20 +01:00
Krasimir Angelov
89f2a9dea6 update the morphology after the change in the rgl-learner 2024-12-03 20:06:49 +01:00
EkaterinaVoloshina
6b5df036e3 added a contruction; fixed negation 2024-11-26 21:26:54 +01:00
Krasimir Angelov
3dae1cf820 make the noun table even more similar to the one in Turkish 2024-11-11 15:49:49 +01:00
Krasimir Angelov
c4f94ab218 make the noun table two dimensional 2024-11-11 13:32:28 +01:00
Krasimir Angelov
d626f03c48 started documentation 2024-11-11 13:12:54 +01:00
Krasimir Angelov
93a06312a7 cleanup the lincat for V 2024-11-11 13:11:29 +01:00
Krasimir Angelov
d2754c1623 fix the order of cases 2024-11-10 19:54:54 +01:00
Krasimir Angelov
d77c8fa23c added Kazakh morphology 2024-11-10 19:49:50 +01:00
Krasimir Angelov
164cf81477 minimal extensions to Numeral 2024-11-03 20:07:06 +01:00
Krasimir Angelov
4add2fb2de more lexicon building functions 2024-11-03 19:06:18 +01:00
Krasimir Angelov
37e08ad739 support for compounding nouns 2024-11-01 09:15:55 +01:00
Krasimir Angelov
466c7da532 support for aspectual verb pairs 2024-11-01 07:45:59 +01:00
Krasimir Angelov
e8bda853df remove spurious paradigms 2024-10-31 19:26:56 +01:00
Krasimir Angelov
f8bb75a13c added pronouns 2024-10-31 16:14:35 +01:00
Krasimir Angelov
576e17f03a linref for adjectives 2024-10-31 13:47:41 +01:00
Krasimir Angelov
a235cc9594 fixes for verbs 2024-10-31 13:29:48 +01:00
Krasimir Angelov
abf4cd4cb2 support for reflexive verbs 2024-10-31 13:21:27 +01:00
Krasimir Angelov
9e52b2d8a3 linref for nouns 2024-10-31 13:04:13 +01:00
Krasimir Angelov
1111ca0fdd overloaded compoundN 2024-10-31 12:57:46 +01:00
Krasimir Angelov
4de1b64b58 added compound nouns 2024-10-31 10:44:18 +01:00
Krasimir Angelov
f0d74e59a7 forgot the documentation 2024-10-31 09:48:38 +01:00
Krasimir Angelov
a2b20dc6db Macedonian morphology 2024-10-31 09:37:41 +01:00
Krasimir Angelov
21d1a192c8 added linrefs for verbs 2024-10-22 22:26:17 +02:00
Krasimir Angelov
e99bdb6d1a added mkMU 2024-10-22 21:49:22 +02:00
Krasimir Angelov
d44298a4ad added QuantityNP and mkMU 2024-10-22 20:41:16 +02:00
Krasimir Angelov
89dc2a13f0 added NamesIna 2024-10-22 20:26:18 +02:00
Krasimir Angelov
6dfce2943c added ExtendIna 2024-10-22 08:05:50 +02:00
Krasimir Angelov
0814c9da0f added Extend(Dan|Nor|Nno) 2024-10-20 20:09:02 +02:00
Krasimir Angelov
bb7786af7c added documentaion and missing paradigm functions 2024-10-20 17:11:42 +02:00
Krasimir Angelov
650076a867 fix typo N3->N2 2024-10-20 17:11:00 +02:00
Krasimir Angelov
5b636496ef added LN,GN,SN 2024-10-15 16:38:34 +02:00
Krasimir Angelov
41dfd532bd forgot the file 2024-10-15 15:43:51 +02:00
Krasimir Angelov
26e89421d3 Documentation and Names in Danish 2024-10-15 15:42:33 +02:00
Krasimir Angelov
e7a4b71160 Documentation in Bokmål 2024-10-15 15:14:18 +02:00
Krasimir Angelov
81c71043ca Documentation for Nynorsk 2024-10-15 14:36:03 +02:00
Krasimir Angelov
9217669c31 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-10-15 14:20:31 +02:00
Krasimir Angelov
cc964d1853 added the documentation module 2024-10-15 14:20:14 +02:00
Krasimir Angelov
62b5df23d1 some missing bits in Greek 2024-10-10 13:44:54 +02:00
aarneranta
e63a3c9d17 fixed ExtendSwe/VPS in accordance with Ger 2024-09-04 15:03:50 +02:00
Aarne Ranta
d895f4ceeb MorphoDictSpa copied from DictSpa 2024-07-30 17:02:36 +02:00
Aarne Ranta
ba2e4a4964 added Extend.SubjunctRelCN 2024-07-30 08:44:01 +02:00
Aarne Ranta
78f333e79e added a case to MakeStructuralFre.mkDet 2024-07-29 18:03:09 +02:00
Aarne Ranta
710e73688d in Formal.usePrec, removed variant parenthOpt for a better control of parentheses ; use Formal.parenth explicitly if you want to parse superfluous parentheses 2024-07-29 17:44:05 +02:00
Aarne Ranta
82075be37b corrected the formal subject of ExistsNP in Fre 2024-07-26 17:33:32 +02:00
Aarne Ranta
7d631fafa2 put RelVPS into RomanceFunctor and also inherited other VPS functions from there 2024-07-26 17:22:17 +02:00
Aarne Ranta
78fc625174 added VPS functions to Romance Extend modules 2024-07-26 16:47:43 +02:00
Krasimir Angelov
afe544bb29 added anteriority 2024-07-25 21:13:37 +02:00
Krasimir Angelov
ca385925b6 PassAgentVPSlash 2024-07-25 18:41:34 +02:00
Krasimir Angelov
4173353eb0 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-07-25 18:23:55 +02:00
Krasimir Angelov
5135e5c5ca started relative clauses 2024-07-25 18:23:35 +02:00
Krasimir Angelov
b1a5cf93b6 added PositAdAAdj 2024-07-25 18:16:12 +02:00
Aarne Ranta
911cbb06c1 MorphoDictPor 2024-07-25 12:01:19 +02:00
Aarne Ranta
71f3b2dc78 MakeStructural.mkDet in Ita and Por 2024-07-25 11:55:55 +02:00
Aarne Ranta
23ccacf222 mkStrongDet, mkWeakDet in MakeStructuralGer 2024-07-25 09:18:31 +02:00
Krasimir Angelov
d3ecaadef0 implement ProgrVP 2024-07-24 19:57:23 +02:00
Krasimir Angelov
4bb96aa295 mark notpresent 2024-07-24 09:51:10 +02:00
Krasimir Angelov
d198de7395 added PassV2, PassVPSlash 2024-07-24 09:48:08 +02:00
Krasimir Angelov
9b12c13057 added ExtAdvVP, AdvVPSlash, AdVVPSlash 2024-07-24 08:23:29 +02:00
Krasimir Angelov
4f05d5629b added UttVPShort 2024-07-24 08:17:33 +02:00
Krasimir Angelov
6648913d4e Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-07-24 08:05:15 +02:00
Krasimir Angelov
05c65ccbd8 verbal morphology is not syntactic. added negation 2024-07-24 08:04:35 +02:00
Aarne Ranta
d18b889df6 one more fix word order in ExtendGer.PredVPS ; not yet correct for Sub with ConjVPS 2024-07-22 23:59:55 +02:00
Aarne Ranta
6084aef91b trying to fix word order in ExtendGer.PredVPS ; not yet correct for Sub 2024-07-22 23:47:03 +02:00
Aarne Ranta
687f0cefc8 lost AP.ext in CompAP restored, Inv worder still to be fixed 2024-07-22 21:10:50 +02:00
Aarne Ranta
479fe7236f took away duplicates of Structural from MorphoDictEng in conformance with the other MorphoDicts 2024-07-19 18:15:31 +02:00
Aarne Ranta
15ecf3217c fixed import Cat in MorphoDictFinAbs 2024-07-18 19:17:12 +02:00
Aarne Ranta
1f98f642af DictFre copied to MorphoDict 2024-07-17 18:00:52 +02:00
Krasimir Angelov
65a05d223b various extensions in Turkish 2024-07-08 21:58:00 +02:00
Krasimir Angelov
f36bbade45 added CompoundN 2024-06-14 17:02:04 +02:00
Krasimir Angelov
c2b8d98400 fix AdvVPSlash 2024-06-14 10:53:59 +02:00
Krasimir Angelov
d182354238 fix AdvVPSlash and PastPartAP 2024-06-14 10:34:17 +02:00
Krasimir Angelov
1fbec65714 PastPartAP, PastPartAgentAP in French 2024-06-05 12:49:54 +02:00
Krasimir Angelov
d059de5711 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-06-05 12:48:51 +02:00
Krasimir Angelov
7a8cdf5c3d AdvVPSlash and AdVVPSlash 2024-06-05 12:48:24 +02:00
Aarne Ranta
03e81a3fab ImpP3 in Ita, Swe ; order fixed in Fre (but not necessarily the only correct one) 2024-05-07 15:53:33 +02:00
Krasimir Angelov
18716dbbd5 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-05-07 12:43:24 +02:00
Krasimir Angelov
44171d7d73 added VPS 2024-05-07 12:43:03 +02:00
aarneranta
726d04f00f made lincat LN = NP in Arabic, to deal with all names; also added mkLN Str Gender 2024-04-18 10:14:28 +02:00
aarneranta
a251318dad Fin linref NP: Nom, not Acc 2024-04-11 14:11:58 +02:00
Aarne Ranta
2363da4b2f Croatian GenRP corrected 2024-04-03 18:47:59 +02:00
Aarne Ranta
cd3a2e0ac4 unverified definitions of some Croatian functions 2024-04-03 17:44:00 +02:00
Krasimir Angelov
a0c8198a68 guessed DetDAP and UseDAP* 2024-04-03 16:29:39 +02:00
Krasimir Angelov
70223e85f2 guessed QuantityNP and the MU category 2024-04-03 14:25:12 +02:00
Ekaterina Voloshina
b404f4e5b3 fixed cases with ComplSlash (#459)
* fixed Slash functions

* fixed ComplSlash

---------

Co-authored-by: Krasimir Angelov <kr.angelov@gmail.com>
2024-03-25 14:10:47 +01:00
Krasimir Angelov
e7dd5304c7 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-03-23 09:07:40 +01:00
Krasimir Angelov
0df8e6da39 ConjCN,BaseCN,ConsCN in Dutch and Slovenian 2024-03-23 09:07:07 +01:00
aarneranta
bd75a0529c Ara.ExtAdvS 2024-03-22 13:51:20 +01:00
Krasimir Angelov
4957955df0 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-03-22 06:19:25 +01:00
Ekaterina Voloshina
f85fa84ae0 fixed Slash functions (#458) 2024-03-22 06:18:40 +01:00
Aarne Ranta
bb5107fa99 added GenRP to Extend Fin,Fre,Ger,Ita,Swe 2024-03-20 16:34:30 +01:00
Aarne Ranta
97b713520f commas in Ger subord clauses: things remaining to do 2024-03-20 09:27:47 +01:00
Krasimir Angelov
fb42bc6b27 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2024-03-18 16:10:06 +01:00
Krasimir Angelov
13dea0d8ac use pol.s instead of "не" to avoid meta variables in the parser 2024-03-18 16:09:00 +01:00
Krasimir Angelov
38ba6b1d6c added TPastSimple 2024-03-18 16:08:33 +01:00
Inari Listenmaa
04e76381dc Merge pull request #457 from EkaterinaVoloshina/master
added compoundPN and compoundLN
2024-03-16 12:10:14 +01:00
EkaterinaVoloshina
d6cb2806ff fixed order in passive voice 2024-03-15 17:29:34 +01:00
EkaterinaVoloshina
6ae9123f87 fixed passive voice 2024-03-15 17:17:15 +01:00
Ekaterina Voloshina
f7ba54db1c Merge branch 'GrammaticalFramework:master' into master 2024-03-13 16:39:27 +01:00
EkaterinaVoloshina
a338c2c60e added compounds for LN and PN 2024-03-13 16:35:58 +01:00
Ekaterina Voloshina
2eb19b5a2d updated inflection for masculine nouns (#456)
* updated AdjType

* fixed inflection for russian
2024-03-12 07:34:19 +01:00
EkaterinaVoloshina
bffdfdb790 fixed inflection for russian 2024-03-11 17:24:31 +01:00
Ekaterina Voloshina
fa42bf3c41 updated AdjType (#455) 2024-03-11 15:05:57 +01:00
EkaterinaVoloshina
a0a9c31745 updated AdjType 2024-03-11 11:53:39 +01:00
Krasimir Angelov
676e61e255 missed VocRus in InflectionPN 2024-03-11 10:11:40 +01:00
Krasimir Angelov
0fe84ad2cf change lincat PN to make it similar to LN and avoid storing rt and rel 2024-03-11 08:25:12 +01:00
Krasimir Angelov
2aef82181b fix the order of genders for the adjectives and show the adjectives for the nouns 2024-03-11 07:39:31 +01:00
Ekaterina Voloshina
ffcff47545 updated AdjType (#454)
* updated AdjType

* fixed mkA

* fixed AdjType

* fixed numbers

* fixed numbers
2024-03-10 19:52:19 +01:00
Krasimir Angelov
53e731593d use nonExist instead of "" when the noun has no adjective 2024-02-29 20:53:21 +01:00
Ekaterina Voloshina
9193a303a5 restored compoundN (#453) 2024-02-29 19:54:28 +01:00
Ekaterina Voloshina
4b4fbbb401 modified mkPN and added preliminary structure of compounds (#452)
* modified mkPN and added preliminary structure of compounds

* added PassAgentVPSlash

* fixed PassAgentVPSlash and mkN
2024-02-29 11:14:13 +01:00
Inari Listenmaa
600af2b8bf Merge pull request #450 from EkaterinaVoloshina/master
several modifications
2024-02-26 09:55:45 +01:00
Inari Listenmaa
15367fb05d Merge pull request #451 from GrammaticalFramework/fix-listVPS2
(Eng) Keep both prepositions in [VPS2]
2024-02-26 09:52:36 +01:00
Inari Listenmaa
fb8d15872c (Eng) Keep both prepositions in [VPS2] 2024-02-26 09:46:28 +01:00
Ekaterina Voloshina
4c508979bb Merge branch 'GrammaticalFramework:master' into master 2024-02-16 09:49:43 +01:00
aarneranta
f8d100edee ParadigmsAra.mkLN added 2024-02-08 11:55:14 +01:00
aarneranta
651fd743c7 added MorphoDictAra to support WordNetAra 2024-02-08 11:48:52 +01:00
aarneranta
5bdd45a8be ExtendAra: quick and dirty PassVPSlash and CompoundN, to be revisited 2024-02-08 10:39:30 +01:00
Krasimir Angelov
ea2dfb28b0 add Sub1000000000 and Sub1000000000000 2024-02-08 07:44:16 +01:00
Aarne Ranta
82891f3c84 slightly improved adjective inflection in Ara.wmkA, more todo 2024-02-06 11:33:00 +01:00
Aarne Ranta
d2eb7bd46d NumeralSwe: fem miljoner 2024-02-06 09:03:51 +01:00
aarneranta
1e55251235 DocumentationAra completed with Adj tables 2024-02-01 16:20:48 +01:00
Aarne Ranta
9c3e3985bc DocumentationAra verb tables (active) 2024-02-01 07:52:26 +01:00
aarneranta
4c9747a8b6 DocumentationAra: basic implementation, to be completed 2024-01-31 17:03:57 +01:00
aarneranta
04d6642afe fixed Fin heading Erisnimi 2024-01-31 16:28:53 +01:00
Krasimir Angelov
a8b0e5d94b comma instead of dot and space separator in Romance decimals 2024-01-31 12:02:46 +01:00
Aarne Ranta
b746a425d5 Fin: default case for plural names is exterior 2024-01-30 16:40:22 +01:00
Aarne Ranta
d98bb99fc1 added missing InLN and dayMonthYearAdv in Fin 2024-01-30 16:23:17 +01:00
Aarne Ranta
4a12ecd9d3 plural inflection of Fin LN 2024-01-30 16:00:59 +01:00
Inari Listenmaa
61bc8e7619 Merge pull request #449 from Meowyam/master
Updates of passive, SlashV verbs in Malay rgl
2024-01-30 09:01:30 +01:00
Meowyam
196bdcb265 Merge branch 'GrammaticalFramework:master' into master 2024-01-30 15:09:54 +08:00
Meowyam
b3e13c29af correct order for Malay Slash3V3 2024-01-25 18:47:00 +08:00
Meowyam
12bc4ccdf5 add correct negation for AP 2024-01-24 13:56:28 +08:00
Meowyam
2ec3bdc80e correct position of adjCompl in PassVPSlash, PassAgentVPSlash and SlashV2V in Malay 2024-01-24 13:44:45 +08:00
Meowyam
23adb5a493 fix order in Malay AdvS 2024-01-24 11:03:49 +08:00
Meowyam
9b675c308e UttImp, polite and non-polite forms for Malay 2024-01-23 16:46:58 +08:00
Meowyam
87f6e70456 make some fixes to Malay prefixes 2024-01-23 15:10:30 +08:00
Meowyam
9c111ba0bc reinstated kepada Prep in Slash3V3 2024-01-17 04:58:44 +08:00
Meowyam
0ca0106183 correct UttIP for Malay for how many cats 2024-01-17 04:44:34 +08:00
Meowyam
fdfa7f33bf add passive for cinta 2024-01-17 04:13:41 +08:00
Meowyam
293b87e4c6 correct Slash3V3 for Malay, remove Prep 2024-01-17 03:13:48 +08:00
Krasimir Angelov
93673448e4 more cases where IFrac introduces additional dots 2024-01-16 15:19:59 +01:00
Krasimir Angelov
d59831a176 fix the dot in IFrac 2024-01-16 15:14:11 +01:00
Inari Listenmaa
372298ea10 Merge pull request #448 from hleiss/adjectives
(Ger) AP is now a split phrase with separable comparison NP
2024-01-16 02:06:40 -08:00
Hans Leiss
73de2c3f97 (Ger) Changed Quant to remove recently introduced bug that
lead to a metavariable when parsing contracted prepositions
2024-01-15 17:32:28 +01:00
Hans Leiss
6455337430 (Ger) Comment in lincat AP of CatGer corrected 2024-01-14 18:00:07 +01:00
Hans Leiss
00f8b78813 (Ger) Made AP a split phrase with movable comparison NP 2024-01-14 16:05:06 +01:00
Ekaterina Voloshina
9340f73b39 fixed copulas and pushed previous updates (#447)
* fixed copula verbs

* fixed copula verbs
2024-01-13 10:33:17 +01:00
EkaterinaVoloshina
a67af709c2 fixed copula verbs 2024-01-12 23:47:25 +03:00
EkaterinaVoloshina
128f283377 Merge branch 'master' of https://github.com/GrammaticalFramework/gf-rgl
Merged several updates

^X
2024-01-12 23:44:48 +03:00
EkaterinaVoloshina
7259848d30 fixed copula verbs 2024-01-12 23:42:43 +03:00
Inari Listenmaa
8007c4576c Merge pull request #446 from hleiss/ordinals
(Ger) Determiners and DetQuant, DetQuantOrd improved; gender in plural removed; Extend extended
2024-01-09 11:17:28 -08:00
Hans Leiss
4249c33de4 (Ger) Corrections of determiners in Structural, DetQuantOrd in Noun. Additions to Extend 2024-01-08 14:44:47 +01:00
Hans Leiss
55f8f5ebd8 (Ger) APred of OrdSuperl and OrdNumeralSuperl corrected 2023-12-27 16:19:34 +01:00
Hans Leiss
c204bcc753 Synchronize ordinals with master 2023-12-27 12:18:11 +01:00
Hans Leiss
5520f7b081 (Ger) oper asQuant in StructuralGer removed 2023-12-27 11:18:50 +01:00
Hans Leiss
21db782ef5 (Ger) Some lincats changed to remove number in plural; DetQuant and DetQuantOrd reimplemented 2023-12-22 22:44:28 +01:00
Krasimir Angelov
d71ea5d807 added TPastSimple==TPast 2023-12-15 18:49:21 +01:00
Krasimir Angelov
e7495e15e5 fix word order in PossNP 2023-12-15 14:25:55 +01:00
Krasimir Angelov
b5fb8c069b simplify the documentation for verbs 2023-12-15 14:09:28 +01:00
Krasimir Angelov
4aa8f87f65 fix the gender agreement in DetQuantOrd 2023-12-15 14:01:39 +01:00
Meowyam
9afc19461a Merge branch 'GrammaticalFramework:master' into master 2023-12-11 12:32:33 +08:00
aarneranta
441c8305dc added NamesAra to GrammarAra 2023-12-08 14:04:38 +01:00
Hans Leiss
c365d802fe (Ger) APred superlative and NOrd forms of numerals corrected 2023-12-04 15:48:36 +01:00
Inari Listenmaa
074f065046 Merge pull request #445 from hleiss/ordinals
(Ger) ordinal endings of Digits fixed
2023-11-29 11:58:54 +01:00
Hans Leiss
88be4ca0ae (Ger) ordinal endings of Digits fixed 2023-11-29 10:48:20 +01:00
Inari Listenmaa
64ef1d9e49 Merge pull request #444 from hleiss/smallAgr
Smaller Agr for Ger
2023-11-17 14:31:41 +01:00
Hans Leiss
96076d6d81 Reduced Agr to 9 values by removing AgP3SgGen 2023-11-16 19:16:58 +01:00
Inari Listenmaa
7f2bfa11b3 (Fin) Fix bugs in d08, d34, d44 2023-11-07 18:18:13 +01:00
Inari Listenmaa
02b3002484 (Fin) move #consonant to Morpho + add oöHarmony 2023-11-07 18:12:55 +01:00
Inari Listenmaa
12d7702a7d (Fin) add internal table for the pronoun "kukin" 2023-11-06 15:32:31 +01:00
Krasimir Angelov
1d5b9d49e2 use the reflexive clitic when ReflPron is used directly 2023-11-04 21:16:42 +01:00
Krasimir Angelov
c5e62b1614 add soft spaces between groups of digits 2023-11-04 19:24:15 +01:00
Krasimir Angelov
a9b5848a5f Conjunction with and_Conj should always be in plural 2023-11-04 19:01:19 +01:00
Krasimir Angelov
93fbfe8d26 added invarLN for abbreviations and foreign names 2023-11-04 18:17:59 +01:00
Krasimir Angelov
a5e6106d51 make it possible to control the preposition in LN 2023-11-04 17:00:25 +01:00
Krasimir Angelov
c22feb7878 remove the adverb from the documentation for LN 2023-11-04 16:48:13 +01:00
Krasimir Angelov
250f7ee82c a new paradigm for mkLN which adds an adjective 2023-11-04 16:45:22 +01:00
Krasimir Angelov
bfad5839b8 improved documentation 2023-11-04 16:15:53 +01:00
Krasimir Angelov
a4237dad70 ReflRNP & ReflPron in French 2023-11-04 15:25:17 +01:00
Krasimir Angelov
e97205e04d fix the word order for superlatives 2023-11-04 15:04:15 +01:00
Krasimir Angelov
14825b5617 add ReflRNP and ReflPron 2023-11-04 15:03:44 +01:00
Krasimir Angelov
2a345b0afc fix bad_A 2023-11-03 06:55:37 +01:00
Krasimir Angelov
2d03a58d56 show the correct forms 2023-11-02 17:12:55 +01:00
Krasimir Angelov
e3fd978f42 show comparative forms when existing 2023-11-02 17:09:09 +01:00
Krasimir Angelov
01e5165537 make CompoundN more flexible 2023-10-25 11:19:00 +02:00
Krasimir Angelov
fa8cef4112 added prepositions in the functions for rendering dates 2023-10-25 09:41:26 +02:00
Krasimir Angelov
47365491ff Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-10-24 08:27:55 +02:00
Krasimir Angelov
cd1a43db58 added UseDAP 2023-10-24 08:27:36 +02:00
Inari Listenmaa
2f8960e2e8 (Fin) Fixes in Kotus paradigms 25, 26, 33A 2023-10-20 14:27:17 +02:00
Inari Listenmaa
6f73277ac2 (Fin) fix SgPart allomorph for nouns ending #vow+O 2023-10-20 14:27:17 +02:00
Krasimir Angelov
17da1893d7 esto/isto in Spanish/Portuguese 2023-10-16 16:20:42 +02:00
Krasimir Angelov
da608c2084 fix ia2e for monosillable verbs 2023-10-10 15:49:43 +02:00
Krasimir Angelov
9570ff202a rename TPasseSimple to TPastSimple in Extend 2023-10-10 13:57:12 +02:00
Krasimir Angelov
140b59dd70 fix the aspect for TPast 2023-10-10 13:53:39 +02:00
Krasimir Angelov
af1010da71 TPasseSimple unlock four more tenses in Bulgarian as well 2023-10-10 13:38:30 +02:00
Krasimir Angelov
e22bb13eda use SOFT_BIND in front of comma 2023-10-10 09:32:56 +02:00
Krasimir Angelov
ca7d7d8fde move TPasseSimple to Extend 2023-10-10 08:54:23 +02:00
Krasimir Angelov
88fe3e5a25 remove the old parse grammar 2023-10-09 16:21:11 +02:00
Krasimir Angelov
ff32e9e75c include the preposition in QuantityNP 2023-10-09 15:25:28 +02:00
Krasimir Angelov
5b83590913 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-10-08 19:47:38 +02:00
Krasimir Angelov
297f396bd2 fix PassVPSlash/PassAgentVPSlash when the Slash category contain an adverb 2023-10-08 19:46:32 +02:00
Inari Listenmaa
8d25422c79 (Fin) Fix bug in c65: käyty, not *käytty 2023-10-05 10:12:46 +02:00
Hans Leiss
e200403cf8 Add forgotten hunks of branch master to smallAgr 2023-10-01 23:46:57 +02:00
Hans Leiss
1cf6496883 (Ger) Shrink Agr = Ag Gender Number Person from 3*2*3 = 18 values to 2+3+1+3+1 = 10 by
Agr = AgSgP1 | AgSgP2 | AgSgP3 Gender | AgSgP3Gen | AgPl Person | AgPlPol ;
      with AgSgP3Gen resp. AgPlPol used for reflexive,possessive forms of "man", "Sie".

      Compiles AllGer from src in 162sec with 15M VerbGer.gfo vs. 380sec with 17M VerbGer.gfo
2023-09-30 23:28:42 +02:00
aarneranta
af6edf2e6e saved WordNetAra for post-editing 2023-09-29 10:44:57 +02:00
Inari Listenmaa
7827e892d9 (Fin) fix bug in PresPartAP and PastPartAP 2023-09-29 09:38:36 +02:00
Aarne Ranta
67d1e24761 producing a compilable WordNetAra.gf, with a lot of junk 2023-09-28 16:18:23 +02:00
Inari Listenmaa
5f4bb014b8 (Fin) weak grade of "-hka" in paradigms 9A and 10A 2023-09-28 10:09:16 +02:00
Inari Listenmaa
d1ff26f3ce (Fin) add ApposNP, PresPartAP, PastPartAP 2023-09-28 10:06:17 +02:00
Aarne Ranta
f19dcc01f9 import of unicodedata in arabic_utilities 2023-09-27 12:23:43 +02:00
Krasimir Angelov
6e0d281fe0 fix the repeating dot in Spanish 2023-09-26 10:49:49 +02:00
Krasimir Angelov
79643d8604 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-09-26 10:47:39 +02:00
Krasimir Angelov
fdd9b98601 PlainLN was missing prepositions 2023-09-26 10:46:50 +02:00
Krasimir Angelov
195064569d UseLN/PlainLN were missing the contracting prepositions 2023-09-26 10:45:36 +02:00
Aarne Ranta
1c355ce9dd factored out arabic_utilities.py as a separate file 2023-09-25 09:22:21 +02:00
Aarne Ranta
561a8c130d to_wordnet applied to a new format of data 2023-09-25 08:22:47 +02:00
Aarne Ranta
aa1dff6702 added MoreAra.gf 2023-09-21 17:29:38 +02:00
aarneranta
7e383b746e moved wikt-specific paradigms to a separate file (for the moment) 2023-09-21 15:46:41 +02:00
aarneranta
fdd7c9641e Ara: improving Adj inflection by identifying fcl patterns from concrete forms 2023-09-20 16:05:46 +02:00
Aarne Ranta
2419931105 some more paradigms for Arabic Wiktionary generation 2023-09-20 11:54:59 +02:00
Aarne Ranta
abcb3a9f2a improving evaluation of wiktionary generated lexicon 2023-09-20 11:54:29 +02:00
Aarne Ranta
9e8c5eaad5 arabic/wiktionary: including root in the form list 2023-09-18 08:52:32 +02:00
aarneranta
73f0b8ef00 commented and refactored read_wiktionary.py 2023-09-15 14:48:23 +02:00
Aarne Ranta
edecc3fe57 a quick way to extract wordnet morphology 2023-09-14 18:21:18 +02:00
Aarne Ranta
3e9be76e52 evaluation of generated lexicon 2023-09-14 15:19:05 +02:00
Aarne Ranta
d5e6e7e389 Arabic Wiktionary: functions for normalization and evaluation 2023-09-14 12:21:48 +02:00
aarneranta
8e029bd8dd Arabic Wiktionary: started comparing evaluation 2023-09-13 17:24:21 +02:00
aarneranta
3c0adada11 new function in ParadigmsAra to deal with Wiktionary data; lots of untested guesses 2023-09-13 15:29:28 +02:00
Aarne Ranta
afc84a61cb arabic/wiktionary using paradigms with records as arguments to cope with heterogeneous information 2023-09-13 09:06:02 +02:00
Aarne Ranta
8eceb53643 compilable MorphoDictAra generation except for V, not yet using all forms 2023-09-12 19:38:14 +02:00
Aarne Ranta
714d8abac0 GF abstract dict generation 2023-09-12 17:04:50 +02:00
Aarne Ranta
ae1c7f0061 extracting Arabic from Wiktionary, next step GF generation 2023-09-12 16:35:21 +02:00
Aarne Ranta
6312624a5f preparing to read Arabic morpholex from Wiktionary 2023-09-12 12:08:31 +02:00
Andrea Carrión
3640421022 Updating romance langs (mkMU) (#442)
* updating romance langs for percentage in Spa

* Delete Setup_compare.hs
2023-09-12 10:29:33 +02:00
aarneranta
03d3a8cbc2 disambiguated Number in Slovenian 2023-09-08 13:11:10 +02:00
aarneranta
5f9322683c added NamesAra 2023-09-08 13:10:49 +02:00
Krasimir Angelov
f53b872b33 revert the addition of pot5art 2023-08-30 21:35:03 +02:00
Krasimir Angelov
28afb4d0dc added pot5art and fixed inflection for large numerals 2023-08-30 21:03:37 +02:00
Krasimir Angelov
b72ea1e2f1 handle the full definitive article with Masc nouns 2023-08-29 15:08:45 +02:00
Krasimir Angelov
819d4f19ed Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-08-29 09:34:09 +02:00
Krasimir Angelov
a313207f49 added AdjLN 2023-08-29 09:33:52 +02:00
Inari Listenmaa
6c71465939 Template for starting a new resource grammar (#441)
Also addressing this https://github.com/GrammaticalFramework/gf-rgl/issues/238 with a README that adds a suggested implementation order.
2023-08-25 11:35:54 +03:00
Arianna Masciolini
578112713a fix ita terminology (#440) 2023-08-23 20:29:19 +02:00
Inari Listenmaa
aee21a0f51 Merge pull request #439 from harisont/master
Use the definite article 'lo' instead of 'il' even when next word starts with 'y' in Italian
2023-08-23 15:28:58 +03:00
Arianna Masciolini
5674812a8c Merge branch 'GrammaticalFramework:master' into master 2023-08-23 13:16:46 +02:00
Arianna Masciolini
68b9e4b327 use det 'lo' instead of 'il' even when next word starts with y in ita 2023-08-23 13:14:39 +02:00
Krasimir Angelov
54f5b687fe added Decimals 2023-08-23 05:34:30 +02:00
Krasimir Angelov
39e01f04ab another typo 2023-08-22 15:56:33 +02:00
Krasimir Angelov
7758291f8e fixed typo 2023-08-22 15:54:33 +02:00
Krasimir Angelov
128cf3de8c started on the Documentation for Zulu 2023-08-22 13:54:09 +02:00
Krasimir Angelov
5afe500935 restore the compilation for Slovak, Croatian and Czech 2023-08-22 08:11:34 +02:00
Krasimir Angelov
93d31dfede Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-08-22 08:07:00 +02:00
Krasimir Angelov
9a413efd6f restore InLN in German 2023-08-22 08:06:07 +02:00
Aarne Ranta
84a03ef78a added PiedPiping to Extend and corrected the comment on RelSlash in RelativeEng 2023-08-21 22:21:47 +03:00
Krasimir Angelov
fb398c603e The new Decimal API 2023-08-21 20:14:26 +02:00
Krasimir Angelov
58da8deca8 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-08-21 19:38:13 +02:00
Krasimir Angelov
ce8b4575ee partly restore the Names API in German 2023-08-21 19:37:52 +02:00
Aarne Ranta
3ab3eab36b Merge branch 'master' of https://github.com/GrammaticalFramework/gf-rgl 2023-08-21 19:45:20 +03:00
Aarne Ranta
20dcab3208 some more infinitives and their interpretations in Fin 2023-08-21 19:44:20 +03:00
Krasimir Angelov
1c775791b4 make Zulu compile 2023-08-21 17:31:40 +02:00
Aarne Ranta
a00d41dcfa re-enabled Ger.possess_Prep 2023-08-21 16:08:52 +03:00
LauretteM
956d2fc9c4 (zul) temp paradigms fix (#435) 2023-08-21 15:04:17 +02:00
Krasimir Angelov
0b52307e91 added lin FClause 2023-08-21 15:02:21 +02:00
Krasimir Angelov
1961c6ae94 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-08-21 15:00:01 +02:00
Aarne Ranta
0cbae9883d commented out Names from Grammar temporarily to avoid failure with notYet 2023-08-21 15:59:33 +03:00
Aarne Ranta
f08c9c0c93 1st infinitive long 2023-08-21 15:58:57 +03:00
Krasimir Angelov
dc58886b79 add Zulu in the list of languages 2023-08-21 14:41:55 +02:00
Krasimir Angelov
1562e53d77 small All module for Zul 2023-08-21 14:41:24 +02:00
Inari Listenmaa
98128cedd7 (Ger) Comment out lins that don't compile 2023-08-21 11:45:00 +03:00
Inari Listenmaa
e872c57758 Merge pull request #434 from anka-213/master-1
github actions: Run tests on pull requests as well
2023-08-21 11:30:03 +03:00
Andreas Källberg
42f64725f2 Run tests on pull requests as well 2023-08-21 16:27:20 +08:00
Inari Listenmaa
a6f3dc6d05 Merge pull request #433 from hleiss/prepDefArt
Prep def art
2023-08-21 11:16:29 +03:00
Aarne Ranta
e729e4e707 Fin: some more infinitives interpreted 2023-08-18 08:40:33 +03:00
Aarne Ranta
fccc0428fd a couple more infinitives interpreted 2023-08-17 23:04:41 +03:00
Aarne Ranta
7a75cf3fb3 interpreting infinitives 2023-08-17 17:08:33 +03:00
Krasimir Angelov
1f73830d4b fix the documentation 2023-08-16 21:27:09 +02:00
Krasimir Angelov
e9dc5d9cad Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-08-16 19:39:49 +02:00
Krasimir Angelov
6bc965f6c2 the names API in more languages 2023-08-16 19:39:22 +02:00
Aarne Ranta
146bc71a06 clean-up after Fin infinitives 2023-08-16 16:05:28 +03:00
Aarne Ranta
31b025bdf1 completed infinitive and participle structures of Finnish 2023-08-16 11:32:11 +03:00
Aarne Ranta
a9408305df added SCAcc in Finnish and fixed the subject form in passives 2023-08-15 22:16:20 +03:00
Aarne Ranta
7d483b1539 uses of Finnish infinitive forms in syntax 2023-08-15 22:15:38 +03:00
Inari Listenmaa
9265857edb Merge pull request #432 from anka-213/gh-actions
Check in CI that building the RGL succeeds
2023-08-15 16:46:27 +03:00
Andreas Källberg
e2b6af2ca4 Fix typo 2023-08-15 20:26:05 +08:00
Andreas Källberg
9444848069 Create github actions for building rgl 2023-08-15 20:24:51 +08:00
Aarne Ranta
9c5b87e1c8 Lav: comma in please_Voc like in VocNP 2023-08-15 11:29:25 +03:00
Inari Listenmaa
91237f753c (May) don't use API due to problem with path 2023-08-14 15:43:27 +03:00
Krasimir Angelov
d25d648134 add linref for LN 2023-08-11 11:31:00 +02:00
Krasimir Angelov
531e2c2dd2 progress on the Names API 2023-08-07 21:15:48 +02:00
Krasimir Angelov
9fcee982e5 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-08-07 15:59:45 +02:00
Krasimir Angelov
1b696739be mkLN in Catalan, Italian and Portuguese 2023-08-07 15:59:19 +02:00
Krasimir Angelov
fb48791d6a fix definite articles 2023-08-06 21:30:30 +02:00
Hans Leiss
e07c9ee044 Missing application of vp.c2.s to GPl in ExtendGer added 2023-08-05 19:42:33 +02:00
Hans Leiss
1f728c31a0 Conflict marker in ExtendGer removed 2023-08-05 19:11:21 +02:00
Hans Leiss
b76b8af7b2 Merge master into prepDefArt 2023-08-05 18:17:08 +02:00
Hans Leiss
e2ce9de503 Conflicts with preposition and defart resolved 2023-08-05 18:01:03 +02:00
Hans Leiss
c659270fcc Synchronized remote master; then pulled and resolved conflicts 2023-08-05 15:46:12 +02:00
Hans Leiss
c8a424c023 Implementation of prep+DefArt-gluing independent of |PCase| finished 2023-08-04 20:34:02 +02:00
Inari Listenmaa
27e6295655 Merge pull request #430 from GrammaticalFramework/misc-malay-eng
Misc small things for Malay and English
2023-08-04 17:20:46 +08:00
Inari Listenmaa
dc8da4a212 (May) remove new lins from MissingMay 2023-08-04 17:19:40 +08:00
Inari Listenmaa
e91b613e1a (May) Misc new words and funs 2023-08-04 17:19:14 +08:00
Inari Listenmaa
f7e9357ed4 (Eng) ize~ise variants in us_britishV 2023-08-04 16:29:01 +08:00
Hans Leiss
0d5919d511 Extended the new glueing of prepositions with article to {Construction,Markup,Extra}Ger.
Minor edits of param Weight, mkSubject and entries in LexiconGer.
2023-08-03 16:39:30 +02:00
Krasimir Angelov
22a168198b support for measurement units 2023-07-25 19:38:43 +02:00
Krasimir Angelov
5d912f78a4 floating point numerals 2023-07-24 20:06:01 +02:00
Krasimir Angelov
cb26429655 added missing param 2023-07-24 20:01:56 +02:00
Krasimir Angelov
1910ba1b2a Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-07-24 17:30:43 +02:00
Krasimir Angelov
645de9955a started a separate module for names 2023-07-24 17:24:13 +02:00
Meowyam
18602c1e1d Merge branch 'GrammaticalFramework:master' into master 2023-07-14 11:19:08 +08:00
Meowyam
be41a945f5 add therefore to Malay 2023-07-14 10:42:17 +08:00
Meowyam
f773272437 add speak and but to Malay 2023-07-14 10:41:57 +08:00
Inari Listenmaa
2023af9a45 Merge pull request #429 from GrammaticalFramework/somali-verbs-contractions
(Som) Updates to verb morphology and adposition contractions
2023-06-11 21:17:31 +02:00
Inari Listenmaa
4b336c2453 (Som) Morgan's corrections to adpos. contractions 2023-06-09 22:41:02 +02:00
Inari Listenmaa
8b8564e828 (Som) Fixes in verb constructors, still WIP 2023-06-09 22:26:15 +02:00
Inari Listenmaa
722c077eb6 (Som) more unit tests for imperative 2023-06-09 22:25:40 +02:00
Inari Listenmaa
7c334847a5 (Som) test past Sg1 + plural imperative 2023-06-09 22:22:25 +02:00
Inari Listenmaa
ea4249752e (Som) add explicit module source to avoid warnings 2023-06-09 22:20:20 +02:00
Inari Listenmaa
8a12362649 (Som) Rename internal opers, update adp.comb. list
source: Morgan Nilsson's list, add ?? for those that aren't there
2023-06-09 22:20:14 +02:00
Inari Listenmaa
0e09cf9b4a Merge pull request #428 from GrammaticalFramework/korean-imperative
Korean imperative
2023-05-29 19:34:07 +02:00
Inari Listenmaa
7c9b6d0d02 (Kor) Update test cases after changes in grammar 2023-05-29 19:32:31 +02:00
Inari Listenmaa
e7559884e0 (Kor) change V*'s linref, for morpho test cases 2023-05-29 19:32:09 +02:00
Inari Listenmaa
70cbbe689d (Kor) Use obj in imp, overriding V2's subject case 2023-05-29 19:30:40 +02:00
Inari Listenmaa
fcfb60b6e5 (Kor) Add separate form for neg. imperative 2023-05-29 19:27:10 +02:00
Inari Listenmaa
7cae261a97 (Kor) add unit tests for imperatives 2023-05-29 17:07:08 +02:00
Inari Listenmaa
bd6faa569e (Kor) use Polite as imperative—not perfect but…
…works for some situations, improvements are welcome.
2023-05-29 17:06:54 +02:00
Meowyam
83aadfaaf9 add Idet to Malay RGL 2023-05-26 15:03:11 +08:00
Meowyam
d6129a26e5 Merge branch 'GrammaticalFramework:master' into master 2023-05-26 14:58:37 +08:00
Inari Listenmaa
a429a9bb9c Merge pull request #426 from GrammaticalFramework/fix-chinese-RelNP
Fix Chinese RelNP and Malay {Base,Cons,Conj}VPS
2023-05-25 11:35:13 +02:00
Inari Listenmaa
a5929da02c (May) fix BaseVPS, ConsVPS and ConjVPS 2023-05-25 11:34:08 +02:00
Inari Listenmaa
ed61647f86 (Chi) Fix word order in RelNP
All the other changes are those needed due to changes in lincat of NP.
2023-05-25 11:27:37 +02:00
Inari Listenmaa
ccdb58de21 (Chi) add de after RelVPS 2023-05-25 11:23:45 +02:00
Inari Listenmaa
a66d15a0ea Merge pull request #425 from GrammaticalFramework/ByVP-chi-may
Add Extend.ByVP in Chinese and Malay
2023-05-23 10:21:29 +02:00
Inari Listenmaa
760210c219 (May) add ByVP 2023-05-23 10:19:53 +02:00
Inari Listenmaa
2d429489bb (Chi) add ByVP 2023-05-23 10:19:10 +02:00
Krasimir Angelov
8b1309c99d Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-04-24 12:03:52 +02:00
Krasimir Angelov
654e02da7e guessed ApposNP 2023-04-24 12:03:14 +02:00
Inari Listenmaa
efdc35f22f remove dead link to coverage map 2023-04-13 17:20:22 +03:00
Inari Listenmaa
260582b58a remove dead link to the coverage map 2023-04-13 17:19:08 +03:00
Aarne Ranta
edfe72514b fixed irreg verbs in DictFre; reject non-verbs in ParadigmsGer (check that infinitive ends -n) 2023-04-04 15:51:09 +02:00
Krasimir Angelov
95e7996a2d added PlSurname 2023-03-30 14:56:05 +02:00
Krasimir Angelov
1c0a4f98ed UseComp_estar/UseComp_ser in Extend 2023-03-30 14:24:06 +02:00
aarneranta
ac2c5c52ac ExtraSpa.UseComp_ser 2023-03-29 14:00:29 +02:00
Krasimir Angelov
5ea609092b added missing inflection tables 2023-03-23 12:35:59 +01:00
Meowyam
6e16add239 add passives for eat, drink, like 2023-03-22 18:59:41 +08:00
Meowyam
b55abfc8fe fixed slash3v3 prepositions; verb tense in ComplVV 2023-03-22 13:46:32 +08:00
Meowyam
3446c192ba add PassVPSlash to May 2023-03-21 16:36:16 +08:00
Meowyam
69356d8c9b add PassAgentVPSlash to May 2023-03-21 16:36:16 +08:00
Krasimir Angelov
95364e667c copy PastPartAP/PastPartAgentAP to ExtendGer 2023-03-21 07:58:55 +01:00
aarneranta
9c96fc6653 added Extend.PassVPSlash to Ita, Spa 2023-03-20 13:02:12 +01:00
Krasimir Angelov
69d5b80f23 added ExtendRon 2023-03-16 12:03:18 +01:00
Krasimir Angelov
1b9b15fbed added PassVPSlash 2023-03-16 09:48:16 +01:00
Krasimir Angelov
14955ff5d4 added PassVPSlash & PassAgentVPSlash 2023-03-16 09:38:43 +01:00
Krasimir Angelov
e192627e24 copy PassVPSlash/PassAgentVPSlash to ExtendDut 2023-03-16 09:24:10 +01:00
Krasimir Angelov
1c496a719b Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-03-15 16:54:59 +01:00
Krasimir Angelov
306951280a added ProDrop 2023-03-15 16:54:44 +01:00
Aarne Ranta
1da671016b Merge pull request #424 from harisont/master
More cases where the definite article "lo" (rather than "il") is used
2023-03-13 09:34:40 +01:00
Arianna Masciolini
817f6702b1 more cases where lo is used(and not il) 2023-03-10 18:13:25 +01:00
Krasimir Angelov
2551040b5a PassVPSlash in ExtendFre 2023-03-08 18:51:06 +01:00
Inari Listenmaa
98e3aa8c61 Merge pull request #423 from Meowyam/master
changes to A2 in Malay RGL
2023-03-08 16:42:37 +08:00
Meowyam
1c927b1bf1 Merge branch 'GrammaticalFramework:master' into master 2023-03-08 10:09:02 +08:00
Meowyam
bd23dfa08d fix A2 to show NP in Malay RGL 2023-03-08 10:07:55 +08:00
Inari Listenmaa
bd93d8296d (May) add some lexicon 2023-03-03 12:06:59 +08:00
Inari Listenmaa
4334bb0846 (May) linearise all Utt* funs 2023-03-03 12:06:48 +08:00
Inari Listenmaa
33e9e60b3a Merge pull request #422 from Meowyam/master
Changes to Malay RGL
2023-03-01 15:09:47 +08:00
Meowyam
9ca05bae95 Merge branch 'GrammaticalFramework:master' into master 2023-03-01 15:08:43 +08:00
Meowyam
b462d7893f changes to mkA2, mkV and insertObj in malay rgl added 2023-03-01 15:06:25 +08:00
Inari Listenmaa
2fcd5bd3ae (Chi) compile ExtendChi + use linref for VP 2023-03-01 10:20:32 +08:00
Inari Listenmaa
4a56f8e3fd (Chi) Add ComplVPIVV, GerundNP and GerundAdv 2023-03-01 10:20:32 +08:00
Inari Listenmaa
cb397987fc (Chi) compile ExtendChi + use linref for VP 2023-02-24 15:26:57 +08:00
Inari Listenmaa
a5f3e9ebd2 (Chi) Add ComplVPIVV, GerundNP and GerundAdv 2023-02-24 15:26:03 +08:00
Inari Listenmaa
b845b174c0 Merge pull request #421 from GrammaticalFramework/maryam-malay
more Malay
2023-02-24 14:06:03 +08:00
Inari Listenmaa
7ec7a831f3 (May) minor fixes / add word 2023-02-24 14:05:08 +08:00
Inari Listenmaa
a2aca74dd6 (May) Add more lins to ExtendMay 2023-02-24 14:04:49 +08:00
Inari Listenmaa
b4a2f686bb (May) add coordination AP, NP and CN 2023-02-24 12:49:38 +08:00
Inari Listenmaa
1ad71e10b1 (May) make linrefs into opers in ResMay 2023-02-24 12:46:59 +08:00
Inari Listenmaa
87b6bf9f0a (May) Add SlashV2S + mkV2S + lexicon + test case 2023-02-24 11:37:28 +08:00
Inari Listenmaa
bfb016b3ea (May) move passive to V's infl.table+rename opers 2023-02-24 11:16:06 +08:00
Inari Listenmaa
a8b061926b (May) remove implemented funs from Missing 2023-02-24 10:42:32 +08:00
Meowyam
61c120f531 Merge branch 'GrammaticalFramework:master' into master 2023-02-23 16:47:48 +08:00
Meowyam
6743078f6d add ComplA2 2023-02-23 16:22:27 +08:00
Meowyam
dab2749b82 add SlashV2V 2023-02-23 16:22:27 +08:00
Inari Listenmaa
7ca6505762 Merge pull request #420 from Meowyam/master
changes to Malay RGL
2023-02-23 15:39:46 +08:00
Meowyam
0eeaf5bce7 Merge branch 'GrammaticalFramework:master' into master 2023-02-23 15:35:29 +08:00
Meowyam
ebd4a462eb add UseSlash 2023-02-23 15:31:36 +08:00
Meowyam
5ed93e6a03 add mkV2V is str and v prep prep 2023-02-23 15:27:56 +08:00
Meowyam
fd51156369 add mkVS 2023-02-23 15:06:14 +08:00
Meowyam
ee01aa1cd5 add ListS and ComplVA 2023-02-23 14:08:32 +08:00
Meowyam
f53078dbad remove shall_VV 2023-02-23 14:08:32 +08:00
Inari Listenmaa
b17d353994 Merge pull request #419 from GrammaticalFramework/chinese-extensions
More VPI* and VPS* funs in Chinese
2023-02-23 11:07:32 +08:00
Inari Listenmaa
b2f8d2e9dd (Chi) Add all VPS+VPI variants 2023-02-22 22:07:25 +08:00
Inari Listenmaa
ea149d63f1 (Chi) Add linref for Prep 2023-02-22 22:06:18 +08:00
Krasimir Angelov
36235ca3a9 added AnaphPron 2023-02-22 10:46:43 +01:00
Krasimir Angelov
77b370cbcf AnaphPron produces a pronoun from a noun phrase 2023-02-22 08:26:29 +01:00
Meowyam
23afeee87c Merge branch 'GrammaticalFramework:master' into master 2023-02-22 12:18:48 +08:00
Meowyam
a741e192e2 add ListS, insertObj 2023-02-22 11:37:43 +08:00
Krasimir Angelov
ef1d9a0cbc fix the agreement for ConjCN,BaseCN & ConsCN 2023-02-15 15:03:32 +01:00
aarneranta
7b3b49400a added ExtendGer functions needed in Wikimini 2023-02-09 09:35:05 +01:00
Inari Listenmaa
e49c64bac9 Merge pull request #418 from GrammaticalFramework/eng-VPI-VPS
Minor fixes in Eng VPI and VPS
2023-02-08 14:43:30 +08:00
Inari Listenmaa
65e5b78edd (Eng) don't drop VP's ext field when making VPI 2023-02-08 11:36:48 +08:00
Inari Listenmaa
c6f6a749b5 (Eng) uncontracted form for standalone VPS 2023-02-08 11:32:47 +08:00
Aarne Ranta
f807a16b46 analysing what Grammar functions are missing in each RGL language 2023-02-07 18:50:16 +01:00
Krasimir Angelov
828bf9c677 extend the names API 2023-02-07 08:47:34 +01:00
Inari Listenmaa
a6faaeb351 (Fin) d28: works for virsi-virren and kynsi-kynnen 2023-01-30 16:57:24 +08:00
Krasimir Angelov
3ea7af5cb8 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2023-01-20 18:54:20 +01:00
Krasimir Angelov
8c3375b67b minimal extension to the Numeral API 2023-01-20 18:53:41 +01:00
Krasimir Angelov
14cabc847a make MorphoPol usable as an API 2023-01-20 18:52:06 +01:00
Aarne Ranta
3116d6887a Merge pull request #417 from lojikas/master
Adding Lithuanian
2022-12-20 14:03:58 +01:00
Lojikas
73a73d66d9 Adding Lithuanian 2022-12-20 14:07:34 +02:00
Inari Listenmaa
f8dfc34895 (Fin) Allow any characters in dSDP
There are so many edge cases, like tokens ending in %, or any special character—better not restrict the input
2022-12-19 16:10:43 +01:00
Inari Listenmaa
4ceb822713 Merge pull request #416 from LauretteM/master
Mostly Zulu VP changes
2022-12-17 10:22:25 +01:00
Laurette Marais
1c8127bcc2 (zul) removed duplicate entry in MultiLex 2022-12-16 23:18:20 +02:00
Laurette Marais
a4c3da9e34 (zul) some spurious roots and stems removed 2022-12-16 23:16:54 +02:00
Laurette Marais
21e84c764c (zul) mostly changes to VP 2022-12-16 23:16:25 +02:00
Krasimir Angelov
7085acacc9 added GN & SN categories for constructing names 2022-12-15 08:44:42 +01:00
Krasimir Angelov
d0e433cd46 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2022-12-13 20:10:29 +01:00
Krasimir Angelov
b319bb1e96 fix link 2022-11-09 14:29:28 +01:00
aarneranta
79b67f620b Merge branch 'master' of https://github.com/GrammaticalFramework/gf-rgl 2022-11-09 14:27:11 +01:00
aarneranta
7066d2f6bb added InflectionPN in Fin 2022-11-09 14:26:51 +01:00
Krasimir Angelov
c052380eda Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2022-11-09 14:25:40 +01:00
Krasimir Angelov
52184784c8 fixed link 2022-11-09 14:25:18 +01:00
Inari Listenmaa
23f8429019 (Fin) Allow abbreviations ending in digits 2022-10-25 14:55:26 +02:00
Inari Listenmaa
a2df258331 Merge pull request #414 from inariksit/finnish-paradigm-small-fixes
(Fin) new 2-arg paradigm for N outside API
2022-10-24 17:03:05 +02:00
Inari Listenmaa
b96f4c9841 (Fin) new 2-arg N paradigm outside AP, w/ Pl Gen 2022-10-24 16:58:13 +02:00
Inari Listenmaa
0f47122ba9 (Fin) remove inaccurate pattern match 2022-10-24 16:56:23 +02:00
Krasimir Angelov
7d9d2a2b5c support plural PNs 2022-10-21 21:48:51 +02:00
Krasimir Angelov
a718a92485 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2022-10-21 20:51:58 +02:00
Krasimir Angelov
b066fb4d35 extended Numerals API. moved from the WordNet grammar 2022-10-21 20:50:49 +02:00
Inari Listenmaa
30d90909d5 Merge pull request #413 from inariksit/finnish-paradigm-small-fixes
Small fixes in Finnish noun paradigms
2022-10-21 11:21:44 +02:00
Inari Listenmaa
7cc24e3d88 (Fin) More patterns in alternative 2-arg paradigms 2022-10-21 10:44:23 +02:00
Inari Listenmaa
54d4a762d6 (Fin) Allow punctuation after abbreviations 2022-10-21 10:43:42 +02:00
aarneranta
96f4543c4c some fixes in wikt-gf extraction 2022-10-12 15:46:47 +02:00
aarneranta
dc19b6a88a testing Hrv smart paradigms against Wiktionary 2022-10-12 12:30:24 +02:00
Aarne Ranta
43a742c91e Hrv: fixes in MorphoDict generation 2022-10-12 10:50:52 +02:00
Aarne Ranta
c20e9b6383 first version of MorphoDictHrv extracted from wiktionary; TODO better use of PN and V forms 2022-10-12 10:11:12 +02:00
Aarne Ranta
8755f9da65 Hrv: generating morpholex from wiktionary, in progress 2022-10-11 17:43:36 +02:00
Aarne Ranta
14351f2767 improved generation of Hrv lexicon from Wiktionary; still work in progress 2022-10-11 13:39:49 +02:00
Aarne Ranta
c656f91f93 version of ResHrv heavily using table extension ; requires GF from 4 Oct therefore not standard 2022-10-05 11:41:19 +02:00
Aarne Ranta
8811da5e51 Hrv: some fixes in Adj 2022-10-01 19:07:39 +02:00
Aarne Ranta
8fc2460af6 Hrv comparison forms 2022-09-30 18:12:48 +02:00
Inari Listenmaa
60c733bd35 restore languages that went missing in a27e5022 2022-09-30 13:36:33 +02:00
Aarne Ranta
47eca9545b Hrv: enough to implement NLG experiment, but bogus in some places 2022-09-30 13:31:06 +02:00
Aarne Ranta
a27e502233 Hrv compiles with make install (but with lots of functions from MissingHrv) 2022-09-30 11:50:15 +02:00
Aarne Ranta
0b7ad68400 Hrv: make API compilable 2022-09-30 11:34:11 +02:00
Inari Listenmaa
ac3b8bba6b Merge pull request #411 from GrammaticalFramework/eleven-norwegian
Change elve to elleve in both Norwegians
2022-09-29 16:17:27 +02:00
Inari Listenmaa
83d1ef4fa0 Merge pull request #412 from inariksit/finnish-paradigms
(Fin) New forms to 2-argument mkN opers in ParadigmsFin
2022-09-29 16:16:15 +02:00
Inari Listenmaa
e80c399b0f (Fin) Allow Sg Gen and Pl Nom as 2nd arg to mkN 2022-09-29 16:14:17 +02:00
Inari Listenmaa
2ef266052f (Fin) add 2 new mk2NnumCase funs outside API
now supports sg gen, sg par and sg ill as 2nd argument to mk2N<numCase>
2022-09-29 16:07:56 +02:00
Aarne Ranta
5a6701cda8 Hrv: marked missing functions needed for AW experiment 2022-09-29 10:42:36 +02:00
Aarne Ranta
235fd0570f Hrv: first words in Lexicon to test Lang 2022-09-29 10:06:03 +02:00
Aarne Ranta
54713a2987 Hrv: extended smart paradigms 2022-09-29 09:49:29 +02:00
Aarne Ranta
d8e313c75c Hrv: dumping essential Wiktionary information to smaller json files 2022-09-28 19:09:04 +02:00
Aarne Ranta
b1a1961454 using extract.py for altertively getting translations from Wiktionary 2022-09-28 12:51:34 +02:00
Aarne Ranta
13fac41ce6 LangHrv compiles now, but with a partial Slovak lexicon 2022-09-28 11:29:03 +02:00
Aarne Ranta
7c2c519e50 NumeralHrv: thousands (some morpho questions to check) 2022-09-27 11:49:07 +02:00
Aarne Ranta
44fdb933aa NumeralHrv up to thousands 2022-09-27 11:29:28 +02:00
Aarne Ranta
b5ea76dd79 Hrv: copulas and personal pronouns 2022-09-27 09:58:03 +02:00
Aarne Ranta
7a0b1eed34 started Hrv verbs and their Wiktionary extraction 2022-09-25 10:06:36 +02:00
aarneranta
3eac1b9d0c adjective sound changes and extraction from wiktionary 2022-09-23 15:54:43 +02:00
Aarne Ranta
ae2b3bec29 started extracting inflections from Hrv Wiktionary 2022-09-23 09:30:57 +02:00
Aarne Ranta
e7a5daa17f Hrv: started adjectives 2022-09-22 11:31:58 +02:00
Aarne Ranta
0500091297 Hrv: some Neutr and Fem paradigms 2022-09-21 17:54:16 +02:00
Aarne Ranta
bca75fae7b Hrv masc noun declensions done 2022-09-21 17:17:49 +02:00
Aarne Ranta
912de3f664 added tests for Croatian noun paradigms 2022-09-21 08:44:11 +02:00
Aarne Ranta
70d9c74279 started Croatian, some noun declensions in place 2022-09-20 11:07:30 +02:00
Inari Listenmaa
0c57e45540 (Fin) Add paradigm outside API with args SgNom,Gen 2022-09-15 20:06:51 +02:00
John J. Camilleri
5dde3189e3 Change elve to elleve in both Norwegians 2022-09-15 15:54:47 +02:00
Inari Listenmaa
2340a98507 (Fin) Add linearisation to AdjAsCN, AdjAsNP 2022-09-12 13:25:34 +02:00
Krasimir Angelov
67d5bb9714 fix compilation with the majestic compiler 2022-09-10 16:48:33 +02:00
Krasimir Angelov
96717e5785 remove duplicated definition 2022-08-24 19:56:14 +02:00
Krasimir Angelov
c5606ff55d revert the change. GF_LIB_PATH needs to be checked 2022-08-24 14:32:47 +02:00
Krasimir Angelov
fc1ca4b8f1 no neet to check GF_LIB_PATH. GF will do it anyway 2022-08-24 14:29:27 +02:00
Krasimir Angelov
d953c0f503 fix: drop the leading space 2022-08-24 13:52:43 +02:00
Krasimir Angelov
5645134aa3 find the RGL folder by using gf --version 2022-08-24 13:29:44 +02:00
Hans Leiss
1cad178ec8 The glueing of preposition with definite article is now implemented using
NP.s : Bool => Case => Str  and   NP.w = WDefArt

np.s ! False : Case => Str is the ordinary paradigm; if the np has a
definite article, np.w = WDefArt, and np.s ! True : Case => Str is the
paradigm with definite article omitted, if np.a = Ag g Sg p.

Prepositions now have type

  Prep = {s : GenNum => Str ; s2 :Str ; c : Case ; isPrep : PrepType},

and |Prep| = |Case|*|isPrep| = 4 * 3 = 12, independent of |PCase| >= 18.

A preposition p with p.isPrep = isPrepDefArt has in p.s ! (GSg g) : Str
the preposition glued with definite article of a following np in singular.

The modified linearization categories for Prep, NP, Det, DAP, Quant,
Predet are no longer Prep', NP' etc., but Prep, NP etc. in CatGer.
They are now also used in gf-rgl/tests/german/TestLangGer.gf.
The previous auxiliary files abstract/Adjective'.gf etc. are removed.

BUT: for complexitiy reasons,
- the glueing is omitted in SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash,
- SlashVP : NP -> SlashVP -> ClSlash (in SentenceGer and TestLanGer)
  are commented out.
SlashVP causes grammar compilation to crash due to memory limits, probably
because mkClause and its modification mkClSlash are too detailed.
2022-08-23 15:32:17 +02:00
Laurette Marais
fe2c221e7b (zul) misc changes 2022-08-23 09:58:08 +02:00
Laurette Marais
8eea5d481f some new words 2022-08-23 09:55:06 +02:00
Inari Listenmaa
34300d68bb (Rus) Exclude mkAdN, avoid clash with ParadigmsRus 2022-08-15 15:05:27 +02:00
Krasimir Angelov
d49405b405 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2022-08-15 06:57:06 +02:00
Krasimir Angelov
c86481df61 added compoundN 2022-08-15 06:56:46 +02:00
Inari Listenmaa
ff54d2e7ad Merge pull request #410 from nemoyjh/master
Added very minimally functional Tamil
2022-08-14 10:23:08 +02:00
Yap Jun Hong (Nemo)
018fe16e2b Made a round of changes as shown on https://github.com/GrammaticalFramework/gf-rgl/pull/410 2022-08-14 16:18:39 +08:00
Yap Jun Hong (Nemo)
14d090b15f Fixed Readme error with screenshot 2022-08-14 14:39:34 +08:00
Yap Jun Hong (Nemo)
04fb507c9a Edited Readme file hierarchy so that it's a screenshot. Added FileHierarchy.png also 2022-08-14 14:37:09 +08:00
Yap Jun Hong (Nemo)
1e73c0b2c7 Changed Tamil api file links from 'malay' to 'tamil', removed MissingTam, Edited Languages.csv to be in alphabetical order 2022-08-14 14:30:57 +08:00
Yap Jun Hong (Nemo)
40b28cf858 Wrote a readme guide for folder 'src' and a separate readme for tamil 2022-08-14 14:20:03 +08:00
Krasimir Angelov
9cdb7ec37b a couple of functions necessary for the Russian WordNet 2022-08-13 22:40:13 +02:00
Yap Jun Hong (Nemo)
a6cfe58398 Added minimally functional Tamil 2022-08-13 23:09:59 +08:00
Hans Leiss
787f9d10e8 The files for GrammarGer and AllGer (but not Construction, Documentation, Markup)
are edited to allow for glued Prep+DefArt, using new categories NP',Det',Quant',
Predet',DAP'.

The previous NP.s : Case => Str*Str allows parsing

   "in dem Meer" = in_Prep ++ (np.s ! Case).p1
   "im Meer"     = in_Prep ++ (np.s ! Case).p2,

but since only one of the strings of (np.s!Case) is used, the tree
contains a metavariable like ?2 (the grammar is "erasing"). (Similarly, if we used
NP.s : Case => Str and NP.s2 : Case => Str.)

To get rid of the metavariables, we have to choose BY A PARAMETER, say

    NP.s : droppedDefArt? => Case => Str

Using np.a = Ag g n p, the preposition can select between preposition
alone or preposition with definite article (glued or not), via

    Prep = {s : GenNum => Str ; s2 :Str ; c : Case ; isPrep : PrepType }

The combination is done in appPrepNP' and appPrep'. This is
independent of the number of glued Prep+DefArt. But LangGer compiles
now in 200s using 30% memory (without SlashV2VNP). Can AppPrepNP' (and
insertObjNP') be simplified?
2022-08-11 21:07:03 +02:00
Krasimir Angelov
81218506d9 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2022-08-09 11:24:09 +02:00
Krasimir Angelov
3bcb34559e added DocumentationPol.gf 2022-08-09 11:23:36 +02:00
Krasimir Angelov
4beacc0f64 added linref PN 2022-08-09 11:22:57 +02:00
Laurette Marais
e9940f32c5 (zul) changes to improve coverage (VulaBula) 2022-08-03 08:39:08 +02:00
Inari Listenmaa
444bf51e09 (Fin) Add linearisation for UttAccNP 2022-08-03 08:01:32 +02:00
Krasimir Angelov
9cfc36fc73 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2022-08-02 16:08:01 +02:00
Krasimir Angelov
607f4d68ae make mkPN more portable across languages 2022-08-02 16:07:27 +02:00
Inari Listenmaa
7fc42192d7 (Fin) call mkPrefixA if mkA's argument ends in - 2022-07-28 15:32:09 +02:00
Inari Listenmaa
43fbf928fd Merge pull request #409 from inariksit/misc-estonian
Minor fixes/cleanup in Estonian
2022-07-26 09:28:27 +02:00
Inari Listenmaa
afe76e1fe0 (Est) get rid of most lock field warnings 2022-07-25 17:38:35 +02:00
Inari Listenmaa
728bb1faf9 (Est) Remove param SType from Cl
unnecessary apram, can form question by adding string "kas" when needed
2022-07-25 16:03:36 +02:00
Hans Leiss
ec41af609d 1. updated types in ../abstract/*'.gf to replace NP,Det,Quant,Predep,Prep,DAP by
their primed versions
2. implemented all linearizations to use the primed categories

This allows linearization with prep+defart's, but parsing gives metavariables
in parses (DetQuant ? NumSg) and (DetQuantOrd ? NumSg ord) for prep+defart.

Todo: make Quant.s and NP. depend on PronType = isCat | isPron | isPronDefArt.

Without SlashV2VNP', compiles in 84 sec and gives 3,6M VerbGer.gfo, 2,3M SentenceGer.gfo.

Uses |Prep'|=12 instead of |Prep|=18, |NP'|=72 instead of |NP|=54
2022-07-22 11:49:19 +02:00
Laurette Marais
f634af931e (zul) miscellaneous fixes 2022-07-20 12:10:54 +02:00
Hans Leiss
8eee3df739 Modifications of Prep\', Predet\', Quant\', Det\', NP\' to remove PCase and use NP.s : Agr => Str * Str instead 2022-07-19 18:27:56 +02:00
Aarne Ranta
df93a21d79 Merge pull request #407 from rnd0101/fix-stroika-pl-gen
Fix plgen of 3*a nouns, eg stroika
2022-07-18 08:24:39 +02:00
Aarne Ranta
de2989d7c6 Merge pull request #408 from hleiss/reflexiveNPs
Reflexive NPs
2022-07-18 08:23:59 +02:00
Hans Leiss
529f315c7a Merge branch 'master' into reflexiveNPs 2022-07-16 13:20:31 +02:00
Hans Leiss
1379ba6c77 (Ger) reflexive RNP in ExtraGer completed ;
improved Slash-rules in tests/german/TestLangGer
2022-07-16 12:18:13 +02:00
Inari Listenmaa
d3de861e86 (Est) Add a variant of VPS constructor in ExtraEst
produces more telegraphic language+different word order from PastPartAP
2022-07-08 16:40:46 +02:00
Inari Listenmaa
1b5840c89d (Est) Minor renaming/restructuring/cleanup 2022-07-01 08:35:37 +02:00
Inari Listenmaa
e4a195a777 (Est) more API-friendly overloads for mkPrep 2022-06-29 14:35:23 +02:00
Roman Suzi
865dadbc64 Fix plgen of 3*a nouns, eg stroika 2022-06-24 07:24:13 +03:00
Laurette Marais
1b9c4613bf Merge branch 'master' of github.com:LauretteM/gf-rgl 2022-06-14 21:01:29 +02:00
Laurette Marais
2092bb64d8 (zul) fixed adjectives in relative clauses 2022-06-14 20:56:32 +02:00
Inari Listenmaa
4fec15272c Merge pull request #406 from LauretteM/master
More Zulu fixes
2022-06-14 15:13:42 +02:00
LauretteM
ad34d3f209 Merge branch 'GrammaticalFramework:master' into master 2022-06-14 15:09:31 +02:00
Laurette Marais
41de2cc021 (zul) fix for relative agreement morpheme 2022-06-14 15:08:56 +02:00
Inari Listenmaa
d43be53e18 Merge pull request #405 from rnd0101/fix-useimmat
Fix most_Predet in Finnish
2022-06-13 11:23:57 +02:00
Laurette Marais
f2c1fede4f (zul) new clause type 2022-06-10 09:24:19 +02:00
Laurette Marais
ef771d62fa (zul) fixes to lexicon 2022-06-10 09:22:35 +02:00
Roman Suzi
33ce949606 Fix most_Predet in Finnish 2022-06-09 19:53:47 +03:00
Laurette Marais
0502797cb0 (zul) paradigms for vowel-init nouns 2022-06-07 08:42:20 +02:00
Inari Listenmaa
9fe3ffce2b Merge pull request #397 from inariksit/estonian-interrogative-agreement
Estonian interrogative agreement
2022-06-03 14:49:28 +02:00
Inari Listenmaa
08dfe78f2f Merge pull request #402 from inariksit/estonian-misc-fixes
Minor fixes in Estonian
2022-06-03 14:46:55 +02:00
Inari Listenmaa
4a2a556162 (Est) Add all case forms to result of GerundCN/NP 2022-06-03 15:45:27 +03:00
Inari Listenmaa
8a87dc210c (Est) Add linref for VPS 2022-06-03 15:26:05 +03:00
Inari Listenmaa
d48cf92359 Merge pull request #401 from inariksit/estonian-PastPartAP-fix
Minor fixes + new lins in Estonian
2022-06-02 07:54:21 +02:00
Inari Listenmaa
d5e5edb02f (Est) Use correct verb form in PastPart(Agent)AP 2022-06-02 08:52:42 +03:00
Inari Listenmaa
3026b8b59a (Est) Add AdvVPSlash and VPSlashPrep 2022-06-02 08:51:44 +03:00
Inari Listenmaa
c4f39c0a74 (Est) Use Extend in AllEstAbs instead of Extra 2022-06-02 08:51:28 +03:00
Laurette Marais
ddf6d0d30d (zul) improvements to paradigms 2022-06-01 15:10:49 +02:00
Laurette Marais
4c03a40aef (zul) fixed demonstratives 2022-06-01 13:23:51 +02:00
Laurette Marais
8073d2a91b (zul) change to Quant lincat 2022-05-27 09:33:05 +02:00
Laurette Marais
6421fb7ee9 (zul) dem na in postdet 2022-05-19 14:40:41 +02:00
Laurette Marais
149407d19b (zul) MultiLex fixes 2022-05-19 12:27:48 +02:00
Laurette Marais
20275832ad (zul) NguniGrammar new imports 2022-05-19 12:21:27 +02:00
Laurette Marais
02d3752a26 (zul) NP conjunction 2022-05-19 12:19:49 +02:00
Inari Listenmaa
bec96b267d Merge pull request #400 from Meowyam/master
Malay RGL: many changes
2022-05-19 10:46:55 +02:00
Inari Listenmaa
6f3a72aa1d Merge branch 'master' into master 2022-05-19 10:46:17 +02:00
Inari Listenmaa
b7363f9219 Merge pull request #399 from LauretteM/master
(zul) changes to MultiLex adjectives
2022-05-18 10:22:31 +02:00
Meowyam
5c84ce9623 remove space for passive 2022-05-18 16:08:35 +08:00
Meowyam
edcef16eb1 fix passive for token ungluing 2022-05-18 15:59:55 +08:00
LauretteM
08ac422d9a Merge branch 'GrammaticalFramework:master' into master 2022-05-17 16:45:48 +02:00
Laurette Marais
a6e0875878 (zul) changes to MultiLex adjectives 2022-05-17 16:40:26 +02:00
Meowyam
a9c18fc48c add John and other lexicon to Malay 2022-05-13 15:46:08 +08:00
Meowyam
85960e0416 add changes for Adv functions to Malay rgl 2022-05-13 14:46:42 +08:00
Meowyam
cff79f72c5 add Malay to languages.csv 2022-05-13 14:46:42 +08:00
Meowyam
c712efc8eb add functions from BareRGMay to ExtendMay 2022-05-13 14:46:42 +08:00
Meowyam
3e79ab25e1 add VPS and VPI to ExtendMay 2022-05-13 14:46:42 +08:00
Meowyam
a1c85431be add john_PN to Malay lexicon 2022-05-13 14:46:42 +08:00
Meowyam
967a8fb8a1 add extra functions to get VPS to work 2022-05-13 14:46:42 +08:00
Inari Listenmaa
2418e8cfcf (Est) fix wrong forms given to mkN in full_A 2022-05-13 14:42:56 +08:00
Inari Listenmaa
5a8eda803d (Est) Test cases for comitative 2022-05-13 14:42:56 +08:00
Inari Listenmaa
bcd7a09864 (Est) Make N2, CN, NP & IP discontinuous
Needed for attaching case suffix in right place
2022-05-13 14:42:56 +08:00
Inari Listenmaa
7dd63173f2 (Est) Fix plural genitive forms for mis 2022-05-13 14:42:56 +08:00
Inari Listenmaa
a59ed0e0e2 (Est) Workaround for short forms of Sg pers. prons
Always use long Gen, because other cases are formed from long Gen stem
2022-05-13 14:42:56 +08:00
Inari Listenmaa
e80cd82870 (Est) misc small cleanup + better comments 2022-05-13 14:42:56 +08:00
Inari Listenmaa
ee5c842972 (Est) Replace all {lock_C = <>} with lin C {...} 2022-05-13 14:42:56 +08:00
Inari Listenmaa
4e204d66a8 (Est) Use genitive stem+suffix for 4 other cases 2022-05-13 14:42:56 +08:00
Inari Listenmaa
0bae53b0b9 (Est) 7 InfForms -> 2 stems + gluing suffixes 2022-05-13 14:42:56 +08:00
Inari Listenmaa
b2cc67aef5 (Est) Fix negative passive
TODO: more stable solution? conneg in Imper Sg is a bit of a hack
2022-05-13 14:42:56 +08:00
Inari Listenmaa
21259015e0 (Est) Reduce inflection table in VP
Include VForms in VP, only construct VPForms when making Cl
2022-05-13 14:42:56 +08:00
Inari Listenmaa
e06c3433b9 (Est) Automatic whitespace removal
in its own commit,rather than have whitespace changes in content commits
2022-05-13 14:42:56 +08:00
Inari Listenmaa
5eb333ce6a (Est) New linearisations in ExtendEst 2022-05-13 14:42:56 +08:00
Inari Listenmaa
41d4b7fabd (Est) Add DAP + funs that use/produce it 2022-05-13 14:42:56 +08:00
Inari Listenmaa
46509b93a3 (Est) Keep non-finite forms non-finite in PassV2
TODO: restructure VP so we retain non-finite passive forms
2022-05-13 14:42:56 +08:00
Inari Listenmaa
cb016ea750 Merge pull request #398 from LauretteM/master
Updates to Zulu
2022-05-12 06:22:37 +02:00
Laurette Marais
58255b27bf Merge branch 'v_longform' 2022-05-12 06:14:24 +02:00
Laurette Marais
ccdc04992e added lapho 2022-05-12 05:21:33 +02:00
Laurette Marais
06593c5fb9 fixed relative longform 2022-05-12 05:21:11 +02:00
Laurette Marais
c9ee6f3d82 added adjectives to MultiLex 2022-05-10 11:16:53 +02:00
Laurette Marais
9f3b45bf48 added additional long forms 2022-05-10 11:16:26 +02:00
Laurette Marais
86fca40ac2 fixed imperative prefix (2) 2022-05-10 08:56:22 +02:00
Laurette Marais
f58d0358cc fixed imperative prefix 2022-05-10 08:21:22 +02:00
Inari Listenmaa
c80899e07e Merge pull request #393 from hleiss/infinitives-new
(Ger) reimplementation of infinitives to improve compilation
2022-05-05 13:48:04 +02:00
Inari Listenmaa
f67c3ec838 (Est) New test cases 2022-05-02 21:02:57 +08:00
Inari Listenmaa
f1e14bbd5f (Est) Improve interrogative agreement 2022-05-02 21:01:29 +08:00
Inari Listenmaa
263ee4319d (Est) Fix object case for see_V2 2022-05-02 16:53:01 +08:00
Inari Listenmaa
783e2f3831 Merge pull request #396 from LauretteM/master
zulu inclusion
2022-04-28 14:13:17 +02:00
Inari Listenmaa
91b0578221 Merge pull request #394 from inariksit/estonian-extend
Improvements in Estonian
2022-04-28 10:13:12 +02:00
Laurette Marais
8b05843585 zulu inclusion 2022-04-28 08:53:37 +02:00
Meowyam
d14de723d0 imppol for malay 2022-04-27 11:40:04 +08:00
Inari Listenmaa
bc206fcbfe (Est) Use the correct mkN paradigm for dog_N 2022-04-25 16:13:31 +08:00
Inari Listenmaa
d35a709eb7 (Eng) Move VP's inflection table into Cl
* Replaces 1300 fields with 50 fields + one new 2-valued parameter
* Only construct the full table with Tense,Ant,Pol… in Cl
2022-04-22 12:24:03 +08:00
Inari Listenmaa
0245dc2d59 (Eng) minor cleanup,change date format in comments 2022-04-22 12:24:03 +08:00
bc²
7fe4fd01f5 (gf2ud) label updates (#97)
* (gf2ud) add ConsNP "," rule
- use CCONJ instead of CONJ

* (gf2ud) dobj -> obj (ud 2 -> ud 1)
- clean up whitespace

* (gf2ud) fix eng labels
- comma exists in SSubjS, not SubjS
- add local rule for comma in VocNP
- auxpass (UD1) -> aux:pass (UD2)
2022-04-22 12:24:03 +08:00
1Regina
184497284d adverbials todo: add semantic context constructors 2022-04-22 12:24:03 +08:00
1Regina
9400e0ed21 move transitive and complements from affixes to tenses 2022-04-22 12:24:03 +08:00
1Regina
bf213bf77e add test for quantifier 2022-04-22 12:24:03 +08:00
1Regina
828ea2545c remove collectives in collective nouns for xie for quantifier 2022-04-22 12:24:03 +08:00
1Regina
4db945a500 remove collectives in collective nouns for xie for quantifier 2022-04-22 12:24:03 +08:00
1Regina
83fed4e812 unit test for tenses 2022-04-22 12:24:03 +08:00
1Regina
65ddced771 unit tests for relative 2022-04-22 12:24:03 +08:00
1Regina
c0daf6d0ba remove predicative form in CompareA UseComparA 2022-04-22 12:24:03 +08:00
1Regina
f9a633ea52 adjustment for "mustn't"
not idiomatic but compositionally correct now for mustn't
2022-04-22 12:24:03 +08:00
1Regina
5aff25b37f make all the questions by extending a "吗" at end 2022-04-22 12:24:03 +08:00
1Regina
95bc972f44 changes in conjunction and sentences
to accomodate if _ then conjuction with jiu "就"
2022-04-22 12:24:03 +08:00
1Regina
bd060578d6 replace future with "就会" instead of old "在" 2022-04-22 12:24:03 +08:00
1Regina
e853942d43 if then conjunctions 2022-04-22 12:24:03 +08:00
1Regina
cc4aef88f9 add 25 tests for chinese pronouns -- passed 2022-04-22 12:24:03 +08:00
1Regina
27073a6c0c fix DetNP for positive case for ge 2022-04-22 12:24:03 +08:00
1Regina
8495ed2f06 add test for chinese passive tests -- passed 2022-04-22 12:24:03 +08:00
1Regina
e1130eb279 add test for chinese numerals -- passed 2022-04-22 12:24:03 +08:00
1Regina
40caeea67f add AST to test for complements 2022-04-22 12:24:03 +08:00
1Regina
dd5b34492a add distinction between Attributive vs Predicative (esp for colours) 2022-04-22 12:24:03 +08:00
1Regina
cf9e2cdd7f attempt to edit complexAP for table selection 2022-04-22 12:24:03 +08:00
1Regina
42a6de9803 fixed SentAP and AdvAP for AdjPlace in ResChi 2022-04-22 12:24:03 +08:00
1Regina
5679eeb1fb adjectives colour 2022-04-22 12:24:03 +08:00
1Regina
dd05feeac0 WIP negation for chinese 2022-04-22 12:24:03 +08:00
1Regina
916cca5d22 fix malay for these cats arent' green for negation in unittest 2022-04-22 12:24:03 +08:00
Inari Listenmaa
613a159591 (Est) fix wrong forms given to mkN in full_A 2022-04-19 15:02:34 +08:00
Inari Listenmaa
79ea965fc4 (Est) Test cases for comitative 2022-04-18 19:43:57 +08:00
Inari Listenmaa
facd4727cf (Est) Make N2, CN, NP & IP discontinuous
Needed for attaching case suffix in right place
2022-04-18 19:43:38 +08:00
Inari Listenmaa
0d4b92a006 (Est) Fix plural genitive forms for mis 2022-04-15 19:12:02 +08:00
Inari Listenmaa
8b876cf74c (Est) Workaround for short forms of Sg pers. prons
Always use long Gen, because other cases are formed from long Gen stem
2022-04-15 10:37:21 +08:00
Inari Listenmaa
8b14dcf6ba (Est) misc small cleanup + better comments 2022-04-15 10:33:41 +08:00
Inari Listenmaa
4e8ff8e7fd (Est) Replace all {lock_C = <>} with lin C {...} 2022-04-15 10:09:58 +08:00
Inari Listenmaa
76f23214c1 (Est) Use genitive stem+suffix for 4 other cases 2022-04-14 19:07:03 +08:00
Inari Listenmaa
e8503511ca (Est) 7 InfForms -> 2 stems + gluing suffixes 2022-04-13 17:38:17 +08:00
Inari Listenmaa
b1b752673d (Est) Fix negative passive
TODO: more stable solution? conneg in Imper Sg is a bit of a hack
2022-04-13 17:27:14 +08:00
Inari Listenmaa
219de4ca9a (Est) Reduce inflection table in VP
Include VForms in VP, only construct VPForms when making Cl
2022-04-13 11:46:56 +08:00
Inari Listenmaa
31c31b3e69 (Est) Automatic whitespace removal
in its own commit,rather than have whitespace changes in content commits
2022-04-13 10:42:34 +08:00
Inari Listenmaa
983274d239 (Est) New linearisations in ExtendEst 2022-04-12 19:03:22 +08:00
Inari Listenmaa
0aaa38e051 (Est) Add DAP + funs that use/produce it 2022-04-12 19:03:01 +08:00
Inari Listenmaa
1f7e16642b (Est) Keep non-finite forms non-finite in PassV2
TODO: restructure VP so we retain non-finite passive forms
2022-04-12 19:01:08 +08:00
Hans Leiss
0e8ac21976 (Ger) small fix to make reimplementation of infinitives compile for 'present'
new SlashVP, RelSlash in tests/german/TestLangGer to control reflexives in relative clauses
2022-04-11 15:33:36 +02:00
Hans Leiss
b8ddf4304b (Ger) Small fix to get 'present' installed
new SlashVP, RelSlash in tests/german/TestLangGer.gf to control reflexives in relative clauses
2022-04-11 12:27:39 +02:00
Inari Listenmaa
a72600b27c Merge pull request #392 from inariksit/fewer-fields-in-VP
(Eng) Fewer fields in VP
2022-04-11 04:14:31 +02:00
bc²
b3d1ccbc40 (gf2ud) label updates (#97)
* (gf2ud) add ConsNP "," rule
- use CCONJ instead of CONJ

* (gf2ud) dobj -> obj (ud 2 -> ud 1)
- clean up whitespace

* (gf2ud) fix eng labels
- comma exists in SSubjS, not SubjS
- add local rule for comma in VocNP
- auxpass (UD1) -> aux:pass (UD2)
2022-04-07 10:37:04 +02:00
Inari Listenmaa
5eafffb8fe (Eng) Move VP's inflection table into Cl
* Replaces 1300 fields with 50 fields + one new 2-valued parameter
* Only construct the full table with Tense,Ant,Pol… in Cl
2022-04-07 10:20:26 +08:00
Inari Listenmaa
61cb94443a (Eng) minor cleanup,change date format in comments 2022-04-07 10:03:14 +08:00
Hans Leiss
7778e6138c (Ger) reimplementation of infinitives to improve compilation
- removed Control and treat control verbs with VPSlash.objCtrl:Bool

- combined VP.inf and VP.infExt to VP.inf with inplace/extracted parts
  depending on Agr, to subj/obj-control reflexives in infinitival complements

- AllGer compiles from src in 250s (SlashV2VNP!), .gfo loads in 15s on x86_64
2022-04-06 12:55:48 +02:00
Meowyam
ffd1f28b42 negative imperative 2022-03-30 23:32:08 +08:00
Meowyam
1d033679f2 basic imperatif 2022-03-30 22:44:53 +08:00
Meowyam
bf33191c88 add kedua-dua (the two, etc.) to Det 2022-03-30 17:13:03 +08:00
Meowyam
9fa07fb22d working tests for verbal affixes and tenses, add kepada (to a person), initial groundwork for animacy, numerals 2022-03-21 17:28:45 +08:00
1Regina
4df65b593e adverbials todo: add semantic context constructors 2022-03-07 04:30:39 +01:00
1Regina
0c659deae3 move transitive and complements from affixes to tenses 2022-03-07 04:30:39 +01:00
1Regina
5e308e7aa7 add test for quantifier 2022-03-07 04:30:39 +01:00
1Regina
e0b4d6940a remove collectives in collective nouns for xie for quantifier 2022-03-07 04:30:39 +01:00
1Regina
57e6f8f244 remove collectives in collective nouns for xie for quantifier 2022-03-07 04:30:39 +01:00
1Regina
5c415fc913 unit test for tenses 2022-03-07 04:30:39 +01:00
1Regina
57490c18d2 unit tests for relative 2022-03-07 04:30:39 +01:00
1Regina
fe5c124602 remove predicative form in CompareA UseComparA 2022-03-07 04:30:39 +01:00
1Regina
7f58e8ec8b adjustment for "mustn't"
not idiomatic but compositionally correct now for mustn't
2022-03-07 04:30:39 +01:00
1Regina
460ec475bd make all the questions by extending a "吗" at end 2022-03-07 04:30:39 +01:00
1Regina
4e947e4ce8 changes in conjunction and sentences
to accomodate if _ then conjuction with jiu "就"
2022-03-07 04:30:39 +01:00
1Regina
0dbb5e4ee8 replace future with "就会" instead of old "在" 2022-03-07 04:30:39 +01:00
1Regina
734d000b4d if then conjunctions 2022-03-07 04:30:39 +01:00
1Regina
bbf109a473 add 25 tests for chinese pronouns -- passed 2022-03-07 04:30:39 +01:00
1Regina
3aefd51280 fix DetNP for positive case for ge 2022-03-07 04:30:39 +01:00
1Regina
5f8a21dc08 add test for chinese passive tests -- passed 2022-03-07 04:30:39 +01:00
1Regina
b7b4c08e8a add test for chinese numerals -- passed 2022-03-07 04:30:39 +01:00
1Regina
92bfa85a49 add AST to test for complements 2022-03-07 04:30:39 +01:00
1Regina
9a6301691d add distinction between Attributive vs Predicative (esp for colours) 2022-03-07 04:30:39 +01:00
1Regina
1b02447b44 attempt to edit complexAP for table selection 2022-03-07 04:30:39 +01:00
1Regina
565cd8fa61 fixed SentAP and AdvAP for AdjPlace in ResChi 2022-03-07 04:30:39 +01:00
1Regina
b26e6e1c9f adjectives colour 2022-03-07 04:30:39 +01:00
1Regina
e4e304d551 WIP negation for chinese 2022-03-07 04:30:39 +01:00
1Regina
33ffc1db48 fix malay for these cats arent' green for negation in unittest 2022-03-07 04:30:39 +01:00
Meowyam
88ae0d5093 add mkV4 to add suffix to some verbs; passive unit tests 2022-02-23 15:09:03 +08:00
Meowyam
066a9f6170 fix active verb form for love 2022-02-21 16:15:33 +08:00
Meowyam
ce9618b945 add linrefs for ClSlash and RCl 2022-02-21 16:15:33 +08:00
Meowyam
336c297dc1 add relative functions, addition to lexicon, change of words for you and I 2022-02-21 16:15:33 +08:00
Yousef Almesbahi
45d47afc36 Update unittest.py 2022-02-21 16:15:33 +08:00
Inari Listenmaa
d021ebd527 (Ara) Add GerundNP in ExtendAra 2022-02-21 16:15:33 +08:00
Inari Listenmaa
a435b6b8dc (Ara) Add extend to AllAra 2022-02-21 16:15:33 +08:00
Inari Listenmaa
4720114c84 (Eng) Update unit tests after reverting FunRP 2022-02-21 16:15:33 +08:00
Inari Listenmaa
475d0fb860 (Eng) Undo the change in FunRP from #381 2022-02-21 16:15:33 +08:00
Inari Listenmaa
c2551f5766 (Eng) Use AllEng in the English unit tests 2022-02-21 16:15:32 +08:00
Inari Listenmaa
0c52f9cbed Recognise AllXxxAbs as abstract in unittest 2022-02-21 16:15:32 +08:00
aarneranta
83a59f2757 fixed ParadigmsFre.mkA with 2 and 3 arguments, and commented out some uncompilable entries from DictFre 2022-02-21 16:15:32 +08:00
Krasimir Angelov
c8862b8ed8 an optimization which would be relevant with the new compiler 2022-02-21 16:15:32 +08:00
Krasimir Angelov
0ee84ddb7d Add ExtendTur to the list of modules 2022-02-21 16:15:32 +08:00
Krasimir Angelov
7da1cc310b simplify the pattern in ia2e 2022-02-21 16:15:32 +08:00
Krasimir Angelov
c81edf3fbb remove dead code 2022-02-21 16:15:32 +08:00
Meowyam
4c1ff7b3a2 added sing_V2 to AllMayAbs 2022-01-28 07:04:17 +01:00
Meowyam
8a95b3ffa9 switched kami to kita for inclusiveness 2022-01-28 07:04:17 +01:00
Meowyam
021e6e6509 fix minor fixes for Malay RGL 2022-01-28 07:04:17 +01:00
Meowyam
bf0e3a58dd add slash3v3 and SlashV2A 2022-01-28 07:04:17 +01:00
Meowyam
1a3b3ef796 monosyllable prefix 2022-01-28 07:04:17 +01:00
Meowyam
0c55010376 add QuestIComp 2022-01-28 07:04:17 +01:00
Meowyam
a1a5f84708 add whoSg_IP 2022-01-28 07:04:17 +01:00
Meowyam
a310e38904 changed which from apa to yang mana, which is more correct 2022-01-28 07:04:17 +01:00
Meowyam
4212850c9e add see_V2 to malay lexicon 2022-01-28 07:04:17 +01:00
Meowyam
a71333fc0e changed wanita to perempuan for woman 2022-01-28 07:04:17 +01:00
Meowyam
bcd46433d1 why did you go 2022-01-28 07:04:17 +01:00
Meowyam
0190fe2943 fixed QuestIAdv 2022-01-28 07:04:17 +01:00
Meowyam
43a02443bb QuestIAdv 2022-01-28 07:04:17 +01:00
Meowyam
90a44af861 do you not teach the cat in malay 2022-01-28 07:04:17 +01:00
Meowyam
93c78de1f1 add test for questions in malay 2022-01-28 07:04:17 +01:00
Meowyam
c4f7875d6a add do you teach the cat in Malay 2022-01-28 07:04:17 +01:00
Meowyam
ba694f03e8 correct verb form for like 2022-01-28 07:04:17 +01:00
Meowyam
a0d397bed4 'how many' has correct standalone form and plural noun 2022-01-28 07:04:17 +01:00
Meowyam
b8a1a72cca fix word order of question 2022-01-28 07:04:17 +01:00
Meowyam
23493335bb add idetQuant and pronouns to Malay RGL 2022-01-28 07:04:17 +01:00
Meowyam
be36e65343 added sing_V2 to AllMayAbs 2022-01-26 19:22:42 +08:00
Yousef Almesbahi
97553b080b Update unittest.py 2022-01-23 12:15:03 +01:00
Inari Listenmaa
6131fdb41f (Ara) Add GerundNP in ExtendAra 2022-01-23 18:28:58 +08:00
Inari Listenmaa
1e761ede38 (Ara) Add extend to AllAra 2022-01-23 18:26:35 +08:00
Meowyam
7f9a4dce2b switched kami to kita for inclusiveness 2022-01-21 15:16:50 +08:00
Meowyam
049bd8943e fix minor fixes for Malay RGL 2022-01-20 13:16:11 +08:00
Inari Listenmaa
f09de4661e (Eng) Update unit tests after reverting FunRP 2022-01-19 09:35:58 +01:00
Inari Listenmaa
5a5adef0db (Eng) Undo the change in FunRP from #381 2022-01-19 09:35:58 +01:00
Inari Listenmaa
eb7b74578f (Eng) Use AllEng in the English unit tests 2022-01-19 09:35:58 +01:00
Inari Listenmaa
4af32f3570 Recognise AllXxxAbs as abstract in unittest 2022-01-19 09:35:58 +01:00
Meowyam
f0b5a89fd4 add slash3v3 and SlashV2A 2022-01-12 17:17:10 +08:00
Meowyam
9d56ac6fee monosyllable prefix 2022-01-12 15:20:26 +08:00
Krasimir Angelov
a181ab36a4 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2022-01-11 15:16:55 +01:00
Krasimir Angelov
2f10c2d769 an optimization which would be relevant with the new compiler 2022-01-11 15:16:26 +01:00
Meowyam
664164e8c1 add QuestIComp 2022-01-05 13:26:10 +08:00
Meowyam
83a16737dc add whoSg_IP 2022-01-04 13:16:26 +08:00
Meowyam
7704f6a18c changed which from apa to yang mana, which is more correct 2022-01-03 21:39:01 +08:00
Meowyam
4a892e646c add see_V2 to malay lexicon 2022-01-03 14:08:32 +08:00
Meowyam
0abf88324e changed wanita to perempuan for woman 2022-01-03 14:07:09 +08:00
Meowyam
6459c07548 why did you go 2022-01-03 14:00:43 +08:00
Meowyam
c61fe0c314 fixed QuestIAdv 2021-12-30 23:19:38 +08:00
aarneranta
93999cd21e fixed ParadigmsFre.mkA with 2 and 3 arguments, and commented out some uncompilable entries from DictFre 2021-12-28 11:20:08 +01:00
Meowyam
984c8deb34 QuestIAdv 2021-12-21 18:11:20 +08:00
Krasimir Angelov
1d32508312 Add ExtendTur to the list of modules 2021-12-20 16:27:21 +01:00
Krasimir Angelov
447926a2ec simplify the pattern in ia2e 2021-12-14 09:20:06 +01:00
Krasimir Angelov
2dd8faaea7 remove dead code 2021-12-13 14:06:29 +01:00
Meowyam
7c1de7ba23 do you not teach the cat in malay 2021-11-25 18:00:46 +08:00
Meowyam
4054fec0d0 Merge branch 'GrammaticalFramework:master' into master 2021-11-25 13:02:47 +08:00
aarneranta
e552ceb71d corrected number of whatPl_IP 2021-11-19 14:59:18 +01:00
Meowyam
82a74d84be add test for questions in malay 2021-11-17 14:45:25 +08:00
Meowyam
3770caad33 add do you teach the cat in Malay 2021-11-17 11:58:42 +08:00
Inari Listenmaa
f9dc1695ca (Eng) open Prelude so True/False are no longer treated as variable names 2021-11-17 11:41:27 +08:00
Meowyam
b086b774bf correct verb form for like 2021-11-15 14:01:16 +08:00
Meowyam
4394c8f979 'how many' has correct standalone form and plural noun 2021-11-15 13:49:39 +08:00
Meowyam
7daf14378d fix word order of question 2021-11-15 12:19:31 +08:00
Meowyam
27925cd4ce add idetQuant and pronouns to Malay RGL 2021-11-15 10:52:02 +08:00
Inari Listenmaa
7dd56dbb53 (Eng) Add unit tests about relative constructions 2021-10-25 11:06:09 +02:00
Inari Listenmaa
0eb77f5291 (Eng) Use "whose" in FunRP instead of "of which" 2021-10-25 11:06:09 +02:00
Inari Listenmaa
32ac7b5fe3 (Eng) Propagate CN's gender to NP also in MassNP 2021-10-25 11:06:09 +02:00
aarneranta
373079cf4c fixed warnings in ParadigmsEng 2021-10-25 11:01:15 +02:00
Jordi Saludes
d97b1ebbce Include 'tossir' verb (to cough) into CA Bescherelle (#380)
Fixed cough_V 'tossir', paradigm implemented as version of cosir/31.
2021-10-20 11:00:33 +02:00
Inari Listenmaa
a33768ad1a (Romance) genNum2Aform instead of explicit param 2021-10-20 10:57:40 +02:00
Inari Listenmaa
b352dcb1a0 (Por) Fix bug in good_A 2021-10-20 10:57:40 +02:00
Inari Listenmaa
8a66158961 (Ita) Fix bug in good_A 2021-10-20 10:57:40 +02:00
Inari Listenmaa
da7309e6b5 (Cat) Fix bug in good_A 2021-10-20 10:57:40 +02:00
Inari Listenmaa
38cdfc8efe (Cat) new instance of prefA 2021-10-20 10:57:40 +02:00
Inari Listenmaa
99469eeb54 (Por) Implement AForm+related opers in DiffPor 2021-10-20 10:57:40 +02:00
Inari Listenmaa
258cd95cca (Ita) Implement AForm+related opers in DiffIta 2021-10-20 10:57:40 +02:00
Inari Listenmaa
445c4f5187 (Cat) Implement AForm+related opers in DiffCat 2021-10-20 10:57:40 +02:00
Inari Listenmaa
b8acdddabd (Fre) Implement AForm+related opers in DiffFre 2021-10-20 10:57:40 +02:00
Inari Listenmaa
3c27bbd125 (Spa) Implement AForm+related opers in DiffSpa 2021-10-20 10:57:40 +02:00
Inari Listenmaa
354990319d (Romance) Move AForm from Common to Diff
Por,Ita: no attributive. Fre,Cat: only Sg M, Spa: Sg M+F
2021-10-20 10:57:40 +02:00
Inari Listenmaa
ef3270ae29 (Romance) Remove traces of Degree in Extend 2021-10-20 10:57:40 +02:00
Inari Listenmaa
88d0217d10 (Fre) Fix bug in predicative adj + add unit test 2021-10-20 10:57:40 +02:00
Inari Listenmaa
5281c3ba71 (Fre) Update A,A2 to not have Degree 2021-10-20 10:57:40 +02:00
Inari Listenmaa
b696b9e932 (Romance) different ComparAgr for French 2021-10-20 10:57:40 +02:00
Inari Listenmaa
9620c738c5 (Cat) Update A,A2 to not have Degree 2021-10-20 10:57:40 +02:00
Inari Listenmaa
e421518a36 (Por) Update A,A2 to not have Degree 2021-10-20 10:57:40 +02:00
Inari Listenmaa
47ea6a6830 (Ita) Update A,A2 to not have Degree 2021-10-20 10:57:40 +02:00
Inari Listenmaa
57390d366c (Spa) Update A,A2 to not have Degree 2021-10-20 10:57:40 +02:00
Inari Listenmaa
862c50e936 (Romance) Remove Degree from A, new field for comp 2021-10-20 10:57:40 +02:00
Inari Listenmaa
3d703856a6 (Romance) WIP: remove comparative más,più from A 2021-10-20 10:57:40 +02:00
aarneranta
93945265b8 ExtendSwe.CardCNCard added 2021-09-14 10:59:55 +02:00
Inari Listenmaa
1cc58f5048 (Eng) More instances of mkV2Q 2021-08-31 19:26:16 +08:00
John J. Camilleri
e85efec7a5 Do not copy when dest==dist in Setup.sh 2021-08-20 14:04:29 +02:00
Inari Listenmaa
62488a2980 (May) Comments and TODOs on unit tests 2021-08-19 10:17:24 +02:00
Inari Listenmaa
74b7171842 (May) Add some lexicon 2021-08-19 10:17:24 +02:00
Inari Listenmaa
6e6b7b09ad (May) AdjCN + change lincat of A* 2021-08-19 10:17:24 +02:00
Inari Listenmaa
c1e12b60ab (May) Add API funs + MissingMay 2021-08-19 10:17:24 +02:00
Inari Listenmaa
fdc28dfd8a (May) Unit tests about numerals 2021-08-19 10:17:24 +02:00
Inari Listenmaa
e122aea3ad (May) Form Det with numerals (NumCard, NumDigits etc.) 2021-08-19 10:17:24 +02:00
Inari Listenmaa
c79c113e01 (May) Add numerals and digits 2021-08-19 10:17:24 +02:00
Inari Listenmaa
d3dd3d668c (May) Cleanup in quant+det types 2021-08-19 10:17:24 +02:00
Inari Listenmaa
d1322ea14d (May) Add prefixV: keeps its prefix in all contexts 2021-08-19 10:17:24 +02:00
Inari Listenmaa
1c98bc22f6 (May) WIP: trying out new rules for indirect objects, TODO check 2021-08-19 10:17:24 +02:00
Inari Listenmaa
2205d5c91c (May) Define three different preposition types 2021-08-19 10:17:24 +02:00
Inari Listenmaa
ec9dcb92bf (May) ImpersCl, AdvVP + tests about verbal prefixes 2021-08-19 10:17:24 +02:00
Inari Listenmaa
7f032c511f (May) Conditional + new tests 2021-08-19 10:17:24 +02:00
Inari Listenmaa
00a72f907b (May) Word order with determiners and relative clauses 2021-08-19 10:17:24 +02:00
Inari Listenmaa
afc299308c (May) Tweaks in relative clauses 2021-08-19 10:17:24 +02:00
Inari Listenmaa
5b28e621b3 (May) Add dative "prep", direct object "prep" +truly empty emptyPrep 2021-08-19 10:17:24 +02:00
Inari Listenmaa
8208485f48 (May) More test, and comments on possession 2021-08-19 10:17:24 +02:00
Inari Listenmaa
014c3569eb (May) WIP: Possessive and object pronouns 2021-08-19 10:17:24 +02:00
Inari Listenmaa
20483a23b1 (May) Add future tense + tests for tenses 2021-08-19 10:17:24 +02:00
Inari Listenmaa
61ffe8e9a4 (May) Split VP negations into bukan and tidak 2021-08-19 10:17:24 +02:00
Inari Listenmaa
bc0fb02f20 (May) Add VV complements 2021-08-19 10:17:24 +02:00
Inari Listenmaa
0e065d8005 (May) Add PassV2 + new tests 2021-08-19 10:17:24 +02:00
Inari Listenmaa
7927fdae85 (May) New lexicon and V3s 2021-08-19 10:17:24 +02:00
Inari Listenmaa
eaf401eda7 (May) No verbal prefixes in relative clauses 2021-08-19 10:17:24 +02:00
Inari Listenmaa
6d781d3d02 (May) Add lexicon + some unit tests 2021-08-19 10:17:24 +02:00
Inari Listenmaa
f2cf027f55 Add ~ to gitignore 2021-08-19 10:17:24 +02:00
Inari Listenmaa
eafa5e8f7a (May) Minor cleanup 2021-08-19 10:17:24 +02:00
Inari Listenmaa
095f11abb7 (May) WIP relative clauses 2021-08-19 10:17:24 +02:00
Inari Listenmaa
53eb8ab9df (May) Add some determiners + fix word order in DetCN 2021-08-19 10:17:24 +02:00
Inari Listenmaa
c98f9a84d8 (May) ComplSlash, prepositions and some V2s 2021-08-19 10:17:24 +02:00
Inari Listenmaa
6693a27d6c WIP: Malay grammar
Copied and pasted from previous RGs, very minimal at the moment.
2021-08-19 10:17:24 +02:00
Inari Listenmaa
4f821ca621 (Chi) Add ExtendChi 2021-08-04 08:49:14 +02:00
Inari Listenmaa
1853365942 (Eng) Add mkVoc in Paradigms, exclude from TryEng 2021-08-02 03:49:46 +02:00
Inari Listenmaa
848e3e5ceb Add implementation of ProDrop 2021-08-02 03:49:46 +02:00
aarneranta
ee86e2390c ParadigmsFin.exceptPlGenN for special plural genitives 2021-08-01 12:38:24 +02:00
aarneranta
decdfac926 fix in Fin.CardCNCard 2021-07-30 11:27:19 +02:00
aarneranta
bd8550b652 Extend.CardCNCard for 5 million, 5 dozen, etc 2021-07-30 10:11:21 +02:00
aarneranta
cb502488d1 some ParadigmsEng,Fin,Ger additions 2021-07-30 09:29:19 +02:00
Aarne Ranta
da443a79af Merge pull request #372 from inariksit/morphodict-eng
Remove "more" + "most" from the inflection table of A*
2021-07-22 11:39:54 +02:00
aarneranta
7da28a09be ifPluralNP and forceNumberNP in ParadigmsFin 2021-07-22 10:33:44 +02:00
aarneranta
2f379bf9c6 added symb : Int -> Card instance in Symbolic 2021-07-21 16:19:01 +02:00
krangelov
45e99c5e40 Merge branch 'master' of https://github.com/GrammaticalFramework/gf-rgl 2021-07-02 21:29:12 +02:00
krangelov
c4d72d1bae added DocumentationAfr 2021-07-02 21:28:51 +02:00
Inari Listenmaa
969559b45b (morphodict) Remove more+most from args to mkA 2021-06-17 20:31:10 +08:00
Inari Listenmaa
70eee40ae8 (Eng) Remove more+most from inflection table of A*
A* has a parameter and the string more/most is added later if needed.
2021-06-17 20:26:55 +08:00
Inari Listenmaa
60533ef002 (Eng) Automatic whitespace removal 2021-06-17 20:14:07 +08:00
aarneranta
a3701d1a48 bug fix in VerbGer: added fields of CN to CompCN 2021-06-09 18:25:06 +02:00
aarneranta
b6f37abe91 ExistNPAdv in Fre and Ita 2021-06-09 18:19:24 +02:00
Aarne Ranta
0ee2377c99 Merge pull request #370 from inariksit/morphodict
Minor improvements in MkMorphodict.hs + Finnish lexicon in new format
2021-06-07 17:42:06 +02:00
aarneranta
ace36f7129 added ParadigmsFin.foreignN and ParadigmsSwe.geoPN 2021-06-04 16:28:19 +02:00
Inari Listenmaa
e3c6694019 (Morphodict) Update MorphoDictFin
* no duplicates
* new naming scheme (vuori_vuoren_N)
* uses 10-arg worst-case paradigms
Note: compilation time almost 1/3 of what it was with Kotus paradigms.
2021-06-04 14:17:15 +08:00
Inari Listenmaa
9275d5e720 (Morphodict) Replace space/- in identifiers with _ 2021-06-04 13:42:14 +08:00
Inari Listenmaa
d2d841e949 (Morphodict) change name + document script 2021-06-04 13:41:42 +08:00
Inari Listenmaa
ee34115ce4 (Fin) Fix inflection paradigm for two words 2021-06-04 13:02:38 +08:00
Inari Listenmaa
e7f620fc60 (Morphodict) Improvements in Fin config + header 2021-06-04 11:07:23 +08:00
Inari Listenmaa
7c79aae07f (Morphodict) use Safe's read for better error msg 2021-06-04 11:04:22 +08:00
Inari Listenmaa
0a84fbaf5d (Morphodict) Add stack and cabal files 2021-06-04 10:35:03 +08:00
Inari Listenmaa
f9ad041ac1 (Morphodict) Error handling, debug output 2021-06-04 10:33:30 +08:00
Inari Listenmaa
8af91c8836 (Morphodict) Automatic whitespace removal 2021-06-04 09:48:08 +08:00
Inari Listenmaa
27b39f3431 (Morphodict) WIP: remove sense distinctions 2021-06-04 08:53:05 +08:00
aarneranta
4f70384664 revised the description of extra categories in morphodict README 2021-05-31 09:52:12 +02:00
aarneranta
38d852a5bb updated morphodict/README.md with MkMorphodict help 2021-05-28 14:44:52 +02:00
aarneranta
7c4546f3c3 eliminated variants from IrregEng: irregular variants have each their own ident, regular variants are just left out. No ident was deprecated 2021-05-28 14:28:40 +02:00
aarneranta
a0ad410692 minimized the number of disambiguating forms of function names in MkMorphodict.hs even more 2021-05-28 12:35:20 +02:00
aarneranta
7fbcb60b87 minimized the number of disambiguating forms of function names in MkMorphodict.hs 2021-05-28 12:23:38 +02:00
aarneranta
73050c74a1 using form lists for disambiguating fun names in MkMorphoDict 2021-05-28 11:48:04 +02:00
aarneranta
71d7de2577 improved MkMorphoDict.hs, still experimental 2021-05-28 11:01:47 +02:00
aarneranta
2ade51ecff category Extend.X for unclassified words, as in UD 2021-05-27 11:19:54 +02:00
aarneranta
eb50c5a9e3 more in morphodict/README.md 2021-05-27 11:16:33 +02:00
aarneranta
29af125799 rewrote morphodict.README.md 2021-05-27 09:42:47 +02:00
Inari Listenmaa
cc75637704 (Extend) Add RelVPS : RP -> VPS -> RS
Implemented in Swe and Eng, empty variants in ExtendFunctor.
2021-05-04 07:02:24 +02:00
Inari Listenmaa
310e143bea (Eng) Add back the s fields of Temp and Pol in mkVPS 2021-05-04 07:02:24 +02:00
Inari Listenmaa
0b63fb7a69 Remove duplicated lins 2021-05-04 07:02:24 +02:00
krangelov
0e5450e792 added UttNP & UttCN 2021-04-30 07:13:07 +02:00
krangelov
5a2b25ff25 Enable some of the phrase building functions 2021-04-30 06:28:20 +02:00
krangelov
7396ed93f7 enable smart paradigms 2021-04-28 09:19:48 +02:00
krangelov
bfa64d477d added AllSwa and make the language compilable 2021-04-28 08:42:05 +02:00
krangelov
9d657a6f24 move UseDAP, UseDAPMasc, UseDAPFem to the RGL and implement it for several new languages 2021-04-27 18:00:54 +02:00
krangelov
156e193d47 generalize DAP 2021-04-27 13:23:27 +02:00
krangelov
adb1cffb75 generalize infVP to support negative VP in Romance 2021-04-27 13:18:27 +02:00
krangelov
617cb25f1e generalize infinitive_form 2021-04-27 10:06:12 +02:00
krangelov
85282418a7 added linrefs for A and A2 2021-04-27 10:03:42 +02:00
krangelov
632d4e2ff1 Merge branch 'master' of https://github.com/GrammaticalFramework/gf-rgl 2021-04-27 08:43:35 +02:00
krangelov
b3cc234c14 simplify the code and allow for non-standard pronouns 2021-04-27 08:42:57 +02:00
aarneranta
af36eaf077 Merge branch 'master' of https://github.com/GrammaticalFramework/gf-rgl 2021-04-26 09:46:09 +02:00
aarneranta
4d3f5be892 restored subject case of ExtendFin.VPS following ExtraFin 2021-04-26 09:45:53 +02:00
John J. Camilleri
431ff47824 Setup.sh: don't build Symbol if Try is false
This was uncovered by recent changes to Somali in 1131058b,
which built with Setup.hs but failed with Setup.sh
2021-04-26 08:54:58 +02:00
aarneranta
ce08eaf14b VPS,VPI in ExtendGer 2021-04-26 08:20:03 +02:00
aarneranta
1ddfe0ac26 restored dropped words in MorphoDictSwe ; quality control TODO 2021-04-25 18:26:35 +02:00
aarneranta
8bbdfecb26 reran MkMorphoDict on Swe to fix erroneous verb definitions 2021-04-23 16:06:27 +02:00
Aarne Ranta
069804581b Merge pull request #367 from inariksit/new-VPS2-extend
(Extend) New constructions: N2/A2 -> VPSlash, Eng linearisation of QuestVPS
2021-04-23 11:39:50 +02:00
krangelov
6bf2555a4a helper functions to make it possible to import Polish morphology 2021-04-23 11:19:54 +02:00
Inari Listenmaa
cb8cc63528 Add linref to VPS and VPS2 2021-04-23 14:54:53 +08:00
Inari Listenmaa
8acb3331d1 Merge remote-tracking branch 'origin/master' into new-VPS2-extend 2021-04-23 13:56:16 +08:00
Inari Listenmaa
868ea0fc0c Add constructions for N2 and A2 to VPSlash
To generalise transitive predicates, along with V2 -> VPSlash.
2021-04-23 13:50:11 +08:00
krangelov
1131058b68 make Somali installable 2021-04-22 07:31:18 +02:00
krangelov
6bbb0e2487 AdvAP in Dutch and Estonian 2021-04-07 00:35:05 +02:00
krangelov
ac8322f907 AdvS and ExtAdvS in Slovenian 2021-04-07 00:10:07 +02:00
krangelov
e2746d8b81 move the VPS rules from ExtraDut to ExtendDut 2021-04-06 23:55:29 +02:00
krangelov
0adc3845e3 make sure that ExtendEst is compiled as well 2021-04-06 23:52:25 +02:00
krangelov
6e95fbbbb9 add AdvNP in Slovenian 2021-04-06 21:22:56 +02:00
aarneranta
1dc1530b20 fixes in Fin: mkPrep with three arguments, pieni_A in MorphoDict 2021-03-29 13:05:05 +02:00
aarneranta
89b38c13d4 added keywords to MorphoDictGer(Abs) for uniformity 2021-03-25 09:36:10 +01:00
krangelov
6d1d9d17d1 Merge branch 'master' of https://github.com/GrammaticalFramework/gf-rgl 2021-03-19 20:41:32 +01:00
krangelov
de405c7929 fix ReflRNP for V2A verbs 2021-03-19 20:39:44 +01:00
aarneranta
fe28bea8ec added ParadigmsFin.invarA, not shown in the API 2021-03-19 17:34:27 +01:00
krangelov
4e39ada69b fix word order in AdvAP 2021-03-13 20:13:21 +01:00
krangelov
88b3974bee extend the documentation API 2021-03-12 22:24:40 +01:00
krangelov
9d75eebcc0 move the exension to the RNP API from WordNet to the RGL 2021-03-12 20:42:09 +01:00
krangelov
9d0555f8b8 move verb specific extensions from WordNet to the RGL 2021-03-12 18:52:47 +01:00
Inari Listenmaa
fe45b7ed5c (Eng) Add lin for QuestVPS and SQuestVPS + new lincats for VPS*
Now VPS and VPS2 need to potentially become QS, so we keep them
discontinuous. Works great with lists too, e.g.

  {fin="wouldn't" ; inf="have seen and waited for (obj)"}

NB. copula disappears, if it's a part of a diverse list of questions:

  Statements:
    you sleep or are small -- ok
    you are small or sleep -- ok

  Questions:
    ?are you small or sleep -- for "are you small or do you sleep", need to implement [QS]
    *do you sleep or small -- infinitive "be small" not retrievable from VPS currently

In a list of only predicates, this addition is rather redundant.
You can already say "are you big or small" with AP coordination.
But no other RGL construction allows "do you sleep or drink beer".
2021-03-04 15:53:22 +08:00
Inari Listenmaa
f55f5b2d3c (Eng) Reorder, remove dupls and exclude new funs from ExtendFunctor 2021-03-04 15:44:22 +08:00
Inari Listenmaa
891bd2f3b1 (Extend) Add ReflVPS2 function 2021-03-03 15:05:57 +08:00
Inari Listenmaa
8696b27bee Add constructions for N2 and A2 to VPSlash
To generalise transitive predicates, along with V2 -> VPSlash.
2021-03-03 14:16:38 +08:00
krangelov
4b171129a1 fix paradigm mkV188 2021-03-01 13:04:28 +01:00
Meng Weng Wong
ee2bfe6014 mkdir -p $GF_LIB_PATH if it doesn't already exist (#366)
* mkdir -p $GF_LIB_PATH if it doesn't already exist

* enquote the install
2021-02-26 08:52:15 +01:00
krangelov
2bb3630f00 allow plural PN 2021-02-17 09:42:40 +01:00
aarneranta
24bc84627b mkDet(Str) in MakeStructuralEng 2021-01-27 14:26:45 +01:00
aarneranta
da1767b18a including Markup in LangGer,Ita which was missing 2021-01-20 08:32:59 +01:00
aarneranta
94341f57f9 removed the rest of variants from german/ except from LexiconGer 2021-01-19 17:48:14 +01:00
aarneranta
f59a706d45 commented out variants in StructuralGer: they do not belong to the RGL but to extensions 2021-01-18 14:16:38 +01:00
Aarne Ranta
349e537104 forcing compilation of MakeStructuralFin in TryFin 2021-01-17 07:59:15 +01:00
Inari Listenmaa
2b46848d3f Update path to where the Predef opers are defined
../src/GF/Grammar/AppPredefined.hs no longer exists, change to gf-core/src/compiler/GF/Compile/Compute/Predef.hs.
2021-01-16 01:41:47 +01:00
Aarne Ranta
3836bc2df5 fix in MorphoDictGer ; many more expected, so this is not final 2021-01-13 20:35:01 +01:00
Aarne Ranta
c55592cea6 Added ExtendGer as almost dummy to start with 2021-01-13 16:01:50 +01:00
Aarne Ranta
ec159d05d4 started MorphoDictGer by copying german/DictGer and fixing some inflections 2021-01-13 14:43:51 +01:00
aarneranta
8768dd92f1 MorphoDicsSwe added 2021-01-10 19:54:25 +01:00
krangelov
14338be99a spelling variants in mkN055 and mkN056 2020-12-18 08:16:41 +01:00
krangelov
f6b44aa57e move VPI from ExtraBul to ExtendBul 2020-12-14 18:50:32 +01:00
Paula
e7fcae8680 Pl reflpron (#363)
* Pol: Add it_ReflPron.

* Pol: Correct pronRefl.

* Pol: Remove pronoun without abstract.

* Pol: Add back reflexive poss. pronoun.

* Revert "Pol: Add back reflexive poss. pronoun."

This reverts commit d24a648405.
2020-12-03 13:59:00 +01:00
John J. Camilleri
6740b37cfc Remove build status badge from README
The GitHub interface now provides much richer information about build status.
2020-11-30 22:03:56 +01:00
John J. Camilleri
4c330b7d62 Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl 2020-11-30 20:58:05 +01:00
aarneranta
eb6a4da33c restructuring and commenting get_dict.py 2020-11-30 17:28:55 +01:00
aarneranta
0b1149d509 some fixes in ParadigmsIta to help extract from FreeLing 2020-11-30 13:16:14 +01:00
aarneranta
24b94cdeac a Python script for extracting FreeLing data, tested with Italian 2020-11-30 13:15:40 +01:00
Inari Listenmaa
df4ba9eb96 (Hun) optimise Quant 2020-11-28 19:35:00 +01:00
Inari Listenmaa
8dc5daf664 Comment out Windows build
Windows build hasn't work for some time now, and no test isn't worse than always failing test.
2020-11-27 16:35:39 +01:00
aarneranta
feac50919b it_Pron in Cze and Slo: the neuter 3rd Sg personal pronoun 2020-11-27 10:58:07 +01:00
aarneranta
6fee9d712a Extend.ReflPossPron added and implemented for Swe, Cze, Slo 2020-11-27 10:02:31 +01:00
John J. Camilleri
2f3146441b Makefile now works with: global runghc, stack-only runghc, and falls back to shell script. 2020-11-27 00:47:09 +01:00
Inari Listenmaa
9594ee9cf2 (Eng) Fix verbalN so that it includes particle (switching *on*) 2020-11-26 19:45:00 +01:00
John J. Camilleri
eeec3d998e Merge branch 'build-action' 2020-11-14 17:20:44 +01:00
John J. Camilleri
0c65539e0c Merge pull request #361 from GrammaticalFramework/build-action
Add workflow for building entire RGL
2020-11-12 08:08:16 +01:00
1209 changed files with 1517051 additions and 276024 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

View File

@@ -8,19 +8,26 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-18.04 runs-on: ubuntu-24.04
env: env:
GF_VERSION: 3.10-1 GF_VERSION: 3.12
DEST: gf-rgl-${{ github.event.inputs.tag }} DEST: gf-rgl-${{ github.event.inputs.tag }}
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Download GF
uses: dsaltares/fetch-gh-release-asset@1.1.1
with:
repo: 'GrammaticalFramework/gf-core'
version: 'tags/release-${{ env.GF_VERSION }}'
file: 'gf-${{ env.GF_VERSION }}-ubuntu-24.04.deb'
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install GF - name: Install GF
run: | run: |
curl -s https://www.grammaticalframework.org/download/gf_${GF_VERSION}_amd64.deb -o gf.deb sudo dpkg -i gf-${GF_VERSION}-ubuntu-24.04.deb
sudo dpkg -i gf.deb
- name: Build RGL - name: Build RGL
run: | run: |

33
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Check that the RGL can successfully build
on:
- push
- pull_request
jobs:
build:
runs-on: ubuntu-24.04
env:
GF_VERSION: 3.12
DEST: gf-rgl
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download GF
uses: dsaltares/fetch-gh-release-asset@1.1.1
with:
repo: 'GrammaticalFramework/gf-core'
version: 'tags/release-${{ env.GF_VERSION }}'
file: 'gf-${{ env.GF_VERSION }}-ubuntu-24.04.deb'
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install GF
run: |
sudo dpkg -i gf-${GF_VERSION}-ubuntu-24.04.deb
- name: Build RGL
run: |
mkdir -p ${DEST}
bash Setup.sh --dest=${DEST} --gf=gf --verbose

13
.gitignore vendored
View File

@@ -4,3 +4,16 @@ dist/
*.o *.o
*.pgf *.pgf
*.tmp *.tmp
*~
.direnv
_grphp_*.dot
_grphp_*.png
_grpht_*.dot
_grpht_*.png
_gftmp
t.dot
t.dot.png
u.dot.png
t.dot.*.png
u.dot.*.png
u.dot

View File

@@ -4,7 +4,7 @@ language: c
os: os:
- linux - linux
- osx - osx
- windows # - windows
addons: addons:
apt: apt:

View File

@@ -25,6 +25,7 @@ data LangInfo = LangInfo
, langSymbolic :: Bool , langSymbolic :: Bool
, langCompatibility :: Bool , langCompatibility :: Bool
, langSynopsis :: Bool -- ^ include in RGL synopsis , langSynopsis :: Bool -- ^ include in RGL synopsis
, langMorphodict :: Bool
} deriving (Show,Eq) } deriving (Show,Eq)
-- | Load language information from default config file -- | Load language information from default config file
@@ -55,6 +56,7 @@ loadLangsFrom configFile = do
, langSymbolic = boolBit bits 8 True , langSymbolic = boolBit bits 8 True
, langCompatibility = boolBit bits 9 False , langCompatibility = boolBit bits 9 False
, langSynopsis = boolBit bits 10 False , langSynopsis = boolBit bits 10 False
, langMorphodict = boolBit bits 11 False
} }
-- | Separate a string on a character -- | Separate a string on a character

View File

@@ -1,16 +1,34 @@
# A simple wrapper over the Haskell-based RGL build script # A wrapper over the Haskell and Bash build scripts
# Will try and fallback in order:
# - runghc Setup.hs
# - stack runghc Setup.hs
# - ./Setup.sh
RUNMAKE=runghc Setup.hs ifneq (, $(shell which runghc))
RUNGHC=runghc Setup.hs
else ifneq (, $(shell which stack))
RUNGHC=stack runghc Setup.hs
else
RUNGHC=
endif
.PHONY: build copy install doc clean .PHONY: build copy install doc clean
default: build copy default: build copy
build: src/*/*.gf build: src/*/*.gf
$(RUNMAKE) build ifneq (, $(RUNGHC))
$(RUNGHC) build
$(RUNGHC) build morphodict
else
./Setup.sh
endif
copy: copy:
$(RUNMAKE) copy ifneq (, $(RUNGHC))
$(RUNGHC) copy
$(RUNGHC) copy morphodict
endif
install: build copy install: build copy
@@ -18,4 +36,8 @@ doc: build
make -C doc GF_LIB_PATH=../dist make -C doc GF_LIB_PATH=../dist
clean: clean:
$(RUNMAKE) clean ifneq (, $(RUNGHC))
$(RUNGHC) clean
else
rm -r dist
endif

View File

@@ -2,8 +2,6 @@
# GF Resource Grammar Library (RGL) # GF Resource Grammar Library (RGL)
[![Build Status](https://travis-ci.org/GrammaticalFramework/gf-rgl.svg?branch=master)](https://travis-ci.org/GrammaticalFramework/gf-rgl)
The GF Resource Grammar Library is the standard library for Grammatical Framework. It covers the morphology and basic syntax of over 30 languages. The GF Resource Grammar Library is the standard library for Grammatical Framework. It covers the morphology and basic syntax of over 30 languages.
For more about the RGL, see the [synopsis page](http://www.grammaticalframework.org/lib/doc/synopsis/). For more about the RGL, see the [synopsis page](http://www.grammaticalframework.org/lib/doc/synopsis/).
@@ -47,12 +45,7 @@ This file should be kept up-to-date and all build methods should read this confi
If default is `y` then anything other than `n`, including the empty string, is treated as true (and vice versa when default is `n`). If default is `y` then anything other than `n`, including the empty string, is treated as true (and vice versa when default is `n`).
## Haskell script: `Setup.hs` ## Using Make
This build method gives you most options.
You will need Haskell installed on your system.
### Basic
If you have `Make` installed and don't care about advanced settings, If you have `Make` installed and don't care about advanced settings,
you can compile the RGL and install it to the default location with: you can compile the RGL and install it to the default location with:
@@ -64,9 +57,15 @@ make install
This is the same as `make build` followed by `make copy`. This is the same as `make build` followed by `make copy`.
There is also `make clean` available. There is also `make clean` available.
### Advanced The Makefile will try to use the Haskell install script,
falling back to the shell script if you do not have Haskell installed.
For more fine-grained control over the build process, you can run the build script directly: ## Haskell script: `Setup.hs`
This build method gives you most options.
You will need Haskell installed on your system.
Run the build script with:
``` ```
runghc Setup.hs ... runghc Setup.hs ...

View File

@@ -37,20 +37,6 @@ if "%dest%"=="" (
) )
:BreakLibPath :BreakLibPath
set DATA_DIR=..\gf-core\DATA_DIR
if "%dest%"=="" (
REM Look in already compiled GF folder
if exist %DATA_DIR% (
for /f "delims=" %%x in (%DATA_DIR%) do (
if not "%%x"=="" (
set dest=%%x\lib
goto BreakDataDir
)
)
)
)
:BreakDataDir
if "%dest%"=="" ( if "%dest%"=="" (
echo Unable to determine where to install the RGL. Please do one of the following: echo Unable to determine where to install the RGL. Please do one of the following:
echo - Pass the --dest=... flag to this script echo - Pass the --dest=... flag to this script

View File

@@ -1,4 +1,4 @@
{-# LANGUAGE CPP #-} {-# LANGUAGE CPP, LambdaCase #-}
-- | Main build script for RGL -- | Main build script for RGL
@@ -8,8 +8,8 @@ import System.IO (hPutStrLn,stderr)
import System.IO.Error (catchIOError) import System.IO.Error (catchIOError)
import System.Exit (ExitCode(..),exitFailure) import System.Exit (ExitCode(..),exitFailure)
import System.Environment (getArgs,lookupEnv) import System.Environment (getArgs,lookupEnv)
import System.Process (rawSystem) import System.Process (rawSystem,readProcess)
import System.FilePath ((</>),splitSearchPath) -- ,takeFileName,addExtension,dropExtension) import System.FilePath ((</>),splitSearchPath)
import System.Directory (createDirectoryIfMissing,copyFile,getDirectoryContents,removeDirectoryRecursive,findFile) import System.Directory (createDirectoryIfMissing,copyFile,getDirectoryContents,removeDirectoryRecursive,findFile)
#if __GLASGOW_HASKELL__>=800 #if __GLASGOW_HASKELL__>=800
import System.Directory (getModificationTime,setModificationTime) import System.Directory (getModificationTime,setModificationTime)
@@ -61,7 +61,7 @@ errLocation = unlines $
[ "Unable to determine where to install the RGL. Please do one of the following:" [ "Unable to determine where to install the RGL. Please do one of the following:"
, " - Pass the " ++ destination_flag ++ "... flag to this script" , " - Pass the " ++ destination_flag ++ "... flag to this script"
, " - Set the GF_LIB_PATH environment variable" , " - Set the GF_LIB_PATH environment variable"
, " - Compile & install GF from the gf-core repository (must be in same directory as gf-rgl)" , " - Compile & install GF from the gf-core repository"
] ]
-- | Copy single file between directories -- | Copy single file between directories
@@ -116,10 +116,11 @@ data Info = Info
mkInfo :: IO Info mkInfo :: IO Info
mkInfo = do mkInfo = do
args <- getArgs args <- getArgs
let gf = maybe default_gf id (getFlag gf_flag args)
-- Look for install location in a few different places -- Look for install location in a few different places
let mflag = getFlag destination_flag args let mflag = getFlag destination_flag args
mbuilt <- catchIOError (readFile "../gf-core/DATA_DIR" >>= \d -> return (Just (d </> "lib"))) (\e -> return Nothing)
menvar <- lookupEnv "GF_LIB_PATH" >>= return . fmap (head . splitSearchPath) menvar <- lookupEnv "GF_LIB_PATH" >>= return . fmap (head . splitSearchPath)
mbuilt <- catchIOError (readProcess gf ["--version"] "" >>= return . getPath) (\e -> return Nothing)
let let
inst_dir = inst_dir =
case catMaybes [mflag,menvar,mbuilt] of case catMaybes [mflag,menvar,mbuilt] of
@@ -129,12 +130,18 @@ mkInfo = do
return $ Info return $ Info
{ infoBuildDir = "dist" { infoBuildDir = "dist"
, infoInstallDir = inst_dir , infoInstallDir = inst_dir
, infoGFPath = maybe default_gf id (getFlag gf_flag args) , infoGFPath = gf
, infoVerbose = verbose , infoVerbose = verbose
} }
where where
default_gf = "gf" default_gf = "gf"
getPath s =
let l = last (lines s)
in if take 14 l == "Shared folder:"
then Just (drop 15 l </> "lib")
else Nothing
getRGLBuildDir :: Info -> Mode -> FilePath getRGLBuildDir :: Info -> Mode -> FilePath
getRGLBuildDir info mode = infoBuildDir info </> getRGLBuildSubDir mode getRGLBuildDir info mode = infoBuildDir info </> getRGLBuildSubDir mode
@@ -143,11 +150,12 @@ getRGLBuildSubDir mode =
case mode of case mode of
Present -> "present" Present -> "present"
AllTenses -> "alltenses" AllTenses -> "alltenses"
MorphoDict -> "morphodict"
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- Build modes -- Build modes
data Mode = Present | AllTenses data Mode = Present | AllTenses | MorphoDict
deriving (Show,Eq) deriving (Show,Eq)
all_modes :: [String] all_modes :: [String]
@@ -180,6 +188,7 @@ rglCommands =
, RGLCommand "lang" False $ gfcp [l,s] , RGLCommand "lang" False $ gfcp [l,s]
, RGLCommand "api" False $ gfcp [t,sc] , RGLCommand "api" False $ gfcp [t,sc]
, RGLCommand "compat" False $ gfcp [c] , RGLCommand "compat" False $ gfcp [c]
, RGLCommand "morphodict" False $ gfcp [m]
-- Special command, invoked when command ends in .gf -- Special command, invoked when command ends in .gf
, RGLCommand "modules" False $ \modes args bi -> do , RGLCommand "modules" False $ \modes args bi -> do
@@ -216,14 +225,20 @@ rglCommands =
s mode args = (symbol,optml mode langTry args) s mode args = (symbol,optml mode langTry args)
c mode args = (compat,optml AllTenses langCompatibility args) c mode args = (compat,optml AllTenses langCompatibility args)
t mode args = (try,optml mode langTry args) t mode args = (try,optml mode langTry args)
m mode args = (morphodict,optml mode langMorphodict args)
sc mode args = (symbolic,optml mode langSymbolic args) sc mode args = (symbolic,optml mode langSymbolic args)
optml :: Mode -> (LangInfo -> Bool) -> [String] -> ([LangInfo] -> [LangInfo]) optml :: Mode -> (LangInfo -> Bool) -> [String] -> ([LangInfo] -> [LangInfo])
optml mode pred args = optml mode pred args =
\langsAll -> \langsAll ->
let langsDefault = filter (if mode == Present then langPresent else const True) (filter pred langsAll) let langsDefault = filter (mode2langinfo mode) (filter pred langsAll)
in getOptLangs langsAll langsDefault args in getOptLangs langsAll langsDefault args
mode2langinfo = \case
Present -> langPresent
MorphoDict -> langMorphodict
_ -> const True
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- Getting module paths/names -- Getting module paths/names
@@ -253,6 +268,9 @@ syntax l = sourceDir </> "api" </> ("Syntax" ++ langCode l ++ ".gf")
symbolic :: LangInfo -> FilePath symbolic :: LangInfo -> FilePath
symbolic l = sourceDir </> "api" </> ("Symbolic" ++ langCode l ++ ".gf") symbolic l = sourceDir </> "api" </> ("Symbolic" ++ langCode l ++ ".gf")
morphodict :: LangInfo -> FilePath
morphodict l = sourceDir </> "morphodict" </> ("MorphoDict" ++ langCode l ++ ".gf")
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- Argument helpers -- Argument helpers
@@ -295,8 +313,9 @@ getOptMode args =
else explicit_modes else explicit_modes
where where
explicit_modes = explicit_modes =
[Present|have "present"]++ [Present | have "present"] ++
[AllTenses|have "alltenses"] [AllTenses | have "alltenses"] ++
[MorphoDict | have "morphodict"]
have mode = mode `elem` args have mode = mode `elem` args
-- | List of languages overriding the default definitions -- | List of languages overriding the default definitions
@@ -359,8 +378,8 @@ gfcn :: Info -> Mode -> String -> [FilePath] -> IO ()
gfcn bi mode summary files = do gfcn bi mode summary files = do
let dir = getRGLBuildDir bi mode let dir = getRGLBuildDir bi mode
preproc = case mode of preproc = case mode of
Present -> "--preproc=mkPresent" Present -> "--preproc=mkPresent"
AllTenses -> "" _ -> ""
createDirectoryIfMissing True dir createDirectoryIfMissing True dir
if length files > 0 if length files > 0
then do then do

View File

@@ -38,15 +38,15 @@ done
if [ -z "$dest" ]; then if [ -z "$dest" ]; then
dest=$(echo "$GF_LIB_PATH" | sed 's/:.*$//') dest=$(echo "$GF_LIB_PATH" | sed 's/:.*$//')
fi fi
if [ -z "$dest" ] && [ -f "../gf-core/DATA_DIR" ]; then if [ -z "$dest" ] && [ "$(gf --version | tail -1 | cut -c -14)" == "Shared folder:" ]; then
dest=$(cat ../gf-core/DATA_DIR) dest=$(gf --version | tail -1 | cut -c 16-)
if [ -n "$dest" ]; then dest="${dest}/lib"; fi if [ -n "$dest" ]; then dest="${dest}/lib"; fi
fi fi
if [ -z "$dest" ]; then if [ -z "$dest" ]; then
echo "Unable to determine where to install the RGL. Please do one of the following:" echo "Unable to determine where to install the RGL. Please do one of the following:"
echo " - Pass the --dest=... flag to this script" echo " - Pass the --dest=... flag to this script"
echo " - Set the GF_LIB_PATH environment variable" echo " - Set the GF_LIB_PATH environment variable"
echo " - Compile & install GF from the gf-core repository (must be in same directory as gf-rgl)" echo " - Compile & install GF from the gf-core repository"
exit 1 exit 1
fi fi
@@ -59,6 +59,7 @@ gfc="${gf} --batch --quiet --gf-lib-path=${dist}"
mkdir -p "${dist}/prelude" mkdir -p "${dist}/prelude"
mkdir -p "${dist}/present" mkdir -p "${dist}/present"
mkdir -p "${dist}/alltenses" mkdir -p "${dist}/alltenses"
mkdir -p "${dist}/morphodict"
# Build: prelude # Build: prelude
echo "Building [prelude]" echo "Building [prelude]"
@@ -68,10 +69,12 @@ ${gfc} --gfo-dir="${dist}"/prelude "${src}"/prelude/*.gf
# Gather all language modules for building # Gather all language modules for building
modules_present= modules_present=
modules_alltenses= modules_alltenses=
modules_morphodict=
for lang in $langs; do for lang in $langs; do
for mod in $modules_langs $modules_api; do for mod in $modules_langs $modules_api; do
if [ $mod == "Compatibility" ] && [[ "$langs_compat" != *"$lang"* ]]; then continue; fi if [ $mod == "Compatibility" ] && [[ "$langs_compat" != *"$lang"* ]]; then continue; fi
if [ $mod == "Try" ] && [[ "$langs_try" != *"$lang"* ]]; then continue; fi if [ $mod == "Try" ] && [[ "$langs_try" != *"$lang"* ]]; then continue; fi
if [ $mod == "Symbol" ] && [[ "$langs_try" != *"$lang"* ]]; then continue; fi
if [ $mod == "Symbolic" ] && [[ "$langs_symbolic" != *"$lang"* ]]; then continue; fi if [ $mod == "Symbolic" ] && [[ "$langs_symbolic" != *"$lang"* ]]; then continue; fi
for file in "${src}"/*/"${mod}${lang}".gf; do for file in "${src}"/*/"${mod}${lang}".gf; do
if [ ! -f "$file" ]; then continue; fi if [ ! -f "$file" ]; then continue; fi
@@ -79,8 +82,12 @@ for lang in $langs; do
modules_alltenses="${modules_alltenses} ${file}" modules_alltenses="${modules_alltenses} ${file}"
done done
done done
file="${src}/morphodict/MorphoDict${lang}.gf"
if [ ! -f "$file" ]; then continue; fi
modules_morphodict="${modules_morphodict} ${file}"
done done
# Build: present # Build: present
echo "Building [present]" echo "Building [present]"
if [ $verbose = true ]; then echo $modules_present; fi if [ $verbose = true ]; then echo $modules_present; fi
@@ -95,6 +102,15 @@ for module in $modules_alltenses; do
${gfc} --no-pmcfg --gfo-dir="${dist}"/alltenses "${module}" ${gfc} --no-pmcfg --gfo-dir="${dist}"/alltenses "${module}"
done done
# Build: morphodict
echo "Building [morphodict]"
if [ $verbose = true ]; then echo $modules_morphodict; fi
for module in $modules_morphodict; do
${gfc} --no-pmcfg --gfo-dir="${dist}"/morphodict "${module}"
done
# Copy # Copy
if [ $dest == $dist ]; then exit 0; fi
echo "Copying to ${dest}" echo "Copying to ${dest}"
mkdir -p "${dest}"
cp -R "${dist}"/* "${dest}" cp -R "${dist}"/* "${dest}"

View File

@@ -0,0 +1,371 @@
fun type Afr Amh Grc Ara Eus Bul Cat Chi Hrv Cze Dan Dut Gus Eng Est Fin Fre Ger Gre Heb Hin Hun Ice Ina Ita Jpn Kam Kor Lat Lav Lit May Mlt Mon Nep Nor Nno Pes Pol Por Pnb Ron Cgg Rus Snd Slo Slv Som Spa Swa Swe Tam Tel Tha Tur Ukr Urd Zul
AAnter Ant + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + +
ASimul Ant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AdAP AdA -> AP -> AP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + - + + + - + + + + + +
AdAdv AdA -> Adv -> Adv + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - + + + + - + + + - + +
AdNum AdN -> Card -> Card + - + + + + + + + - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - - + + + - - + + + + +
AdVVP AdV -> VP -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - + + + + + + + + + + + + + + + + + + - - - + - + - + + + - + +
AdVVPSlash AdV -> VPSlash -> VPSlash - - - + + + + + - - + - - + - + + + + - + - + - + + - + + - - - + + + + + - - + - - + + - - - - + - + - + - - - + +
AddAdvQVP QVP -> IAdv -> QVP - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
AdjCN AP -> CN -> CN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
AdjDAP DAP -> AP -> DAP - - - - + + + - - - + - + + + - + - - - - - + - + + + - - - - - - - - + + - - + - - + + - - - - + + + - - - + - - +
AdjOrd Ord -> AP + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - + + + + + +
AdnCAdv CAdv -> AdN + - - + - + + + + - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + + + +
AdvAP AP -> Adv -> AP - - - + + + + + + + + + + + + + + - + - + + + - + + + - + + - + + + + + + + - + - - - + - + + - + + + - + - + + + +
AdvCN CN -> Adv -> CN + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + - - + + + + +
AdvIAdv IAdv -> Adv -> IAdv + - - + + + + + - - + + + + + + + + + + + - + + + + + - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
AdvIP IP -> Adv -> IP + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
AdvImp Adv -> Imp -> Imp - - - - - + + - - - + - - + - - + - - - - - - - + - - - - - - - - - - + + - - + - - - - - - - - + - + - + - - - - +
AdvNP NP -> Adv -> NP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - + + + + +
AdvQVP VP -> IAdv -> QVP - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
AdvS Adv -> S -> S + + + + + + + + - - + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + - + + - + + + - + - + + + - + +
AdvSlash ClSlash -> Adv -> ClSlash + - - + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
AdvVP VP -> Adv -> VP + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
AdvVPSlash VPSlash -> Adv -> VPSlash - - - - + + + + - - + - - + + + + + + - + + + - + + - + + - - - + + + + + - - + - - + + - - - + + - + - + - - - + +
ApposCN CN -> NP -> CN + + - + + + + + + + + + - + + + + + + - + + + + + + - + + + + - + + + + + + + + + + + + + + - - + - + - - + + + + +
BaseAP AP -> AP -> ListAP + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + + - + + + - + + + + + +
BaseAdV AdV -> AdV -> ListAdV - - - - + + - - - - - - + + + + - - - + - + + - - + + + - - - - + - - - - - - - - - - + - - - - - + - - + - + - - +
BaseAdv Adv -> Adv -> ListAdv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
BaseCN CN -> CN -> ListCN - - + + + + + + - - + - + + + + + + + + - - + - + + + - - - - - + + - + + + - + - - - + - - - - + + + - + - + - - +
BaseDAP DAP -> DAP -> ListDAP - - - - + - - - - - + - + + - - - - - + - - + - - + + - - - - - - - - + + - - - - - - + - - - - - + + - + - - - - +
BaseIAdv IAdv -> IAdv -> ListIAdv - - - - + + + - - - + - + + + + + - + + - + + - + + + + - - - - + + - + + - - + - - - + - - - - + + + - + - - - - +
BaseNP NP -> NP -> ListNP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + - + + + + + +
BaseRS RS -> RS -> ListRS + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
BaseS S -> S -> ListS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
CAdvAP CAdv -> AP -> NP -> AP + + - - + + + + - - + + + + + + + + + - + + + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
CleftAdv Adv -> S -> Cl + - + + - + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
CleftNP NP -> RS -> Cl + - + - - + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
CompAP AP -> Comp + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
CompAdv Adv -> Comp + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
CompCN CN -> Comp + - + + + + + + - - + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
CompIAdv IAdv -> IComp + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + + + - + - + + + - + +
CompIP IP -> IComp + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
CompNP NP -> Comp + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
ComparA A -> NP -> AP + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + + - - + + + + - + + + + + +
ComparAdvAdj CAdv -> A -> NP -> Adv + + + - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
ComparAdvAdjS CAdv -> A -> S -> Adv + - - - - + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
ComplA2 A2 -> NP -> AP + - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
ComplN2 N2 -> NP -> CN + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
ComplN3 N3 -> NP -> N2 + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - - + + + - - + + - + +
ComplSlash VPSlash -> NP -> VP + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
ComplSlashIP VPSlash -> IP -> QVP - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
ComplVA VA -> AP -> VP + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
ComplVQ VQ -> QS -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
ComplVS VS -> S -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + + + + - - + + - + - + + + - + +
ComplVV VV -> VP -> VP + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
ConjAP Conj -> ListAP -> AP + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + + - + + + - + + + + + +
ConjAdV Conj -> ListAdV -> AdV - - - - + + - - - - - - + + + + - - - + - + + - - + + + - - - - + - - - - - - - - - - + - - - - - + - - + - + - - +
ConjAdv Conj -> ListAdv -> Adv + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
ConjCN Conj -> ListCN -> CN - - + + + + + + - - + - + + + + + + + + - - + - + + + - - - - - + + - + + + - + - - - + - - - - + + + - + - + - - +
ConjDet Conj -> ListDAP -> Det - - - - + - - - - - + - + + - - - - - + - - + - - + + - - - - - - - - + + - - - - - - + - - - - - + + - + - - - - +
ConjIAdv Conj -> ListIAdv -> IAdv - - - - + + + - - - + - + + + + + - + + - + + - + + + + - - - - + + - + + - - + - - - + - - - - + + + - + - - - - +
ConjNP Conj -> ListNP -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + - + + + + + +
ConjRS Conj -> ListRS -> RS + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
ConjS Conj -> ListS -> S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
ConsAP AP -> ListAP -> ListAP + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + + - + + + - + + + + + +
ConsAdV AdV -> ListAdV -> ListAdV - - - - + + - - - - - - + + + + - - - + - + + - - + + + - - - - + - - - - - - - - - - + - - - - - + - - + - + - - +
ConsAdv Adv -> ListAdv -> ListAdv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
ConsCN CN -> ListCN -> ListCN - - + + + + + + - - + - + + + + + + + + - - + - + + + - - - - - + + - + + + - + - - - + - - - - + + + - + - + - - +
ConsDAP DAP -> ListDAP -> ListDAP - - - - + - - - - - + - + + - - - - - + - - + - - + + - - - - - - - - + + - - - - - - + - - - - - + + - + - - - - +
ConsIAdv IAdv -> ListIAdv -> ListIAdv - - - - + + + - - - + - + + + + + - + + - + + - + + + + - - - - + + - + + - - + - - - + - - - - + + + - + - - - - +
ConsNP NP -> ListNP -> ListNP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + - + + + + + +
ConsRS RS -> ListRS -> ListRS + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
ConsS S -> ListS -> ListS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
CountNP Det -> NP -> NP - - - - + + + + - - + - + + - + + - + - + - + - + + + - + - - + + - - + + - - + - - + + - - - - + + + - - - + - + +
D_0 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_1 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_2 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_3 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_4 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_5 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_6 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_7 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_8 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
D_9 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
DefArt Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
DetCN Det -> CN -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + +
DetDAP Det -> DAP - - - - + + + - - - + + + + + + + + - - - - + - + + + - - - + - - - - + + - + + - - + + - - - - + + + - - - + - - +
DetNP Det -> NP + + - + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - - + + + + +
DetQuant Quant -> Num -> Det + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + +
DetQuantOrd Quant -> Num -> Ord -> Det + + + + + + + + - - + + + + + + + + + - + + + + + + + - - + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
EmbedQS QS -> SC + - - + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
EmbedS S -> SC + - + + + + + + - - + + - + + + + + + - + - + + + + - + - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
EmbedVP VP -> SC + + - + + + + + - - + + - + + + + + + - + - + + + + - + - + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
ExistIP IP -> QCl + - + + - + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - - - + - + - + + + - + +
ExistIPAdv IP -> Adv -> QCl - - + - - + - - - - - - + + - + - + - + - - + - - + + - + - - - + + - - - - - + - - - + - - - - + - + - + - - - - +
ExistNP NP -> Cl + - + + + + + + + - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - + + + - + - + + + + + +
ExistNPAdv NP -> Adv -> Cl - - + + - + - - + - - - + + - + + + - + - - + - + + + - + - - - + + - - - + - + - - - + - - - - + - + - + - - + - +
ExtAdvNP NP -> Adv -> NP - - - - + + + + - - + + + + - + + + - - - + + - + + + - + - - + + - - + + - - + - - + + - - - - + + + - - - + - - +
ExtAdvS Adv -> S -> S - - - - + + + + - - + + - + + + + + + - + + + - + + - + - - + + + + - + + - + + - + + + - - + + + - + - + + - - + +
ExtAdvVP VP -> Adv -> VP - - - - + + + + - - + + - + - + + + - - - - + - + + - - - - - - + - - + + - - + - - - + - - - - + - + - + - - - - +
FunRP Prep -> NP -> RP -> RP + - - - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - + - + - + - + + + - + +
GenericCl VP -> Cl + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
IDig Dig -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
IIDig Dig -> Digits -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
IdRP RP + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
IdetCN IDet -> CN -> IP + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
IdetIP IDet -> IP + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
IdetQuant IQuant -> Num -> IDet + + - + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
ImpP3 NP -> VP -> Utt - - + - - - - - - - - - + + - + + + + + + - + - - + + - + + - - + + + - - + - + + - - + + - - - - - - - + - - - + +
ImpPl1 VP -> Utt + - + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
ImpVP VP -> Imp + + + + + + + + - - + + - + + + + + + - + - + + + + - - - + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
ImpersCl VP -> Cl + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
IndefArt Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
MassNP CN -> NP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
NoPConj PConj + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
NoVoc Voc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
NumCard Card -> Num + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
NumDigits Digits -> Card + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + - - + + + - - + + + + +
NumNumeral Numeral -> Card + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
NumPl Num + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
NumSg Num + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + +
OrdDigits Digits -> Ord + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - - + + + - - + + - + +
OrdNumeral Numeral -> Ord + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
OrdNumeralSuperl Numeral -> A -> Ord - - - - + - + + - - + + + + - + + + - - - - + - + + + - - - - + - - - + + - - + - - + + - - - - + + + - - - + - - +
OrdSuperl A -> Ord + + + + + + + + + - + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + - - + + + + - - + + + + +
PConjConj Conj -> PConj + - + - + + + + + + + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + + - + + + + - + + + + + +
PNeg Pol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PPartNP NP -> V2 -> NP + + - - + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + + + + - - - + - + - - + + - + +
PPos Pol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PartNP CN -> NP -> CN - - - - + + + + - - + - + + - + + - + - + - + - + + + - - - + - + - - + + - - + - - + + - - - + + + + - - - + - + +
PassV2 V2 -> VP + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
PhrUtt PConj -> Utt -> Voc -> Phr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
PositA A -> AP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
PositAdAAdj A -> AdA + - - - + + + + - - + + + + + + + + + - + - + - + + + - + - - - + + - + + - - + - - - + - - - - + + + - + - - - + +
PositAdvAdj A -> Adv + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
PossNP CN -> NP -> CN - - + + + + + + - - + + + + + + + + + - + - + - + + + - - - + + + - - + + + - + - - + + - - - + + + + - - - + - + +
PossPron Pron -> Quant + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
PredSCVP SC -> VP -> Cl + - + - + + + + - - + + - + + + + + + - + - + + + + - + - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
PredVP NP -> VP -> Cl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
PredetNP Predet -> NP -> NP + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - - + + - + +
PrepIP Prep -> IP -> IAdv + - + + + + + + - - + + + + + + + + + + + - + + + + + - - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
PrepNP Prep -> NP -> Adv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
ProgrVP VP -> VP + - + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
QuestCl Cl -> QCl + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
QuestIAdv IAdv -> Cl -> QCl + + - + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
QuestIComp IComp -> NP -> QCl + - - + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
QuestQVP IP -> QVP -> QCl - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
QuestSlash IP -> ClSlash -> QCl + - - + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
QuestVP IP -> VP -> QCl + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
ReflA2 A2 -> AP + - + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
ReflVP VPSlash -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - + + + - + - + + + - + +
RelCN CN -> RS -> CN + - + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + - + + + + - - + + + + +
RelCl Cl -> RCl + - - + + + + + - - + + + + + + + + + + + - + + + + + + - + + - + + + + + + + + + + + + + - + - + - + - + + + - + +
RelNP NP -> RS -> NP + - + + + + + + - - + + + + + + + + + - + + + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
RelS S -> RS -> S + - + - + + + + - - + + - + + + + + + - + - + + + + - - - - + - + + + + + + + + + + - + + - - - + - + - + + - - + +
RelSlash RP -> ClSlash -> RCl + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
RelVP RP -> VP -> RCl + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
SSubjS S -> Subj -> S -> S - + - - + + + + - - + + - + - + + + + - + - + - + + - - - - - - + + + + + + - + + - - + + - - + + - + - + + - - + +
SelfAdVVP VP -> VP - - + + - - - + - - - - + + - + + + - + - - + - - + + - + - - - + - - - - - - + - - - + - - - - + - + - + - - - - +
SelfAdvVP VP -> VP - - + + - - - + - - - - + + - + + + - + - - + - - + + - + - - - + - - - - - - + - - - + - - - - + - + - + - - - - +
SelfNP NP -> NP - - + + - - - + - - - - + + - + + + - + - - + - - + + - + - - - + - - - - - - + - - - + - - - - - - + - + - - - - +
SentAP AP -> SC -> AP + - + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - + + + + - + + + - + +
SentCN CN -> SC -> CN + - + + + + + + - - + + + + + + + + + - + - + + + + + + - + + - + + + + + + + + + + + + + - - - + + + - - + + - + +
Slash2V3 V3 -> NP -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
Slash3V3 V3 -> NP -> VPSlash + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
SlashPrep Cl -> Prep -> ClSlash + - + - - + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + - + + - - - + - + - + + + - + +
SlashV2A V2A -> AP -> VPSlash + - - - + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
SlashV2Q V2Q -> QS -> VPSlash + - + - + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
SlashV2S V2S -> S -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
SlashV2V V2V -> VP -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
SlashV2VNP V2V -> NP -> VPSlash -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
SlashV2a V2 -> VPSlash + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
SlashVP NP -> VPSlash -> ClSlash + + + + + + + + - - + + - + + + + + + - + + + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
SlashVS NP -> VS -> SSlash -> ClSlash + - + - - + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
SlashVV VV -> VPSlash -> VPSlash + - - + + + + + - - + + - + + + + + + - + - + + + + - - - + + + + + + + + + + + + + + + + - - - + - + - + + + - + +
SubjS Subj -> S -> Adv + - + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - + + + - + +
TCond Tense + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + +
TEmpty Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TExclMark Phr -> Text -> Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TFullStop Phr -> Text -> Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TFut Tense + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + +
TPast Tense + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + +
TPres Tense + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TQuestMark Phr -> Text -> Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TTAnt Tense -> Ant -> Temp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Use2N3 N3 -> N2 + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - + + + + - - + + - + +
Use3N3 N3 -> N2 + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - + + + + - - + - - + +
UseA2 A2 -> AP + - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + + + - + + + + - + + + + + +
UseCl Temp -> Pol -> Cl -> S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
UseComp Comp -> VP + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
UseComparA A -> AP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
UseCopula VP - - + + + + + + - - + + - + - + + + + - - + + - + + - + + - - + + + - + + - - + - + + + - - - + + - + - + - - - - +
UseN N -> CN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UseN2 N2 -> CN + + + + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
UsePN PN -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
UsePron Pron -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
UseQCl Temp -> Pol -> QCl -> QS + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
UseRCl Temp -> Pol -> RCl -> RS + - + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + - + + - + - + + + + + +
UseSlash Temp -> Pol -> ClSlash -> SSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
UseV V -> VP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
UttAP AP -> Utt + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
UttAdv Adv -> Utt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
UttCN CN -> Utt + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
UttCard Card -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + - + + + - + - + + + - + +
UttIAdv IAdv -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
UttIP IP -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
UttImpPl Pol -> Imp -> Utt + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - + + + - + - + + + - + +
UttImpPol Pol -> Imp -> Utt + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
UttImpSg Pol -> Imp -> Utt + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
UttInterj Interj -> Utt - - - + + + + + - - + + + + + + + + + - + + + + + + + + + - - - + + - + + - - + - - + + - - + + + + + - + + + - + +
UttNP NP -> Utt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
UttQS QS -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
UttS S -> Utt + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
UttVP VP -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
VPSlashPrep VP -> Prep -> VPSlash - - - + + + + + - - + + - + + + + + + + + - + - + + - - - + - - + + - + + + - + - + - + - - - + + - + - + - - - + +
VocNP NP -> Voc + + + - + + + + + + + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + + - + + - + - + + + + + +
above_Prep Prep + + + + + + + + - - + + + + + + + + + + + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
active2passive Cl -> Cl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
after_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
all_Predet Predet + + - + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
almost_AdA AdA + - - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
almost_AdN AdN + - - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
although_Subj Subj + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
always_AdV AdV + + + - + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
and_Conj Conj + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
as_CAdv CAdv + + - - + + + + - - + + + + + + + + + - + + + - + + + - + + + - + + + - - + + + + + + + + - - - + - + - + + + - + +
at_least_AdN AdN + - - - + + + + - - + + + + + + + + + - + - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
at_most_AdN AdN + - - - + + + + - - + + + + + + + + + - + - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
because_Subj Subj + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
before_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
behind_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
between_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
both7and_DConj Conj + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
but_PConj PConj + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
by8agent_Prep Prep + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + - + +
by8means_Prep Prep + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + - + +
can8know_VV VV + - - - + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + - + + + + + + + - - + + - + - + + + - + +
can_VV VV + - - + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
dconcat Digits -> Digits -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
digits2num Digits -> Numeral + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
digits2numeral Card -> Card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dn Dig -> Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dn10 Dig -> Sub10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dn100 Dig -> Dig -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dn1000 Dig -> Dig -> Dig -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dn1000000a Dig -> Dig -> Dig -> Dig -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dn1000000b Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
dn1000000c Dig -> Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
during_Prep Prep + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
either7or_DConj Conj + + + - + + + + - - + + + + + + + + + - + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
every_Det Det + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - - + + + - + + + - + +
everybody_NP NP + + - + + + + + - - + + + + + + + + + - + - - + + + + - + + + - + + + + + - + + + + + + - - - - + + + - + + + - + +
everything_NP NP + + - + + + + + - - + + + + + + + + + + + - - + + + + - + + + - + + + + + + + + + + + + - - - - + + + - + + + - + +
everywhere_Adv Adv + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
except_Prep Prep + - + - + - + + - - + + + + + + + + + + + - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
few_Det Det + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + - - + + + - + + + - + +
for_Prep Prep + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + - - + + + - + + + + + +
from_Prep Prep + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + - - + + + + + + + + + + + + + + - - + + + - + + + + + +
have_V2 V2 + + - + + + + + + + + + - + + + + + + - + + + - + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
he_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
here7from_Adv Adv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
here7to_Adv Adv + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
here_Adv Adv + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
how8many_IDet IDet + + + + + + + + - - + + - + + + + + + + + - - + + + - - + + + + + + + + + + + + + + + + + - - - + - + - + + + - + +
how8much_IAdv IAdv + - - + + + + + - - - + + + + + + + + + + - + - + + + - + + - - + + + - - + - + + + + + + - + - + + + - + + + - + +
how_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - + + + - + +
i_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
if_Subj Subj + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + - + + + - + + + - + +
if_then_Conj Conj + - - - + - + + - - + + + + + + + + + - - - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + - - + +
in8front_Prep Prep + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
in_Prep Prep + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
it_Pron Pron + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
language_title_Utt Utt + + + + + + + + - - + + + + + + + + + - + + - + + + + + + + + + + + + + + + + + + - + + + - - + + + + - + - + - + +
less_CAdv CAdv + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
many_Det Det + + + + + + + + - + + + + + + + + + + - + + - + + + + + + + + - + + + + + + + + + + + + + + - - + + + - + + + - + +
more_CAdv CAdv + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
most_Predet Predet + + - + + + + + - - + + - + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
much_Det Det + + + + + + + + - - + + + + + + + + + - + - - + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
must_VV VV + - - + + + + + - - + + - + + + + + + - - - + + + + - - + + + + + + + + + + + + - + + + - - + + + - + - + + + - - +
n2 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
n3 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
n4 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
n5 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
n6 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
n7 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
n8 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
n9 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
nd Digit -> Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nd10 Sub10 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nd100 Sub100 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nd1000 Sub1000 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nd1000000 Sub1000000 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
no_Quant Quant + - - - + - + + - - + + - + + + + + + - - - - - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
no_Utt Utt + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
nobody_NP NP + - + - + - + + - - + + + + + + + + + - - - - - + + + - + + + - + + + - - + + + + + + + - - + - + + + - + + + - + +
not_Predet Predet + - - - + - + + - - + + + + + + + + + - + - + - + + + - + - + - + + + - - + + + + + + + + - - - + + + - + + + - + +
nothing_NP NP + - + + + - + + - - + + + + + + + + + - - - - - + + + - + + + - + + + - - + + + + + + + - - + - + + + - + + + - + +
num Sub1000000 -> Numeral + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
num2digits Numeral -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
on_Prep Prep + + + + + + + + - - + + + + + + + + + - + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
only_Predet Predet + + - + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
or_Conj Conj + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
otherwise_PConj PConj + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
part_Prep Prep + - + + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
please_Voc Voc + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
possess_Prep Prep + - + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + + + +
pot0 Digit -> Sub10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot01 Sub10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot0as1 Sub10 -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot1 Digit -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot110 Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot111 Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot1as2 Sub100 -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot1plus Digit -> Sub10 -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot1to19 Digit -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot2 Sub10 -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot21 Sub1000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
pot2as3 Sub1000 -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot2plus Sub10 -> Sub100 -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot3 Sub1000 -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot31 Sub1000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
pot3as4 Sub1000000 -> Sub1000000000 + - + - - + + + - - - + - + + + + + + + - - - - + - - + - + - - + - - - - - + + - + - + - + + + + + + - + + + - - +
pot3float Float -> Sub1000000 - - - - - + - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - +
pot3plus Sub1000 -> Sub1000 -> Sub1000000 + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
pot4 Sub1000 -> Sub1000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
pot41 Sub1000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
pot4as5 Sub1000000000 -> Sub1000000000000 + - + - - + + + - - - + - + + + + + + + - - - - + - - + - + - - + - - - - - + + - + - + - + + + + + + - + + + - - +
pot4float Float -> Sub1000000000 - - - - - + - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
pot4plus Sub1000 -> Sub1000000 -> Sub1000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
pot5 Sub1000 -> Sub1000000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
pot51 Sub1000000000000 - - - - - + - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
pot5float Float -> Sub1000000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
pot5plus Sub1000 -> Sub1000000000 -> Sub1000000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
quite_Adv AdA + - - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
she_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
so_AdA AdA + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
somePl_Det Det + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + - + + + + - + + + - + +
someSg_Det Det + + + + + + + + - - + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
somebody_NP NP + + + + + + + + - - + + + + + + + + + - + - - + + + + - + + + + + + + + + + + + + + + + - - + - + + + - + + + - + +
something_NP NP + + + + + + + + - + + + + + + + + + + - + + - + + + + + + + + - + + + + + + + + + + + + - + + - + + + - + + + - + +
somewhere_Adv Adv + + + - + + + + + - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + + + +
that_Quant Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
that_Subj Subj + - + + + + + + - - - + + + + + + + + + + - + - + + + - + + - + + + + - - + - + + + + + + - - + + + + - + + + - + +
there7from_Adv Adv + + + - + + + + - - + + + + + + + + + + + - - + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
there7to_Adv Adv + + + - + + + + - - + + + + + + + + + + + - - + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
there_Adv Adv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
therefore_PConj PConj + + + - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
they_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
this_Quant Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
through_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + - - + +
to_Prep Prep + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + + + +
too_AdA AdA + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
under_Prep Prep + + + + + + + + - - + + + + + + + + + + + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
very_AdA AdA + + - + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
want_VV VV + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
we_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
whatPl_IP IP + - + + + + + + - - + + - + + + + + + + + - + + + + - - + + + - + + + + + + + + - + + + + - - - + - + - + + + - + +
whatSg_IP IP + - + + + + + + - - + + - + + + + + + + + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
when_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
when_Subj Subj + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + - + + + - + + + - + +
where_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
which_IQuant IQuant + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - + + + - + +
whoPl_IP IP + + + + + + + + - - + + - + + + + + + + + - + + + + - - + + + - + + + + + + + + - + + + + - - - + - + - + + + - + +
whoSg_IP IP + + + + + + + + - - + + - + + + + + + + + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
why_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
with_Prep Prep + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
without_Prep Prep + + + + + + + + - - + + + + + + + + + + - - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
yes_Utt Utt + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
youPl_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
youPol_Pron Pron + + + + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
youSg_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
1 fun type Afr Amh Grc Ara Eus Bul Cat Chi Hrv Cze Dan Dut Gus Eng Est Fin Fre Ger Gre Heb Hin Hun Ice Ina Ita Jpn Kam Kor Lat Lav Lit May Mlt Mon Nep Nor Nno Pes Pol Por Pnb Ron Cgg Rus Snd Slo Slv Som Spa Swa Swe Tam Tel Tha Tur Ukr Urd Zul
2 AAnter Ant + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + +
3 ASimul Ant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
4 AdAP AdA -> AP -> AP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + - + + + - + + + + + +
5 AdAdv AdA -> Adv -> Adv + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - + + + + - + + + - + +
6 AdNum AdN -> Card -> Card + - + + + + + + + - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - - + + + - - + + + + +
7 AdVVP AdV -> VP -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - + + + + + + + + + + + + + + + + + + - - - + - + - + + + - + +
8 AdVVPSlash AdV -> VPSlash -> VPSlash - - - + + + + + - - + - - + - + + + + - + - + - + + - + + - - - + + + + + - - + - - + + - - - - + - + - + - - - + +
9 AddAdvQVP QVP -> IAdv -> QVP - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
10 AdjCN AP -> CN -> CN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
11 AdjDAP DAP -> AP -> DAP - - - - + + + - - - + - + + + - + - - - - - + - + + + - - - - - - - - + + - - + - - + + - - - - + + + - - - + - - +
12 AdjOrd Ord -> AP + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - + + + + + +
13 AdnCAdv CAdv -> AdN + - - + - + + + + - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + + + +
14 AdvAP AP -> Adv -> AP - - - + + + + + + + + + + + + + + - + - + + + - + + + - + + - + + + + + + + - + - - - + - + + - + + + - + - + + + +
15 AdvCN CN -> Adv -> CN + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + - - + + + + +
16 AdvIAdv IAdv -> Adv -> IAdv + - - + + + + + - - + + + + + + + + + + + - + + + + + - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
17 AdvIP IP -> Adv -> IP + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
18 AdvImp Adv -> Imp -> Imp - - - - - + + - - - + - - + - - + - - - - - - - + - - - - - - - - - - + + - - + - - - - - - - - + - + - + - - - - +
19 AdvNP NP -> Adv -> NP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - + + + + +
20 AdvQVP VP -> IAdv -> QVP - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
21 AdvS Adv -> S -> S + + + + + + + + - - + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + - + + - + + + - + - + + + - + +
22 AdvSlash ClSlash -> Adv -> ClSlash + - - + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
23 AdvVP VP -> Adv -> VP + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
24 AdvVPSlash VPSlash -> Adv -> VPSlash - - - - + + + + - - + - - + + + + + + - + + + - + + - + + - - - + + + + + - - + - - + + - - - + + - + - + - - - + +
25 ApposCN CN -> NP -> CN + + - + + + + + + + + + - + + + + + + - + + + + + + - + + + + - + + + + + + + + + + + + + + - - + - + - - + + + + +
26 BaseAP AP -> AP -> ListAP + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + + - + + + - + + + + + +
27 BaseAdV AdV -> AdV -> ListAdV - - - - + + - - - - - - + + + + - - - + - + + - - + + + - - - - + - - - - - - - - - - + - - - - - + - - + - + - - +
28 BaseAdv Adv -> Adv -> ListAdv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
29 BaseCN CN -> CN -> ListCN - - + + + + + + - - + - + + + + + + + + - - + - + + + - - - - - + + - + + + - + - - - + - - - - + + + - + - + - - +
30 BaseDAP DAP -> DAP -> ListDAP - - - - + - - - - - + - + + - - - - - + - - + - - + + - - - - - - - - + + - - - - - - + - - - - - + + - + - - - - +
31 BaseIAdv IAdv -> IAdv -> ListIAdv - - - - + + + - - - + - + + + + + - + + - + + - + + + + - - - - + + - + + - - + - - - + - - - - + + + - + - - - - +
32 BaseNP NP -> NP -> ListNP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + - + + + + + +
33 BaseRS RS -> RS -> ListRS + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
34 BaseS S -> S -> ListS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
35 CAdvAP CAdv -> AP -> NP -> AP + + - - + + + + - - + + + + + + + + + - + + + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
36 CleftAdv Adv -> S -> Cl + - + + - + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
37 CleftNP NP -> RS -> Cl + - + - - + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
38 CompAP AP -> Comp + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
39 CompAdv Adv -> Comp + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
40 CompCN CN -> Comp + - + + + + + + - - + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
41 CompIAdv IAdv -> IComp + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + + + - + - + + + - + +
42 CompIP IP -> IComp + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
43 CompNP NP -> Comp + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
44 ComparA A -> NP -> AP + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + + - - + + + + - + + + + + +
45 ComparAdvAdj CAdv -> A -> NP -> Adv + + + - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
46 ComparAdvAdjS CAdv -> A -> S -> Adv + - - - - + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
47 ComplA2 A2 -> NP -> AP + - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
48 ComplN2 N2 -> NP -> CN + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
49 ComplN3 N3 -> NP -> N2 + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - - + + + - - + + - + +
50 ComplSlash VPSlash -> NP -> VP + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
51 ComplSlashIP VPSlash -> IP -> QVP - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
52 ComplVA VA -> AP -> VP + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
53 ComplVQ VQ -> QS -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
54 ComplVS VS -> S -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + + + + - - + + - + - + + + - + +
55 ComplVV VV -> VP -> VP + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
56 ConjAP Conj -> ListAP -> AP + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + + - + + + - + + + + + +
57 ConjAdV Conj -> ListAdV -> AdV - - - - + + - - - - - - + + + + - - - + - + + - - + + + - - - - + - - - - - - - - - - + - - - - - + - - + - + - - +
58 ConjAdv Conj -> ListAdv -> Adv + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
59 ConjCN Conj -> ListCN -> CN - - + + + + + + - - + - + + + + + + + + - - + - + + + - - - - - + + - + + + - + - - - + - - - - + + + - + - + - - +
60 ConjDet Conj -> ListDAP -> Det - - - - + - - - - - + - + + - - - - - + - - + - - + + - - - - - - - - + + - - - - - - + - - - - - + + - + - - - - +
61 ConjIAdv Conj -> ListIAdv -> IAdv - - - - + + + - - - + - + + + + + - + + - + + - + + + + - - - - + + - + + - - + - - - + - - - - + + + - + - - - - +
62 ConjNP Conj -> ListNP -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + - + + + + + +
63 ConjRS Conj -> ListRS -> RS + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
64 ConjS Conj -> ListS -> S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
65 ConsAP AP -> ListAP -> ListAP + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + - + + + + - + + + - + + + + + +
66 ConsAdV AdV -> ListAdV -> ListAdV - - - - + + - - - - - - + + + + - - - + - + + - - + + + - - - - + - - - - - - - - - - + - - - - - + - - + - + - - +
67 ConsAdv Adv -> ListAdv -> ListAdv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
68 ConsCN CN -> ListCN -> ListCN - - + + + + + + - - + - + + + + + + + + - - + - + + + - - - - - + + - + + + - + - - - + - - - - + + + - + - + - - +
69 ConsDAP DAP -> ListDAP -> ListDAP - - - - + - - - - - + - + + - - - - - + - - + - - + + - - - - - - - - + + - - - - - - + - - - - - + + - + - - - - +
70 ConsIAdv IAdv -> ListIAdv -> ListIAdv - - - - + + + - - - + - + + + + + - + + - + + - + + + + - - - - + + - + + - - + - - - + - - - - + + + - + - - - - +
71 ConsNP NP -> ListNP -> ListNP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + - + + + + + +
72 ConsRS RS -> ListRS -> ListRS + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
73 ConsS S -> ListS -> ListS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + + + - - + + + - + + + + + +
74 CountNP Det -> NP -> NP - - - - + + + + - - + - + + - + + - + - + - + - + + + - + - - + + - - + + - - + - - + + - - - - + + + - - - + - + +
75 D_0 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
76 D_1 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
77 D_2 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
78 D_3 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
79 D_4 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
80 D_5 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
81 D_6 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
82 D_7 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
83 D_8 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
84 D_9 Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
85 DefArt Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
86 DetCN Det -> CN -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + +
87 DetDAP Det -> DAP - - - - + + + - - - + + + + + + + + - - - - + - + + + - - - + - - - - + + - + + - - + + - - - - + + + - - - + - - +
88 DetNP Det -> NP + + - + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - - + + + + +
89 DetQuant Quant -> Num -> Det + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + +
90 DetQuantOrd Quant -> Num -> Ord -> Det + + + + + + + + - - + + + + + + + + + - + + + + + + + - - + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
91 EmbedQS QS -> SC + - - + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
92 EmbedS S -> SC + - + + + + + + - - + + - + + + + + + - + - + + + + - + - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
93 EmbedVP VP -> SC + + - + + + + + - - + + - + + + + + + - + - + + + + - + - + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
94 ExistIP IP -> QCl + - + + - + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - - - + - + - + + + - + +
95 ExistIPAdv IP -> Adv -> QCl - - + - - + - - - - - - + + - + - + - + - - + - - + + - + - - - + + - - - - - + - - - + - - - - + - + - + - - - - +
96 ExistNP NP -> Cl + - + + + + + + + - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - + + + - + - + + + + + +
97 ExistNPAdv NP -> Adv -> Cl - - + + - + - - + - - - + + - + + + - + - - + - + + + - + - - - + + - - - + - + - - - + - - - - + - + - + - - + - +
98 ExtAdvNP NP -> Adv -> NP - - - - + + + + - - + + + + - + + + - - - + + - + + + - + - - + + - - + + - - + - - + + - - - - + + + - - - + - - +
99 ExtAdvS Adv -> S -> S - - - - + + + + - - + + - + + + + + + - + + + - + + - + - - + + + + - + + - + + - + + + - - + + + - + - + + - - + +
100 ExtAdvVP VP -> Adv -> VP - - - - + + + + - - + + - + - + + + - - - - + - + + - - - - - - + - - + + - - + - - - + - - - - + - + - + - - - - +
101 FunRP Prep -> NP -> RP -> RP + - - - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - + - + - + - + + + - + +
102 GenericCl VP -> Cl + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
103 IDig Dig -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
104 IIDig Dig -> Digits -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
105 IdRP RP + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
106 IdetCN IDet -> CN -> IP + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
107 IdetIP IDet -> IP + + + + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - - + + - + - + + + - + +
108 IdetQuant IQuant -> Num -> IDet + + - + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
109 ImpP3 NP -> VP -> Utt - - + - - - - - - - - - + + - + + + + + + - + - - + + - + + - - + + + - - + - + + - - + + - - - - - - - + - - - + +
110 ImpPl1 VP -> Utt + - + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
111 ImpVP VP -> Imp + + + + + + + + - - + + - + + + + + + - + - + + + + - - - + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
112 ImpersCl VP -> Cl + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
113 IndefArt Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
114 MassNP CN -> NP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
115 NoPConj PConj + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
116 NoVoc Voc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
117 NumCard Card -> Num + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
118 NumDigits Digits -> Card + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + - - + + + - - + + + + +
119 NumNumeral Numeral -> Card + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
120 NumPl Num + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
121 NumSg Num + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + +
122 OrdDigits Digits -> Ord + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - - + + + - - + + - + +
123 OrdNumeral Numeral -> Ord + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
124 OrdNumeralSuperl Numeral -> A -> Ord - - - - + - + + - - + + + + - + + + - - - - + - + + + - - - - + - - - + + - - + - - + + - - - - + + + - - - + - - +
125 OrdSuperl A -> Ord + + + + + + + + + - + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + - - + + + + - - + + + + +
126 PConjConj Conj -> PConj + - + - + + + + + + + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + + - + + + + - + + + + + +
127 PNeg Pol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
128 PPartNP NP -> V2 -> NP + + - - + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + + + + - - - + - + - - + + - + +
129 PPos Pol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
130 PartNP CN -> NP -> CN - - - - + + + + - - + - + + - + + - + - + - + - + + + - - - + - + - - + + - - + - - + + - - - + + + + - - - + - + +
131 PassV2 V2 -> VP + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
132 PhrUtt PConj -> Utt -> Voc -> Phr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
133 PositA A -> AP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
134 PositAdAAdj A -> AdA + - - - + + + + - - + + + + + + + + + - + - + - + + + - + - - - + + - + + - - + - - - + - - - - + + + - + - - - + +
135 PositAdvAdj A -> Adv + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
136 PossNP CN -> NP -> CN - - + + + + + + - - + + + + + + + + + - + - + - + + + - - - + + + - - + + + - + - - + + - - - + + + + - - - + - + +
137 PossPron Pron -> Quant + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
138 PredSCVP SC -> VP -> Cl + - + - + + + + - - + + - + + + + + + - + - + + + + - + - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
139 PredVP NP -> VP -> Cl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
140 PredetNP Predet -> NP -> NP + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - - + + - + +
141 PrepIP Prep -> IP -> IAdv + - + + + + + + - - + + + + + + + + + + + - + + + + + - - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
142 PrepNP Prep -> NP -> Adv + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
143 ProgrVP VP -> VP + - + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
144 QuestCl Cl -> QCl + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
145 QuestIAdv IAdv -> Cl -> QCl + + - + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
146 QuestIComp IComp -> NP -> QCl + - - + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
147 QuestQVP IP -> QVP -> QCl - - - + - - + - - - + - + + - - + - + + - - + - + + + - - - - - + + + + + - - + - - - - - - - - + - + - + - - - - +
148 QuestSlash IP -> ClSlash -> QCl + - - + + + + + - - + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
149 QuestVP IP -> VP -> QCl + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
150 ReflA2 A2 -> AP + - + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - - + + + - + + + - + +
151 ReflVP VPSlash -> VP + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - + + + - + - + + + - + +
152 RelCN CN -> RS -> CN + - + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + - + + + + - - + + + + +
153 RelCl Cl -> RCl + - - + + + + + - - + + + + + + + + + + + - + + + + + + - + + - + + + + + + + + + + + + + - + - + - + - + + + - + +
154 RelNP NP -> RS -> NP + - + + + + + + - - + + + + + + + + + - + + + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
155 RelS S -> RS -> S + - + - + + + + - - + + - + + + + + + - + - + + + + - - - - + - + + + + + + + + + + - + + - - - + - + - + + - - + +
156 RelSlash RP -> ClSlash -> RCl + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
157 RelVP RP -> VP -> RCl + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
158 SSubjS S -> Subj -> S -> S - + - - + + + + - - + + - + - + + + + - + - + - + + - - - - - - + + + + + + - + + - - + + - - + + - + - + + - - + +
159 SelfAdVVP VP -> VP - - + + - - - + - - - - + + - + + + - + - - + - - + + - + - - - + - - - - - - + - - - + - - - - + - + - + - - - - +
160 SelfAdvVP VP -> VP - - + + - - - + - - - - + + - + + + - + - - + - - + + - + - - - + - - - - - - + - - - + - - - - + - + - + - - - - +
161 SelfNP NP -> NP - - + + - - - + - - - - + + - + + + - + - - + - - + + - + - - - + - - - - - - + - - - + - - - - - - + - + - - - - +
162 SentAP AP -> SC -> AP + - + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + - + + - - + + + + - + + + - + +
163 SentCN CN -> SC -> CN + - + + + + + + - - + + + + + + + + + - + - + + + + + + - + + - + + + + + + + + + + + + + - - - + + + - - + + - + +
164 Slash2V3 V3 -> NP -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
165 Slash3V3 V3 -> NP -> VPSlash + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
166 SlashPrep Cl -> Prep -> ClSlash + - + - - + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + - + + - - - + - + - + + + - + +
167 SlashV2A V2A -> AP -> VPSlash + - - - + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + - + + - - + + - + - + + + - + +
168 SlashV2Q V2Q -> QS -> VPSlash + - + - + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
169 SlashV2S V2S -> S -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
170 SlashV2V V2V -> VP -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
171 SlashV2VNP V2V -> NP -> VPSlash -> VPSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
172 SlashV2a V2 -> VPSlash + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
173 SlashVP NP -> VPSlash -> ClSlash + + + + + + + + - - + + - + + + + + + - + + + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
174 SlashVS NP -> VS -> SSlash -> ClSlash + - + - - + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - - + - + - + + + - + +
175 SlashVV VV -> VPSlash -> VPSlash + - - + + + + + - - + + - + + + + + + - + - + + + + - - - + + + + + + + + + + + + + + + + - - - + - + - + + + - + +
176 SubjS Subj -> S -> Adv + - + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - + + + - + +
177 TCond Tense + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + +
178 TEmpty Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
179 TExclMark Phr -> Text -> Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
180 TFullStop Phr -> Text -> Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
181 TFut Tense + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + +
182 TPast Tense + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + +
183 TPres Tense + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
184 TQuestMark Phr -> Text -> Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
185 TTAnt Tense -> Ant -> Temp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
186 Use2N3 N3 -> N2 + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - + + + + - - + + - + +
187 Use3N3 N3 -> N2 + + + + + + + + - - + + + + + + + + + - + - + + + + + - - + + - + + + + + + + + + + + + + - - + + + + - - + - - + +
188 UseA2 A2 -> AP + - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + + + - + + + + - + + + + + +
189 UseCl Temp -> Pol -> Cl -> S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
190 UseComp Comp -> VP + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
191 UseComparA A -> AP + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
192 UseCopula VP - - + + + + + + - - + + - + - + + + + - - + + - + + - + + - - + + + - + + - - + - + + + - - - + + - + - + - - - - +
193 UseN N -> CN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
194 UseN2 N2 -> CN + + + + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - + + - + +
195 UsePN PN -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
196 UsePron Pron -> NP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + +
197 UseQCl Temp -> Pol -> QCl -> QS + + + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
198 UseRCl Temp -> Pol -> RCl -> RS + - + + + + + + + + + + - + + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + - + + - + - + + + + + +
199 UseSlash Temp -> Pol -> ClSlash -> SSlash + - + + + + + + - - + + - + + + + + + - + - + + + + - - - + + - + + + + + + + + + + - + + - - + + - + - + + + - + +
200 UseV V -> VP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
201 UttAP AP -> Utt + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
202 UttAdv Adv -> Utt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
203 UttCN CN -> Utt + + - + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
204 UttCard Card -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + - + + + - + - + + + - + +
205 UttIAdv IAdv -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
206 UttIP IP -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
207 UttImpPl Pol -> Imp -> Utt + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - + + + - + - + + + - + +
208 UttImpPol Pol -> Imp -> Utt + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
209 UttImpSg Pol -> Imp -> Utt + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
210 UttInterj Interj -> Utt - - - + + + + + - - + + + + + + + + + - + + + + + + + + + - - - + + - + + - - + - - + + - - + + + + + - + + + - + +
211 UttNP NP -> Utt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
212 UttQS QS -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
213 UttS S -> Utt + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
214 UttVP VP -> Utt + + - + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
215 VPSlashPrep VP -> Prep -> VPSlash - - - + + + + + - - + + - + + + + + + + + - + - + + - - - + - - + + - + + + - + - + - + - - - + + - + - + - - - + +
216 VocNP NP -> Voc + + + - + + + + + + + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + + - + + - + - + + + + + +
217 above_Prep Prep + + + + + + + + - - + + + + + + + + + + + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
218 active2passive Cl -> Cl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
219 after_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
220 all_Predet Predet + + - + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
221 almost_AdA AdA + - - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
222 almost_AdN AdN + - - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
223 although_Subj Subj + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
224 always_AdV AdV + + + - + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
225 and_Conj Conj + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
226 as_CAdv CAdv + + - - + + + + - - + + + + + + + + + - + + + - + + + - + + + - + + + - - + + + + + + + + - - - + - + - + + + - + +
227 at_least_AdN AdN + - - - + + + + - - + + + + + + + + + - + - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
228 at_most_AdN AdN + - - - + + + + - - + + + + + + + + + - + - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
229 because_Subj Subj + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
230 before_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
231 behind_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
232 between_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
233 both7and_DConj Conj + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
234 but_PConj PConj + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
235 by8agent_Prep Prep + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + - + +
236 by8means_Prep Prep + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + + + - + +
237 can8know_VV VV + - - - + + + + - - + + - + + + + + + - + - + + + + - - + + + - + + + + + - + + + + + + + - - + + - + - + + + - + +
238 can_VV VV + - - + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
239 dconcat Digits -> Digits -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
240 digits2num Digits -> Numeral + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
241 digits2numeral Card -> Card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
242 dn Dig -> Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
243 dn10 Dig -> Sub10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
244 dn100 Dig -> Dig -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
245 dn1000 Dig -> Dig -> Dig -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
246 dn1000000a Dig -> Dig -> Dig -> Dig -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
247 dn1000000b Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
248 dn1000000c Dig -> Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
249 during_Prep Prep + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
250 either7or_DConj Conj + + + - + + + + - - + + + + + + + + + - + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
251 every_Det Det + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - - + + + - + + + - + +
252 everybody_NP NP + + - + + + + + - - + + + + + + + + + - + - - + + + + - + + + - + + + + + - + + + + + + - - - - + + + - + + + - + +
253 everything_NP NP + + - + + + + + - - + + + + + + + + + + + - - + + + + - + + + - + + + + + + + + + + + + - - - - + + + - + + + - + +
254 everywhere_Adv Adv + + + - + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
255 except_Prep Prep + - + - + - + + - - + + + + + + + + + + + - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
256 few_Det Det + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + - - + + + - + + + - + +
257 for_Prep Prep + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + - - + + + - + + + + + +
258 from_Prep Prep + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + - - + + + + + + + + + + + + + + - - + + + - + + + + + +
259 have_V2 V2 + + - + + + + + + + + + - + + + + + + - + + + - + + - + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + +
260 he_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
261 here7from_Adv Adv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
262 here7to_Adv Adv + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
263 here_Adv Adv + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
264 how8many_IDet IDet + + + + + + + + - - + + - + + + + + + + + - - + + + - - + + + + + + + + + + + + + + + + + - - - + - + - + + + - + +
265 how8much_IAdv IAdv + - - + + + + + - - - + + + + + + + + + + - + - + + + - + + - - + + + - - + - + + + + + + - + - + + + - + + + - + +
266 how_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - + + + - + +
267 i_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
268 if_Subj Subj + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + - + + + - + + + - + +
269 if_then_Conj Conj + - - - + - + + - - + + + + + + + + + - - - + - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + - - + +
270 in8front_Prep Prep + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
271 in_Prep Prep + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
272 it_Pron Pron + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
273 language_title_Utt Utt + + + + + + + + - - + + + + + + + + + - + + - + + + + + + + + + + + + + + + + + + - + + + - - + + + + - + - + - + +
274 less_CAdv CAdv + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
275 many_Det Det + + + + + + + + - + + + + + + + + + + - + + - + + + + + + + + - + + + + + + + + + + + + + + - - + + + - + + + - + +
276 more_CAdv CAdv + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + - + - + + + - + +
277 most_Predet Predet + + - + + + + + - - + + - + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
278 much_Det Det + + + + + + + + - - + + + + + + + + + - + - - + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
279 must_VV VV + - - + + + + + - - + + - + + + + + + - - - + + + + - - + + + + + + + + + + + + - + + + - - + + + - + - + + + - - +
280 n2 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
281 n3 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
282 n4 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
283 n5 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
284 n6 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
285 n7 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
286 n8 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
287 n9 Digit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
288 nd Digit -> Dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
289 nd10 Sub10 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
290 nd100 Sub100 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
291 nd1000 Sub1000 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
292 nd1000000 Sub1000000 -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
293 no_Quant Quant + - - - + - + + - - + + - + + + + + + - - - - - + + + - + + + - + + + - - + + + + + + + + - - - + + + - + + + - + +
294 no_Utt Utt + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
295 nobody_NP NP + - + - + - + + - - + + + + + + + + + - - - - - + + + - + + + - + + + - - + + + + + + + - - + - + + + - + + + - + +
296 not_Predet Predet + - - - + - + + - - + + + + + + + + + - + - + - + + + - + - + - + + + - - + + + + + + + + - - - + + + - + + + - + +
297 nothing_NP NP + - + + + - + + - - + + + + + + + + + - - - - - + + + - + + + - + + + - - + + + + + + + - - + - + + + - + + + - + +
298 num Sub1000000 -> Numeral + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
299 num2digits Numeral -> Digits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
300 on_Prep Prep + + + + + + + + - - + + + + + + + + + - + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
301 only_Predet Predet + + - + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
302 or_Conj Conj + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + +
303 otherwise_PConj PConj + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
304 part_Prep Prep + - + + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
305 please_Voc Voc + + - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
306 possess_Prep Prep + - + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + + + +
307 pot0 Digit -> Sub10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
308 pot01 Sub10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
309 pot0as1 Sub10 -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
310 pot1 Digit -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
311 pot110 Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
312 pot111 Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
313 pot1as2 Sub100 -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
314 pot1plus Digit -> Sub10 -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
315 pot1to19 Digit -> Sub100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
316 pot2 Sub10 -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
317 pot21 Sub1000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
318 pot2as3 Sub1000 -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
319 pot2plus Sub10 -> Sub100 -> Sub1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
320 pot3 Sub1000 -> Sub1000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
321 pot31 Sub1000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
322 pot3as4 Sub1000000 -> Sub1000000000 + - + - - + + + - - - + - + + + + + + + - - - - + - - + - + - - + - - - - - + + - + - + - + + + + + + - + + + - - +
323 pot3float Float -> Sub1000000 - - - - - + - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - +
324 pot3plus Sub1000 -> Sub1000 -> Sub1000000 + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
325 pot4 Sub1000 -> Sub1000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
326 pot41 Sub1000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
327 pot4as5 Sub1000000000 -> Sub1000000000000 + - + - - + + + - - - + - + + + + + + + - - - - + - - + - + - - + - - - - - + + - + - + - + + + + + + - + + + - - +
328 pot4float Float -> Sub1000000000 - - - - - + - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
329 pot4plus Sub1000 -> Sub1000000 -> Sub1000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - + - - - - +
330 pot5 Sub1000 -> Sub1000000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
331 pot51 Sub1000000000000 - - - - - + - - - - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
332 pot5float Float -> Sub1000000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
333 pot5plus Sub1000 -> Sub1000000000 -> Sub1000000000000 - - - - - + - - - - - - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - +
334 quite_Adv AdA + - - - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
335 she_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
336 so_AdA AdA + + - + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
337 somePl_Det Det + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + - + + + + - + + + - + +
338 someSg_Det Det + + + + + + + + - - + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
339 somebody_NP NP + + + + + + + + - - + + + + + + + + + - + - - + + + + - + + + + + + + + + + + + + + + + - - + - + + + - + + + - + +
340 something_NP NP + + + + + + + + - + + + + + + + + + + - + + - + + + + + + + + - + + + + + + + + + + + + - + + - + + + - + + + - + +
341 somewhere_Adv Adv + + + - + + + + + - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + + + +
342 that_Quant Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
343 that_Subj Subj + - + + + + + + - - - + + + + + + + + + + - + - + + + - + + - + + + + - - + - + + + + + + - - + + + + - + + + - + +
344 there7from_Adv Adv + + + - + + + + - - + + + + + + + + + + + - - + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
345 there7to_Adv Adv + + + - + + + + - - + + + + + + + + + + + - - + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
346 there_Adv Adv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
347 therefore_PConj PConj + + + - + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
348 they_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
349 this_Quant Quant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
350 through_Prep Prep + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + - - + +
351 to_Prep Prep + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + + + + + +
352 too_AdA AdA + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + - + + + + + + + + + + + + + - - - + + + - + + + - + +
353 under_Prep Prep + + + + + + + + - - + + + + + + + + + + + + + + + + + - + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
354 very_AdA AdA + + - + + + + + - - + + + + + + + + + - + - + + + + + + + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
355 want_VV VV + + + + + + + + - - + + - + + + + + + - + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
356 we_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
357 whatPl_IP IP + - + + + + + + - - + + - + + + + + + + + - + + + + - - + + + - + + + + + + + + - + + + + - - - + - + - + + + - + +
358 whatSg_IP IP + - + + + + + + - - + + - + + + + + + + + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
359 when_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
360 when_Subj Subj + - + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + - + + + - + + + - + +
361 where_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
362 which_IQuant IQuant + + + + + + + + - - + + + + + + + + + - + - + + + + + - + + + + + + + + + + + + + + + + + - - + + + + - + + + - + +
363 whoPl_IP IP + + + + + + + + - - + + - + + + + + + + + - + + + + - - + + + - + + + + + + + + - + + + + - - - + - + - + + + - + +
364 whoSg_IP IP + + + + + + + + - - + + - + + + + + + + + - + + + + - - + + + + + + + + + + + + + + + + + - + + + - + - + + + - + +
365 why_IAdv IAdv + + + + + + + + - - + + + + + + + + + + + - + + + + + - + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
366 with_Prep Prep + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
367 without_Prep Prep + + + + + + + + - - + + + + + + + + + + - - + + + + + - + + + - + + + + + + + + + + + + + - + - + + + - + + + - + +
368 yes_Utt Utt + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - - + + + + - + + + - + +
369 youPl_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +
370 youPol_Pron Pron + + + + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + + + - + +
371 youSg_Pron Pron + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +

View File

@@ -159,7 +159,7 @@ The GF Resource Grammar Library.
//Linguistic Issues in Language Technology//, //Linguistic Issues in Language Technology//,
2 (2), 2 (2),
2009. 2009.
[PDF http://elanguage.net/journals/index.php/lilt/article/viewFile/214/158] [PDF https://journals.colorado.edu/index.php/lilt/article/view/1205/1047]
#BR #BR
//A systematic presentation of the library from the linguistic point of view.// //A systematic presentation of the library from the linguistic point of view.//
//Not only about English, but English examples abound.// //Not only about English, but English examples abound.//

93
doc/show_missing.py Normal file
View File

@@ -0,0 +1,93 @@
# show missing functions in the RGL languages
# basic usage: python3 show_missing.py >missing-in-rgl-Grammar.tsv
import subprocess
# this is the functions you want to find: default is all funs in Grammar
GF_LIB_PATH = '/Users/aarne/GF/dist/build/rgl/'
ALLTENSES_PATH = GF_LIB_PATH + 'alltenses/'
RGL_SOURCE_PATH = '/Users/aarne/GF/gf-rgl/src/'
GRAMMAR = 'Grammar'
# these are the languages you investigate
LANGS = ['Cze', 'Urd']
# get all functions in GRAMMAR, together with their types
def get_funs(module=GRAMMAR):
cmd = 'echo "pg -funs" | gf -run ' + ALLTENSES_PATH + module + '.gfo'
missing = subprocess.Popen(cmd, text=True, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = missing.communicate()[0].split(';')
return ([(fun.split()[0].strip(), ' '.join(fun.split()[2:])) for fun in output if fun.split()])
# get all missing functions in GRAMMARLng; this can take a long time
def get_missing_from_compiled(Lng, module=GRAMMAR):
print('investigating', Lng)
cmd = 'echo "pg -missing" | gf -run ' + ALLTENSES_PATH + module + Lng + '.gfo'
missing = subprocess.Popen(cmd, text=True, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = missing.communicate()[0].split()
return set(output[2:])
# to get all languages in the compiled RGL, use all_langs from here
def all_rgl_compiled_langs():
modules = subprocess.run(['ls', ALLTENSES_PATH], capture_output=True, text=True)
files = str(modules.stdout)
return [file[-7:-4] for file in files.split() if file[:-7].endswith(GRAMMAR)]
# LANGS = all_rgl_compiled_langs() # uncomment this line if you want all languages
# it is much faster to use source files (sending gfos to /tmp)
def str_until(c, s):
i = s.find(c)
if i >= 0:
return s[:i]
else:
return s
def get_missing_from_source(lang, gf_file):
cmd = 'gf -batch -retain -no-pmcfg -src -gfo-dir=/tmp ' + gf_file
missing = subprocess.Popen(cmd, text=True, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output = missing.communicate()[1].split('\n')
missing = (lang, {str_until('\x1b[39;49m', line.split()[-1])
for line in output
if line.strip().startswith('Warning: no linearization of')})
return missing
def all_rgl_source_modules(module=GRAMMAR):
cmd = 'ls ' + RGL_SOURCE_PATH + '*/' + module + '?*.gf'
files = subprocess.Popen(cmd, text=True, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = files.communicate()[0].split()
return {file[-6:-3]: file for file in output}
LANGS = all_rgl_source_modules() # Lng: file dict
# make a text with tab-separated strings withcolumns fun, type, langs and rows for each fun
def make_table(funs=get_funs(), module=GRAMMAR, langs=LANGS):
header = ['fun', 'type'] + list(langs.keys()) # if dict, otherwise langs ###
rows = [header]
print('\t'.join(header))
# missings = {lang: get_missing_from_compiled(lang, module) for lang in langs}
missings = {lang: get_missing_from_source(lang, file)[1] for lang,file in langs.items()}
for fun in funs:
row = [fun[0], fun[1]]
for lang in langs.keys():
if fun[0] in missings[lang]:
row.append('-')
else:
row.append('+')
rows.append(row)
print('\t'.join(row))
# the output is send to stdout
make_table()

View File

@@ -7,8 +7,6 @@ Aarne Ranta
The following table gives the languages currently available in the The following table gives the languages currently available in the
GF Resource Grammar Library. GF Resource Grammar Library.
For another view, see the
[The Resource Grammar Library coverage map http://www.postcrashgames.com/gf_world/] .
Corrections and additions are welcome! Notice that only those parts of implementations Corrections and additions are welcome! Notice that only those parts of implementations
that are currently available via https://github.com/GrammaticalFramework/gf-rgl/ that are currently available via https://github.com/GrammaticalFramework/gf-rgl/

View File

@@ -32,7 +32,6 @@ the library, view all functions in a module's scope, and quickly jump to their d
Other relevant documents: Other relevant documents:
- [The RGL Status Document ../status.html]: the current status of different languages - [The RGL Status Document ../status.html]: the current status of different languages
and the authors of each grammar and the authors of each grammar
- [The Resource Grammar Library coverage map http://www.postcrashgames.com/gf_world/]
- [RGL Documentation and Publications ../rgl-publications.html]: links to publications and other documentation - [RGL Documentation and Publications ../rgl-publications.html]: links to publications and other documentation
- [More modules ../gfdoc/sources.html]: extra modules, dictionaries, and - [More modules ../gfdoc/sources.html]: extra modules, dictionaries, and
the internals of the resource grammar the internals of the resource grammar
@@ -46,7 +45,7 @@ abstract functions and their Universal Dependency labels
- Paper "The GF Resource Grammar Library" by A. Ranta - Paper "The GF Resource Grammar Library" by A. Ranta
(//Linguistic Issues in Language Technology//, 2 (2), 2009). An overview of (//Linguistic Issues in Language Technology//, 2 (2), 2009). An overview of
the library with linguistic motivations. the library with linguistic motivations.
[PDF http://journals.linguisticsociety.org/elanguage/lilt/article/download/214/214-501-1-PB.pdf] [PDF https://journals.colorado.edu/index.php/lilt/article/view/1205/1047]
- Paper "Grammars as Software Libraries" by A. Ranta - Paper "Grammars as Software Libraries" by A. Ranta
(In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.), (In Y. Bertot, G. Huet, J-J. Lévy, and G. Plotkin (eds.),
//From Semantics to Computer Science//, Cambridge University Press, //From Semantics to Computer Science//, Cambridge University Press,

File diff suppressed because it is too large Load Diff

62
flake.lock generated Normal file
View File

@@ -0,0 +1,62 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1775036866,
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1750386251,
"narHash": "sha256-1ovgdmuDYVo5OUC5NzdF+V4zx2uT8RtsgZahxidBTyw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "076e8c6678d8c54204abcb4b1b14c366835a58bb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"sydpkgs": "sydpkgs"
}
},
"sydpkgs": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1771299872,
"narHash": "sha256-+OPW1SKKHT7aqhyjs2O20gd1MXa7LyD+9/lwMUCVL7Y=",
"ref": "refs/heads/main",
"rev": "53bf019e26478666ab7f458f78e569b8b106cc1f",
"revCount": 36,
"type": "git",
"url": "https://git.deertopia.net/msyds/sydpkgs"
},
"original": {
"type": "git",
"url": "https://git.deertopia.net/msyds/sydpkgs"
}
}
},
"root": "root",
"version": 7
}

55
flake.nix Normal file
View File

@@ -0,0 +1,55 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# gf.url = "github:anka-213/cclaw-nix-stuff/nix-flakes";
sydpkgs.url = "git+https://git.deertopia.net/msyds/sydpkgs";
};
outputs = { self, nixpkgs, sydpkgs, ... }@inputs:
let
supportedSystems = [
"aarch64-darwin"
"aarch64-linux"
"x86_64-darwin"
"x86_64-linux"
];
each-system = f: nixpkgs.lib.genAttrs supportedSystems (system: f rec {
pkgs = import nixpkgs {
inherit system;
overlays = [
# (final: prev: { inherit (gf.packages.${system}) gf-core; })
sydpkgs.overlays.default
];
};
inherit (pkgs) lib;
inherit system;
});
in {
# Exposed as a REPL convenience.
_pkgs = each-system ({ pkgs, ... }: pkgs);
packages = each-system ({ pkgs, ... }: {
default = pkgs.callPackage ./package.nix {};
});
devShells = each-system ({ pkgs, system, ... }:
let
gf-lsp = import
(pkgs.fetchzip {
url = "https://github.com/anka-213/gf-lsp/archive/refs/tags/1.0.6.0.tar.gz";
hash = "sha256-UAI2qUslzLOWYjTirZJ0y4DZbkPZnVXTY0XtFO8+Rks=";
}) {inherit system;};
in {
default = pkgs.mkShell {
inputsFrom = [ self.packages.${system}.default ];
packages = [
gf-lsp.gf-lsp
pkgs.gftest
pkgs.graphviz
pkgs.imagemagick
];
};
});
};
}

View File

@@ -1,50 +1,64 @@
Code,Name,Directory,Functor,Unlexer,Present,All,Try,Symbolic,Compatibility,Synopsis Code,Name,Directory,Functor,Unlexer,Present,All,Try,Symbolic,Compatibility,Synopsis,MorphoDict
Afr,Afrikaans,afrikaans,,,,,,n,,y Afr,Afrikaans,afrikaans,,,,,,n,,y,n
Amh,Amharic,amharic,,,,,n,n,,n Amh,Amharic,amharic,,,,,n,n,,n,n
Ara,Arabic,arabic,,,,,,y,,y Ara,Arabic,arabic,,,,,,y,,y,y
Bul,Bulgarian,bulgarian,,,y,,,,,y Bel,Belarusian,belarusian,,,,y,n,n,n,y,n
Cat,Catalan,catalan,Romance,,y,,,,y,y Bul,Bulgarian,bulgarian,,,y,,,,,y,n
Cgg,Rukiga,rukiga,,,y,y,n,n,y,y Cat,Catalan,catalan,Romance,,y,,,,y,y,n
Chi,Chinese (simplified),chinese,,,,,,,,y Cgg,Rukiga,rukiga,,,y,y,n,n,y,y,n
Cze,Czech,czech,,,,,,n,,y Chi,Chinese (simplified),chinese,,,,,,,,y,y
Dan,Danish,danish,Scand,,y,,,,,y Cze,Czech,czech,,,,,,n,,y,n
Dut,Dutch,dutch,,,y,,,,,y Dan,Danish,danish,Scand,,y,,,,,y,n
Eng,English,english,,,y,,,,y,y Dut,Dutch,dutch,,,y,,,,,y,n
Est,Estonian,estonian,,,,,,,,y Eng,English,english,,,y,,,,y,y,y
Eus,Basque,basque,,,,,,,,y Est,Estonian,estonian,,,,,,,,y,n
Fin,Finnish,finnish,,,y,,,,y,y Eus,Basque,basque,,,,,,,,y,n
Fre,French,french,Romance,,y,,,,y,y Fao,Faroese,faroese,,,,y,n,n,n,y,n
Ger,German,german,,,y,,,,,y Fin,Finnish,finnish,,,y,,,,y,y,y
Grc,Ancient Greek,ancient_greek,,,y,,n,n,,n Fre,French,french,Romance,,y,,,,y,y,y
Gre,Greek,greek,,,,,,,,y Gla,Gaelic,gaelic,,,,y,n,n,n,y,n
Heb,Hebrew,hebrew,,,,,n,n,,n Ger,German,german,,,y,,,,,y,y
Hin,Hindi,hindi,Hindustani,to_devanagari,y,,,,,y Grc,Ancient Greek,ancient_greek,,,y,,n,n,,n,n
Hun,Hungarian,hungarian,,,n,y,y,y,n,n Gre,Greek,greek,,,,,,,,y,n
Ice,Icelandic,icelandic,,,,,,n,,y Heb,Hebrew,hebrew,,,,,n,n,,n,n
Ina,Interlingua,interlingua,,,y,,n,n,,n Hin,Hindi,hindi,Hindustani,to_devanagari,y,,,,,y,n
Ita,Italian,italian,Romance,,y,,,,y,y Hrv,Croatian,croatian,,,,,,y,,n,n
Jpn,Japanese,japanese,,,,,,,,y Hun,Hungarian,hungarian,,,n,y,y,y,n,n,n
Kor,Korean,korean,,,n,y,y,y,n,n Hye,Armenian,armenian,,,,y,n,n,n,y,n
Lat,Latin,latin,,,,,y,y,n,y Ice,Icelandic,icelandic,,,,,,n,,y,n
Lav,Latvian,latvian,,,,,,,y,y Ina,Interlingua,interlingua,,,y,,n,n,,n,n
Mlt,Maltese,maltese,,,,,,,,y Ita,Italian,italian,Romance,,y,,,,y,y,y
Mon,Mongolian,mongolian,,,,,,n,,y Jpn,Japanese,japanese,,,,,,,,y,n
Nep,Nepali,nepali,,,,,,n,,y Kaz,Kazakh,kazakh,,,,y,n,n,n,y,n
Nno,Norwegian (nynorsk),nynorsk,,,y,,,,,y Kor,Korean,korean,,,n,y,y,y,n,n,n
Nor,Norwegian (bokmål),norwegian,Scand,,y,,,,,y Lat,Latin,latin,,,,,y,y,n,y,n
Pes,Persian,persian,,,,,,,,y Lav,Latvian,latvian,,,,,,,y,y,n
Pnb,Punjabi,punjabi,,,y,,,,,y Mkd,Macedonian,macedonian,,,,y,n,n,n,y,n
Pol,Polish,polish,,,,,,,,y May,Malay,malay,,,y,,,,n,y,n
Por,Portuguese,portuguese,Romance,,y,,,,y,y Mlt,Maltese,maltese,,,,,,,,y,n
Ron,Romanian,romanian,,,y,,,,,y Mon,Mongolian,mongolian,,,,,,n,,y,n
Rus,Russian,russian,,,y,,,,,y Nep,Nepali,nepali,,,,,,n,,y,n
Slo,Slovak,slovak,,,,,,n,,y Nno,Norwegian (nynorsk),nynorsk,,,y,,,,,y,n
Slv,Slovenian,slovenian,,,,,n,n,,n Nor,Norwegian (bokmål),norwegian,Scand,,y,,,,,y,n
Snd,Sindhi,sindhi,,,,,,,,y Pes,Persian,persian,,,,,,,,y,n
Spa,Spanish,spanish,Romance,,y,,,,y,y Pnb,Punjabi,punjabi,,,y,,,,,y,n
Swa,Swahili,swahili,Bantu,,,n,n,n,n,n Pol,Polish,polish,,,,,,,,y,n
Swe,Swedish,swedish,Scand,,y,,,,y,y Por,Portuguese,portuguese,Romance,,y,,,,y,y,y
Tel,Telugu,telugu,,,y,n,n,n,,n Ron,Romanian,romanian,,,y,,,,,y,n
Tha,Thai,thai,,to_thai,,,,,,y Rus,Russian,russian,,,y,,,,,y,n
Tur,Turkish,turkish,,,y,,,n,,n Slo,Slovak,slovak,,,,,,n,,y,n
Urd,Urdu,urdu,Hindustani,,,,,,,y Slv,Slovenian,slovenian,,,,,n,n,,n,n
Snd,Sindhi,sindhi,,,,,,,,y,n
Spa,Spanish,spanish,Romance,,y,,,,y,y,y
Sqi,Albanian,albanian,,,,y,n,n,n,y,n
Sco,Scots,scots,,,y,,,,,y,n
Swa,Swahili,swahili,Bantu,,,y,n,n,n,n,n
Swe,Swedish,swedish,Scand,,y,,,,y,y,y
Tam,Tamil,tamil,n,n,n,n,n,n,n,n,n
Tel,Telugu,telugu,,,y,n,n,n,,n,n
Tha,Thai,thai,,to_thai,,,,,,y,n
Tur,Turkish,turkish,,,y,,,n,,n,n
Ukr,Ukrainian,ukrainian,,,,y,n,n,n,y,n
Urd,Urdu,urdu,Hindustani,,,,,,,y,n
Som,Somali,somali,,,,,n,n,,n,n
Zul,Zulu,zulu,,,,,n,n,,n,n
1 Code Name Directory Functor Unlexer Present All Try Symbolic Compatibility Synopsis MorphoDict
2 Afr Afrikaans afrikaans n y n
3 Amh Amharic amharic n n n n
4 Ara Arabic arabic y y y
5 Bul Bel Bulgarian Belarusian bulgarian belarusian y y n n n y n
6 Cat Bul Catalan Bulgarian catalan bulgarian Romance y y y n
7 Cgg Cat Rukiga Catalan rukiga catalan Romance y y n n y y n
8 Chi Cgg Chinese (simplified) Rukiga chinese rukiga y y n n y y n
9 Cze Chi Czech Chinese (simplified) czech chinese n y y
10 Dan Cze Danish Czech danish czech Scand y n y n
11 Dut Dan Dutch Danish dutch danish Scand y y n
12 Eng Dut English Dutch english dutch y y y n
13 Est Eng Estonian English estonian english y y y y
14 Eus Est Basque Estonian basque estonian y n
15 Fin Eus Finnish Basque finnish basque y y y n
16 Fre Fao French Faroese french faroese Romance y y n n y n y n
17 Ger Fin German Finnish german finnish y y y y
18 Grc Fre Ancient Greek French ancient_greek french Romance y n n y n y y
19 Gre Gla Greek Gaelic greek gaelic y n n n y n
20 Heb Ger Hebrew German hebrew german y n n n y y
21 Hin Grc Hindi Ancient Greek hindi ancient_greek Hindustani to_devanagari y n n y n n
22 Hun Gre Hungarian Greek hungarian greek n y y y n n y n
23 Ice Heb Icelandic Hebrew icelandic hebrew n n y n n
24 Ina Hin Interlingua Hindi interlingua hindi Hindustani to_devanagari y n n n y n
25 Ita Hrv Italian Croatian italian croatian Romance y y y y n n
26 Jpn Hun Japanese Hungarian japanese hungarian n y y y n y n n
27 Kor Hye Korean Armenian korean armenian n y y n y n n n y n
28 Lat Ice Latin Icelandic latin icelandic y y n n y n
29 Lav Ina Latvian Interlingua latvian interlingua y n n y y n n
30 Mlt Ita Maltese Italian maltese italian Romance y y y y
31 Mon Jpn Mongolian Japanese mongolian japanese n y n
32 Nep Kaz Nepali Kazakh nepali kazakh y n n n y n
33 Nno Kor Norwegian (nynorsk) Korean nynorsk korean y n y y y n y n n
34 Nor Lat Norwegian (bokmål) Latin norwegian latin Scand y y y n y n
35 Pes Lav Persian Latvian persian latvian y y n
36 Pnb Mkd Punjabi Macedonian punjabi macedonian y y n n n y n
37 Pol May Polish Malay polish malay y n y n
38 Por Mlt Portuguese Maltese portuguese maltese Romance y y y n
39 Ron Mon Romanian Mongolian romanian mongolian y n y n
40 Rus Nep Russian Nepali russian nepali y n y n
41 Slo Nno Slovak Norwegian (nynorsk) slovak nynorsk y n y n
42 Slv Nor Slovenian Norwegian (bokmål) slovenian norwegian Scand y n n n y n
43 Snd Pes Sindhi Persian sindhi persian y n
44 Spa Pnb Spanish Punjabi spanish punjabi Romance y y y n
45 Swa Pol Swahili Polish swahili polish Bantu n n n n n y n
46 Swe Por Swedish Portuguese swedish portuguese Scand Romance y y y y
47 Tel Ron Telugu Romanian telugu romanian y n n n n y n
48 Tha Rus Thai Russian thai russian to_thai y y n
49 Tur Slo Turkish Slovak turkish slovak y n n y n
50 Urd Slv Urdu Slovenian urdu slovenian Hindustani n n y n n
51 Snd Sindhi sindhi y n
52 Spa Spanish spanish Romance y y y y
53 Sqi Albanian albanian y n n n y n
54 Sco Scots scots y y n
55 Swa Swahili swahili Bantu y n n n n n
56 Swe Swedish swedish Scand y y y y
57 Tam Tamil tamil n n n n n n n n n
58 Tel Telugu telugu y n n n n n
59 Tha Thai thai to_thai y n
60 Tur Turkish turkish y n n n
61 Ukr Ukrainian ukrainian y n n n y n
62 Urd Urdu urdu Hindustani y n
63 Som Somali somali n n n n
64 Zul Zulu zulu n n n n

23
package.nix Normal file
View File

@@ -0,0 +1,23 @@
{ stdenv
, ghc
, gf-core
}:
stdenv.mkDerivation {
name = "gf-rgl";
src = ./.;
buildInputs = [ ghc gf-core ];
# Keep references to source, so go to definition works
# postUnpack = ''
# rm -r source/src
# ln -s $src/src source/src
# '';
LC_ALL = "C.UTF-8";
buildPhase = ''
runghc Setup.hs build
'';
installPhase = ''
mkdir -p $out/share/gf/lib
runghc Setup.hs copy --dest=$out/share/gf/lib
'';
}

View File

@@ -52,6 +52,12 @@ apiModules = ["Try","Symbolic","Syntax","Constructors","Combinators"]
clone :: [String] -> String -> String -> String -> String -> (String, String) -> IO () clone :: [String] -> String -> String -> String -> String -> (String, String) -> IO ()
clone options fromdir todir from to (absname,absfx) = do clone options fromdir todir from to (absname,absfx) = do
printf "clone options=%s\n\
\ fromdir=%s\n\
\ todir=%s\n\
\ from=%s\n\
\ to=%s\n" (show options) (show fromdir)
(show todir) (show from) (show to)
s <- readFile (fromdir ++ "/" ++ absname ++ from ++ absfx ++ ".gf") s <- readFile (fromdir ++ "/" ++ absname ++ from ++ absfx ++ ".gf")
writeAndReportFile (todir ++ "/" ++ absname ++ to ++ absfx ++ ".gf") (commentIf options (replaceLang from to s)) writeAndReportFile (todir ++ "/" ++ absname ++ to ++ absfx ++ ".gf") (commentIf options (replaceLang from to s))

BIN
src/FileHierarchy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -1,157 +1,157 @@
PredVP nsubj head PredVP nsubj head
PredVPS nsubj head PredVPS nsubj head
DirectComplVQ empty nsubj head ccomp -- Temp argument can only be empty in English DirectComplVQ empty nsubj head ccomp -- Temp argument can only be empty in English
DirectComplVS empty nsubj head ccomp -- Temp argument can only be empty in English DirectComplVS empty nsubj head ccomp -- Temp argument can only be empty in English
SlashVP nsubj head SlashVP nsubj head
SlashVS nsubj head ccomp SlashVS nsubj head ccomp
FocusObjS nsubj head -- again might be wrong; more correct to call it dobj FocusObjS nsubj head -- again might be wrong; more correct to call it obj
QuestIAdv advmod head -- "where does John sleep" cf. AdvVP QuestIAdv advmod head -- "where does John sleep" cf. AdvVP
QuestIComp head nsubj -- "where is John": John is clearly nsubj, but is where the head? QuestIComp head nsubj -- "where is John": John is clearly nsubj, but is where the head?
QuestQVP nsubj head QuestQVP nsubj head
QuestSlash obj head QuestSlash obj head
QuestVP nsubj head QuestVP nsubj head
IdetCN det head IdetCN det head
PredSCVP csubj head PredSCVP csubj head
ComplSlash head obj ComplSlash head obj
ComplSlashIP head obj ComplSlashIP head obj
Slash3V3 head obj Slash3V3 head obj
SlashV2VNP head obj xcomp SlashV2VNP head obj xcomp
PastPartAgentAP head obj PastPartAgentAP head obj
AdvQVP head obj AdvQVP head obj
Slash2V3 head iobj Slash2V3 head iobj
ComplVS head ccomp ComplVS head ccomp
ComplVQ head ccomp ComplVQ head ccomp
SlashV2S head ccomp SlashV2S head ccomp
SlashV2Q head ccomp SlashV2Q head ccomp
CleftAdv head advcl -- not sure CleftAdv head advcl -- not sure
ComplVA head xcomp ComplVA head xcomp
ComplVV head xcomp ComplVV head xcomp
SlashVV head acl SlashVV head acl
SlashV2A head xcomp SlashV2A head xcomp
SlashV2V head xcomp SlashV2V head xcomp
AdvNP head nmod -- not sure AdvNP head nmod -- not sure
ExtAdvNP head nmod -- not sure ExtAdvNP head nmod -- not sure
PassAgentVPSlash head nmod -- not sure PassAgentVPSlash head nmod -- not sure
CleftNP head acl -- this cannot be nmod, not with type RS CleftNP head acl -- this cannot be nmod, not with type RS
SSubjS head mark advcl SSubjS head mark advcl
RelS head advcl RelS head advcl
AdNum advmod head AdNum advmod head
AdAP advmod head AdAP advmod head
AdvAP head advmod AdvAP head advmod
ComparAdvAdj advmod amod head ComparAdvAdj advmod amod head
ComparAdvAdjS advmod amod head ComparAdvAdjS advmod amod head
AdvIAdv advmod head AdvIAdv advmod head
AdVVP advmod head AdVVP advmod head
AdvVP head advmod AdvVP head advmod
ExtAdvVP head advmod ExtAdvVP head advmod
AddAdvQVP head advmod AddAdvQVP head advmod
AdVVPSlash advmod head AdVVPSlash advmod head
AdvVPSlash head advmod AdvVPSlash head advmod
AdvSlash head advmod AdvSlash head advmod
ExistIPAdv head advmod ExistIPAdv head advmod
AdvS advmod head AdvS advmod head
ExtAdvS advmod head ExtAdvS advmod head
SubjS mark head SubjS mark head
RelVP mark head RelVP mark head
RelSlash mark head RelSlash mark head
ComplN2 head nmod ComplN2 head nmod
ComplN3 nmod head ComplN3 nmod head
AdvCN head nmod AdvCN head nmod
PossNP head nmod PossNP head nmod
PartNP head nmod PartNP head nmod
ExistNPAdv head nmod ExistNPAdv head nmod
OrdNumeralSuperl nummod head -- quite wrong; cannot find relevant details in the documentation; but most probably head lies outside the score of this function OrdNumeralSuperl nummod head -- quite wrong; cannot find relevant details in the documentation; but most probably head lies outside the score of this function
DetQuant head nummod -- quite wrong; I think the head lies outside the scope of the function DetQuant head nummod -- quite wrong; I think the head lies outside the scope of the function
CNNumNP head nummod CNNumNP head nummod
ApposCN head appos ApposCN head appos
ApposNP head appos ApposNP head appos
RelNP head acl RelNP head acl
RelCN head acl RelCN head acl
SentCN head acl SentCN head acl
SentAP head acl SentAP head acl
DetQuantOrd head nummod amod -- quite wrong; again for same reason as DetQuant function DetQuantOrd head nummod amod -- quite wrong; again for same reason as DetQuant function
DetCN det head DetCN det head
IdetCN det head IdetCN det head
IdetQuant head nummod IdetQuant head nummod
CountNP det head CountNP det head
PredetNP det head PredetNP det head
PPartNP head amod -- only in core RGL PPartNP head amod -- only in core RGL
AdjCN amod head AdjCN amod head
AdjDAP head amod AdjDAP head amod
CAdvAP case amod head CAdvAP case amod head
ComparA amod head ComparA amod head
ComplA2 amod head ComplA2 amod head
CompoundAP head amod CompoundAP head amod
AdAdV amod head AdAdV amod head
AdAdv amod head AdAdv amod head
CompoundN compound head CompoundN compound head
IIDig head goeswith IIDig head goeswith
PrepNP case head PrepNP case head
PrepIP case head PrepIP case head
SlashPrep head case SlashPrep head case
VPSlashPrep head case VPSlashPrep head case
UttImpPl empty head UttImpPl empty head
UttImpPol empty head UttImpPol empty head
UttImpSg empty head UttImpSg empty head
MkVPS empty empty head MkVPS empty empty head
UseCl empty empty head UseCl empty empty head
UseQCl empty empty head UseQCl empty empty head
UseRCl empty empty head UseRCl empty empty head
UseSlash empty empty head UseSlash empty empty head
UseVC empty empty head UseVC empty empty head
BaseAP head conj BaseAP head conj
BaseAdV head conj BaseAdV head conj
BaseAdv head conj BaseAdv head conj
BaseCN head conj BaseCN head conj
BaseDAP head conj BaseDAP head conj
BaseIAdv head conj BaseIAdv head conj
BaseNP head conj BaseNP head conj
BaseRS head conj BaseRS head conj
BaseS head conj BaseS head conj
ConsAP head conj ConsAP head conj
ConsAdV head conj ConsAdV head conj
ConsAdv head conj ConsAdv head conj
ConsCN head conj ConsCN head conj
ConsDAP head conj ConsDAP head conj
ConsIAdv head conj ConsIAdv head conj
ConsNP head conj ConsNP head conj
ConsRS head conj ConsRS head conj
ConsS head conj ConsS head conj
ConjAP cc head ConjAP cc head
ConjAdV cc head ConjAdV cc head
ConjAdv cc head ConjAdv cc head
ConjCN cc head ConjCN cc head
ConjDet cc head ConjDet cc head
ConjIAdv cc head ConjIAdv cc head
ConjNP cc head ConjNP cc head
ConjRS cc head ConjRS cc head
ConjS cc head ConjS cc head
PhrUtt cc head discourse PhrUtt cc head discourse
PlusChunk head dep PlusChunk head dep
TTAnt empty empty head TTAnt empty empty head
TExclMark head dep -- punctuation in the middle in these three TExclMark head dep -- punctuation in the middle in these three
TFullStop head dep TFullStop head dep
@@ -159,13 +159,13 @@ TQuestMark head dep
ComplV2 head obj -- shortcuts in App ComplV2 head obj -- shortcuts in App
ComplV2V head obj xcomp ComplV2V head obj xcomp
ComplV3 head iobj obj ---- could be dobj dobj ComplV3 head iobj obj ---- could be obj obj
PassAgentV2 head ncomp -- not sure PassAgentV2 head ncomp -- not sure
RelV2 mark nsubj head RelV2 mark nsubj head
QuestV2 obj nsubj head QuestV2 obj nsubj head
ModCN amod head -- in ResourceDemo ModCN amod head -- in ResourceDemo
RSubjS mark advcl head RSubjS mark advcl head
SlashV2 nsubj head SlashV2 nsubj head
RAdvCN head case nmod RAdvCN head case nmod
SubjCl head mark advcl SubjCl head mark advcl
@@ -181,7 +181,7 @@ AdV ADV
Adv ADV Adv ADV
CAdv ADV CAdv ADV
Card NUM Card NUM
Conj CONJ Conj CCONJ
Det DET Det DET
Digits NUM Digits NUM
IAdv ADV IAdv ADV
@@ -194,7 +194,7 @@ N2 NOUN
N3 NOUN N3 NOUN
Numeral NUM Numeral NUM
Ord NUM Ord NUM
PConj CONJ PConj CCONJ
PN PROPN PN PROPN
Predet DET Predet DET
Prep ADP Prep ADP
@@ -214,7 +214,3 @@ VA VERB
VQ VERB VQ VERB
VS VERB VS VERB
VV VERB VV VERB

98
src/README.md Normal file
View File

@@ -0,0 +1,98 @@
# Introduction
## Intended audience of this Readme
This Readme is designed for new developers who wish to either extend/improve on a resource grammar or create a new one. It provides an overview of the relationships between files and a simple working pipeline for developers to get started.
Note that while files in this folder are meant to be named with 3 letter suffixes representing the language, e.g. "ResBul" for the Bulgarian resource file, this Readme will use a 4 letter suffix "Lang" to represent a language in general, e.g. "ResLang".
## Author(s) of this Readme
This Readme was written by Nemo and edited by Inari on 14th August 2022.
# Creating a new resource grammar
If you are working on an RGL for a new language, you will need to run "Clone.hs" in the "src" folder so that you can clone a project from another language to your language to give you a basis to start with.
### From an existing RGL language
If your language already has a close relative in the RGL, then you can clone your language from that one, in order reuse the same structures with only minor modifications. As per the instructions, the syntax is `Clone fromdir todir fromlang tolang`.Suppose you want to clone Slovak from Czech, then do as follows:
```bash
$ runghc Clone czech slovak Cze Slo
```
You may want to add the option `--comment-body` after the word `Clone` to comment out every line in the body of the files.
```bash
$ runghc Clone --comment-body czech slovak Cze Slo
```
### From a generic template
Often it is easier to start from a rather clean slate, so the recommended way is to clone the [TEMPLATE](TEMPLATE/) module. So suppose you want to start a resource grammar for Albanian, do it as follows:
```bash
$ runghc Clone TEMPLATE albanian TMP Sqi
```
You will see more detailed instructions on how to continue from the cloned template in the [README file](template/README.md).
# File hierarchy
The number of files may be overwhelming, but they are related together following the graphic under "Module dependencies" under the rgl-tutorial. In the graphic, an example is that GrammarIta and ResIta are dependent on Prelude as they have arrows pointing towards the Prelude ellipse.
http://www.grammaticalframework.org/lib/doc/rgl-tutorial/index.html
The below graphic is an alternative graphic explaining the relations, taken from private correspondence with Inari.
![File Hierarchy](FileHierarchy.png)
CatLang defines the categories, and the modules AdjectiveLang, NounLang, SentenceLang, PhraseLang, and so on, all extend Cat. The Grammar is defined as a collection of all those AdjectiveLang, NounLang, SentenceLang, and so on modules. LangLang is defined as the collection GrammarLang and LexiconLang and is where you will be checking your program. You may ignore:
- AllLangAbs, AllLang, ExtendLang, ExtraLangAbs, ExtraLang, ConstructionLang, DocumentationLang, MarkupLang, BackwardLang
If the language you cloned from has any of these resource modules, you can remove them completely:
- IrregLang (unless you want to populate it with irregular verbs of your own language), MissingLang (see how to generate your own if you need it later: https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#generating-missingxxx)
# Relationships between functions in files
There may be several ways the functions within the files are organised relative to one another. In other words, there may be several schemas depending on the author. More recent RGLs might implement one schema detailed by this blog post by Inari.
https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#my-naming-scheme-for-lincats-and-opers
# Main goal
You may think of your long-term goal as eventually implementing all the abstract functions found in the "abstract" folder. In other words, you are somewhat constrained by the available categories in Cat.gf and functions in relevant e.g. Noun.gf, Verb.gf etc. files.
In the future, if you find that the available functions do not apply to your language, you may search in the Extend.gf file for more optional functions, or in Extra.gf. if it doesn't exist, create your own ExtraLangAbs.gf with the concrete ExtraLang.gf, all in the same directory gf-rgl/src/lang. This blog post contains more information.
https://inariksit.github.io/gf/2021/02/15/rgl-api-core-extensions.html#language-specific-extra-modules
There is a prioritised list of RGL functions for new resource grammars written by contributor heatherleaf. You can start by implementing the "+++" functions.
https://github.com/GrammaticalFramework/gf-rgl/issues/238
# Working pipeline example
For a pipeline, You might wish to start with implementing functions that create Noun Phrase like DetCN: Det -> CN -> NP; a function that takes a Determiner and a Common Noun and gives a Noun Phrase. In this case, the workflow is done by editing:
1. ResLang: Contains the relevant Operations (Opers) for e.g. "Noun", "mkN", "Determiner" and "Quant".
2. ParamLang: Contains the language paramters used in ResLang.
3. CatLang: CatLang will be defined in terms of Opers found in ResLang. This means that instead of Defining NP in CatLang as, say, {s: Str}, you will define NP as ResLang.NounPhrase, which points to a NounPhrase Oper in ResLang. Then you need to implement the word syntax in NounLang.
4. NounLang: Contains the relevant lins in defining sentence structure.
5. LexiconLang: Contains the lins that define the Noun words.
As you will have to define a determiner that is created from a Quant, you will have to look at the following files too.
6. StructuralLang: Contains the lins that define the Quant/Determiner words.
Note that you will have to use mkQuant instead of creating Det by mkDet directly.
# Testing your work
When you are done with your implementation, you may test that everything works by starting up LangLang and, in this case, writing something like:
```DetCN (DetQuant xxxx_Quant NumSg) (UseN xxxx_N)```
Where you replace 'xxxx' with the word in Lang.

View File

@@ -0,0 +1,68 @@
concrete AdjectiveTMP of Adjective = CatTMP ** open ResTMP, Prelude in {
flags optimize=all_subs ;
lin
-- : AP -> Adv -> AP ; -- warm by nature
AdvAP ap adv = ap ** {
s = ap.s ++ adv.s ;
} ;
-- : A -> AP ;
PositA a = a ** {
compar = [] ;
} ;
-- : A -> NP -> AP ;
ComparA a np = a ** {
compar = np.s
} ;
-- : A2 -> NP -> AP ; -- married to her
-- ComplA2 a2 np = a2 ** { } ;
-- : A2 -> AP ; -- married to itself
-- ReflA2 a2 = a2 ** { } ;
-- : A2 -> AP ; -- married
UseA2 = PositA ;
-- : A -> AP ; -- warmer
-- UseComparA a = a ** {
-- s = \\af => "???" ++ a.s ! af ;
-- compar = []
-- } ;
-- : CAdv -> AP -> NP -> AP ; -- as cool as John
-- CAdvAP adv ap np = ap ** { } ;
-- The superlative use is covered in $Ord$.
-- : Ord -> AP ; -- warmest
-- AdjOrd ord = ord ** {
-- compar = []
-- } ;
-- AdjOrd : Ord -> AP =
AdjOrd ord = ord ;
-- Sentence and question complements defined for all adjectival
-- phrases, although the semantics is only clear for some adjectives.
-- : AP -> SC -> AP ; -- good that she is here
-- SentAP ap sc = ap ** {
-- s = \\af => ap.s ! af ++ sc.s
-- } ;
-- An adjectival phrase can be modified by an *adadjective*, such as "very".
-- : AdA -> AP -> AP ;
-- AdAP ada ap = ap ** { } ;
-- It can also be postmodified by an adverb, typically a prepositional phrase.
}

39
src/TEMPLATE/AdverbTMP.gf Normal file
View File

@@ -0,0 +1,39 @@
concrete AdverbTMP of Adverb = CatTMP ** open ResTMP, ParadigmsTMP, Prelude in {
{-
lin
-- : A -> Adv ;
PositAdvAdj adj =
-- : CAdv -> A -> NP -> Adv ; -- more warmly than John
ComparAdvAdj cadv a np =
-- : CAdv -> A -> S -> Adv ; -- more warmly than he runs
ComparAdvAdjS cadv a s =
-- : Prep -> NP -> Adv ;
PrepNP prep np = ;
-- Adverbs can be modified by 'adadjectives', just like adjectives.
-- : AdA -> Adv -> Adv ; -- very quickly
AdAdv ada adv = adv **
-- Like adverbs, adadjectives can be produced by adjectives.
-- : A -> AdA ; -- extremely
PositAdAAdj a =
-- Subordinate clauses can function as adverbs.
-- : Subj -> S -> Adv ;
SubjS subj s = {s = subj.s ++ s.s} ;
-- Comparison adverbs also work as numeral adverbs.
-- : CAdv -> AdN ; -- less (than five)
AdnCAdv cadv = ;
-}
}

6
src/TEMPLATE/AllTMP.gf Normal file
View File

@@ -0,0 +1,6 @@
--# -path=.:../abstract:../common:../prelude
concrete AllTMP of AllTMPAbs =
LangTMP,
ExtendTMP
;

View File

@@ -0,0 +1,5 @@
--# -path=.:../abstract:../common:prelude
abstract AllTMPAbs =
Lang,
Extend ;

121
src/TEMPLATE/CatTMP.gf Normal file
View File

@@ -0,0 +1,121 @@
concrete CatTMP of Cat = CommonX ** open ResTMP, Coordination, Prelude in {
flags optimize=all_subs ;
lincat
--2 Sentences and clauses
-- Constructed in SentenceTMP, and also in IdiomTMP
S = SS ;
QS = SS ;
RS = SS ;
-- relative sentence. Tense and polarity fixed,
-- but agreement may depend on the CN/NP it modifies.
Cl = ResTMP.LinCl ;
ClSlash = SS ;
SSlash = SS ; -- sentence missing NP; e.g. "she has looked at"
Imp = SS ; -- imperative e.g. "look at this"
--2 Questions and interrogatives
-- Constructed in QuestionTMP.
QCl = SS ;
IComp = SS ; -- interrogative complement of copula e.g. "where"
IDet = SS ; -- interrogative determiner e.g. "how many"
IQuant = SS ; -- interrogative quantifier e.g. "which"
IP = SS ; -- interrogative pronoun e.g. "who"
--2 Subord clauses and pronouns
RCl = SS ;
RP = SS ;
--2 Verb phrases
-- Constructed in VerbTMP.
VP = ResTMP.LinVP ;
VPSlash = SS ;
Comp = SS ;
--2 Adjectival phrases
-- Constructed in AdjectiveTMP.
AP = SS ;
--2 Nouns and noun phrases
-- Constructed in NounTMP.
-- Many atomic noun phrases e.g. "everybody"
-- are constructed in StructuralTMP.
CN = ResTMP.LinCN ;
NP = ResTMP.LinNP ;
Pron = SS ; -- NB. Pronouns need enough info to become NP or Quant.
Det = ResTMP.LinDet ; -- s : Str , n : Number
Predet = SS ;
Quant = ResTMP.LinQuant ; -- s : Number => Str
Num = ResTMP.LinDet ;
Card = ResTMP.LinDet ;
ACard = SS ;
Ord = SS ;
DAP = SS ;
--2 Numerals
-- Constructed in NumeralTMP.
Numeral = ResTMP.LinNumeral ;
Digits = ResTMP.LinNumeral ;
--2 Structural words
-- Constructed in StructuralTMP.
Conj = Coordination.ConjunctionDistr ** {
n : Number -- The number of the NP that results from
-- coordinating a list of NPs with that Conj.
} ; -- "[Ann and Bob] are children" → and_Conj.n = Pl
Subj = SS ;
Prep = SS ;
--2 Words of open classes
-- These are constructed in LexiconTMP and in
-- additional lexicon modules.
-- TODO: eventually different lincats
VS, -- sentence-complement verb e.g. "claim"
VQ, -- question-complement verb e.g. "wonder"
VA, -- adjective-complement verb e.g. "look"
V = ResTMP.LinV ;
VV -- verb-phrase-complement verb e.g. "want"
= SS ;
V2A, -- verb with NP and AP complement e.g. "paint"
V2V, -- verb with NP and V complement e.g. "cause"
V2S, -- verb with NP and S complement e.g. "tell"
V2Q, -- verb with NP and Q complement e.g. "ask"
V2 = SS ;
V3 = SS ;
A = SS ;
A2 = SS ;
N = ResTMP.LinN ;
N2 = ResTMP.LinN ;
N3 = ResTMP.LinN ;
PN = SS ;
-- From the Names module, not in the official API as of 2023-08
GN = SS ; -- Given name, e.g. "George"
SN = SS ; -- Second name, e.g. "Washington"
LN = SS ; -- Location name, e.g. "Sweden"
linref
Cl = linCl ;
}

View File

@@ -0,0 +1,147 @@
concrete ConjunctionTMP of Conjunction =
CatTMP ** open ResTMP, Coordination, Prelude in {
flags optimize=all_subs ;
{- Conjunction for category X needs four things:
lincat [X]
lin BaseX
lin ConsX
lin ConjX
For example, if X is defined as
lincat X = {s : Number => Str ; g : Gender} ;
then [X] will split its s field into two, and retain its other fields as is:
lincat [X] = {s1,s2 : Number => Str ; g : Gender} ;
Let us look at a simple case: Adv is of type {s : Str}
Then [Adv] is {s1,s2 : Str}.
BaseAdv, ConsAdv and ConjAdv can all use functions defined in prelude/Coordination:
BaseAdv = twoSS ;
ConsAdv = consrSS comma ;
ConjAdv = conjunctSS ;
--}
-----------------------------------------------------------------------------
-- Adverb and other simple {s : Str} types.
lincat
[Adv],[AdV],[IAdv] = {s1,s2 : Str} ;
lin
BaseAdv, BaseAdV, BaseIAdv = twoSS ;
ConsAdv, ConsAdV, ConsIAdv = consrSS comma ;
ConjAdv, ConjAdV, ConjIAdv = conjunctDistrSS ;
{-
-----------------------------------------------------------------------------
-- S is sometimes already {s : Str}, sometimes open for mood or word order.
-- Simply take the lincat of S, and split the s field into s1 and s2.
-- Then make sure that all of the other fields are retained.
lincat
[S] = {s1, s2 : …} ;
lin
-- : S -> S -> ListS ; -- John walks, Mary runs
BaseS x y =
-- : S -> ListS -> ListS ; -- John walks, Mary runs, Bill swims
ConsS x xs =
-- : Conj -> ListS -> S ; -- he walks and she runs
ConjS conj xs =
-----------------------------------------------------------------------------
-- RS is variable on … and has inherent …
-- RS can modify CNs, which are open for …, and have inherent …
lincat
[RS] = {s1,s2 : … => Str} ;
lin
-- : RS -> RS -> ListRS ; -- who walks, whom I know
BaseRS x y =
-- : RS -> ListRS -> ListRS ; -- who wals, whom I know, who is here
ConsRS x xs =
-- : Conj -> ListRS -> RS ; -- who walks and whose mother runs
ConjRS conj xs =
-----------------------------------------------------------------------------
-- NP is variable on … and has inherent …
lincat
[NP] = {s1, s2 : …} ;
lin
-- : NP -> NP -> ListNP ; -- John, Mary
BaseNP x y =
-- : NP -> ListNP -> ListNP ; -- John, Mary, Bill
ConsNP x xs =
-- : Conj -> ListNP -> NP ; -- she or we
ConjNP conj xs =
-----------------------------------------------------------------------------
-- AP is variable on … and has an inherent …
lincat
[AP] = {s1, s2 : …} ;
lin
-- : AP -> AP -> ListAP ; -- red, white
BaseAP x y =
-- : AP -> ListAP -> ListAP ; -- red, white, blue
ConsAP x xs =
-- : Conj -> ListAP -> AP ; -- cold and warm
ConjAP conj xs =
-----------------------------------------------------------------------------
-- CN is variable on …
-- CN conjunction is not in the API, so this can be lower prio
lincat
[CN] = {s1, s2 : …} ;
lin
-- : CN -> CN -> ListCN ; -- man, woman
BaseCN x y =
-- : CN -> ListCN -> ListCN ; -- man, woman, child
ConsCN x xs =
-- : Conj -> ListCN -> CN ; -- man and woman
ConjCN conj xs =
-----------------------------------------------------------------------------
-- Det and DAP
-- Note that there is no [Det], the way to coordinate Dets is to make them
-- into DAP first, using Noun.DetDAP : Det -> DAP ;
-- DAP ("three small") isn't used in any API functions, so lower prio.
lincat
[DAP] = {s1, s2 : …} ;
lin
-- : DAP -> DAP -> ListDAP ;
BaseDAP x y =
-- : DAP -> ListDAP -> ListDAP ;
ConsDAP xs x =
-- : Conj -> ListDAP -> Det ; -- his or her
ConjDet conj xs =
-}
}

View File

@@ -0,0 +1,117 @@
concrete ConstructionTMP of Construction = CatTMP ** open ParadigmsTMP in {
lincat
Timeunit = N ;
Weekday = N ;
Monthday = NP ;
Month = N ;
Year = NP ;
{-
lin
timeunitAdv n time =
let n_card : Card = n ;
n_hours_NP : NP = mkNP n_card time ;
in SyntaxTMP.mkAdv for_Prep n_hours_NP | mkAdv (n_hours_NP.s ! R.npNom) ;
weekdayPunctualAdv w = ; -- on Sunday
weekdayHabitualAdv w = ; -- on Sundays
weekdayNextAdv w = -- next Sunday
weekdayLastAdv w = -- last Sunday
monthAdv m = mkAdv in_Prep (mkNP m) ;
yearAdv y = mkAdv in_Prep y ;
dayMonthAdv d m = ; -- on 17 TMP
monthYearAdv m y = ; -- in TMP 2012
dayMonthYearAdv d m y = ; -- on 17 TMP 2013
intYear = symb ;
intMonthday = symb ;
lincat Language = N ;
lin InLanguage l = mkAdv ???_Prep (mkNP l) ;
lin
weekdayN w = w ;
monthN m = m ;
weekdayPN w = mkPN w ;
monthPN m = mkPN m ;
languageCN l = mkCN l ;
languageNP l = mkNP l ;
oper mkLanguage : Str -> N = \s -> mkN s ;
----------------------------------------------
---- lexicon of special names
lin second_Timeunit = mkN "second" ;
lin minute_Timeunit = mkN "minute" ;
lin hour_Timeunit = mkN "hour" ;
lin day_Timeunit = mkN "day" ;
lin week_Timeunit = mkN "week" ;
lin month_Timeunit = mkN "month" ;
lin year_Timeunit = mkN "year" ;
lin monday_Weekday = mkN "Monday" ;
lin tuesday_Weekday = mkN "Tuesday" ;
lin wednesday_Weekday = mkN "Wednesday" ;
lin thursday_Weekday = mkN "Thursday" ;
lin friday_Weekday = mkN "Friday" ;
lin saturday_Weekday = mkN "Saturday" ;
lin sunday_Weekday = mkN "Sunday" ;
lin january_Month = mkN "January" ;
lin february_Month = mkN "February" ;
lin march_Month = mkN "March" ;
lin april_Month = mkN "April" ;
lin may_Month = mkN "May" ;
lin june_Month = mkN "June" ;
lin july_Month = mkN "July" ;
lin august_Month = mkN "August" ;
lin september_Month = mkN "September" ;
lin october_Month = mkN "October" ;
lin november_Month = mkN "November" ;
lin december_Month = mkN "December" ;
lin afrikaans_Language = mkLanguage "Afrikaans" ;
lin amharic_Language = mkLanguage "Amharic" ;
lin arabic_Language = mkLanguage "Arabic" ;
lin bulgarian_Language = mkLanguage "Bulgarian" ;
lin catalan_Language = mkLanguage "Catalan" ;
lin chinese_Language = mkLanguage "Chinese" ;
lin danish_Language = mkLanguage "Danish" ;
lin dutch_Language = mkLanguage "Dutch" ;
lin english_Language = mkLanguage "Euslish" ;
lin estonian_Language = mkLanguage "Estonian" ;
lin finnish_Language = mkLanguage "Finnish" ;
lin french_Language = mkLanguage "French" ;
lin german_Language = mkLanguage "German" ;
lin greek_Language = mkLanguage "Greek" ;
lin hebrew_Language = mkLanguage "Hebrew" ;
lin hindi_Language = mkLanguage "Hindi" ;
lin japanese_Language = mkLanguage "Japanese" ;
lin italian_Language = mkLanguage "Italian" ;
lin latin_Language = mkLanguage "Latin" ;
lin latvian_Language = mkLanguage "Latvian" ;
lin maltese_Language = mkLanguage "Maltese" ;
lin nepali_Language = mkLanguage "Nepali" ;
lin norwegian_Language = mkLanguage "Norwegian" ;
lin persian_Language = mkLanguage "Persian" ;
lin polish_Language = mkLanguage "Polish" ;
lin punjabi_Language = mkLanguage "Punjabi" ;
lin romanian_Language = mkLanguage "Romanian" ;
lin russian_Language = mkLanguage "Russian" ;
lin sindhi_Language = mkLanguage "Sindhi" ;
lin spanish_Language = mkLanguage "Spanish" ;
lin swahili_Language = mkLanguage "Swahili" ;
lin swedish_Language = mkLanguage "Swedish" ;
lin thai_Language = mkLanguage "Thai" ;
lin turkish_Language = mkLanguage "Turkish" ;
lin urdu_Language = mkLanguage "Urdu" ;
-}
}

35
src/TEMPLATE/ExtendTMP.gf Normal file
View File

@@ -0,0 +1,35 @@
--# -path=.:../common:../abstract
concrete ExtendTMP of Extend = CatTMP
** ExtendFunctor - [
VPS -- finite VP's with tense and polarity
, ListVPS
, VPI
, ListVPI -- infinitive VP's (TODO: with anteriority and polarity)
, MkVPS
, PredVPS
-- excluded because RGL funs needed for them not implemented yet
, SlashBareV2S
, PredAPVP
, ComplBareVS
, AdvIsNP, AdvIsNPAP
, CompBareCN
, CompIQuant
, ComplSlashPartLast
, ComplDirectVQ
, ComplDirectVS
, DetNPFem, DetNPMasc
, ExistCN, ExistMassCN, ExistPluralCN, ExistsNP
, ExistIPQS, ExistNPQS, ExistS
, PredIAdvVP
, PrepCN
, ReflPossPron
, UttVP, UttVPShort, UttAccNP, UttDatNP, UttAccIP, UttDatIP
, EmptyRelSlash, StrandQuestSlash, StrandRelSlash
, SubjRelNP
, UseComp_ser, UseComp_estar
, iFem_Pron, weFem_Pron, youFem_Pron, youPlFem_Pron, youPolFem_Pron, youPolPlFem_Pron, youPolPl_Pron, theyFem_Pron, theyNeutr_Pron
, GenModNP
] with (Grammar=GrammarTMP) ;

View File

@@ -0,0 +1,17 @@
concrete GrammarTMP of Grammar =
NounTMP
, VerbTMP
, AdjectiveTMP
, AdverbTMP
, NumeralTMP
, SentenceTMP
, QuestionTMP
, RelativeTMP
, ConjunctionTMP
, PhraseTMP
, TextX
, StructuralTMP
, IdiomTMP
, TenseX
, NamesTMP -- Not part of original Grammar, here to trigger compilation
;

56
src/TEMPLATE/IdiomTMP.gf Normal file
View File

@@ -0,0 +1,56 @@
--1 Idiom: Idiomatic Expressions
concrete IdiomTMP of Idiom = CatTMP ** open Prelude, ResTMP, VerbTMP, QuestionTMP, NounTMP, StructuralTMP in {
-- This module defines constructions that are formed in fixed ways,
-- often different even in closely related languages.
{-
lin
-- ImpersCl : VP -> Cl ; -- it is hot
ImpersCl vp = {
} ;
-- : NP -> Cl ; -- there is a house
ExistNP np =
-- ExistIP : IP -> QCl ; -- which houses are there
ExistIP ip =
-- GenericCl : VP -> Cl ; -- one sleeps
GenericCl vp =
CleftNP : NP -> RS -> Cl ; -- it is I who did it
CleftAdv : Adv -> S -> Cl ; -- it is here she slept
-- : NP -> Cl ; -- there is a house
ExistNP np =
ExistIP : IP -> QCl ; -- which houses are there
-- 7/12/2012 generalizations of these
ExistNPAdv : NP -> Adv -> Cl ; -- there is a house in Paris
ExistIPAdv : IP -> Adv -> QCl ; -- which houses are there in Paris
-- : VP -> VP ;
ProgrVP vp = vp ** {
} ;
-- : VP -> Utt ; -- let's go
ImpPl1 vp = { } ;
ImpP3 : NP -> VP -> Utt ; -- let John walk
-- 3/12/2013 non-reflexive uses of "self"
SelfAdvVP : VP -> VP ; -- is at home himself
SelfAdVVP : VP -> VP ; -- is himself at home
SelfNP : NP -> NP ; -- the president himself (is at home)
-}
}

5
src/TEMPLATE/LangTMP.gf Normal file
View File

@@ -0,0 +1,5 @@
--# -path=.:../abstract:../common:../prelude:../api
concrete LangTMP of Lang =
GrammarTMP,
LexiconTMP,
ConstructionTMP ;

419
src/TEMPLATE/LexiconTMP.gf Normal file
View File

@@ -0,0 +1,419 @@
concrete LexiconTMP of Lexicon = CatTMP **
open ParadigmsTMP, ResTMP in {
----
-- A
{-
lin add_V3 = mkV3 (mkV "") ;
lin airplane_N = mkN "" ;
lin alas_Interj = mkInterj "" ;
lin already_Adv = mkA "" ;
lin animal_N = mkN "" ;
lin answer_V2S = mkV2S (mkV "") ;
lin apartment_N = mkN "" ;
lin apple_N = mkN "" ;
lin art_N = mkN "" ;
lin ashes_N = mkN "" ;
lin ask_V2Q = mkV2Q (mkV "") ;
----
-- B
lin baby_N = mkN "" ;
lin back_N = mkN "" ;
lin bad_A = mkA "" ;
lin bank_N = mkN "" ;
lin bark_N = mkN "" ;
lin beautiful_A = mkA "" ;
lin become_VA = mkVA (mkV "") ;
lin beer_N = mkN "" ;
lin beg_V2V = mkV2V (mkV "") ;
lin belly_N = mkN "" ;
lin big_A = mkA "" ;
lin bike_N = mkN "" ;
lin bird_N = mkN "" ;
lin bite_V2 = mkV2 "" ;
lin black_A = mkA "" ; -}
lin blood_N = mkN "blood" ;
{-lin blow_V = mkV "" ;
lin blue_A = mkA "" ;
lin boat_N = mkN "" ;
lin bone_N = mkN "" ;
lin boot_N = mkN "" ;
lin boss_N = mkN "" ;
lin book_N = mkN "" ;
lin boy_N = mkN "" ;
lin bread_N = mkN "" ;
lin break_V2 = mkV2 "" ;
lin breast_N = mkN "" ;
lin breathe_V = mkV "" ;
lin broad_A = mkA "" ;
lin brother_N2 = mkN "" ;
lin brown_A = mkA "" ;
lin burn_V = mkV "" ;
lin butter_N = mkN "" ;
lin buy_V2 = mkV2 "" ;
----
-- C
lin camera_N = mkN "" ;
lin cap_N = mkN "" ;
lin car_N = mkN "" ;
lin carpet_N = mkN "" ;
lin cat_N = mkN "" ;
lin ceiling_N = mkN "" ;
lin chair_N = mkN "" ;
lin cheese_N = mkN "" ;
lin child_N = mkN "" ;
lin church_N = mkN "" ;
lin city_N = mkN "" ;
lin clean_A = mkA "" ;
lin clever_A = mkA "" ;
lin close_V2 = mkV2 "" ;
lin cloud_N = mkN "" ;
lin coat_N = mkN "" ;
lin cold_A = mkA "" ;
lin come_V = mkV "" ;
lin computer_N = mkN "" ;
lin correct_A = mkA "" ;
lin count_V2 = mkV2 "" ;
lin country_N = mkN "" ;
lin cousin_N = mkN "" ;
lin cow_N = mkN "" ;
lin cut_V2 = mkV2 "" ;
----
-- D
lin day_N = mkN "" ; -}
lin die_V = mkV "die" ;
{-lin dig_V = mkV "" ;
lin dirty_A = mkA "" ;
lin distance_N3 = mkN3 (mkN "") ;
lin do_V2 = mkV2 "" ;
lin doctor_N = mkN "" ;
lin dog_N = mkN "" ;
lin door_N = mkN "" ;
lin drink_V2 = mkV2 "" ;
lin dry_A = mkA "" ;
lin dull_A = mkA "" ;
lin dust_N = mkN "" ;
----
-- E
lin ear_N = mkN "" ;
lin earth_N = mkN "" ;
lin eat_V2 = mkV "" ;
lin egg_N = mkN "" ;
lin empty_A = mkA "" ;
lin enemy_N = mkN "" ;
lin eye_N = mkN "" ;
----
-- F
lin factory_N = mkN "" ;
lin fall_V = mkV "" ;
lin far_Adv = mkA "" ;
lin fat_N = mkN "" ;
lin father_N2 = mkN2 (mkN "") ;
lin fear_V2 = mkV2 "" ;
lin fear_VS = mkVS (mkV "") ;
lin feather_N = mkN "" ;
lin fight_V2 = mkV2 "" ;
lin find_V2 = mkV2 "" ;
lin fingernail_N = mkN "" ;
lin fire_N = mkN "" ;
lin fish_N = mkN "" ;
lin float_V = mkV "" ;
lin floor_N = mkN "" ;
lin flow_V = mkV "" ;
lin flower_N = mkN "" ;
lin fly_V = mkV "" ;
lin fog_N = mkN "" ;
lin foot_N = mkN "" ;
lin forest_N = mkN "" ;
lin forget_V2 = mkV2 "" ;
lin freeze_V = mkV "" ;
lin fridge_N = mkN "" ;
lin friend_N = mkN "" ;
lin fruit_N = mkN "" ;
lin full_A = mkA "" ;
--lin fun_AV
----
-- G
lin garden_N = mkN "" ;
lin girl_N = mkN "" ;
lin give_V3 = mkV3 (mkV "") ;
lin glove_N = mkN "" ;
lin go_V = mkV "" ;
lin gold_N = mkN "" ;
lin good_A = mkA "" ;
lin grammar_N = mkN "" ;
lin grass_N = mkN "" ;
lin green_A = mkA "" ;
----
-- H
lin hair_N = mkN "" ;
lin hand_N = mkN "" ;
lin harbour_N = mkN "" ;
lin hat_N = mkN "" ;
lin hate_V2 = mkV2 "" ;
lin head_N = mkN "" ;
lin hear_V2 = mkV2 "" ;
lin heart_N = mkN "" ;
lin heavy_A = mkA "" ;
lin hill_N = mkN "" ;
lin hit_V2 = mkV2 "" ;
lin hold_V2 = mkV2 "" ;
lin hope_VS = mkV "" ;
lin horn_N = mkN "" ;
lin horse_N = mkN "" ;
lin hot_A = mkA "" ;
lin house_N = mkN "" ;
lin hunt_V2 = mkV2 "" ;
lin husband_N = mkN "" ;
--------
-- I - K
lin ice_N = mkN "" ;
lin industry_N = mkN "" ;
lin iron_N = mkN "" ;
lin john_PN = mkPN "" ;
lin jump_V = mkV "" ;
lin kill_V2 = mkV2 "" ;
lin king_N = mkN "" ;
lin knee_N = mkN "" ;
lin know_V2 = mkV2 "" ;
lin know_VQ = mkVQ (mkV "") ;
lin know_VS = mkV "" ;
----
-- L
lin lake_N = mkN "" ;
lin lamp_N = mkN "" ;
lin language_N = mkN "" ;
lin laugh_V = mkV "" ;
lin leaf_N = mkN "" ;
lin learn_V2 = mkV2 "" ;
lin leather_N = mkN "" ;
lin leave_V2 = mkV2 "" ;
lin leg_N = mkN "" ;
lin lie_V = mkV "" ;
lin like_V2 = mkV2 "" ;
lin listen_V2 = mkV2 "" ;
lin live_V = mkV "";
lin liver_N = mkN "" ;
lin long_A = mkA "" ;
lin lose_V2 = mkV2 "" ;
lin louse_N = mkN "" ;
lin love_N = mkN "" ;
lin love_V2 = mkV2 "" ;
----
-- M
lin man_N = mkN "" ;
lin married_A2 = mkA2 (mkA "") ;
lin meat_N = mkN "" ;
lin milk_N = mkN "" ;
lin moon_N = mkN "" ;
lin mother_N2 = mkN2 (mkN "") ;
lin mountain_N = mkN "" ;
lin mouth_N = mkN "" ;
lin music_N = mkN "" ;
----
-- N
lin name_N = mkN "" ;
lin narrow_A = mkA "" ;
lin near_A = mkA "" ;
lin neck_N = mkN "" ;
lin new_A = mkA "" ;
lin newspaper_N = mkN "" ;
lin night_N = mkN "" ;
lin nose_N = mkN "" ;
lin now_Adv = mkAdv "" ;
lin number_N = mkN "" ;
--------
-- O - P
lin oil_N = mkN "" ;
lin old_A = mkA "" ;
lin open_V2 = mkV2 "" ;
lin paint_V2A = mkV2A (mkV "") ;
lin paper_N = mkN "" ;
lin paris_PN = mkPN "Paris" ;
lin peace_N = mkN "" ;
lin pen_N = mkN "" ;
lin person_N = mkN "" ;
lin planet_N = mkN "" ;
lin plastic_N = mkN "" ;
lin play_V = mkV "" ;
lin policeman_N = mkN "" ;
lin priest_N = mkN "" ;
lin pull_V2 = mkV2 "" ;
lin push_V2 = mkV2 "" ;
lin put_V2 = mkV2 "" ;
--------
-- Q - R
lin queen_N = mkN "" ;
lin question_N = mkN "" ;
lin radio_N = mkN "" ;
lin rain_N = mkN "" ;
lin rain_V0 = mkV "" ;
lin read_V2 = mkV2 "" ;
lin ready_A = mkA "" ;
lin reason_N = mkN "" ;
lin red_A = mkA "" ;
lin religion_N = mkN "" ;
lin restaurant_N = mkN "" ;
lin river_N = mkN "" ;
lin road_N = mkN "" ;
lin rock_N = mkN "" ;
lin roof_N = mkN "" ;
lin root_N = mkN "" ;
lin rope_N = mkN "" ;
lin rotten_A = mkA "" ;
lin round_A = mkA "" ;
lin rub_V2 = mkV2 "" ;
lin rubber_N = mkN "" ;
lin rule_N = mkN "" ;
lin run_V = mkV "" ;
----
-- S
lin salt_N = mkN "" ;
lin sand_N = mkN "" ;
lin say_VS = mkVS (mkV "") ;
lin school_N = mkN "" ;
lin science_N = mkN "" ;
lin scratch_V2 = mkV2 "" ;
lin sea_N = mkN "" ;
lin see_V2 = mkV2 "" ;
lin seed_N = mkN "" ;
lin seek_V2 = mkV2 "" ;
lin sell_V3 = mkV3 (mkV "" Meng) emptyPrep emptyPrep ; -- TODO
lin send_V3 = mkV3 (mkV "") ;
lin sew_V = mkV "" ;
lin sharp_A = mkA "" ;
lin sheep_N = mkN "" fem ;
lin ship_N = mkN "" ;
lin shirt_N = mkN "" ;
lin shoe_N = mkN "" ;
lin shop_N = mkN "" ;
lin short_A = mkA "" ;
lin silver_N = mkN "" ;
lin sing_V = mkV "" ;
lin sister_N = mkN "" ;
lin sit_V = mkV "" ;
lin skin_N = mkN "" ;
lin sky_N = mkN "" ;
lin sleep_V = mkV "" ;
lin small_A = mkA "" ;
lin smell_V = mkV "" ;
lin smoke_N = mkN "" ;
lin smooth_A = mkA "" ;
lin snake_N = mkN "" ;
lin snow_N = mkN "" ;
lin sock_N = mkN "" ;
lin song_N = mkN "" ;
lin speak_V2 = mkV2 "" ;
lin spit_V = mkV "" ;
lin split_V2 = mkV2 "" ;
lin squeeze_V2 = mkV2 "" ;
lin stab_V2 = mkV2 "" ;
lin stand_V = mkV "" ;
lin star_N = mkN "" ;
lin steel_N = mkN "" ;
lin stick_N = mkN "" ;
lin stone_N = mkN "" ;
lin stop_V = mkV "" ;
lin stove_N = mkN "" ;
lin straight_A = mkA "" ;
lin student_N = mkN "" ;
lin stupid_A = mkA "" ;
lin suck_V2 = mkV2 "" ;
lin sun_N = mkN "" ;
lin swell_V = mkV "" ;
lin swim_V = mkV "" ;
----
-- T
lin table_N = mkN "" ;
lin tail_N = mkN "" ;
lin talk_V3 = mkV3 (mkV "" Ber) (mkPrep "") (mkPrep "") ;
lin teach_V2 = mkV2 "" ;
lin teacher_N = mkN "" ;
lin television_N = mkN "" ;
lin thick_A = mkA "" ;
lin thin_A = mkA "" ;
lin think_V = mkV "" ;
lin throw_V2 = mkV2 "" ;
lin tie_V2 = mkV2 "" ;
lin today_Adv = mkA "" ;
lin tongue_N = mkN "" ;
lin tooth_N = mkN "" ;
lin train_N = mkN "" ;
lin travel_V = mkV "" ;
lin tree_N = mkN "" ;
lin turn_V = mkV "" ;
--------
-- U - V
lin ugly_A = mkA "" ;
lin uncertain_A = mkA "" ;
lin understand_V2 = mkV2 "" ;
lin university_N = mkN "" ;
lin village_N = mkN "" ;
lin vomit_V = mkV2 "" ;
--------
-- W - Y
lin wait_V2 = mkV2 "" ;
lin walk_V = mkV "" ;
lin war_N = mkN "" ;
lin warm_A = mkA "" ;
lin wash_V2 = mkV2 "" ;
lin watch_V2 = mkV2 "" ;
lin water_N = mkNoun "" ;
lin wet_A = mkA "" ;
lin white_A = mkA "" ;
lin wide_A = mkA "" ;
lin wife_N = mkN "" ;
lin win_V2 = mkV2 "" ;
lin wind_N = mkN "" ;
lin window_N = mkN "" ;
lin wine_N = mkN "" ;
lin wing_N = mkN "" ;
lin wipe_V2 = mkV2 "" ;
lin woman_N = mkN "" ;
lin wonder_VQ = mkVQ (mkV "") ;
lin wood_N = mkN "" ;
lin worm_N = mkN "" ;
lin write_V2 = mkV2 "" ;
lin year_N = mkN "" ;
lin yellow_A = mkA "" ;
lin young_A = mkA "" ;
-}
}

313
src/TEMPLATE/MissingTMP.gf Normal file
View File

@@ -0,0 +1,313 @@
resource MissingTMP = open GrammarTMP, Prelude in {
-- temporary definitions to enable the compilation of RGL API
oper AdAP : AdA -> AP -> AP = notYet "AdAP" ;
oper AdAdv : AdA -> Adv -> Adv = notYet "AdAdv" ;
oper AdNum : AdN -> Card -> Card = notYet "AdNum" ;
oper AdVVP : AdV -> VP -> VP = notYet "AdVVP" ;
oper AdVVPSlash : AdV -> VPSlash -> VPSlash = notYet "AdVVPSlash" ;
oper AddAdvQVP : QVP -> IAdv -> QVP = notYet "AddAdvQVP" ;
oper AdjCN : AP -> CN -> CN = notYet "AdjCN" ;
oper AdjDAP : DAP -> AP -> DAP = notYet "AdjDAP" ;
oper AdjOrd : Ord -> AP = notYet "AdjOrd" ;
oper AdnCAdv : CAdv -> AdN = notYet "AdnCAdv" ;
oper AdvAP : AP -> Adv -> AP = notYet "AdvAP" ;
oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ;
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
oper AdvImp : Adv -> Imp -> Imp = notYet "AdvImp" ;
oper AdvNP : NP -> Adv -> NP = notYet "AdvNP" ;
oper AdvQVP : VP -> IAdv -> QVP = notYet "AdvQVP" ;
oper AdvS : Adv -> S -> S = notYet "AdvS" ;
oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
oper AdvVP : VP -> Adv -> VP = notYet "AdvVP" ;
oper AdvVPSlash : VPSlash -> Adv -> VPSlash = notYet "AdvVPSlash" ;
oper ApposCN : CN -> NP -> CN = notYet "ApposCN" ;
oper BaseAP : AP -> AP -> ListAP = notYet "BaseAP" ;
oper BaseAdV : AdV -> AdV -> ListAdV = notYet "BaseAdV" ;
oper BaseAdv : Adv -> Adv -> ListAdv = notYet "BaseAdv" ;
oper BaseCN : CN -> CN -> ListCN = notYet "BaseCN" ;
oper BaseIAdv : IAdv -> IAdv -> ListIAdv = notYet "BaseIAdv" ;
oper BaseNP : NP -> NP -> ListNP = notYet "BaseNP" ;
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ;
oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ;
oper CompAP : AP -> Comp = notYet "CompAP" ;
oper CompAdv : Adv -> Comp = notYet "CompAdv" ;
oper CompCN : CN -> Comp = notYet "CompCN" ;
oper CompIAdv : IAdv -> IComp = notYet "CompIAdv" ;
oper CompIP : IP -> IComp = notYet "CompIP" ;
oper CompNP : NP -> Comp = notYet "CompNP" ;
oper ComparA : A -> NP -> AP = notYet "ComparA" ;
oper ComparAdvAdj : CAdv -> A -> NP -> Adv = notYet "ComparAdvAdj" ;
oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ;
oper ComplA2 : A2 -> NP -> AP = notYet "ComplA2" ;
oper ComplN2 : N2 -> NP -> CN = notYet "ComplN2" ;
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
oper ComplSlash : VPSlash -> NP -> VP = notYet "ComplSlash" ;
oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ;
oper ComplVA : VA -> AP -> VP = notYet "ComplVA" ;
oper ComplVQ : VQ -> QS -> VP = notYet "ComplVQ" ;
oper ComplVS : VS -> S -> VP = notYet "ComplVS" ;
oper ComplVV : VV -> VP -> VP = notYet "ComplVV" ;
oper ConjAP : Conj -> ListAP -> AP = notYet "ConjAP" ;
oper ConjAdV : Conj -> ListAdV -> AdV = notYet "ConjAdV" ;
oper ConjAdv : Conj -> ListAdv -> Adv = notYet "ConjAdv" ;
oper ConjCN : Conj -> ListCN -> CN = notYet "ConjCN" ;
oper ConjDet : Conj -> ListDAP -> Det = notYet "ConjDet" ;
oper ConjIAdv : Conj -> ListIAdv -> IAdv = notYet "ConjIAdv" ;
oper ConjNP : Conj -> ListNP -> NP = notYet "ConjNP" ;
oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ;
oper ConjS : Conj -> ListS -> S = notYet "ConjS" ;
oper ConsAP : AP -> ListAP -> ListAP = notYet "ConsAP" ;
oper ConsAdV : AdV -> ListAdV -> ListAdV = notYet "ConsAdV" ;
oper ConsAdv : Adv -> ListAdv -> ListAdv = notYet "ConsAdv" ;
oper ConsCN : CN -> ListCN -> ListCN = notYet "ConsCN" ;
oper ConsIAdv : IAdv -> ListIAdv -> ListIAdv = notYet "ConsIAdv" ;
oper ConsNP : NP -> ListNP -> ListNP = notYet "ConsNP" ;
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
oper CountNP : Det -> NP -> NP = notYet "CountNP" ;
oper DetCN : Det -> CN -> NP = notYet "DetCN" ;
oper DetDAP : Det -> DAP = notYet "DetDAP" ;
oper DetNP : Det -> NP = notYet "DetNP" ;
oper DetQuantOrd : Quant -> Num -> Ord -> Det = notYet "DetQuantOrd" ;
oper EmbedQS : QS -> SC = notYet "EmbedQS" ;
oper EmbedS : S -> SC = notYet "EmbedS" ;
oper EmbedVP : VP -> SC = notYet "EmbedVP" ;
oper ExistIP : IP -> QCl = notYet "ExistIP" ;
oper ExistIPAdv : IP -> Adv -> QCl = notYet "ExistIPAdv" ;
oper ExistNP : NP -> Cl = notYet "ExistNP" ;
oper ExistNPAdv : NP -> Adv -> Cl = notYet "ExistNPAdv" ;
oper ExtAdvS : Adv -> S -> S = notYet "ExtAdvS" ;
oper ExtAdvVP : VP -> Adv -> VP = notYet "ExtAdvVP" ;
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
oper IdRP : RP = notYet "IdRP" ;
oper IdetCN : IDet -> CN -> IP = notYet "IdetCN" ;
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
oper IdetQuant : IQuant -> Num -> IDet = notYet "IdetQuant" ;
oper ImpP3 : NP -> VP -> Utt = notYet "ImpP3" ;
oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ;
oper ImpVP : VP -> Imp = notYet "ImpVP" ;
oper ImpersCl : VP -> Cl = notYet "ImpersCl" ;
oper MassNP : CN -> NP = notYet "MassNP" ;
oper NumCard : Card -> Num = notYet "NumCard" ;
oper NumDigits : Digits -> Card = notYet "NumDigits" ;
oper NumNumeral : Numeral -> Card = notYet "NumNumeral" ;
oper OrdDigits : Digits -> Ord = notYet "OrdDigits" ;
oper OrdNumeral : Numeral -> Ord = notYet "OrdNumeral" ;
oper OrdNumeralSuperl : Numeral -> A -> Ord = notYet "OrdNumeralSuperl" ;
oper OrdSuperl : A -> Ord = notYet "OrdSuperl" ;
oper PConjConj : Conj -> PConj = notYet "PConjConj" ;
oper PPartNP : NP -> V2 -> NP = notYet "PPartNP" ;
oper PartNP : CN -> NP -> CN = notYet "PartNP" ;
oper PassV2 : V2 -> VP = notYet "PassV2" ;
oper PhrUtt : PConj -> Utt -> Voc -> Phr = notYet "PhrUtt" ;
oper PositA : A -> AP = notYet "PositA" ;
oper PositAdAAdj : A -> AdA = notYet "PositAdAAdj" ;
oper PositAdvAdj : A -> Adv = notYet "PositAdvAdj" ;
oper PossNP : CN -> NP -> CN = notYet "PossNP" ;
oper PossPron : Pron -> Quant = notYet "PossPron" ;
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
oper PredVP : NP -> VP -> Cl = notYet "PredVP" ;
oper PredetNP : Predet -> NP -> NP = notYet "PredetNP" ;
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
oper PrepNP : Prep -> NP -> Adv = notYet "PrepNP" ;
oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
oper QuestCl : Cl -> QCl = notYet "QuestCl" ;
oper QuestIAdv : IAdv -> Cl -> QCl = notYet "QuestIAdv" ;
oper QuestIComp : IComp -> NP -> QCl = notYet "QuestIComp" ;
oper QuestQVP : IP -> QVP -> QCl = notYet "QuestQVP" ;
oper QuestSlash : IP -> ClSlash -> QCl = notYet "QuestSlash" ;
oper QuestVP : IP -> VP -> QCl = notYet "QuestVP" ;
oper ReflA2 : A2 -> AP = notYet "ReflA2" ;
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
oper RelCl : Cl -> RCl = notYet "RelCl" ;
oper RelNP : NP -> RS -> NP = notYet "RelNP" ;
oper RelS : S -> RS -> S = notYet "RelS" ;
oper RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ;
oper RelVP : RP -> VP -> RCl = notYet "RelVP" ;
oper SSubjS : S -> Subj -> S -> S = notYet "SSubjS" ;
oper SelfAdVVP : VP -> VP = notYet "SelfAdVVP" ;
oper SelfAdvVP : VP -> VP = notYet "SelfAdvVP" ;
oper SelfNP : NP -> NP = notYet "SelfNP" ;
oper SentAP : AP -> SC -> AP = notYet "SentAP" ;
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;
oper Slash3V3 : V3 -> NP -> VPSlash = notYet "Slash3V3" ;
oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ;
oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ;
oper SlashV2Q : V2Q -> QS -> VPSlash = notYet "SlashV2Q" ;
oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ;
oper SlashV2V : V2V -> VP -> VPSlash = notYet "SlashV2V" ;
oper SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash = notYet "SlashV2VNP" ;
oper SlashV2a : V2 -> VPSlash = notYet "SlashV2a" ;
oper SlashVP : NP -> VPSlash -> ClSlash = notYet "SlashVP" ;
oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ;
oper SlashVV : VV -> VPSlash -> VPSlash = notYet "SlashVV" ;
oper SubjS : Subj -> S -> Adv = notYet "SubjS" ;
oper TFullStop : Phr -> Text -> Text = notYet "TFullStop" ;
oper Use2N3 : N3 -> N2 = notYet "Use2N3" ;
oper Use3N3 : N3 -> N2 = notYet "Use3N3" ;
oper UseA2 : A2 -> AP = notYet "UseA2" ;
oper UseCl : Temp -> Pol -> Cl -> S = notYet "UseCl" ;
oper UseComp : Comp -> VP = notYet "UseComp" ;
oper UseComparA : A -> AP = notYet "UseComparA" ;
oper UseCopula : VP = notYet "UseCopula" ;
oper UseN : N -> CN = notYet "UseN" ;
oper UseN2 : N2 -> CN = notYet "UseN2" ;
oper UsePN : PN -> NP = notYet "UsePN" ;
oper UsePron : Pron -> NP = notYet "UsePron" ;
oper UseQCl : Temp -> Pol -> QCl -> QS = notYet "UseQCl" ;
oper UseRCl : Temp -> Pol -> RCl -> RS = notYet "UseRCl" ;
oper UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ;
oper UseV : V -> VP = notYet "UseV" ;
oper UttAP : AP -> Utt = notYet "UttAP" ;
oper UttAdv : Adv -> Utt = notYet "UttAdv" ;
oper UttCN : CN -> Utt = notYet "UttCN" ;
oper UttCard : Card -> Utt = notYet "UttCard" ;
oper UttIAdv : IAdv -> Utt = notYet "UttIAdv" ;
oper UttIP : IP -> Utt = notYet "UttIP" ;
oper UttImpPl : Pol -> Imp -> Utt = notYet "UttImpPl" ;
oper UttImpPol : Pol -> Imp -> Utt = notYet "UttImpPol" ;
oper UttImpSg : Pol -> Imp -> Utt = notYet "UttImpSg" ;
oper UttInterj : Interj -> Utt = notYet "UttInterj" ;
oper UttNP : NP -> Utt = notYet "UttNP" ;
oper UttQS : QS -> Utt = notYet "UttQS" ;
oper UttS : S -> Utt = notYet "UttS" ;
oper UttVP : VP -> Utt = notYet "UttVP" ;
oper VPSlashPrep : VP -> Prep -> VPSlash = notYet "VPSlashPrep" ;
oper VocNP : NP -> Voc = notYet "VocNP" ;
oper above_Prep : Prep = notYet "above_Prep" ;
oper active2passive : Cl -> Cl = notYet "active2passive" ;
oper after_Prep : Prep = notYet "after_Prep" ;
oper alas_Interj : Interj = notYet "alas_Interj" ;
oper all_Predet : Predet = notYet "all_Predet" ;
oper almost_AdA : AdA = notYet "almost_AdA" ;
oper almost_AdN : AdN = notYet "almost_AdN" ;
oper already_Adv : Adv = notYet "already_Adv" ;
oper although_Subj : Subj = notYet "although_Subj" ;
oper always_AdV : AdV = notYet "always_AdV" ;
oper as_CAdv : CAdv = notYet "as_CAdv" ;
oper at_least_AdN : AdN = notYet "at_least_AdN" ;
oper at_most_AdN : AdN = notYet "at_most_AdN" ;
oper because_Subj : Subj = notYet "because_Subj" ;
oper before_Prep : Prep = notYet "before_Prep" ;
oper behind_Prep : Prep = notYet "behind_Prep" ;
oper between_Prep : Prep = notYet "between_Prep" ;
oper both7and_DConj : Conj = notYet "both7and_DConj" ;
oper but_PConj : PConj = notYet "but_PConj" ;
oper by8agent_Prep : Prep = notYet "by8agent_Prep" ;
oper by8means_Prep : Prep = notYet "by8means_Prep" ;
oper dconcat : Digits -> Digits -> Digits = notYet "dconcat" ;
oper digits2num : Digits -> Numeral = notYet "digits2num" ;
oper digits2numeral : Card -> Card = notYet "digits2numeral" ;
oper dn : Dig -> Digit = notYet "dn" ;
oper dn10 : Dig -> Sub10 = notYet "dn10" ;
oper dn100 : Dig -> Dig -> Sub100 = notYet "dn100" ;
oper dn1000 : Dig -> Dig -> Dig -> Sub1000 = notYet "dn1000" ;
oper dn1000000a : Dig -> Dig -> Dig -> Dig -> Sub1000000 = notYet "dn1000000a" ;
oper dn1000000b : Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 = notYet "dn1000000b" ;
oper dn1000000c : Dig -> Dig -> Dig -> Dig -> Dig -> Dig -> Sub1000000 = notYet "dn1000000c" ;
oper during_Prep : Prep = notYet "during_Prep" ;
oper either7or_DConj : Conj = notYet "either7or_DConj" ;
oper every_Det : Det = notYet "every_Det" ;
oper everybody_NP : NP = notYet "everybody_NP" ;
oper everything_NP : NP = notYet "everything_NP" ;
oper everywhere_Adv : Adv = notYet "everywhere_Adv" ;
oper except_Prep : Prep = notYet "except_Prep" ;
oper few_Det : Det = notYet "few_Det" ;
oper for_Prep : Prep = notYet "for_Prep" ;
oper from_Prep : Prep = notYet "from_Prep" ;
oper he_Pron : Pron = notYet "he_Pron" ;
oper here7from_Adv : Adv = notYet "here7from_Adv" ;
oper here7to_Adv : Adv = notYet "here7to_Adv" ;
oper here_Adv : Adv = notYet "here_Adv" ;
oper how8many_IDet : IDet = notYet "how8many_IDet" ;
oper how8much_IAdv : IAdv = notYet "how8much_IAdv" ;
oper how_IAdv : IAdv = notYet "how_IAdv" ;
oper i_Pron : Pron = notYet "i_Pron" ;
oper if_Subj : Subj = notYet "if_Subj" ;
oper if_then_Conj : Conj = notYet "if_then_Conj" ;
oper in8front_Prep : Prep = notYet "in8front_Prep" ;
oper in_Prep : Prep = notYet "in_Prep" ;
oper it_Pron : Pron = notYet "it_Pron" ;
oper john_PN : PN = notYet "john_PN" ;
oper language_title_Utt : Utt = notYet "language_title_Utt" ;
oper left_Ord : Ord = notYet "left_Ord" ;
oper less_CAdv : CAdv = notYet "less_CAdv" ;
oper many_Det : Det = notYet "many_Det" ;
oper more_CAdv : CAdv = notYet "more_CAdv" ;
oper most_Predet : Predet = notYet "most_Predet" ;
oper much_Det : Det = notYet "much_Det" ;
oper nd : Digit -> Dig = notYet "nd" ;
oper nd10 : Sub10 -> Digits = notYet "nd10" ;
oper nd100 : Sub100 -> Digits = notYet "nd100" ;
oper nd1000 : Sub1000 -> Digits = notYet "nd1000" ;
oper nd1000000 : Sub1000000 -> Digits = notYet "nd1000000" ;
oper no_Quant : Quant = notYet "no_Quant" ;
oper no_Utt : Utt = notYet "no_Utt" ;
oper nobody_NP : NP = notYet "nobody_NP" ;
oper not_Predet : Predet = notYet "not_Predet" ;
oper nothing_NP : NP = notYet "nothing_NP" ;
oper num : Sub1000000 -> Numeral = notYet "num" ;
oper num2digits : Numeral -> Digits = notYet "num2digits" ;
oper on_Prep : Prep = notYet "on_Prep" ;
oper only_Predet : Predet = notYet "only_Predet" ;
oper or_Conj : Conj = notYet "or_Conj" ;
oper otherwise_PConj : PConj = notYet "otherwise_PConj" ;
oper part_Prep : Prep = notYet "part_Prep" ;
oper please_Voc : Voc = notYet "please_Voc" ;
oper possess_Prep : Prep = notYet "possess_Prep" ;
oper pot01 : Sub10 = notYet "pot01" ;
oper pot1 : Digit -> Sub100 = notYet "pot1" ;
oper pot110 : Sub100 = notYet "pot110" ;
oper pot111 : Sub100 = notYet "pot111" ;
oper pot1plus : Digit -> Sub10 -> Sub100 = notYet "pot1plus" ;
oper pot1to19 : Digit -> Sub100 = notYet "pot1to19" ;
oper pot2 : Sub10 -> Sub1000 = notYet "pot2" ;
oper pot2plus : Sub10 -> Sub100 -> Sub1000 = notYet "pot2plus" ;
oper pot3 : Sub1000 -> Sub1000000 = notYet "pot3" ;
oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ;
oper quite_Adv : AdA = notYet "quite_Adv" ;
oper right_Ord : Ord = notYet "right_Ord" ;
oper she_Pron : Pron = notYet "she_Pron" ;
oper so_AdA : AdA = notYet "so_AdA" ;
oper somePl_Det : Det = notYet "somePl_Det" ;
oper someSg_Det : Det = notYet "someSg_Det" ;
oper somebody_NP : NP = notYet "somebody_NP" ;
oper something_NP : NP = notYet "something_NP" ;
oper somewhere_Adv : Adv = notYet "somewhere_Adv" ;
oper that_Quant : Quant = notYet "that_Quant" ;
oper that_Subj : Subj = notYet "that_Subj" ;
oper there7from_Adv : Adv = notYet "there7from_Adv" ;
oper there7to_Adv : Adv = notYet "there7to_Adv" ;
oper there_Adv : Adv = notYet "there_Adv" ;
oper therefore_PConj : PConj = notYet "therefore_PConj" ;
oper they_Pron : Pron = notYet "they_Pron" ;
oper this_Quant : Quant = notYet "this_Quant" ;
oper through_Prep : Prep = notYet "through_Prep" ;
oper to_Prep : Prep = notYet "to_Prep" ;
oper too_AdA : AdA = notYet "too_AdA" ;
oper under_Prep : Prep = notYet "under_Prep" ;
oper very_AdA : AdA = notYet "very_AdA" ;
oper we_Pron : Pron = notYet "we_Pron" ;
oper whatPl_IP : IP = notYet "whatPl_IP" ;
oper whatSg_IP : IP = notYet "whatSg_IP" ;
oper when_IAdv : IAdv = notYet "when_IAdv" ;
oper when_Subj : Subj = notYet "when_Subj" ;
oper where_IAdv : IAdv = notYet "where_IAdv" ;
oper which_IQuant : IQuant = notYet "which_IQuant" ;
oper whoPl_IP : IP = notYet "whoPl_IP" ;
oper whoSg_IP : IP = notYet "whoSg_IP" ;
oper why_IAdv : IAdv = notYet "why_IAdv" ;
oper with_Prep : Prep = notYet "with_Prep" ;
oper without_Prep : Prep = notYet "without_Prep" ;
oper yes_Utt : Utt = notYet "yes_Utt" ;
oper youPl_Pron : Pron = notYet "youPl_Pron" ;
oper youPol_Pron : Pron = notYet "youPol_Pron" ;
oper youSg_Pron : Pron = notYet "youSg_Pron" ;
}

36
src/TEMPLATE/NamesTMP.gf Normal file
View File

@@ -0,0 +1,36 @@
concrete NamesTMP of Names = CatTMP ** open Prelude in {
-- An API layer to deal with names
-- Not part of the RGL API, but used in the AW project
-- So depends on your goals whether this is high or low priority to implement.
{-
lin
-- : GN -> NP ;
GivenName gn =
-- : SN -> NP ;
MaleSurname sn =
-- : SN -> NP ;
FemaleSurname sn =
-- : SN -> NP ;
PlSurname sn =
-- : GN -> SN -> NP ;
FullName gn sn =
lin
-- : LN -> NP ;
UseLN ln =
-- : LN -> NP ;
PlainLN ln =
-- : LN -> Adv ;
InLN ln =
-- : AP -> LN -> LN ;
AdjLN ap ln =
-}
}

210
src/TEMPLATE/NounTMP.gf Normal file
View File

@@ -0,0 +1,210 @@
concrete NounTMP of Noun = CatTMP ** open ResTMP, Prelude in {
flags optimize=all_subs ;
lin
--2 Noun phrases
-- : Det -> CN -> NP
DetCN det cn = emptyNP ** {
s = det.s ++ cn.s ! det.n
} ;
{-
-- : PN -> NP ;
-- Assuming that lincat PN = lincat NP
UsePN pn = pn ;
-- : Pron -> NP ;
-- Assuming that lincat Pron = lincat NP
UsePron pron = pron ;
-- : Predet -> NP -> NP ; -- only the man
PredetNP predet np =
-- A noun phrase can also be postmodified by the past participle of a
-- verb, by an adverb, or by a relative clause
-- low prio
-- : NP -> V2 -> NP ; -- the man seen
-- PPartNP np v2 = np ** {
-- s =
-- } ;
-- : NP -> Adv -> NP ; -- Paris today
AdvNP np adv = np ** {
s = np.s ++ "," ++ adv.s
} ;
-- : NP -> Adv -> NP ; -- boys, such as ..
ExtAdvNP np adv = AdvNP np {s = "," ++ adv.s} ;
-- : NP -> RS -> NP ; -- Paris, which is here
RelNP np rs = np ** {
} ;
-- Determiners can form noun phrases directly.
-- : Det -> NP ;
DetNP det = emptyNP ** {
s = \\_ => linDet det ;
} ;
-}
-- MassNP : CN -> NP ;
MassNP cn = emptyNP ** {
s = linCN cn
} ;
--2 Determiners
-- The determiner has a fine-grained structure, in which a 'nucleus'
-- quantifier and an optional numeral can be discerned.
-- : Quant -> Num -> Det ;
DetQuant quant num = quant ** {
s = quant.s ! num.n ++ num.s ;
n = num.n ;
} ;
-- : Quant -> Num -> Ord -> Det ;
-- DetQuantOrd quant num ord = quant ** {
-- } ;
-- Whether the resulting determiner is singular or plural depends on the
-- cardinal.
-- All parts of the determiner can be empty, except $Quant$, which is
-- the "kernel" of a determiner. It is, however, the $Num$ that determines
-- the inherent number.
NumSg = {s = [] ; n = Sg} ;
NumPl = {s = [] ; n = Pl} ;
{-
-- : Card -> Num ; -- two
NumCard card = card ;
-- : Digits -> Card ;
NumDigits dig = -- probably like OrdDigits, but choose the NCard form
-- : Numeral -> Card ;
NumNumeral num = {
s = num.s ! NCard ;
n = num.n -- inherits grammatical number (Sg, Pl, …) from the Numeral
} ;
-- : AdN -> Card -> Card ;
AdNum adn card = card ** { s = adn.s ++ card.s } ;
-- : Digits -> Ord ;
OrdDigits digs = digs ** { s = digs.s ! NOrd } ;
-- : Numeral -> Ord ;
OrdNumeral num = {
s = num.s ! NOrd
} ;
-- : A -> Ord ;
OrdSuperl a = {
s = "most" ++ a.s ! Superl
} ;
-- One can combine a numeral and a superlative.
-- : Numeral -> A -> Ord ; -- third largest
OrdNumeralSuperl num a = {
s = num.s ! NOrd ++ a.s ! Superl
} ;
-}
-- : Quant
DefArt = mkQuant "the" "the" ;
-- : Quant
IndefArt = mkQuant "a" [] ;
{-
-- : Pron -> Quant -- my
PossPron pron = mkQuant pron.s ** {
} ;
-}
--2 Common nouns
-- : N -> CN
UseN n = n ;
{-
-- : N2 -> CN ;
UseN2 n2 =
-- : N2 -> NP -> CN ;
ComplN2 n2 np =
-- : N3 -> NP -> N2 ; -- distance from this city (to Paris)
ComplN3 n3 np =
-- : N3 -> N2 ; -- distance (from this city)
Use2N3 n3 = lin N2 n3 ** { c2 = n3.c3 } ;
-- : N3 -> N2 ; -- distance (to Paris)
Use3N3 n3 = lin N2 n3 ;
-- : AP -> CN -> CN
AdjCN ap cn =
-- : CN -> RS -> CN ;
RelCN cn rs =
-- : CN -> Adv -> CN ;
AdvCN cn adv =
-- Nouns can also be modified by embedded sentences and questions.
-- For some nouns this makes little sense, but we leave this for applications
-- to decide. Sentential complements are defined in VerbTMP.
-- : CN -> SC -> CN ; -- question where she sleeps
SentCN cn sc =
--2 Apposition
-- This is certainly overgenerating.
-- : CN -> NP -> CN ; -- city Paris (, numbers x and y)
ApposCN cn np = cn ** {
s =
} ;
--2 Possessive and partitive constructs
-- NB. Below this, the functions are not in the API, so lower prio to implement
-- : PossNP : CN -> NP -> CN ;
-- in English: book of someone; point is that we can add a determiner to the CN,
-- so it can become "a book of someone" or "the book of someone"
PossNP cn np =
-- : Det -> NP -> NP ; -- three of them, some of the boys
CountNP det np = -- Nonsense for DefArt or IndefArt, but don't worry about that! RGL can contain weird sentences, as long as it contains the non-weird stuff we want
-- : CN -> NP -> CN ; -- glass of wine / two kilos of red apples
PartNP cn np =
--3 Conjoinable determiners and ones with adjectives
-- : DAP -> AP -> DAP ; -- the large (one)
AdjDAP dap ap = dap ** {
} ;
-- : Det -> DAP ; -- this (or that)
DetDAP det = det ;
-}
}

115
src/TEMPLATE/NumeralTMP.gf Normal file
View File

@@ -0,0 +1,115 @@
concrete NumeralTMP of Numeral = CatTMP [Numeral,Digits] **
open Prelude, ResTMP in {
lincat
Digit = LinNumeral ; -- 2..9
Sub10, -- 1..9
Sub100, -- 1..99
Sub1000, -- 1..999
Sub1000000, -- 1..999999
Sub1000000000, -- 1..999999999
Sub1000000000000 -- 1..999999999999
= LinNumeral ;
-- param CardOrd defined in ResTMP
-- type LinNumeral -""-
lin
-- : Sub1000000 -> Numeral ; -- 123456 [coercion to top category]
num x = x ;
-- : Digit ;
n2 = mkNumeral "two" ;
n3 = mkNumeral "three" ;
n4 = mkNumeral "four" ;
n5 = mkNumeral "five" ;
n6 = mkNumeral "six" ;
n7 = mkNumeral "seven" ;
n8 = mkNumeral "eight" ;
n9 = mkNumeral "nine" ;
-- : Sub10 ; -- 1
-- pot01 =
-- : Digit -> Sub10 ; -- d * 1
pot0 d = d ;
-- : Sub100 ; -- 10
-- pot110 = mkNum "ten" ;
-- : Sub100 ; -- 11
-- pot111 = mkNum "eleven" ;
-- : Digit -> Sub100 ; -- 10 + d
-- pot1to19 d =
-- : Sub10 -> Sub100 ; -- coercion of 1..9
pot0as1 n = n ;
-- : Digit -> Sub100 ; -- d * 10
-- pot1 d =
-- : Digit -> Sub10 -> Sub100 ; -- d * 10 + n
-- pot1plus d e =
-- : Sub100 -> Sub1000 ; -- coercion of 1..99
pot1as2 n = n ;
-- : Sub10 -> Sub1000 ; -- m * 100
-- pot2 d =
-- : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n
-- pot2plus d e =
-- : Sub1000 -> Sub1000000 ; -- coercion of 1..999
pot2as3 n = n ;
-- : Sub1000 -> Sub1000000 ; -- m * 1000
-- pot3 d =
-- : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n
-- pot3plus d e =
--------------------------------------------------------------------------------
-- Numerals as sequences of digits have a separate, simpler grammar
--
lincat
Dig = LinDig ; -- single digit 0..9
lin
-- : Dig -> Digits ; -- 8
IDig d = d ;
-- : Dig -> Digits -> Digits ; -- 876
IIDig d e = {
s = table {
NCard => glue (d.s ! NCard) (e.s ! NCard) ;
NOrd => glue (d.s ! NCard) (e.s ! NOrd)
} ;
n = Pl ;
} ;
-- : Dig ;
D_0 = mkDig "0" ;
D_1 = mkDig "1" ;
D_2 = mkDig "2" ;
D_3 = mkDig "3" ;
D_4 = mkDig "4" ;
D_5 = mkDig "5" ;
D_6 = mkDig "6" ;
D_7 = mkDig "7" ;
D_8 = mkDig "8" ;
D_9 = mkDig "9" ;
oper
LinDig : Type = {s : CardOrd => Str ; n : Number} ;
mkDig : Str -> LinDig = \s -> {
s = table {
NCard => s ;
NOrd => s + "th"
} ;
n = Pl ; -- TODO: handle number 1
} ;
}

View File

@@ -0,0 +1,211 @@
resource ParadigmsTMP = open CatTMP, ResTMP, NounTMP, Prelude in {
oper
--2 Parameters
--
-- To abstract over number, valency and (some) case names,
-- we define the following identifiers. The application programmer
-- should always use these constants instead of the constructors
-- defined in $ResSom$.
Prep : Type ;
noPrep : Prep ;
-- Add more overload instances if needed for all categories!
--2 Nouns
mkN : overload {
mkN : Str -> N ; -- Predictable nouns
} ;
mkPN : overload {
mkPN : Str -> PN ; -- Proper nouns
} ;
--2 Adjectives
mkA : overload {
mkA : Str -> A ; -- Predictable adjective
} ;
mkA2 : overload {
mkA2 : Str -> A2 ; -- Predictable A2, no preposition
mkA2 : A -> Prep -> A2 ; -- A2 made from A and Prep
} ;
--2 Verbs
-- Verbs
mkV : overload {
mkV : Str -> V ; -- Predictable verb
} ;
mkV2 : overload {
mkV2 : Str -> V2 ; -- Predictable transitive verb
mkV2 : V -> Prep -> V2 ; -- V2 made from V and Prep
} ;
mkV3 : overload {
mkV3 : V -> V3 ; -- No prepositions
mkV3 : V -> Prep -> Prep -> V3 ; -- Prepositions for direct and indirect objects given
} ;
mkVV : overload {
mkVV : V -> VV ;
} ;
mkVA : overload {
mkVA : V -> VA ;
} ;
mkVQ : overload {
mkVQ : V -> VQ ;
} ;
mkVS : overload {
mkV : V -> VS ;
} ;
-- Etc. do the same for other V subcats (V2A, V2V, V2S, …)
-----
--2 Structural categories
-- If prepositions take case, add that as argument to mkPrep
mkPrep : overload {
mkPrep : Str -> Prep ;
} ;
mkConj : overload {
mkConj : (and : Str) -> Conj ; -- (coffee) and (tea)
mkConj : (either : Str) -> (or : Str) -> Conj ; -- either (coffee) or (tea)
} ;
mkSubj : overload {
mkSubj : Str -> Subj ;
} ;
mkAdv : overload {
mkAdv : Str -> Adv ;
} ;
mkAdV : overload {
mkAdV : Str -> AdV ;
} ;
mkAdA : overload {
mkAdA : Str -> AdA ;
} ;
--.
-------------------------------------------------------------------------------
-- The definitions should not bother the user of the API. So they are
-- hidden from the document.
Prep = CatTMP.Prep ;
noPrep = mkPrep [] ;
-- Add more overload instances if needed for all categories!
-- For explanation of `lin N`, see
-- https://inariksit.github.io/gf/2018/05/25/subtyping-gf.html#lock-fields
mkN = overload {
mkN : Str -> N = \s -> lin N (ResTMP.mkNoun s) ;
-- TODO: more overload instances
} ;
{-
mkPN = overload {
mkPN : Str -> PN = …
} ;
--2 Adjectives
mkA = overload {
mkA : Str -> A = \s -> …
} ;
mkA2 = overload {
mkA2 : Str -> A2 = \s -> …
mkA2 : A -> Prep -> A2 = \s -> …
} ;
--2 Verbs
-}
-- Verbs
mkV = overload {
mkV : Str -> V = \s -> lin V (mkVerb s) ;
} ;
{-
mkV2 = overload {
mkV2 : Str -> V2 = \s -> …
mkV2 : V -> Prep -> V2 = \s -> …
} ;
mkV3 = overload {
mkV3 : V -> V3 = \s -> …
mkV3 : V -> Prep -> Prep -> V3 = \s -> …
} ;
mkVV = overload {
mkVV : V -> VV = \s -> …
} ;
mkVA = overload {
mkVA : V -> VA = \s -> …
} ;
mkVQ = overload {
mkVQ : V -> VQ = \s -> …
} ;
mkVS = overload {
mkV : V -> VS = \s -> …
} ;
-- Etc. do the same for other V subcats (V2A, V2V, V2S, …)
-----
-}
-- If prepositions take case, add that as argument to mkPrep
mkPrep = overload {
mkPrep : Str -> Prep = \s -> lin Prep {s = s} ;
} ;
{-
mkConj = overload {
mkConj : (and : Str) -> Conj = \s -> …
mkConj : (either : Str) -> (or : Str) -> Conj = \s -> …
} ;
mkSubj = overload {
mkSubj : Str -> Subj = \s -> …
} ;
mkAdv = overload {
mkAdv : Str -> Adv = \s -> …
} ;
mkAdV = overload {
mkAdV : Str -> AdV = \s -> …
} ;
mkAdA = overload {
mkAdA : Str -> AdA = \s -> …
} ;
-}
--------------------------------------------------------------------------------
}

27
src/TEMPLATE/PhraseTMP.gf Normal file
View File

@@ -0,0 +1,27 @@
concrete PhraseTMP of Phrase = CatTMP ** open Prelude, ResTMP in {
lin
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
UttS s = s ;
{-
UttQS qs = qs ;
UttIAdv iadv = iadv ;
UttNP np =
UttIP ip =
UttImpSg pol imp = { s = pol.s ++ imp.s ! Sg ! pol.p } ;
UttImpPl pol imp =
UttImpPol pol imp = {s = pol.s ++ imp.s ! Sg ! pol.p} ;
UttVP vp = {s = linVP vp} ;
UttAP ap = { s = ap.s } ;
UttAdv adv = {s = } ;
UttCN n = {s = } ;
UttCard n = {s = } ;
UttInterj i = i ; -}
NoPConj = {s = []} ;
-- PConjConj conj = {s = conj.s1 ++ conj.s2 ! …} ;
NoVoc = {s = []} ;
-- VocNP np = { s = "," ++ np.s ! … } ;
}

105
src/TEMPLATE/QuestionTMP.gf Normal file
View File

@@ -0,0 +1,105 @@
concrete QuestionTMP of Question = CatTMP ** open
Prelude, ResTMP, ParadigmsTMP, (V=VerbTMP), (Noun=NounTMP), (S=StructuralTMP) in {
-- A question can be formed from a clause ('yes-no question') or
-- with an interrogative.
-- Interrogative pronouns can be formed with interrogative
-- determiners, with or without a noun.
{-
lin
-- : IDet -> CN -> IP ; -- which five songs
IdetCN idet cn = Noun.DetCN idet cn ** {
} ;
-- : IDet -> IP ; -- which five
IdetIP idet = Noun.DetNP idet ** {sp = idet.sp};
-- : IQuant -> Num -> IDet ; -- which (five)
IdetQuant iquant num = iquant ** {
} ;
-- : IP -> ClSlash -> QCl ; -- whom does John love
QuestSlash ip cls = cls ** {
} ;
-- : Cl -> QCl ;
QuestCl cl = cl ** {
};
-- : IP -> VP -> QCl ;
QuestVP ip cl = cl ** {
} ;
-- : IAdv -> Cl -> QCl ; -- why does John walk
QuestIAdv iadv cls = {
} ;
-- : IP -> IComp ;
CompIP ip = {s = ip.s ! } ; -- who (is it)
-- : IComp -> NP -> QCl ; -- where is John?
QuestIComp icomp np = {
} ;
-- Interrogative pronouns can be formed with interrogative
-- determiners, with or without a noun.
-- : IDet -> CN -> IP ; -- which five songs
IdetCN idet cn =
-- : IDet -> IP ; -- which five
IdetIP idet =
-- They can be modified with adverbs.
-- : IP -> Adv -> IP ; -- who in Paris
AdvIP = Noun.AdvNP ;
-- Interrogative quantifiers have number forms and can take number modifiers.
-- : IQuant -> Num -> IDet ; -- which (five)
IdetQuant = Noun.DetQuant ;
-- Interrogative adverbs can be formed prepositionally.
-- : Prep -> IP -> IAdv ; -- with whom
PrepIP prep ip =
-- They can be modified with other adverbs.
-- : IAdv -> Adv -> IAdv ; -- where in Paris
AdvIAdv iadv adv =
-- Interrogative complements to copulas can be both adverbs and
-- pronouns.
-- : IAdv -> IComp ;
CompIAdv iadv = iadv ; -- where (is it)
-- More $IP$, $IDet$, and $IAdv$ are defined in $Structural$.
-- Wh questions with two or more question words require a new, special category.
lincat
-- buy what where
QVP =
lin
-- : VPSlash -> IP -> QVP ; -- buys what
ComplSlashIP vps ip =
-- : VP -> IAdv -> QVP ; -- lives where
AdvQVP vp iadv =
-- : QVP -> IAdv -> QVP ; -- buys what where
AddAdvQVP qvp iadv =
-- : IP -> QVP -> QCl ; -- who buys what where
QuestQVP ip qvp =
-}
}

391
src/TEMPLATE/README.md Normal file
View File

@@ -0,0 +1,391 @@
# TEMPLATE
This is a starting point to clone a new RGL language. It has some pre-populated lincats and lins, mostly in the `Noun` module, but also a few minimal things for verbs and sentences. This README contains a guided tour of lincats and lins to implement first, and the modules also contain comments and suggestions aimed for new grammarians.
**If you want a 100% just strings template**, you can find that in [github.com/daherb/gf-rgl-template](https://github.com/daherb/gf-rgl-template). If you choose the string-only template, you can still read this document for suggestions about implementation order.
- [How to use this tutorial](#how-to-use-this-tutorial)
- [Guided tour: what to implement first?](#guided-tour-what-to-implement-first)
* [1. N-CN-NP(-AP)](#1-n-cn-np-ap)
+ [Already implemented](#already-implemented)
+ [Next steps](#next-steps)
- [More morphology](#more-morphology)
- [More syntax](#more-syntax)
+ [How about adjectives?](#how-about-adjectives)
+ [Side note: a word about MassNP](#side-note-a-word-about-massnp)
* [2. V-VP](#2-v-vp)
+ [Already implemented](#already-implemented-1)
+ [Next steps](#next-steps-1)
- [Add morphology](#add-morphology)
- [Add syntax](#add-syntax)
* [3. Cl-S-Utt-Phr](#3-cl-s-utt-phr)
+ [Already implemented](#already-implemented-2)
+ [Next steps](#next-steps-2)
- [Declarative sentences](#declarative-sentences)
- [Imperatives](#imperatives)
+ [Unused or nonexistent forms?](#unused-or-nonexistent-forms)
- [Choose your own adventure: what to implement next](#choose-your-own-adventure-what-to-implement-next)
* [Questions](#questions)
* [Adjectives](#adjectives)
* [Relative clauses](#relative-clauses)
* [Numerals](#numerals)
* [Conjunctions](#conjunctions)
+ [List without inflection table and single field](#list-without-inflection-table-and-single-field)
+ [List with inflection table and multiple fields](#list-with-inflection-table-and-multiple-fields)
+ [Inspiration from existing RGL languages](#inspiration-from-existing-rgl-languages)
* [Phrases](#phrases)
* [Idioms](#idioms)
* [Symbol](#symbol)
* [Extend](#extend)
- [Functions outside the API or otherwise lower priority](#functions-outside-the-api-or-otherwise-lower-priority)
# How to use this tutorial
If you haven't done so yet, clone your language from this template as instructed [here](../README.md#from-a-generic-template). The cloning doesn't include README.md, so there's only one copy of this README document.
You can open the grammar in a GF shell and see its functions as follows. (I'm using here the `TMP` concrete syntax, but you should have cloned it to some other concrete syntax with a different extension, so substitute as necessary.)
```
$ gf LangTMP.gf
Lang> gr -depth=6 | l -treebank
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumSg) (UseN blood_N)) (UseV die_V)))) NoVoc
LangTMP: the blood die
```
There are also a couple of unit tests in the [`unittest`](/unittest) directory. To see how to use them, see the [instructions](https://github.com/GrammaticalFramework/gf-rgl/tree/master/unittest#readme).
# Guided tour: what to implement first?
In this section, I group the RGL functions in clusters and suggest an implementation order. If you have different needs, e.g. you're making the resource grammar for a particular application and need specific RGL functions for that, feel free to prioritise your needs. I'm giving this list as a suggestion for people who just want something to start from.
## 1. N-CN-NP(-AP)
Most of these are in the Noun module. This is the cluster that has most work done in this template.
### Already implemented
With the following functions, it is possible to construct simple noun phrases.
- `DetCN`
- `DetQuant`
- `DefArt`, `IndefArt` (no problem if they are empty strings in your language!)
- `NumSg`, `NumPl`
- `MassNP`
- `UseN`
- `blood_N` (in Lexicon module)
You can see all NPs with the following command:
```bash
Lang> gt -cat=NP | l -treebank
```
### Next steps
#### More morphology
Check the categories and params in `ResTMP`: how well do they apply to your language? Is the initial implementation missing inflectional features that your language has, like case, gender/noun class, other numbers like dual?
If so, then I would suggest adding the missing morphology before implementing any new syntactic functions. Whenever you change a lincat, e.g. by making something that used to be a Str into an inflection table, all the lins that handle that lincat will break. So it's less painful to change the lincats when the amount of lins is still small.
#### More syntax
Once you're happy with the morphology, you can start with other lins and lincats. In addition to nouns, the RGL allows making NPs out of pronouns and proper nouns:
- lincat for `Pron`
- lin for `UsePron` and `PossPron`
- lin for some `Pron`s in Structural
- lincat for `PN`
- lin for `UsePN`
- lin for `john_PN` and `paris_PN` in Lexicon
You can also make the NPs a bit more varied by adding more quantifiers and modifiers:
- lins for more `Quant`s, `Det`s etc. in Structural
Some things in the Noun module will have to wait for other categories to be done. For instance, `AdjCN` relies on adjectives, `RelCN` on relatives, `NumCard` and `NumNumeral` on numerals, none of which is (properly) implemented in this template. So feel free to postpone the rest.
### How about adjectives?
In some languages, adjectives behave like nouns. In other languages, they behave like verbs. In yet other languages, the situation is more complicated. But if your language happens to be one where adjectives are like nouns, it's pretty cheap to just implement adjectives here as well. The minimal set is as follows:
- lincat for `A` and `AP`
- lin for some `A`s from Lexicon
- lin for `PositA` and `AdjCN`
But if adjectives are rather like verbs (e.g. Korean), or there are other complications (e.g. Zulu), just postpone their implementation.
### Side note: a word about MassNP
In the Noun module, there is a function called `MassNP : CN -> NP`. This is a *mass construction*, which is usually applied to mass nouns like "water".
However, the RGL does not contain a semantic distinction between mass and count nouns, and thus the `MassNP` function can be applied to any CN. Sometimes this results in semantically weird results.
As a resource grammarian, don't worry if `MassNP` applied to count nouns sounds weird. It's the application grammarian's problem to choose when to use MassNP and when DetCN. If `MassNP` sounds good when applied to mass nouns, then you're doing it right.
## 2. V-VP
### Already implemented
For verbs, we have much fewer things implemented: a single intransitive verb, and a function that elevates an intransitive verb into a VP.
* `UseV`
* `die_V` (in Lexicon module)
You can see all (=1) VPs with the following command.
```bash
Lang> gt -cat=VP | l -treebank
Langs: UseV die_V
LangTMP: die
```
### Next steps
#### Add morphology
Just like with nouns, look at the `VForm` param in the Res module, and add the missing inflectional features. If verbs are very complex in your language, it's fine to start with a smaller subset, e.g. only indicative mood, or only a couple of tenses.
Again, you should extend the `VForm` param, and change the lincats of `V` and `VP` in other ways, if needed. It is very common that the lincat for `VP` has many fields, so that it
In addition, you could implement some morphological paradigms, so that you can add some verbs in the lexicon.
#### Add syntax
In addition to intransitive verbs (`V`), the GF RGL has a large set of verb subcategories. So now you can start adding lincats to `V2` (direct object), `VV` (verbal complement), `VS` (sentence complement) etc.
The most important are the following:
- lincat for `V2` and `VPSlash`
- lin for some `V2`s from Lexicon
- lin for `SlashV2a` and `ComplSlash`
If you have done a thorough implementation on noun morphology, you might find it useful here. For instance, if verbs mark their arguments with cases, now is a great time to add those cases as *inherent* argument in the verbs. (For explanation on parametric vs. inherent, see [GF tutorial](https://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc54)).
Another way to make VPs is to use adjectives, noun phrases and adverbials as complements. If you haven't implemented adjectives yet, feel free to skip them at this step. But the other complements should be in reach already, so the next most important steps are the following:
- lincat for `Comp`
- lin for `CompNP`, (`CompAdv`) and `UseComp`
- (If you already have AP: lin for `CompAP`)
These functions don't care whether your language has an explicit copula or not. Just implement whatever strategy that it uses for non-V❋ predication.
In terms of word order, you could consider how adverbials attach to verbs.
## 3. Cl-S-Utt-Phr
At this level, there is rarely new morphology to be added, but there can be interesting decisions about e.g. word order or subordination.
### Already implemented
The following rarely need any changes. By the time an `Utt` is reached, the grammatical decisions should have been already made, and the lincats of `Utt` and `Phr` should be just `{s : Str}`.
- `PhrUtt`
- `NoPConj`, `NoVoc`
- `UttS`
The following functions, and the lincats they operate on, are implemented in the most naive only-strings way, and they need to be changed.
- `UseCl`
- `TTAnt`, `TPres`, `TPast`, `TFut`, `TCond`, `ASimul`, `AAnter`
- `PPos`, `PNeg`
- `PredVP`
### Next steps
#### Declarative sentences
If you have added verb inflection in the V❋ and VP categories, then you need to connect them to the Cl category. `PredVP : NP → VP → Cl` picks the correct person inflection from its VP argument, but any tense and polarity is still open. So in most languages, the lincat of `Cl` should have an inflection table, and only `UseCl : Temp → Pol → Cl → S` will choose the final form.
Sometimes even the lincat of `S` has an inflection table or it is discontinuous. That's because `S` can be used in a VP or an Adv, and in those cases, it may have a different word order or inflectional form than as standalone sentence.
If you're not sure whether the lincat of `S` should be still open for something, try to implement the following functions and see if it needs tweaking.
- `ComplVS : VS → S → VP`
- `SubjS : Subj → S → Adv`
#### Imperatives
In the Sentence module, there are also functions to construct imperatives. Depending on your language, it could be rather easy to implement them after you've added declarative sentences. But nothing depends on imperatives, so you can as well postpone them.
### Unused or nonexistent forms?
What if your language has no form that corresponds to e.g. future anterior negative (*won't have walked*)? That's fine, you can put some other form in that slot and move on.
What if your language has tenses, aspects, moods, politeness forms or any other inflection that isn't accessible via the core RGL? That's fine too, you can always create a language-specific extra module with functions that do access them. If you're working towards a specific application that needs such forms, then you should of course prioritise them. But if covering the core RGL that is in the API is the most important, feel free to postpone all the verbal inflection that is not accessible via the core.
# Choose your own adventure: what to implement next
If you've implemented the first 3 clusters, you already have a nice chunk of the RGL!
You have tackled many of the hard decisions, so it's natural that these things can take a long time, and you may need to revise often.
The following set doesn't have to be followed in any particular order.
## Questions
The Question module introduces interrogative noun phrases (`IP`) like *who* or *whose car*, and question clauses (`QCl`) and sentences (`QS`). Their implementation is often similar to that of noun phrases and declarative clauses and sentences.
Compared to declarative sentences, questions may require more variation in word order. You may need to make some fields discontinuous, e.g. splitting a single `s` field (e.g. *eat porridge*) of a VP into `verb` (*eat*) and `complement` (*porridge*).
The minimal set to get questions is the following:
- lincat for `QCl`
- lin for `QuestCl`
With these, you get yes/no questions, like "do you walk".
To get wh-questions, like "who walks", you first need the `IP` category for interrogative noun phrases. Here's a full set for wh-questions with the IP as a subject.
- lincat for `IP`, `IDet` and `IQuant`
- lin for `IDetCN`, `IdetQuant`
- lin for some `IQuant`s and `IP`s in Structural
- lin for `QuestVP`
The next thing to add is `IAdv` for interrogative adverbs, like "why" or "where". With these, you can ask questions like "why do you walk" and "where are you".
- lincat for `IAdv`
- lin for some `IAdv`s in Structural, and/or `PrepIP` in Question
- lin for `QuestIAdv`
- lincat for `IComp`
- lin for `CompIAdv`, `CompIP` and `QuestIComp`
Finally, we can also make a question using `IP` as an object, e.g. "who do you like". Where previously we have formed QCls from a normal VP with a special subject (`IP` instead of `NP`), here we introduce a new category `ClSlash`, which is a `Cl` missing an object. So you need the following:
- lincat for `ClSlash`
- lin for `QuestSlash`
## Adjectives
If you haven't implemented adjectives yet, it's about time! If your adjectives are more of the nouny type, I hope it's rather straightforward to do them. The minimal cluster is the following:
- lincat for `A` and `AP`
- lin for `PositA` and `AdjCN`
- lin for `CompAP`, check whether you have to update lincat for `Comp`
If adjectives behave like verbs, then the lincat for `Comp` and lin for `CompAP` can reuse the lincats and lins of the V-VP cluster. But `AdjCN` can be a bit difficult. Based on previous RGL languages that have verby adjectives, you get a lot of synergy with the Relative module. Basically, APs as modifiers behave just like relative clauses, so `AdjCN` and `RelCN` are similar or even identical.
## Relative clauses
These may be complicated, so feel free to postpone until further. But if your APs are verby, it makes sense to implement these in parallel with `AdjCN`, because you will need some way of making verby/clause-y things into modifiers.
## Numerals
There is a tentative lincat for numerals, and linearisations for the digits `D_0..D_9` and `n2..n9`, as well as the simple coercions `pot0`, `pot0as1`, `pot1as2`, `pot2as3` and `num`. However, it's possible that the simple lincat needs to be changed, and so I haven't implemented any of the lins that do something complex.
The numeral module the oldest piece of code in the RGL, and hence it looks pretty strange compared to the rest of the RGL. If you don't understand it, don't worryjust leave it aside until you have other parts implemented. Nothing depends on it, and in fact, I would recommend that your N-CN-NP cluster is solid before you do numerals, because then you know better which inflectional features are needed in numerals.
But eventually the time comes to tackle numerals. First tip is to check in https://github.com/GrammaticalFramework/gf-contrib/tree/master/numerals whether someone has already implemented them for your language, or a close relative that behaves similarly. Second tip is to look at the existing implementation of any RGL language that you know, and try to reverse engineer based on that. But even if these tips don't work, please submit your grammar to gf-rgl anyway! A grammar without full numeral implementation is much better than no grammar at all.
Once you have some kind of implementation of the Numeral module, you can connect it to the Noun module by implementing the following. The minimal meaningful set is these two:
- `NumNumeral : Numeral -> Card`
- `NumCard : Card -> Num`
With these, you get a `Num` that can be used in `DetQuant` to make a Det, and that unlocks numerals as determiners, like "two cats".
## Conjunctions
Conjunction for category X needs 4 things:
- lincat for `[X]`
- lin for `BaseX`
- lin for `ConsX`
- lin for `ConjX`
For example, if `X` is defined as
```haskell
lincat X = {s : Case => Str ; a : Agr} ;
```
then `[X]` will split its s field into two, and retain its other fields as is:
```haskell
lincat [X] = {s1,s2 : Case => Str ; a : Agr} ;
```
### List without inflection table and single field
Let's start with a simple case: Adv is of type `{s : Str}`. Then `[Adv]` is `{s1,s2 : Str}`.
`BaseAdv`, `ConsAdv` and `ConjAdv` can all use functions defined in [prelude/Coordination](../prelude/Coordination.gf):
```haskell
lin BaseAdv = twoSS ;
lin ConsAdv = consrSS comma ;
lin ConjAdv = conjunctSS ;
```
### List with inflection table and multiple fields
Let's take the previous example and call it NP. Our lincats are as follows:
```haskell
lincat
NP = {s : Case => Str ; a : Agr} ; -- in Cat
[NP] = {s1,s2 : Case => Str ; a : Agr} ; -- in Conjunction
```
Now we need to do a bit more work in our linearisations.
```haskell
lin
BaseNP x y = twoTable Case x y ** {a = conjAgr x.a y.a} ;
oper
conjAgr : Agr -> Agr -> Agr ;
conjAgr agr1 agr2 = -- TODO actual implementation
```
First, we use the [twoTable](https://github.com/GrammaticalFramework/gf-rgl/blob/master/src/prelude/Coordination.gf#L57-L60) oper from Coordination, which puts the right values in the right fields.
But it doesn't deal with the rest of the fields, `g : Agr` in our case, and so we need to put it in manually. That's what happens in the *record extension* with the two stars. To combine two Agrs into one Agr, we define an oper `conjAgr`, that takes two Agrs and returns their combination.
Then let's do the rest of the linearisations.
```haskell
lin
ConsNP x xs = consrTable NPCase comma x xs ** {a = conjAgr xs.a x.a} ;
ConjNP conj xs = conjunctDistrTable NPCase conj xs ** {
a = -- xs.a, with possible Number input from the Conj
} ;
```
ConsNP is similar to BaseNP, except that we will now include the separator character. `comma` is defined as the string "," in Prelude, but other languages use other characters, e.g. **、** in Chinese.
ConjNP puts together a NP from the list of NPs, using a conjunction: "Inari, Krasimir and Aarne". This resulting NP has to also have an `a` field, and in this final stage, we are putting together the `conjAgr` from all the arguments, and also taking into account the Conj itself. For instance, in [English style guides](https://editorsmanual.com/articles/compound-subject-singular-or-plural/),
> Two or more nouns joined by and form a plural compound subject, which takes plural verbs. But when a compound subject contains or or nor, the verb should agree with the part of the subject closest to it.
So in the English resource grammar, `and_Conj` has an inherent number Pl, and `or_Conj` has an inherent number Sg. If your language doesn't do that, then it's just the list of NPs that determines the agreement of the resulting coordinated NP.
### Inspiration from existing RGL languages
Most existing RGL languages use the Coordination module and its opers that are rather cryptic. Sometimes you can copy and paste an existing RGL language, just adjust the arity of the opers (e.g. call `twoTable3` instead of `twoTable2`) and which `param`s are given to those opers as argument. Other times you need to do more manual tweaking.
Here are some examples of [coordination strategies that are more complex than English](https://inariksit.github.io/gf/2021/02/22/lists.html#natural-language-strategies-beyond-a-b-and-c). The more your language differs from English, the more work you need to do in the internal params.
Some of the categories that have list instances may not be able to coordinate in your language. In such a case, you can decide whether to leave it unimplemented (thus trying to use it via the API gives an exception), or linearise something ungrammatical.
## Phrases
In the Phrase module, there are functions that create standalone utterances of multiple RGL categories. They are usually rather easy to implement: the `Utt` category should be just a `{s : Str}`, and the task is to decide which of the inflection forms is the standalone form.
## Idioms
The Idiom module defines constructions that are formed in idiosyncratic ways. Examples of its constructions are impersonal and generic clauses ("it is warm") and clefts ("it is John who sleeps"). This module is not a dependency of any other module, and its constructions are less frequent than the core modules like Noun and Verb. So this can be done whenever you like.
## Symbol
The Symbol module (exported in the API as Symbolic) is used for embedding symbolic notation in natural-language text, e.g. "level 4". This module is not a dependency of any other, and it mostly depends on Noun. So it can be done any time after the N-CN-NP cluster is solid.
## Extend
As the name suggests, this is an extension and not in the API. See [here](https://inariksit.github.io/gf/2021/02/15/rgl-api-core-extensions.html#extend) for more explanation.
In my experience, the generalisations of VP are useful: `VPS` (VP with a tense and polarity), `VPI` (infinitival VP) and their transitive counterparts `VPS2` and `VPI2`. With these, you can do VP conjunctions, like "she runs and sings", "to eat and sleep".
Extend is a rather large module, and not all funs have meaningful lins in all languages. So don't feel pressured to fill Extend all at once; often grammarians just add linearisations when the need arises for a particular structure.
# Functions outside the API or otherwise lower priority
What is low or high priority depends on the application. But if you want some general guidelines, these are usually less used, or not in the API at all.
### Not in the API
- The category DAP + its functions
- CountNP, PossNP, PartNP
- OrdNumeralSuperl
- List instance for CN
TODO: continue the list
### Expensive
- `SlashV2VNP` is often expensive, because it has so many arguments.
For any function that turns out to be expensive, you can comment it out when implementing other parts of the grammar.
###

View File

@@ -0,0 +1,24 @@
concrete RelativeTMP of Relative = CatTMP ** open
ResTMP, Prelude in {
{-
lin
-- : Cl -> RCl ; -- such that John loves her
RelCl cl = cl ** {
} ;
-- : RP -> VP -> RCl ;
RelVP rp vp = {
} ;
-- : RP -> ClSlash -> RCl ; -- who I went with
RelSlash rp cls = {
} ;
-- : RP ;
IdRP = {s = "that"} ;
-- : Prep -> NP -> RP -> RP ; -- the mother of whom
FunRP prep np rp =
-}
}

296
src/TEMPLATE/ResTMP.gf Normal file
View File

@@ -0,0 +1,296 @@
resource ResTMP = open Prelude, Predef in {
--------------------------------------------------------------------------------
-- General notes
-- ** Naming **
{-
I'm using the naming scheme for lincats and opers as explained here:
https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#my-naming-scheme-for-lincats-and-opers
-}
-- ** File structure **
-- The rest of this module is organised as follows:
-----------------------------
-- Grammatical categor(y|ies)
{-
General comments on the cat(s)
params related to the cat(s)
opers related to the cat(s)
-}
--------------------------------------------------------------------------------
-- Nouns
{-The param Number comes from common/ParamX, and has the values Sg and Pl.
* If your language doesn't have number, remove Number from all records.
* If your language has number with more than 2 values, define your own number in this module
(e.g. uncomment line 56) and use that Number instead of Number.
The param Gender is defined here, and has the values Gender1 and Gender2.
Currently it's only as a suggestion to be an inherent field in LinN.
* If your language doesn't have gender, remove Gender from all records.
* If your language has genders/noun classes, replace the placeholder Gender1 and Gender1
with the actual values of your language (there can be more than 2!), and uncomment
the g : Gender field from the definition of LinN.
If your nouns inflect in more things, like case, you can do one of the following
* Replace the placeholder cases on line 53 and make the table 2-dimensional, like this:
oper LinN : Type = {s : Number => Case => Str ; …} ;
* Make your own parameter that combines all the relevant features, like this:
param NForm = Whatever | You | Need | For | Noun | Inflection ;
oper LinN : Type = {s : NForm => Str ; …} ;
This can be a good idea, if your inflection table has some gaps, i.e. not all combinations are in use
See https://gist.github.com/inariksit/708ab9df2498e88bc63aedf5fc7be2f3#file-tables-gf-L48-L122 for explanation
-}
param
Gender = Gender1 | Gender2 ; -- Just a placeholder, see lines 34-39 above
Case = Case1 | Case2 | Case3 ; -- Just a placeholder, see lines 41-48 above
Number = Sg
| Pl
-- | Dual -- If your language has numbers other than Sg and Pl, add them to the parameter
;
Person = P1 | P2 | P3 ;
oper
LinN : Type = {
s :
-- Case => -- uncomment if your language has case
Number => -- variable number: table {Sg => "house" ; Pl => "houses"}
Str ;
-- g : Gender ; -- inherent gender/noun class, if your language has that
} ;
-- Most often, the lincat for CN is the same as N, with possibly some additional fields.
-- However, sometimes you need more fields than just the s field, e.g. to keep word order flexible, or to add clitics and make sure they attach to the head, not modifiers.
-- If you don't know what the previous line means, you can get started with just a single s field.
-- You'll notice later whether you need such a field or not.
LinCN : Type = LinN
-- ** {postmod/premod/… : Str} -- if needed
;
LinPN : Type = {
s : Str ;
n : Number ; -- Proper nouns often have already an inherent number; you don't usually say "a Paris / many Parises"
-- g : Gender ; -- inherent gender/noun class, if your language has that
} ;
-- For inflection paradigms, see http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc56
mkNoun : Str -> LinN = \str -> {
s = table {
_ => str -- TODO: actual morphology
} ;
-- If your nouns have gender, it should come here as inherent field.
-- Usually you need to give the gender as an argument to mkNoun.
} ;
linCN : LinCN -> Str = \cn -> cn.s ! Sg
-- ++ cn.postmod -- If there is another field, use here
;
---------------------------------------------
-- Numeral
-- Used in NumeralTMP
param
CardOrd = NCard | NOrd ;
oper
LinNumeral : Type = {s : CardOrd => Str ; n : Number} ;
mkNumeral : Str -> LinNumeral = \s -> {
s = table {
NCard => s ;
NOrd => s + "th"
} ;
n = Pl ; -- NB. probably singular for number 1
} ;
---------------------------------------------
-- Pronoun
{-The param Person comes from common/ParamX, and has the values P1, P2 and P3.
* If your language doesn't inflect in person, you may be able to remove Person from all records.
- However, consider if it's really never present? How about e.g. reflexive ("myself", "yourself" etc?)
* If your language is more fine-grained than {P1,P2,P3} x {Sg,Pl} (for instance gender and familiarity),
you can define your own param. We provide an example called Agr to take inspiration from—remove if
not needed, or use and refine if needed.
-}
param
-- These params are just for inspiration, not used anywhere currently.
Agr = SgP1 -- I
| SgP2 Politeness -- e.g. tū, tum, āp (Hindi) — note that the verb really inflects differently for all three!
| SgP3 Gender -- e.g. he, she (verb inflects the same, but distinction in reflexive: himself / herself)
| FillInTheRestYourself ;
Politeness = Intimate | Familiar | Polite ;
oper
LinPron : Type = {
s : Str ;
-- Alternative if your language has case and pronouns inflect in case (e.g. English I/me/my, she/her/hers)
-- s : Case => Str ;
n : Number ;
p : Person ;
-- Alternative to the `n` and `p` fields:
-- a : Agr -- sketched above, lines 97-103
} ;
mkPron : (_ : Str) -> Person -> Number -> LinPron = \str,per,num -> {
s = str ;
{- If there is case inflection, you need a table here
table {
_ => str -- Pronoun inflection is often irregular, so possibly this constructor requires several forms as argument, even if mkNoun is nice and regular
} ;
-}
p = per ;
n = num
} ;
---------------------------------------------
-- NP
{-
In the RGL, a NP may come from a common noun, proper noun or pronoun.
Pronouns are the only ones that have an inherent person (nouns are almost always 3rd person! please give me counterexamples if you can think of any.)
So we can often say that NP's lincat is the same as Prons.
NB. for later, when you want to make Pron into possessives, you may need more fields in LinPron than in LinNP.
That's why I'm copying over the definition below, instead of the neater `LinNP : Type = LinPron`.
-}
LinNP : Type = {
s : Str ;
-- Alternative: If anything inflects in case (nouns, pronouns), NP has to also inflect in case!
-- s : Case => Str ;
n : Number ;
p : Person ;
-- Alternative to the `n` and `p` fields:
-- a : Agr -- sketched on lines 97-101
} ;
linNP : LinNP -> Str = \np -> np.s ; -- Change when you change LinNP
emptyNP : LinNP = { -- Change when you change LinNP
s = [] ;
n = Sg ;
p = P3 ;
} ;
--------------------------------------------------------------------------------
-- Det, Quant, Card, Ord
-- If your language has a number, it is very very very likely that
-- Quant has a variable number and Det has inherent number.
LinQuant : Type = {
s, -- quantifier in a context, e.g. 'this (cat) (is nice)'
sp -- quantifier as standalone, e.g. 'this (is nice)'
: Number => Str ;
} ;
LinDet : Type = {
s : Str ;
n : Number ;
} ;
-- Can you reuse your mkNoun? Do nouns and quantifiers inflect the same way?
mkQuant : Str -> Str -> LinQuant = \this, these -> {
s,
sp = table {
Sg => this ;
Pl => these } ;
};
mkDet : Str -> Number -> LinDet = \str, num -> {
s = str ;
n = num
} ;
--------------------------------------------------------------------------------
-- Adpositions
{- The main use of Prep is in the fun
PrepNP : Prep -> NP -> Adv
Despite the name of the RGL category, a 'Prep' can be a preposition, postposition,
or just an instruction to choose a particular case from the NP.
A language may use one, two or all these strategies.
-}
oper
LinPrep : Type = {
s : Str ;
-- If your language has cases, and different prepositions choose different cases.
-- c2 : Case ;
-- If your language has both pre- and postpositions, you need an inherent parameter in Prep to record which one a given Prep is.
-- position : PreOrPost ;
} ;
--------------------------------------------------------------------------------
-- Adjectives
LinA : Type = SS ;
LinA2 : Type = LinA ;
mkAdj : Str -> LinA = \str -> {s = str} ;
AdjPhrase : Type = LinA ; -- ** {compar : Str} ;
--------------------------------------------------------------------------------
-- Verbs
param
VForm = TODOVF Number Person ;
oper
LinV : Type = {
s : VForm => Str
} ;
LinV2 : Type = LinV ** {
c2 : LinPrep ;
} ;
mkVerb : Str -> LinV = \str -> {
s = table {
_ => str
}
} ;
copula : LinV = {s = \\_ => "TODO: copula"} ; -- often useful
------------------
-- VP
LinVP : Type = {
s : VForm => Str ;
} ;
LinVPSlash : Type = LinVP ** {
c2 : LinPrep ;
} ;
linVP : LinVP -> Str = \vp -> vp.s ! TODOVF Sg P3 ;
--------------------------------------------------------------------------------
-- Cl, S
-- Operations for clauses, sentences
LinCl : Type = {
subj : Str ;
pred : Str ; -- TODO: depend on Temp and Pol
} ;
linCl : LinCl -> Str = \cl -> cl.subj ++ cl.pred ;
}

View File

@@ -0,0 +1,76 @@
concrete SentenceTMP of Sentence = CatTMP ** open
TenseX, ResTMP, (AM=AdverbTMP), Prelude in {
flags optimize=all_subs ;
lin
--2 Clauses
-- : NP -> VP -> Cl
PredVP np vp = {
subj = np.s ; -- ! Nom, if there are cases
pred =
-- table {something with tense+polarity =>
vp.s ! TODOVF np.n np.p
-- TODO: all of the VP's tense and polarity should be open here!
-- PredVP only decides the subject.
-- }
} ;
{-
-- : SC -> VP -> Cl ; -- that she goes is good
PredSCVP sc vp = ;
--2 Clauses missing object noun phrases
-- : NP -> VPSlash -> ClSlash ;
SlashVP =
-- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
AdvSlash cls adv =
-- : Cl -> Prep -> ClSlash ; -- (with whom) he walks
SlashPrep cl prep = cl ** {c2 = prep} ;
-- Imperatives
-- : VP -> Imp ;
ImpVP vp =
--2 Embedded sentences
-- : S -> SC ;
EmbedS s =
-- : QS -> SC ;
EmbedQS qs =
-- : VP -> SC ;
EmbedVP vp =
-}
--2 Sentences
-- : Temp -> Pol -> Cl -> S ;
UseCl t p cl = {
s = cl.subj ++ t.s ++ p.s ++ cl.pred -- ! t.t ! p.p -- eventually
} ;
{-
-- : Temp -> Pol -> QCl -> QS ;
UseQCl t p cl =
-- : Temp -> Pol -> RCl -> RS ;
UseRCl t p cl =
-- AdvS : Adv -> S -> S ; -- then I will go home
AdvS adv s =
-- ExtAdvS : Adv -> S -> S ; -- next week, I will go home
ExtAdvS adv s =
-- : S -> Subj -> S -> S ;
SSubjS s1 subj s2 =
-- : S -> RS -> S ; -- she sleeps, which is good
RelS sent rs =
-}
}

View File

@@ -0,0 +1,171 @@
concrete StructuralTMP of Structural = CatTMP **
open Prelude, ResTMP, (Noun=NounTMP), ParadigmsTMP in {
-------
-- Ad*
{-
lin almost_AdA =
lin almost_AdN =
lin at_least_AdN =
lin at_most_AdN =
lin so_AdA =
lin too_AdA =
lin very_AdA =
lin as_CAdv =
lin less_CAdv =
lin more_CAdv =
lin how8much_IAdv =
lin when_IAdv =
lin how_IAdv =
lin where_IAdv =
lin why_IAdv =
lin always_AdV = ss "" ;
lin everywhere_Adv = ss "" ;
lin here7from_Adv = ss "" ;
lin here7to_Adv = ss "" ;
lin here_Adv = ss "" ;
lin quite_Adv = ss "" ;
lin somewhere_Adv = ss "" ;
lin there7from_Adv = ss "" ;
lin there7to_Adv = ss "" ;
lin there_Adv = ss "" ;
-}
-------
-- Conj
-- The lincat of Conj is Coordination.ConjunctionDistr ** {n:Number}
-- which means that there are two fields for the strings, and
-- n:Number which specifies the number of the resulting NP.
lin and_Conj = {s1 = [] ; s2 = "and" ; n = Pl} ;
-- lin or_Conj =
-- lin if_then_Conj =
lin both7and_DConj = {s1 = "both" ; s2 = "and" ; n = Pl} ;
-- lin either7or_DConj =
-- lin but_PConj =
-- lin otherwise_PConj =
-- lin therefore_PConj =
-----------------
-- *Det and Quant
{-
lin how8many_IDet =
lin every_Det =
lin all_Predet = {s = ""} ;
lin not_Predet = { s = "" } ;
lin only_Predet = { s = "" } ;
lin most_Predet = {s = ""} ;
lin few_Det = R.indefDet "" pl ;
lin many_Det = R.indefDet "" pl ;
lin much_Det = R.indefDet "" sg ;
lin somePl_Det =
lin someSg_Det =
lin no_Quant =
lin that_Quant = mkQuant "" ;
lin this_Quant = mkQuant "" ;
lin which_IQuant = mkQuant "" ;
-----
-- NP
lin somebody_NP =
lin everybody_NP =
lin everything_NP =
lin nobody_NP =
lin nothing_NP =
lin somebody_NP =
lin something_NP =
-------
-- Prep
lin above_Prep = mkPrep "" ;
lin after_Prep = mkPrep "" ;
lin before_Prep = mkPrep "" ;
lin behind_Prep = mkPrep "" ;
lin between_Prep = = mkPrep "" ;
lin by8agent_Prep = mkPrep "" ;
lin by8means_Prep = mkPrep "" ;
lin during_Prep = mkPrep "" ;
lin except_Prep = mkPrep "" ;
lin for_Prep = mkPrep "" ;
lin from_Prep = mkPrep "" ;
lin in8front_Prep = mkPrep "" ;
lin in_Prep = mkPrep "" ;
lin on_Prep = mkPrep "" ;
lin part_Prep = mkPrep ;
lin possess_Prep = mkPrep "" ;
lin through_Prep = mkPrep "" ;
lin to_Prep = mkPrep "k" ;
lin under_Prep = mkPrep "" ;
lin with_Prep = mkPrep "" ;
lin without_Prep = mkPrep "" ;
-------
-- Pron
-- Pronouns are closed class, no constructor in ParadigmsTMP.
lin it_Pron =
lin i_Pron =
lin youPol_Pron =
lin youSg_Pron =
lin he_Pron =
lin she_Pron =
lin we_Pron =
lin youPl_Pron =
lin they_Pron =
lin whatPl_IP =
lin whatSg_IP =
lin whoPl_IP =
lin whoSg_IP =
-------
-- Subj
lin although_Subj =
lin because_Subj =
lin if_Subj =
lin that_Subj =
lin when_Subj =
------
-- Utt
lin language_title_Utt = ss "" ;
lin no_Utt = ss "" ;
lin yes_Utt = ss "" ;
-------
-- Verb
lin have_V2 =
lin can8know_VV = -- can (capacity)
lin can_VV = -- can (possibility)
lin must_VV =
lin want_VV =
------
-- Voc
lin please_Voc = ss "" ;
-}
}

73
src/TEMPLATE/SymbolTMP.gf Normal file
View File

@@ -0,0 +1,73 @@
--# -path=.:../abstract:../common:../prelude
concrete SymbolTMP of Symbol = CatTMP **
open Prelude, ParadigmsTMP, ResTMP, (Noun=NounTMP) in {
lin
-- : Symb -> PN ; -- x
SymbPN i = mkPN_onRuntimeToken i.s ;
-- : Int -> PN ; -- 27
IntPN i = mkPN_onRuntimeToken i.s ;
-- : Float -> PN ; -- 3.14159
FloatPN i = mkPN_onRuntimeToken i.s ;
-- : Card -> PN ; -- twelve [as proper name]
NumPN i = mkPN_onRuntimeToken (i.s ! NCard) ;
lin
-- CNIntNP cn i = {} ;
-- : Det -> CN -> [Symb] -> NP ; -- (the) (2) numbers x and y
CNSymbNP det cn xs =
let cnSymb : CN = cn ** {postmod = cn.postmod ++ xs.s}
in Noun.DetCN det cnSymb ;
-- : CN -> Card -> NP ; -- level five ; level 5
CNNumNP cn i =
let cnSymb : CN = cn ** {postmod = cn.postmod ++ i.s}
in Noun.MassNP cnSymb ;
-- : Symb -> S ;
SymbS sy = sy ;
-- : Symb -> Card ;
SymbNum sy = mkNumeral_onRuntimeToken sy.s ;
-- : Symb -> Ord ;
SymbOrd sy = sy ; ---- TODO: nothing added to it. Lincat of Ord is just SS from the beginning.
oper
-- To make Card or PN from a runtime argument, cannot use the single + operation.
-- See https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#unsupported-token-gluing
mkNumeral_onRuntimeToken : Str -> LinNumeral = \str -> {
s = table {
NCard => str ;
NOrd => str ++ BIND ++ "th"
} ;
n = Pl ; -- NB. probably singular for number 1
} ;
mkPN_onRuntimeToken : Str -> LinPN = \str -> {
s =
-- table {_ => -- If lincat of PN changes so that it's an inflection table, uncomment this
str
-- }
;
n = Sg ;
} ;
lincat
Symb, [Symb] = SS ;
lin
MkSymb s = s ;
BaseSymb = infixSS "and" ; -- this comes between the last two ones
ConsSymb = infixSS "," ;
}

114
src/TEMPLATE/VerbTMP.gf Normal file
View File

@@ -0,0 +1,114 @@
concrete VerbTMP of Verb = CatTMP ** open ResTMP, AdverbTMP, Prelude in {
lin
-----
-- VP
-- : V -> VP
-- NB. assumes that lincat V = lincat VP
-- This will most likely change when you start working with VPs
UseV v = v ;
{-
-- : V2 -> VP ;
PassV2 v2 =
-- : VPSlash -> VP ;
ReflVP vps =
-- : VV -> VP -> VP ;
ComplVV vv vp =
-- : VS -> S -> VP ;
ComplVS vs s =
-- : VQ -> QS -> VP ;
ComplVQ vq qs =
-- : VA -> AP -> VP ;
ComplVA va ap =
-- : Comp -> VP ;
UseComp comp =
-}
--------
-- Slash
{-
-- : V2 -> VPSlash
SlashV2a v2 =
-- : V3 -> NP -> VPSlash ; -- give it (to her)
Slash2V3 v3 dobj =
-- : V3 -> NP -> VPSlash ; -- give (it) to her
Slash3V3 v3 iobj =
SlashV2A v2 adj =
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
SlashV2S v2s s =
-- : V2V -> VP -> VPSlash ; -- beg (her) to go
SlashV2V v2v vp = ;
-- : V2Q -> QS -> VPSlash ; -- ask (him) who came
SlashV2Q v2q qs = ;
-- : V2A -> AP -> VPSlash ; -- paint (it) red
SlashV2A v2a ap = ;
-- : VPSlash -> NP -> VP
-- Often VPSlash has a field called c2, which is used to pick right form of np complement
ComplSlash vps np = vps ** {
compl = np.s ! vps.c2
} ;
-- : VV -> VPSlash -> VPSlash ;
SlashVV vv vps = ComplVV vv vps ** {
} ;
-- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
SlashV2VNP v2v np vps =
-- : VP -> Adv -> VP ; -- sleep here
AdvVP vp adv =
-- : AdV -> VP -> VP ; -- always sleep
AdVVP adv vp =
-- : VPSlash -> Adv -> VPSlash ; -- use (it) here
AdvVPSlash = insertAdv ;
-- : VP -> Adv -> VP ; -- sleep , even though ...
ExtAdvVP vp adv = ;
-- : AdV -> VPSlash -> VPSlash ; -- always use (it)
AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ;
-- : VP -> Prep -> VPSlash ; -- live in (it)
VPSlashPrep vp prep = vp ** {c2 = prep} ;
--2 Complements to copula
-- Adjectival phrases, noun phrases, and adverbs can be used.
-- : AP -> Comp ;
CompAP ap =
-- : CN -> Comp ;
CompCN cn =
-- NP -> Comp ;
CompNP np =
-- : Adv -> Comp ;
CompAdv adv =
-- : VP -- Copula alone;
UseCopula =
-}
}

View File

@@ -0,0 +1,9 @@
-----------------------------------
-- Just some simple noun phrases --
-----------------------------------
Lang: DetCN (DetQuant IndefArt NumSg) (UseN blood_N)
LangTMP: a blood
Lang: DetCN (DetQuant DefArt NumSg) (UseN blood_N)
LangTMP: the blood

View File

@@ -0,0 +1,7 @@
--------------------------------
-- Just some simple sentences --
--------------------------------
-- Replace with some tests that make sense for your language!
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumSg) (UseN blood_N)) (UseV die_V)))) NoVoc
LangTMP: the blood die

View File

@@ -93,6 +93,7 @@ abstract Cat = Common ** {
Numeral ; -- cardinal or ordinal in words e.g. "five/fifth" Numeral ; -- cardinal or ordinal in words e.g. "five/fifth"
Digits ; -- cardinal or ordinal in digits e.g. "1,000/1,000th" Digits ; -- cardinal or ordinal in digits e.g. "1,000/1,000th"
Decimal ; -- decimal number e.g. "1/2/3.14/-1"
--2 Structural words --2 Structural words
@@ -126,7 +127,10 @@ abstract Cat = Common ** {
N ; -- common noun e.g. "house" N ; -- common noun e.g. "house"
N2 ; -- relational noun e.g. "son" N2 ; -- relational noun e.g. "son"
N3 ; -- three-place relational noun e.g. "connection" N3 ; -- three-place relational noun e.g. "connection"
PN ; -- proper name e.g. "Paris" GN ; -- given name e.g. "George"
SN ; -- second name e.g. "Washington"
LN ; -- location name e.g. "Sweden"
PN ; -- proper name
-- DEPRECATED: QuantSg, QuantPl -- DEPRECATED: QuantSg, QuantPl
--- QuantSg ;-- quantifier ('nucleus' of sing. Det) e.g. "every" --- QuantSg ;-- quantifier ('nucleus' of sing. Det) e.g. "every"

View File

@@ -44,4 +44,8 @@ abstract Common = {
Pol ; -- polarity e.g. positive, negative Pol ; -- polarity e.g. positive, negative
Ant ; -- anteriority e.g. simultaneous, anterior Ant ; -- anteriority e.g. simultaneous, anterior
--2 Measures
MU ; -- unit of measurement e.g. "km", "cm", "%"
} }

View File

@@ -13,6 +13,10 @@ fun
InflectionN : N -> Inflection ; InflectionN : N -> Inflection ;
InflectionN2 : N2 -> Inflection ; InflectionN2 : N2 -> Inflection ;
InflectionN3 : N3 -> Inflection ; InflectionN3 : N3 -> Inflection ;
InflectionPN : PN -> Inflection ;
InflectionLN : LN -> Inflection ;
InflectionGN : GN -> Inflection ;
InflectionSN : SN -> Inflection ;
InflectionA : A -> Inflection ; InflectionA : A -> Inflection ;
InflectionA2 : A2 -> Inflection ; InflectionA2 : A2 -> Inflection ;
InflectionV : V -> Inflection ; InflectionV : V -> Inflection ;
@@ -27,6 +31,9 @@ fun
InflectionV2Q : V2Q -> Inflection ; InflectionV2Q : V2Q -> Inflection ;
InflectionV2A : V2A -> Inflection ; InflectionV2A : V2A -> Inflection ;
InflectionAdv : Adv -> Inflection ; InflectionAdv : Adv -> Inflection ;
InflectionAdV : AdV -> Inflection ;
InflectionAdA : AdA -> Inflection ;
InflectionAdN : AdN -> Inflection ;
InflectionPrep : Prep -> Inflection ; InflectionPrep : Prep -> Inflection ;
fun fun

View File

@@ -27,9 +27,11 @@ abstract Extend = Cat ** {
CompBareCN : CN -> Comp ; -- (is) teacher CompBareCN : CN -> Comp ; -- (is) teacher
PiedPipingQuestSlash : IP -> ClSlash -> QCl ; -- with whom does John live
PiedPipingRelSlash : RP -> ClSlash -> RCl ; -- with whom John lives
StrandQuestSlash : IP -> ClSlash -> QCl ; -- whom does John live with StrandQuestSlash : IP -> ClSlash -> QCl ; -- whom does John live with
StrandRelSlash : RP -> ClSlash -> RCl ; -- that he lives in StrandRelSlash : RP -> ClSlash -> RCl ; -- that he lives with
EmptyRelSlash : ClSlash -> RCl ; -- he lives in EmptyRelSlash : ClSlash -> RCl ; -- he lives with
-- $VP$ conjunction, separate categories for finite and infinitive forms (VPS and VPI, respectively) -- $VP$ conjunction, separate categories for finite and infinitive forms (VPS and VPI, respectively)
@@ -47,6 +49,7 @@ abstract Extend = Cat ** {
PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep] PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep]
SQuestVPS : NP -> VPS -> QS ; -- has she walked SQuestVPS : NP -> VPS -> QS ; -- has she walked
QuestVPS : IP -> VPS -> QS ; -- who has walked QuestVPS : IP -> VPS -> QS ; -- who has walked
RelVPS : RP -> VPS -> RS ; -- which won't sleep
-- existentials that work in the absence of Cl -- existentials that work in the absence of Cl
ExistS : Temp -> Pol -> NP -> S ; -- there was a party ExistS : Temp -> Pol -> NP -> S ; -- there was a party
@@ -69,11 +72,20 @@ abstract Extend = Cat ** {
MkVPS2 : Temp -> Pol -> VPSlash -> VPS2 ; -- has loved MkVPS2 : Temp -> Pol -> VPSlash -> VPS2 ; -- has loved
ConjVPS2 : Conj -> [VPS2] -> VPS2 ; -- has loved and now hates ConjVPS2 : Conj -> [VPS2] -> VPS2 ; -- has loved and now hates
ComplVPS2 : VPS2 -> NP -> VPS ; -- has loved and now hates that person ComplVPS2 : VPS2 -> NP -> VPS ; -- has loved and now hates that person
ReflVPS2 : VPS2 -> RNP -> VPS ; -- have loved and now hate myself and my car
MkVPI2 : VPSlash -> VPI2 ; -- to love MkVPI2 : VPSlash -> VPI2 ; -- to love
ConjVPI2 : Conj -> [VPI2] -> VPI2 ; -- to love and hate ConjVPI2 : Conj -> [VPI2] -> VPI2 ; -- to love and hate
ComplVPI2 : VPI2 -> NP -> VPI ; -- to love and hate that person ComplVPI2 : VPI2 -> NP -> VPI ; -- to love and hate that person
-- Conjunction of copula complements
cat [Comp]{2} ;
fun ConjComp : Conj -> ListComp -> Comp ;
-- Conjunction of imperatives
cat [Imp] {2} ;
fun ConjImp : Conj -> ListImp -> Imp ;
fun fun
ProDrop : Pron -> Pron ; -- unstressed subject pronoun becomes empty: "am tired" ProDrop : Pron -> Pron ; -- unstressed subject pronoun becomes empty: "am tired"
@@ -116,6 +128,11 @@ abstract Extend = Cat ** {
ProgrVPSlash : VPSlash -> VPSlash; ProgrVPSlash : VPSlash -> VPSlash;
-- construct VPSlash from A2 and N2
A2VPSlash : A2 -> VPSlash ; -- is married to (that person)
N2VPSlash : N2 -> VPSlash ; -- is a mother of (that person)
-- existential for mathematics -- existential for mathematics
ExistsNP : NP -> Cl ; -- there exists a number / there exist numbers ExistsNP : NP -> Cl ; -- there exists a number / there exist numbers
@@ -126,7 +143,7 @@ abstract Extend = Cat ** {
ExistMassCN : CN -> Cl ; -- there is beer / there is no beer ExistMassCN : CN -> Cl ; -- there is beer / there is no beer
ExistPluralCN : CN -> Cl ; -- there are trees / there are no trees ExistPluralCN : CN -> Cl ; -- there are trees / there are no trees
-- generalisation of existential, with adverb as a parameter -- generalisation of existential, with adverb as an argument
AdvIsNP : Adv -> NP -> Cl ; -- here is the tree / here are the trees AdvIsNP : Adv -> NP -> Cl ; -- here is the tree / here are the trees
AdvIsNPAP : Adv -> NP -> AP -> Cl ; -- here are the instructions documented AdvIsNPAP : Adv -> NP -> AP -> Cl ; -- here are the instructions documented
@@ -184,6 +201,15 @@ abstract Extend = Cat ** {
PredetRNP : Predet -> RNP -> RNP ; -- all my brothers PredetRNP : Predet -> RNP -> RNP ; -- all my brothers
AdvRNP : NP -> Prep -> RNP -> RNP ; -- a dispute with his wife
AdvRVP : VP -> Prep -> RNP -> VP ; -- lectured about her travels
AdvRAP : AP -> Prep -> RNP -> AP ; -- adamant in his refusal
ReflA2RNP : A2 -> RNP -> AP ; -- indifferent to their surroundings
-- NOTE: generalizes ReflA2
PossPronRNP : Pron -> Num -> CN -> RNP -> NP ; -- his abandonment of his wife and children
ConjRNP : Conj -> RNPList -> RNP ; -- my family, John and myself ConjRNP : Conj -> RNPList -> RNP ; -- my family, John and myself
Base_rr_RNP : RNP -> RNP -> RNPList ; -- my family, myself Base_rr_RNP : RNP -> RNP -> RNPList ; -- my family, myself
@@ -193,6 +219,9 @@ abstract Extend = Cat ** {
Cons_nr_RNP : NP -> RNPList -> RNPList ; -- John, my family, myself Cons_nr_RNP : NP -> RNPList -> RNPList ; -- John, my family, myself
---- Cons_rn_RNP : RNP -> ListNP -> RNPList ; -- myself, John, Mary ---- Cons_rn_RNP : RNP -> ListNP -> RNPList ; -- myself, John, Mary
-- reflexive possessive on its own right, like in Swedish, Czech, Slovak
ReflPossPron : Quant ; -- Swe sin,sitt,sina
--- from Extensions --- from Extensions
@@ -240,6 +269,7 @@ abstract Extend = Cat ** {
weFem_Pron : Pron ; -- we (Fem) weFem_Pron : Pron ; -- we (Fem)
youPlFem_Pron : Pron ; -- you plural (Fem) youPlFem_Pron : Pron ; -- you plural (Fem)
theyFem_Pron : Pron ; -- they (Fem) theyFem_Pron : Pron ; -- they (Fem)
theyNeutr_Pron : Pron ; -- they (Neutr)
youPolFem_Pron : Pron ; -- you polite (Fem) youPolFem_Pron : Pron ; -- you polite (Fem)
youPolPl_Pron : Pron ; -- you polite plural (Masc) youPolPl_Pron : Pron ; -- you polite plural (Masc)
youPolPlFem_Pron : Pron ; -- you polite plural (Fem) youPolPlFem_Pron : Pron ; -- you polite plural (Fem)
@@ -251,4 +281,28 @@ abstract Extend = Cat ** {
UttDatIP : IP -> Utt ; -- whom (dative) UttDatIP : IP -> Utt ; -- whom (dative)
-- UseDAP replaces DetNP from the RGL which is more limited.
-- Instead of (DetNP d) use (UseDAP (DetDAP d)). The advantage
-- is that now we can also have an adjective inserted, i.e.
-- (UseDAP (AdjDAP (DetDAP d) a). There are also versions of
-- UseDAP for different genders.
fun UseDAP : DAP -> NP ;
UseDAPMasc : DAP -> NP ;
UseDAPFem : DAP -> NP ;
cat X ; -- for words that are difficult to classify, mainly for MorphoDict
fun
UseComp_estar : Comp -> VP ; -- esta lleno, as opposed to es lleno
UseComp_ser : Comp -> VP ; -- es lleno, as opposed to esta lleno
fun
CardCNCard : Card -> CN -> Card ; -- three million, four lakh, six dozen etc
fun
TPastSimple : Tense ;
fun
SubjunctRelCN : CN -> RS -> CN ; -- e.g. Romance languages when subjunctive/conjunctive is needed
} }

View File

@@ -19,6 +19,6 @@ abstract Grammar =
Structural, Structural,
Idiom, Idiom,
Tense, Tense,
Names,
Transfer Transfer
; ;

14
src/abstract/Names.gf Normal file
View File

@@ -0,0 +1,14 @@
abstract Names = Cat ** {
fun GivenName : GN -> NP ;
MaleSurname : SN -> NP ;
FemaleSurname : SN -> NP ;
PlSurname : SN -> NP ;
FullName : GN -> SN -> NP ;
fun UseLN : LN -> NP ;
PlainLN : LN -> NP ;
InLN : LN -> Adv ;
AdjLN : AP -> LN -> LN ;
}

View File

@@ -58,6 +58,7 @@ abstract Noun = Cat ** {
data data
NumDigits : Digits -> Card ; -- 51 NumDigits : Digits -> Card ; -- 51
NumDecimal : Decimal -> Card ; -- 3.14, -1, etc
NumNumeral : Numeral -> Card ; -- fifty-one NumNumeral : Numeral -> Card ; -- fifty-one
-- The construction of numerals is defined in [Numeral Numeral.html]. -- The construction of numerals is defined in [Numeral Numeral.html].
@@ -155,4 +156,8 @@ abstract Noun = Cat ** {
AdjDAP : DAP -> AP -> DAP ; -- the large (one) AdjDAP : DAP -> AP -> DAP ; -- the large (one)
DetDAP : Det -> DAP ; -- this (or that) DetDAP : Det -> DAP ; -- this (or that)
--2 Quantities
QuantityNP : Decimal -> MU -> NP ;
} }

View File

@@ -17,34 +17,56 @@
-- parts of a numeral, which is often incorrect - more work on -- parts of a numeral, which is often incorrect - more work on
-- (un)lexing is needed to solve this problem. -- (un)lexing is needed to solve this problem.
abstract Numeral = Cat [Numeral,Digits] ** { abstract Numeral = Cat [Numeral,Digits,Decimal] ** {
cat cat
Digit ; -- 2..9 Digit ; -- 2..9
Sub10 ; -- 1..9 Sub10 ; -- 1..9
Sub100 ; -- 1..99 Sub100 ; -- 1..99
Sub1000 ; -- 1..999 Sub1000 ; -- 1..999
Sub1000000 ; -- 1..999999 Sub1000000 ; -- 1..999999
Sub1000000000 ; -- 1..999999999
Sub1000000000000 ; -- 1..999999999999
data
data
num : Sub1000000 -> Numeral ; -- 123456 [coercion to top category] num : Sub1000000 -> Numeral ; -- 123456 [coercion to top category]
---- num : Sub1000000000000 -> Numeral ; ---- should be this, but not yet available in most langs AR 6/2/2024
n2, n3, n4, n5, n6, n7, n8, n9 : Digit ; n2, n3, n4, n5, n6, n7, n8, n9 : Digit ;
pot01 : Sub10 ; -- 1 pot01 : Sub10 ; -- 1
pot0 : Digit -> Sub10 ; -- d * 1 pot0 : Digit -> Sub10 ; -- d * 1
pot0as1 : Sub10 -> Sub100 ; -- coercion of 1..9
pot110 : Sub100 ; -- 10 pot110 : Sub100 ; -- 10
pot111 : Sub100 ; -- 11 pot111 : Sub100 ; -- 11
pot1to19 : Digit -> Sub100 ; -- 10 + d pot1to19 : Digit -> Sub100 ; -- 10 + d
pot0as1 : Sub10 -> Sub100 ; -- coercion of 1..9
pot1 : Digit -> Sub100 ; -- d * 10 pot1 : Digit -> Sub100 ; -- d * 10
pot1plus : Digit -> Sub10 -> Sub100 ; -- d * 10 + n pot1plus : Digit -> Sub10 -> Sub100 ; -- d * 10 + n
pot1as2 : Sub100 -> Sub1000 ; -- coercion of 1..99 pot1as2 : Sub100 -> Sub1000 ; -- coercion of 1..99
pot21 : Sub1000 ; -- a hundred instead of one hundred
pot2 : Sub10 -> Sub1000 ; -- m * 100 pot2 : Sub10 -> Sub1000 ; -- m * 100
pot2plus : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n pot2plus : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n
pot2as3 : Sub1000 -> Sub1000000 ; -- coercion of 1..999 pot2as3 : Sub1000 -> Sub1000000 ; -- coercion of 1..999
pot31 : Sub1000000 ; -- a thousand instead of one thousand
pot3 : Sub1000 -> Sub1000000 ; -- m * 1000 pot3 : Sub1000 -> Sub1000000 ; -- m * 1000
pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n
pot3as4 : Sub1000000 -> Sub1000000000 ; -- coercion of 1..999999
pot3decimal : Decimal -> Sub1000000 ; -- 3.5 thousand
pot41 : Sub1000000000 ; -- a million instead of one million
pot4 : Sub1000 -> Sub1000000000 ; -- m * 1000000000
pot4plus : Sub1000 -> Sub1000000 -> Sub1000000000 ; -- m * 1000000000 + n
pot4as5 : Sub1000000000 -> Sub1000000000000 ; -- coercion of 1..999999999
pot4decimal : Decimal -> Sub1000000000 ; -- 3.5 million
pot51 : Sub1000000000000 ; -- a billion instead of one billion
pot5 : Sub1000 -> Sub1000000000000 ; -- m * 1000000000
pot5plus : Sub1000 -> Sub1000000000 -> Sub1000000000000 ; -- m * 1000000000 + n
pot5decimal : Decimal -> Sub1000000000000 ; -- 3.5 billion
-- Numerals as sequences of digits have a separate, simpler grammar -- Numerals as sequences of digits have a separate, simpler grammar
@@ -57,4 +79,8 @@ data
D_0, D_1, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9 : Dig ; D_0, D_1, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9 : Dig ;
PosDecimal : Digits -> Decimal ; -- 8
NegDecimal : Digits -> Decimal ; -- -8
IFrac : Decimal -> Dig -> Decimal ; -- 3.14 -> 3.141
} }

View File

@@ -40,6 +40,7 @@ abstract Sentence = Cat ** {
-- To fix these parameters, see [Phrase Phrase.html]. -- To fix these parameters, see [Phrase Phrase.html].
ImpVP : VP -> Imp ; -- love yourselves ImpVP : VP -> Imp ; -- love yourselves
AdvImp : Adv -> Imp -> Imp ; -- please love yourselves
--2 Embedded sentences --2 Embedded sentences

View File

@@ -3,7 +3,7 @@
concrete AllAfr of AllAfrAbs = concrete AllAfr of AllAfrAbs =
LangAfr, LangAfr,
IrregAfr, IrregAfr,
ExtraAfr ExtendAfr
** **
{ {
--{} ; --{} ;

View File

@@ -62,6 +62,7 @@ concrete CatAfr of Cat =
Numeral = {s : CardOrd => Str ; n : Number } ; Numeral = {s : CardOrd => Str ; n : Number } ;
Digits = {s : CardOrd => Str ; n : Number } ; Digits = {s : CardOrd => Str ; n : Number } ;
Decimal = {s : CardOrd => Str ; n : Number ; hasDot : Bool} ;
-- Structural -- Structural
@@ -84,5 +85,21 @@ concrete CatAfr of Cat =
N2 = {s : NForm => Str ; g : Gender} ** {c2 : Preposition} ; N2 = {s : NForm => Str ; g : Gender} ** {c2 : Preposition} ;
N3 = {s : NForm => Str ; g : Gender} ** {c2,c3 : Preposition} ; N3 = {s : NForm => Str ; g : Gender} ** {c2,c3 : Preposition} ;
PN = {s : NPCase => Str} ; PN = {s : NPCase => Str} ;
GN = {s : NPCase => Str; g : Sex} ;
SN = {s : Sex => NPCase => Str; pl : NPCase => Str} ;
LN = {s : Adjf => NPCase => Str ; hasArt : Bool ; n : Number} ;
lindef
VPSlash = \s -> {
s = {s = \\_ => s; prefix = ""; aux = VHebben; vtype = VAct} ;
a1 = \\_ => "" ;
n0 = \\_ => "" ;
n2 = \\_ => "" ;
a2 = "" ;
isAux = False ;
inf = <"",False> ;
ext = "" ;
c2 = ""
} ;
} }

View File

@@ -0,0 +1,171 @@
--# -path=.:../abstract:../common
concrete DocumentationAfr of Documentation = CatAfr ** open
ResAfr,
Prelude,
HTML
in {
lincat
Inflection = {t : Str; s1,s2 : Str} ;
Definition = {s : Str} ;
Document = {s : Str} ;
Tag = {s : Str} ;
lin
InflectionN, InflectionN2, InflectionN3 = \noun -> {
t = "s" ;
s1 = heading1 "Selfstandige Naamwoord" ;
s2 = frameTable (
tr (th "Enkelvoud" ++ th "Meervoud" ) ++
tr (td (noun.s ! NF Sg Nom) ++ td (noun.s ! NF Pl Nom)))
} ;
InflectionPN = \pn -> {
t = "pn" ;
s1 = heading1 "Naam" ;
s2 = paragraph (pn.s ! NPNom)
} ;
InflectionLN = \ln -> {
t = "pn" ;
s1 = heading1 "Naam" ;
s2 = paragraph (ln.s ! Strong ! NPNom)
} ;
InflectionGN = \pn -> {
t = "vnm" ;
s1 = heading1 "Voornaam" ;
s2 = paragraph (pn.s ! NPNom)
} ;
InflectionSN = \pn -> {
t = "van" ;
s1 = heading1 "Van" ;
s2 = paragraph (pn.s ! Male ! NPNom)
} ;
InflectionA, InflectionA2 = \adj ->
let
gforms : AForm -> Str = \a ->
td (adj.s ! Posit ! a) ++
td (adj.s ! Compar ! a) ++
case a of {
AGen => td "-" ; -- superlative partitive not used
_ => td (adj.s ! Superl ! a)
} ;
dtable : Str =
frameTable (
tr (th [] ++ th "Stellend" ++ th "Vergrotend" ++
th "Oortreffend") ++
tr (th "Predikatief" ++ gforms APred) ++
tr (th "Attributief" ++ gforms AAttr) ++
tr (th "Partitief" ++ gforms AGen)
)
in { t = "bv" ;
s1 = heading1 "Byvoeglike naamwoord" ;
s2 = dtable
} ;
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
t = "bw" ;
s1 = heading1 "Bywoord" ;
s2 = paragraph adv.s
} ;
InflectionPrep p = {
t = "prep" ;
s1 = heading1 "Voorsetsel" ;
s2 = paragraph p.s
} ;
InflectionV v = {
t = "w" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionV2 v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionV3 v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionV2V v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionV2S v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionV2Q v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionV2A v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionVV v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionVS v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionVQ v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
InflectionVA v = {
t = "v" ;
s1 = heading1 "Werkwoord" ;
s2 = inflVerb v
} ;
lin
NoDefinition t = {s=t.s};
MkDefinition t d = {s="<p><b>Definisie:</b>"++t.s++d.s++"</p>"};
MkDefinitionEx t d e = {s="<p><b>Definisie:</b>"++t.s++d.s++"</p><p><b>Voorbeeld:</b>"++e.s++"</p>"};
MkDocument d i e = ss (i.s1 ++ d.s ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
MkTag i = ss i.t ;
oper
inflVerb : VVerb -> Str = \verb ->
let
vfin : VForm -> Str = \f ->
verb.s ! f ++ verb.prefix ;
gforms : VForm -> Str = \f ->
td (vfin f) ;
in frameTable (
tr (th "Infinitief" ++ td (verb.s ! VInf)) ++
tr (th "Teenwoordige Tyd" ++ td (verb.s ! VPres)) ++
tr (th "Verlede Tyd" ++ td (verb.s ! VPast)) ++
tr (th "Perfectief" ++ td (verb.s ! VPerf))
) ;
}

View File

@@ -0,0 +1,15 @@
concrete ExtendAfr of Extend =
CatAfr ** ExtendFunctor - [PassVPSlash,PassAgentVPSlash]
with
(Grammar = GrammarAfr) **
open
ParadigmsAfr, ResAfr in {
-- KA: guessed from PassV2 in Afrikaans and the equivalents in Dutch
lin PassVPSlash vps =
insertInf (vps.s.s ! VPerf) (predV word_V) ;
PassAgentVPSlash vps np =
insertAdv (appPrep "door" np.s) (insertInf (vps.s.s ! VPerf) (predV word_V)) ;
}

View File

@@ -14,4 +14,5 @@ concrete GrammarAfr of Grammar =
TextX, TextX,
IdiomAfr, IdiomAfr,
StructuralAfr, StructuralAfr,
TenseX ; TenseX,
NamesAfr ;

View File

@@ -2,4 +2,6 @@
concrete LangAfr of Lang = concrete LangAfr of Lang =
GrammarAfr, GrammarAfr,
LexiconAfr ; LexiconAfr
,DocumentationAfr --# notpresent
;

40
src/afrikaans/NamesAfr.gf Normal file
View File

@@ -0,0 +1,40 @@
concrete NamesAfr of Names = CatAfr ** open ResAfr, Prelude in {
lin GivenName = \n -> {s = n.s ; a = agrP3 Sg ; isPron = False} ;
lin MaleSurname = \n -> {s = n.s ! Male ; a = agrP3 Sg ; isPron = False} ;
lin FemaleSurname = \n -> {s = n.s ! Female; a = agrP3 Sg ; isPron = False} ;
lin PlSurname = \n -> {s = n.pl ; a = agrP3 Sg ; isPron = False} ;
lin FullName gn sn =
{s = \\c => gn.s ! NPNom ++ sn.s ! gn.g ! c ; a = agrP3 Sg ; isPron = False} ;
lin UseLN ln = {
s = \\c => case ln.hasArt of {
True => "die" ++ ln.s ! Weak ! c ;
False => ln.s ! Strong ! c
} ;
a = agrP3 ln.n ;
isPron = False
} ;
PlainLN ln = {
s = \\c => ln.s ! Strong ! c ;
a = agrP3 ln.n ;
isPron = False
} ;
InLN ln = {
s = appPrep "in" (\\c => case ln.hasArt of {
True => "die" ++ ln.s ! Weak ! c ;
False => ln.s ! Strong ! c
})
} ;
AdjLN ap ln = ln ** {
s = \\a,c =>
preOrPost ap.isPre
(ap.s ! agrAdj Neutr a (NF ln.n Nom))
(ln.s ! a ! c) ;
} ;
}

View File

@@ -77,6 +77,8 @@ concrete NounAfr of Noun = CatAfr ** open ResAfr, Prelude in {
NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ; NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ; OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ;
NumDecimal dec = {s = \\g,c => dec.s ! NCard g c; n = dec.n } ;
NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ; NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ; OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ;
@@ -177,4 +179,10 @@ concrete NounAfr of Noun = CatAfr ** open ResAfr, Prelude in {
isMod = cn.isMod isMod = cn.isMod
} ; } ;
QuantityNP n m = {
s = \\c => preOrPost m.isPre m.s (n.s ! NCard Neutr Nom) ;
a = agrP3 n.n ;
isPron = False
} ;
} }

View File

@@ -1,5 +1,5 @@
concrete NumeralAfr of Numeral = CatAfr [Numeral,Digits] ** open ResAfr, Prelude in { concrete NumeralAfr of Numeral = CatAfr [Numeral,Digits,Decimal] ** open ResAfr, Prelude in {
flags optimize = all_subs ; flags optimize = all_subs ;
coding=utf8 ; coding=utf8 ;
@@ -7,7 +7,7 @@ flags optimize = all_subs ;
lincat lincat
Digit = {s : DForm => CardOrd => Str ; en : Str} ; Digit = {s : DForm => CardOrd => Str ; en : Str} ;
Sub10 = {s : DForm => CardOrd => Str ; n : Number ; en : Str ; attr : Str} ; Sub10 = {s : DForm => CardOrd => Str ; n : Number ; en : Str ; attr : Str} ;
Sub100, Sub1000, Sub1000000 = Sub100, Sub1000, Sub1000000, Sub1000000000, Sub1000000000000 =
{s : CardOrd => Str ; n : Number ; attr : Str} ; {s : CardOrd => Str ; n : Number ; attr : Str} ;
lin lin
@@ -50,6 +50,8 @@ lin
pot3plus n m = pot3plus n m =
addAttr {s = \\g => n.attr ++ "duisend" ++ m.s ! g ; n = Pl} ; addAttr {s = \\g => n.attr ++ "duisend" ++ m.s ! g ; n = Pl} ;
pot3as4 n = n ;
pot4as5 n = n ;
lincat lincat
Dig = TDigit ; Dig = TDigit ;
@@ -73,6 +75,20 @@ lin
D_8 = mkDig "8" ; D_8 = mkDig "8" ;
D_9 = mkDig "9" ; D_9 = mkDig "9" ;
PosDecimal d = d ** {hasDot=False} ;
NegDecimal d = {
s = \\o => "-" ++ BIND ++ d.s ! o ;
n = Pl ;
hasDot=False
} ;
IFrac d i = {
s = \\o => d.s ! invNum ++
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
i.s ! o;
n = Pl ;
hasDot=True
} ;
oper oper
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
mkDig : Str -> TDigit = \c -> mk2Dig c (c + "e") ; mkDig : Str -> TDigit = \c -> mk2Dig c (c + "e") ;

View File

@@ -73,6 +73,25 @@ oper
mkPN : Str -> PN ; -- proper name mkPN : Str -> PN ; -- proper name
} ; } ;
mkGN = overload { -- given name
mkGN : Str -> GN = \s -> lin GN {s = \\_ => s; g = Male} ;
mkGN : Str -> Sex -> GN = \s,g -> lin GN {s = \\_ => s; g = g} ;
} ;
mkSN = overload { -- given name
mkSN : Str -> SN = \s -> lin SN {s = \\_,_ => s; pl = \\_=>s} ;
mkSN : Str -> Str -> Str -> SN = \male,female,pl -> lin SN {s = table {Male=>\\_=>male; Female=>\\_=>female}; pl=\\_=>pl} ;
} ;
mkLN = overload {
mkLN : Str -> LN -- location name
= \s -> lin LN {s = \\_,_ => s; hasArt = False; n = Sg} ;
mkLN : Str -> Number -> LN -- location name
= \s,n -> lin LN {s = \\_,_ => s; hasArt = False; n = n} ;
} ;
defLN : LN -> LN = \n -> n ** {hasArt = True} ;
--2 Adjectives --2 Adjectives
@@ -205,6 +224,8 @@ oper
feminine = Neutr ; feminine = Neutr ;
het,neuter = Neutr ; het,neuter = Neutr ;
de,utrum = Neutr ; de,utrum = Neutr ;
male = Male ;
female = Female ;
mkA = overload { mkA = overload {
mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ; mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ;
@@ -494,4 +515,6 @@ oper
-- --
--} --}
mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ;
} }

View File

@@ -315,7 +315,7 @@ param
--2 Transformations between parameter types --2 Transformations between parameter types
oper Agr : Type = {g : Gender ; n : Number ; p : Person} ; oper Agr : PType = {g : Gender ; n : Number ; p : Person} ;
oper oper
agrP3 : Number -> Agr = agrgP3 Neutr ; agrP3 : Number -> Agr = agrgP3 Neutr ;

View File

@@ -0,0 +1,11 @@
concrete AdjectiveSqi of Adjective = CatSqi ** open ResSqi, Prelude in {
lin
PositA a = {
s = \\spec,c,g,n => case a.clit of {
True => link_clitic ! spec ! c ! g ! n ++ a.s ! c ! g ! n ;
False => a.s ! c ! g ! n
}
} ;
}

4
src/albanian/AllSqi.gf Normal file
View File

@@ -0,0 +1,4 @@
concrete AllSqi of AllSqiAbs =
LangSqi
**
{} ;

View File

@@ -0,0 +1,3 @@
abstract AllSqiAbs =
Lang
** {}

25
src/albanian/CatSqi.gf Normal file
View File

@@ -0,0 +1,25 @@
concrete CatSqi of Cat = CommonX ** open ParamX, Prelude, ResSqi in {
lincat N = Noun ;
lincat N2 = Noun ** {c2 : Compl} ;
lincat N3 = Noun ** {c2,c3 : Compl} ;
lincat A = Adj ;
lincat A2 = Adj ** {c2 : Compl} ;
lincat V, VA, VV, VS, VQ = Verb ;
lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ;
lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
lincat Prep = Compl ;
lincat Numeral = {s : Str} ;
lincat Digits = {s : Str; n : Number; tail : DTail} ;
lincat Decimal = {s : Str; n : Number; hasDot : Bool} ;
lincat AP = {s: Species => Case => Gender => Number => Str} ;
lincat CN = Noun ;
lincat Num = {s : Str; n : Number} ;
lincat Quant = {s : Case => Gender => Number => Str; spec : Species} ;
lincat Det = {s : Case => Gender => Str; spec : Species; n : Number} ;
lincat NP = {s: Case => Str; a : Agr} ;
lincat Pron = {s: Case => Str; acc_clit, dat_clit : Str; a : Agr} ;
}

View File

@@ -0,0 +1,117 @@
concrete DocumentationSqi of Documentation = CatSqi ** open
ParamX, ResSqi, Prelude, HTML in {
lincat
Inflection = {t : Str; s1,s2,s3 : Str} ;
Definition = {s : Str} ;
Document = {s : Str} ;
Tag = {s : Str} ;
lin InflectionN = \x -> {
t="em" ;
s1=heading1 ("Emër" ++
case x.g of {
Masc => "(mashkullor)" ;
Fem => "(femëror)"
}) ;
s2=frameTable (
tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++
tr (intagAttr "th" "rowspan=\"4\"" "Indef" ++ th "Nom" ++ td (x.s ! Indef ! Nom ! Sg) ++ td (x.s ! Indef ! Nom ! Pl)) ++
tr (th "Acc" ++ td (x.s ! Indef ! Acc ! Sg) ++ td (x.s ! Indef ! Acc ! Pl)) ++
tr (th "Dat" ++ td (x.s ! Indef ! Dat ! Sg) ++ td (x.s ! Indef ! Dat ! Pl)) ++
tr (th "Ablat" ++ td (x.s ! Indef ! Ablat ! Sg) ++ td (x.s ! Indef ! Ablat ! Pl)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Def" ++ th "Nom" ++ td (x.s ! Def ! Nom ! Sg) ++ td (x.s ! Def ! Nom ! Pl)) ++
tr (th "Acc" ++ td (x.s ! Def ! Acc ! Sg) ++ td (x.s ! Def ! Acc ! Pl)) ++
tr (th "Dat" ++ td (x.s ! Def ! Dat ! Sg) ++ td (x.s ! Def ! Dat ! Pl)) ++
tr (th "Ablat" ++ td (x.s ! Def ! Ablat ! Sg) ++ td (x.s ! Def ! Ablat ! Pl))) ;
s3=[]
} ;
lin InflectionA = \x -> {
t="mb" ;
s1=heading1 "Mbiemër" ;
s2=frameTable (
tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++
tr (intagAttr "th" "rowspan=\"2\"" "Nom" ++ th "Masc" ++ td (y ! Nom ! Masc ! Sg) ++ td (y ! Nom ! Masc ! Pl)) ++
tr (th "Fem" ++ td (y ! Nom ! Fem ! Sg) ++ td (y ! Nom ! Fem ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Acc" ++ th "Masc" ++ td (y ! Acc ! Masc ! Sg) ++ td (y ! Acc ! Masc ! Pl)) ++
tr (th "Fem" ++ td (y ! Acc ! Fem ! Sg) ++ td (y ! Acc ! Fem ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Dat" ++ th "Masc" ++ td (y ! Dat ! Masc ! Sg) ++ td (y ! Dat ! Masc ! Pl)) ++
tr (th "Fem" ++ td (y ! Dat ! Fem ! Sg) ++ td (y ! Dat ! Fem ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Ablat" ++ th "Masc" ++ td (y ! Ablat ! Masc ! Sg) ++ td (y ! Ablat ! Masc ! Pl)) ++
tr (th "Fem" ++ td (y ! Ablat ! Fem ! Sg) ++ td (y ! Ablat ! Fem ! Pl))) ;
s3=[]
} where {
y : Case => Gender => Number => Str =
\\c,g,n => case x.clit of {
True => link_clitic ! Indef ! c ! g ! n ++ x.s ! c ! g ! n ;
False => x.s ! c ! g ! n
} ;
} ;
lin InflectionV = \x -> {
t="fl" ;
s1=heading1 "Folje" ;
s2=frameTable (
tr (intagAttr "th" "rowspan=\"24\"" "Indicative" ++ intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Pres ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Pres ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Pres ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Pres ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Pres ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Pres ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Past" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Past ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Past ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Past ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Past ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Past ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Past ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Aorist" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Aorist ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Aorist ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Aorist ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Aorist ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Aorist ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Aorist ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Imperfect" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Imperfect ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Imperfect ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Imperfect ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Imperfect ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Imperfect ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Imperfect ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Imperative" ++ th "Sg" ++ td (x.Imperative ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative ! Pl)) ++
tr (th "participle" ++ td (x.participle)) ++
tr (intagAttr "th" "rowspan=\"6\"" "pres_optative" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.pres_optative ! Sg ! P1)) ++
tr (th "P2" ++ td (x.pres_optative ! Sg ! P2)) ++
tr (th "P3" ++ td (x.pres_optative ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.pres_optative ! Pl ! P1)) ++
tr (th "P2" ++ td (x.pres_optative ! Pl ! P2)) ++
tr (th "P3" ++ td (x.pres_optative ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "perf_optative" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.perf_optative ! Sg ! P1)) ++
tr (th "P2" ++ td (x.perf_optative ! Sg ! P2)) ++
tr (th "P3" ++ td (x.perf_optative ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.perf_optative ! Pl ! P1)) ++
tr (th "P2" ++ td (x.perf_optative ! Pl ! P2)) ++
tr (th "P3" ++ td (x.perf_optative ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "pres_admirative" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.pres_admirative ! Sg ! P1)) ++
tr (th "P2" ++ td (x.pres_admirative ! Sg ! P2)) ++
tr (th "P3" ++ td (x.pres_admirative ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.pres_admirative ! Pl ! P1)) ++
tr (th "P2" ++ td (x.pres_admirative ! Pl ! P2)) ++
tr (th "P3" ++ td (x.pres_admirative ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "imperf_admirative" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.imperf_admirative ! Sg ! P1)) ++
tr (th "P2" ++ td (x.imperf_admirative ! Sg ! P2)) ++
tr (th "P3" ++ td (x.imperf_admirative ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.imperf_admirative ! Pl ! P1)) ++
tr (th "P2" ++ td (x.imperf_admirative ! Pl ! P2)) ++
tr (th "P3" ++ td (x.imperf_admirative ! Pl ! P3))) ;
s3=[]
} ;
lin InflectionAdv = \x -> {
t="nd" ;
s1=heading1 "Ndajfolje" ;
s2=frameTable (
tr (th "s" ++ td (x.s))) ;
s3=[]
} ;
lin
NoDefinition t = {s=t.s};
MkDefinition t d = {s="<p><b>Definition:</b>"++t.s++d.s++"</p>"};
MkDefinitionEx t d e = {s="<p><b>Definition:</b>"++t.s++d.s++"</p><p><b>Example:</b>"++e.s++"</p>"};lin MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ; MkTag i = {s = i.t} ;}

View File

@@ -0,0 +1,9 @@
concrete GrammarSqi of Grammar =
NounSqi,
AdjectiveSqi,
NumeralSqi,
PhraseSqi,
StructuralSqi
** {
} ;

10
src/albanian/LangSqi.gf Normal file
View File

@@ -0,0 +1,10 @@
--# -path=.:../abstract
concrete LangSqi of Lang =
GrammarSqi,
LexiconSqi
,DocumentationSqi --# notpresent
** {
flags startcat = Phr ;
}

View File

@@ -0,0 +1,8 @@
concrete LexiconSqi of Lexicon = CatSqi ** open ParadigmsSqi in {
lin
airplane_N = mkN032 "aeroplan" ;
apple_N = mkN069 "mollë" ;
good_A = mkA "mirë" ;
}

42501
src/albanian/MorphoSqi.gf Normal file

File diff suppressed because it is too large Load Diff

40
src/albanian/NounSqi.gf Normal file
View File

@@ -0,0 +1,40 @@
concrete NounSqi of Noun = CatSqi ** open MorphoSqi, ResSqi in {
flags optimize=all_subs ;
lin
DetCN det cn = {
s = \\c => det.s ! c ! cn.g ++ cn.s ! det.spec ! c ! det.n ;
a = agrgP3 cn.g det.n
} ;
UsePron p = p ;
DetQuant quant num = {
s = \\c,g => quant.s ! c ! g ! num.n ++ num.s ;
n = num.n ;
spec = quant.spec
} ;
NumSg = {s = []; n = Sg} ;
NumPl = {s = []; n = Pl} ;
DefArt = {
s = \\c,g,n => [] ;
spec = Def
} ;
IndefArt = {
s = \\c,g => table Number ["një"; []] ;
spec = Indef
} ;
UseN n = n ;
UseN2 n = n ;
AdjCN ap cn = {
s = \\spec,c,n => cn.s ! spec ! c ! n ++ ap.s ! spec ! c ! cn.g ! n ;
g = cn.g
} ;
}

View File

@@ -0,0 +1,87 @@
concrete NumeralSqi of Numeral = CatSqi ** open ParamX, Prelude in {
oper bind : Str -> Str -> Str = \a -> \b -> a ++ b ;
param DForm = unit | teen | ten ;
oper LinDigit = {s : DForm => Str };
oper LinSub100 = {s : Str } ;
lincat Digit = LinDigit ;
lincat Sub10 = LinDigit ;
lincat Sub100 = LinSub100 ;
lincat Sub1000 = LinSub100 ;
lincat Sub1000000 = { s : Str } ;
oper mkNum : Str -> LinDigit = \tri ->
{ s = table {unit => tri ; teen => tri + "mbë" + "dhjetë" ; ten => tri + "dhjetë" }};
lin num x = {s = x.s } ;
lin n2 = {s = table {unit => "dy" ; teen => "dy" + "mbë" + "dhjetë" ; ten => "njëzet" }};
lin n3 = mkNum "tre" ;
lin n4 = {s = table {unit => "katër" ; teen => "katër" + "mbë" + "dhjetë" ; ten => "dyzet" } };
lin n5 = mkNum "pesë" ;
lin n6 = mkNum "gjashtë";
lin n7 = mkNum "shtatë";
lin n8 = mkNum "tetë";
lin n9 = mkNum "nëntë";
oper mkR : Str -> LinSub100 = \n -> {s = n } ;
lin pot01 = { s = table {_ => "një" }};
lin pot0 d = d ;
lin pot110 = mkR "dhjetë" ;
lin pot111 = mkR ("një" + "mbë" + "dhjetë") ;
lin pot1to19 d = mkR (d.s ! teen) ;
lin pot0as1 n = mkR (n.s ! unit) ;
lin pot1 d = mkR (d.s ! ten) ;
lin pot1plus d e = mkR ((d.s ! ten) ++ "e" ++ (e.s ! unit)) ;
lin pot1as2 n = n ;
lin pot2 d = mkR (bind (d.s ! unit) "qind") ;
lin pot2plus d e = mkR ((bind (d.s ! unit) "qind") ++ "e" ++ e.s) ;
lin pot2as3 n = {s = n.s };
lin pot3 n = {s = n.s ++ "mijë" } ;
lin pot3plus n m = {s = n.s ++ "mijë" ++ m.s} ;
lincat Dig = {s : Str; n : Number} ;
lin IDig d = d ** {tail = T1} ;
IIDig d i = {
s = d.s ++ spaceIf i.tail ++ i.s ;
n = Pl ;
tail = inc i.tail
} ;
D_0 = mkDig "0" Pl ;
D_1 = mkDig "1" Sg ;
D_2 = mkDig "2" Pl ;
D_3 = mkDig "3" Pl ;
D_4 = mkDig "4" Pl ;
D_5 = mkDig "5" Pl ;
D_6 = mkDig "6" Pl ;
D_7 = mkDig "7" Pl ;
D_8 = mkDig "8" Pl ;
D_9 = mkDig "9" Pl ;
lin PosDecimal d = d ** {hasDot=False} ;
NegDecimal d = {s="-" ++ BIND ++ d.s; hasDot=False; n = Pl} ;
IFrac d i = {
s=d.s ++
if_then_Str d.hasDot BIND (BIND++","++BIND) ++
i.s ;
hasDot=True;
n = Pl
} ;
oper
mkDig : Str -> Number -> Dig = \s,n -> lin Dig {s=s; n=n} ;
spaceIf : DTail -> Str = \t -> case t of {
T3 => "" ;
_ => BIND
} ;
}

1375
src/albanian/ParadigmsSqi.gf Normal file

File diff suppressed because it is too large Load Diff

14
src/albanian/PhraseSqi.gf Normal file
View File

@@ -0,0 +1,14 @@
concrete PhraseSqi of Phrase = CatSqi ** open Prelude, ResSqi in {
lin
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
UttS s = s ;
UttNP np = {s = np.s ! Nom} ;
UttInterj i = i ;
NoPConj = {s = []} ;
NoVoc = {s = []} ;
}

261
src/albanian/ResSqi.gf Normal file
View File

@@ -0,0 +1,261 @@
resource ResSqi = ParamX-[Tense,Past,Pres] ** open Prelude in {
oper Compl = {s : Str} ;
param Species = Indef | Def ;
param Case = Nom | Acc | Dat | Ablat ;
param Gender = Masc | Fem ;
param GenNum = GSg Gender | GPl ;
oper Agr = {gn : GenNum; p : Person} ;
oper Noun = {s: Species => Case => Number => Str; g: Gender} ; -- 3978
oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,g ->
{ s = table {
Indef => table {
Nom => table {
Sg => f1 ;
Pl => f2
} ;
Acc => table {
Sg => f3 ;
Pl => f4
} ;
Dat => table {
Sg => f5 ;
Pl => f6
} ;
Ablat => table {
Sg => f7 ;
Pl => f8
}
} ;
Def => table {
Nom => table {
Sg => f9 ;
Pl => f10
} ;
Acc => table {
Sg => f11 ;
Pl => f12
} ;
Dat => table {
Sg => f13 ;
Pl => f14
} ;
Ablat => table {
Sg => f15 ;
Pl => f16
}
}
} ;
g = g
} ;
oper Adj = {s: Case => Gender => Number => Str; clit: Bool} ; -- 462
oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Bool -> Adj =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,clit ->
{ s = table {
Nom => table {
Masc => table {
Sg => f1 ;
Pl => f2
} ;
Fem => table {
Sg => f3 ;
Pl => f4
}
} ;
Acc => table {
Masc => table {
Sg => f5 ;
Pl => f6
} ;
Fem => table {
Sg => f7 ;
Pl => f8
}
} ;
Dat => table {
Masc => table {
Sg => f9 ;
Pl => f10
} ;
Fem => table {
Sg => f11 ;
Pl => f12
}
} ;
Ablat => table {
Masc => table {
Sg => f13 ;
Pl => f14
} ;
Fem => table {
Sg => f15 ;
Pl => f16
}
}
} ;
clit = clit
} ;
param Tense = Pres | Past | Imperfect | Aorist ;
oper Verb = {Indicative: Tense => Number => Person => Str; Imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str} ; -- 758
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51 ->
{ Indicative = table {
Pres => table {
Sg => table {
P1 => f1 ;
P2 => f2 ;
P3 => f3
} ;
Pl => table {
P1 => f4 ;
P2 => f5 ;
P3 => f6
}
} ;
Past => table {
Sg => table {
P1 => f7 ;
P2 => f8 ;
P3 => f9
} ;
Pl => table {
P1 => f10 ;
P2 => f11 ;
P3 => f12
}
} ;
Aorist => table {
Sg => table {
P1 => f13 ;
P2 => f14 ;
P3 => f15
} ;
Pl => table {
P1 => f16 ;
P2 => f17 ;
P3 => f18
}
} ;
Imperfect => table {
Sg => table {
P1 => f19 ;
P2 => f20 ;
P3 => f21
} ;
Pl => table {
P1 => f22 ;
P2 => f23 ;
P3 => f24
}
}
} ;
Imperative = table {
Sg => f25 ;
Pl => f26
} ;
participle = f27 ;
pres_optative = table {
Sg => table {
P1 => f28 ;
P2 => f29 ;
P3 => f30
} ;
Pl => table {
P1 => f31 ;
P2 => f32 ;
P3 => f33
}
} ;
perf_optative = table {
Sg => table {
P1 => f34 ;
P2 => f35 ;
P3 => f36
} ;
Pl => table {
P1 => f37 ;
P2 => f38 ;
P3 => f39
}
} ;
pres_admirative = table {
Sg => table {
P1 => f40 ;
P2 => f41 ;
P3 => f42
} ;
Pl => table {
P1 => f43 ;
P2 => f44 ;
P3 => f45
}
} ;
imperf_admirative = table {
Sg => table {
P1 => f46 ;
P2 => f47 ;
P3 => f48
} ;
Pl => table {
P1 => f49 ;
P2 => f50 ;
P3 => f51
}
}
} ;
oper link_clitic : Species => Case => Gender => Number => Str =
table {
Indef => table {
Nom => table {
Masc => table {
Sg => "i" ;
Pl => "të"
} ;
Fem => table {
Sg => "e" ;
Pl => "të"
}
} ;
_ => \\_,_ => "të"
} ;
Def => table {
Nom => table {
Masc => table {
Sg => "i" ;
Pl => "e"
} ;
Fem => table {
Sg => "e" ;
Pl => "e"
}
} ;
Acc => \\_,_ => "e" ;
_ => table {
Masc => \\_ => "të" ;
Fem => table {
Sg => "së" ;
Pl => "të"
}
}
}
} ;
oper genNum : Gender -> Number -> GenNum = \g,n ->
case n of {
Sg => GSg g ;
Pl => GPl
} ;
agrgP3 : Gender -> Number -> Agr =
\g,n -> {gn=genNum g n; p=P3} ;
}

View File

@@ -0,0 +1,19 @@
concrete StructuralSqi of Structural = CatSqi ** open ResSqi, ParadigmsSqi in {
lin i_Pron = mkPron "unë" "mua" "mua" "meje" "më" "më" (GSg Masc) P1 ;
lin youSg_Pron = mkPron "ti" "ty" "ty" "teje" "të" "të" (GSg Masc) P2 ;
lin he_Pron = mkPron "ai" "atë" "atij" "atij" "e" "i" (GSg Masc) P3 ;
lin she_Pron = mkPron "ajo" "atë" "asaj" "asaj" "e" "i" (GSg Fem) P3 ;
lin it_Pron = mkPron "ai" "atë" "atij" "atij" "e" "i" (GSg Masc) P3 ;
lin we_Pron = mkPron "ne" "ne" "neve" "nesh" "na" "na" GPl P1 ;
lin youPl_Pron = mkPron "ju" "ju" "juve" "jush" "ju" "ju" GPl P2 ;
lin they_Pron = mkPron "ata" "ata" "atyre" "atyre" "i" "u" GPl P3 ;
lin this_Quant = mkQuant "ky" "këta" "kjo" "këto"
"këtë" "këtyre" "këtë" "këtyre"
"këtij" "këtyre" "kësaj" "këtyre"
"këtij" "këtyre" "kësaj" "këtyre" ;
lin that_Quant = mkQuant "ai" "ata" "ajo" "ato"
"atë" "ata" "atë" "ato"
"atij" "atyre" "asaj" "atyre"
"atij" "atyre" "asaj" "atyre" ;
}

View File

@@ -22,6 +22,7 @@ lincat
Prep = ResAmh.Prep; Prep = ResAmh.Prep;
Numeral = ResAmh.Numeral; --{s : CardOrd => Case => Str ; n : Number} ; Numeral = ResAmh.Numeral; --{s : CardOrd => Case => Str ; n : Number} ;
Digits = ResAmh.Digits;--{s : CardOrd => Case => Str ; n : Number ; tail : DTail} ; Digits = ResAmh.Digits;--{s : CardOrd => Case => Str ; n : Number ; tail : DTail} ;
Decimal = ResAmh.Decimal;
Ord = ResAmh.Ord ; --{ s : Case => Str } ; Ord = ResAmh.Ord ; --{ s : Case => Str } ;
Num = ResAmh.Num;--{s : Case => Str ; n : Number ; hasCard : Bool} ; Num = ResAmh.Num;--{s : Case => Str ; n : Number ; hasCard : Bool} ;
Card = ResAmh.Card;--{s : Case => Str ; n : Number} ; Card = ResAmh.Card;--{s : Case => Str ; n : Number} ;

View File

@@ -94,6 +94,7 @@ lin
NumCard n = {s = \\s,c => n.s!Masc!Sg!s!c ; n = Pl; hasCard = True} ; NumCard n = {s = \\s,c => n.s!Masc!Sg!s!c ; n = Pl; hasCard = True} ;
NumDigits n = {s = n.s ! NCard } ; NumDigits n = {s = n.s ! NCard } ;
NumDecimal n = {s = n.s ! NCard } ;
NumNumeral numeral = {s = numeral.s ! NCard} ; NumNumeral numeral = {s = numeral.s ! NCard} ;

View File

@@ -1,5 +1,5 @@
concrete NumeralAmh of Numeral = CatAmh [Numeral,Digits] ** open ResAmh,ParamX,Prelude in { concrete NumeralAmh of Numeral = CatAmh [Numeral,Digits,Decimal] ** open ResAmh,ParamX,Prelude in {
flags coding = utf8; flags coding = utf8;
lincat lincat
@@ -91,17 +91,24 @@ lin pot3plus n m = {
D_8 = mkDig "8" ; D_8 = mkDig "8" ;
D_9 = mk2Dig "9" "9ኛ"; D_9 = mk2Dig "9" "9ኛ";
PosDecimal d = d ** {hasDot=False} ;
NegDecimal d = {
s = \\o,g,n,s,c => "-" ++ BIND ++ d.s !o!g!n!s!c ;
hasDot=False
} ;
IFrac d i = {
s = \\o,g,n,s,c => d.s!NCard!Masc!Sg!Indef!c ++
if_then_Str d.hasDot BIND (BIND++"."++BIND) ++
i.s ! o ! g ! n ! s ! c;
hasDot=True
} ;
oper oper
commaIf : DTail -> Str = \t -> case t of { commaIf : DTail -> Str = \t -> case t of {
T3 => BIND++","++BIND ; T3 => BIND++","++BIND ;
_ => BIND _ => BIND
} ; } ;
inc : DTail -> DTail = \t -> case t of {
T1 => T2 ;
T2 => T3 ;
T3 => T1
} ;
------------------ :) what a releif ------------------ :) what a releif
mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o ; mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o ;

View File

@@ -161,6 +161,10 @@ resource ResAmh = PatternsAmh** open Prelude,MorphoAmh,ParamX in {
s : CardOrd=>Gender=>Number=>Species=>Case => Str ; s : CardOrd=>Gender=>Number=>Species=>Case => Str ;
tail : DTail tail : DTail
} ; } ;
Decimal = {
s : CardOrd=>Gender=>Number=>Species=>Case => Str ;
hasDot : Bool
} ;
Ord = {s : Gender=>Number=>Species=>Case => Str} ; Ord = {s : Gender=>Number=>Species=>Case => Str} ;
@@ -991,8 +995,8 @@ pronNP : (N,A,G,D : Str) -> PerNumGen -> NP = \N,A,G,D,png-> {
{ {
s = \\c =>case c of s = \\c =>case c of
{ {
Gen|Dat => affix!c + word; Gen|Dat => affix!c ++ Predef.BIND ++ word;
_ => word + affix!c _ => word ++ Predef.BIND ++ affix!c
}; };
a = {png = Per3 n Masc ; isPron = False }; a = {png = Per3 n Masc ; isPron = False };
lock_NP = <> lock_NP = <>

View File

@@ -90,6 +90,7 @@ concrete CatGrc of Cat = CommonX - [Temp,Tense] ** open ResGrc, Prelude in {
Numeral = {s : CardOrd => Str ; n : Number} ; Numeral = {s : CardOrd => Str ; n : Number} ;
Digits = {s : Str ; unit : Unit} ; Digits = {s : Str ; unit : Unit} ;
Decimal = {s : Str ; unit : Unit ; hasDot : Bool} ;
-- Structural -- Structural

View File

@@ -323,8 +323,8 @@ concrete ExtraGrc of ExtraGrcAbs = CatGrc, NumeralGrc[Sub1000000,tenthousand] **
Sub10000 = {s : CardOrd => Str ; n : Number} ; -- TODO: constructors Sub10000 = {s : CardOrd => Str ; n : Number} ; -- TODO: constructors
lin -- d * 10000 lin -- d * 10000
pot4 d = { s = \\f => d.s ! NAdv ++ (tenthousand ! f) ; n = Pl } ; pot3X d = { s = \\f => d.s ! NAdv ++ (tenthousand ! f) ; n = Pl } ;
pot4plus d m = { pot3Xplus d m = {
s = \\f => d.s ! NAdv ++ tenthousand ! f ++ "kai`" ++ m.s ! f ; n = Pl} ; s = \\f => d.s ! NAdv ++ tenthousand ! f ++ "kai`" ++ m.s ! f ; n = Pl} ;

View File

@@ -153,8 +153,8 @@ abstract ExtraGrcAbs = Extra, Numeral[Sub1000000] ** {
Sub10000 ; -- 1..9999 Sub10000 ; -- 1..9999
data data
pot4 : Sub10000 -> Sub1000000 ; -- m * 10000 pot3X : Sub10000 -> Sub1000000 ; -- m * 10000
pot4plus : Sub10000 -> Sub10000 -> Sub1000000 ; -- m * 10000 + n pot3Xplus : Sub10000 -> Sub10000 -> Sub1000000 ; -- m * 10000 + n
-- Conjunctions: -- Conjunctions:

View File

@@ -83,6 +83,8 @@ concrete NounGrc of Noun = CatGrc ** open Prelude, ResGrc, (M = MorphoGrc) in {
-- TODO: check the following two: -- TODO: check the following two:
NumDigits digits = let num : Number = case digits.unit of {one => Sg ; _ => Pl} NumDigits digits = let num : Number = case digits.unit of {one => Sg ; _ => Pl}
in {s = \\g,c => digits.s ++ "'"; n = num ; isCard = True} ; in {s = \\g,c => digits.s ++ "'"; n = num ; isCard = True} ;
NumDecimal digits = let num : Number = case digits.unit of {one => Sg ; _ => Pl}
in {s = \\g,c => digits.s ++ "'"; n = num ; isCard = True} ;
NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ; NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
AdNum adn num = {s = \\g,c => adn.s ++ num.s ! g ! c ; n = num.n} ; AdNum adn num = {s = \\g,c => adn.s ++ num.s ! g ! c ; n = num.n} ;

View File

@@ -1,13 +1,15 @@
--# -path=.:../abstract:../common:../prelude: --# -path=.:../abstract:../common:../prelude:
concrete NumeralGrc of Numeral = CatGrc ** open ResGrc, MorphoGrc in { concrete NumeralGrc of Numeral = CatGrc ** open ResGrc, MorphoGrc, Prelude in {
lincat lincat
Digit = {s : DForm => CardOrd => Str} ; Digit = {s : DForm => CardOrd => Str} ;
Sub10 = {s : DForm => CardOrd => Str ; n : Number} ; Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
Sub100 = {s : CardOrd => Str ; n : Number} ; Sub100 = {s : CardOrd => Str ; n : Number} ;
Sub1000 = {s : CardOrd => Str ; n : Number} ; Sub1000 = {s : CardOrd => Str ; n : Number} ;
Sub1000000 = {s : CardOrd => Str ; n : Number} ; Sub1000000 = {s : CardOrd => Str ; n : Number} ;
Sub1000000000 = {s : CardOrd => Str ; n : Number} ;
Sub1000000000000 = {s : CardOrd => Str ; n : Number} ;
lin num x = x ; lin num x = x ;
@@ -52,6 +54,8 @@ lin -- mkDigit d (d+10) (d*10) d-th d-times
pot3plus d m = { pot3plus d m = {
s = \\f => d.s ! NAdv ++ thousand ! f ++ "kai`" ++ m.s ! f ; n = Pl} ; s = \\f => d.s ! NAdv ++ thousand ! f ++ "kai`" ++ m.s ! f ; n = Pl} ;
pot3as4 n = n ;
pot4as5 n = n ;
-- numerals as sequences of digits -- numerals as sequences of digits
@@ -77,6 +81,8 @@ lin -- mkDigit d (d+10) (d*10) d-th d-times
D_8 = mkDig "h" "p" "w" ; D_8 = mkDig "h" "p" "w" ;
D_9 = mkDig "v" "K" "P" ; -- TODO: replace K by koppa, P by sampi (not in ut -ancientgreek) D_9 = mkDig "v" "K" "P" ; -- TODO: replace K by koppa, P by sampi (not in ut -ancientgreek)
PosDecimal d = d ** {hasDot=False} ;
oper oper
TDigit = { TDigit = {
s : Unit => Str s : Unit => Str

View File

@@ -18,7 +18,7 @@
-- Author: Hans Leiß, LMU Munich, CIS -- Author: Hans Leiß, LMU Munich, CIS
resource ResGrc = ParamX - [Number,Sg,Pl,ImpForm,numImp,Tense,ImpF] resource ResGrc = ParamX - [Number,Sg,Pl,ImpForm,numImp,Tense,ImpF,inc,DTail]
** open Prelude, PhonoGrc, Predef in { ** open Prelude, PhonoGrc, Predef in {
flags flags
optimize = noexpand ; -- optimize=all is impossible with addAccent optimize = noexpand ; -- optimize=all is impossible with addAccent

View File

@@ -0,0 +1,9 @@
--# -path=.:alltenses:prelude
resource CombinatorsHrv = Combinators with
(Cat = CatHrv),
(Structural = StructuralHrv),
(Constructors = ConstructorsHrv)
** open MissingHrv in {}

View File

@@ -0,0 +1,8 @@
--# -path=.:alltenses:prelude
resource CombinatorsMay = Combinators - [ appCN, appCNc ] with
(Cat = CatMay),
(Structural = StructuralMay),
(Noun = NounMay),
(Constructors = ConstructorsMay) **
{}

Some files were not shown because too many files have changed in this diff Show More