109 Commits

Author SHA1 Message Date
Inari Listenmaa
8f2020517f add SymbolicJpn 2017-07-04 16:26:31 +02:00
Inari Listenmaa
2eefb1b74b remove some redundant code from NounJpn 2017-07-04 16:23:28 +02:00
Inari Listenmaa
bf4313f38e add more time expressions to ConstructionJpn, and fill SymbolJpn (might be wrong though) functions. 2017-07-04 16:22:37 +02:00
Inari Listenmaa
d819db35f3 Add weekdays and some weekday adverbs into ConstructionJpn 2017-07-03 14:26:26 +02:00
Inari Listenmaa
a742d54515 Fix punctuation to use SOFT_BIND and BIND in the whole RGL 2017-06-30 15:28:27 +02:00
Inari Listenmaa
7a04b65fb1 add a couple of words 2017-06-30 11:29:17 +02:00
Inari Listenmaa
018e38b448 add a couple of give_Something verbs 2017-06-30 11:01:44 +02:00
Inari Listenmaa
8e5d492c0c add a couple of give_Something verbs 2017-06-29 18:10:00 +02:00
aarne
798149941a added V versions of IrregFre.*V2 verbs to make their library reuse easier 2017-06-15 12:57:41 +00:00
inari
16600cd30d fix a few VAs 2017-06-14 09:09:29 +00:00
aarne
df39e466bb some new functionalities in Ger 2017-06-05 12:46:53 +00:00
aarne
7bd6b4c13a added PartPlCN to ExtraFin 2017-06-04 10:30:15 +00:00
aarne
7a761bc3b3 updated synopsis that now uses quicklinks 2017-06-02 15:05:26 +00:00
hallgren
06aa7948da Add a Quick Links menu to the Libary Synopsis web page.
The menu is generated dynamically by JavaScript functions defined in
quicklinks.js, by traversing the Detailed Table of Contents in the 
generated synopsis.html.
2017-06-01 18:21:52 +00:00
aarne
9c995e8592 a typo in PhonoFre.voyelle prevented from recognizing ê as a vowel 2017-05-30 16:38:40 +00:00
aarne
367b2a0d95 concrete labels Eng and Swe completed for the demo grammar 2017-05-05 15:14:47 +00:00
aarne
31f4c1d4a8 some fixes and new functionalities in Ita. Note: MassNP is now without "di" like in Spa and unlike in Fre 2017-05-02 16:08:54 +00:00
aarne
eb9d25cc7e removed the bogus word Dictionary.like_Adv which created lots of bad translations 2017-05-03 09:33:07 +00:00
aarne
dc2e103622 fixed subject agreement with non-Nom case in ExtraFin.MkVPS 2017-04-24 13:34:43 +00:00
aarne
f4b0b5a001 added a few very common words to DictionaryRus from the annotations by Anastasiia Tsukanova 2017-04-19 16:46:46 +00:00
aarne
b8f5ed01c6 fixed ta_V in Swe and blad in Dut 2017-04-13 06:48:13 +00:00
aarne
6574b8e5c0 added concrete labels to Eng and Swe ; renamed uddeps.labels to Lang.labels for uniformity (these work also for ResourceDemo and Translate, however) 2017-04-06 15:39:49 +00:00
m.t.n.de.rijk
1668a5ba73 fixed vowel lengthening in verbs like eten 2017-04-03 10:20:03 +00:00
aarne
c5a686d71c commented out the import of ConjunctionLat in LangLat: it belongs to GrammarLat 2017-03-28 07:42:30 +00:00
aarne
b204fc4cd0 RGL API files for Latin added 2017-03-28 07:40:37 +00:00
aarne
e35d515647 added module MissingLat to enable RGL API. At the end of the file, there is a comment saying how to reproduce this for new languages 2017-03-28 07:39:23 +00:00
aarne
36f3d8483c enabled import of ConjunctionLat in GrammarLat to compile the API 2017-03-28 07:38:40 +00:00
aarne
d76f8b383e using MissingAra in ConstructorsAra so that we can now compile the RGL API for Arabic. When a function with not yet defined constants is used in an application, a compile time error reveals this. 2017-03-28 07:11:30 +00:00
aarne
7423db4e33 missing Arabic functions collected in MissingAra.gf with notYet definitions 2017-03-28 07:10:52 +00:00
aarne
d22204745d a constant Prelude.notYet to mark not yet implemented functions, with the purpose of enabling the compilation of the RGL API 2017-03-28 07:09:26 +00:00
krasimir
64311f3ff1 added Predef.Float in Predef.gf 2017-03-07 20:12:56 +00:00
krasimir
ec1526db77 remove dead code in ParadigmsEng.gf 2017-03-07 17:49:00 +00:00
krasimir
9df5dba0c3 fix agree_with_V2 in Swedish 2017-02-21 13:15:03 +00:00
krasimir
dd42c9918b formatting in Dictionary.gf 2017-02-21 13:05:23 +00:00
krasimir
c145ded203 more uniformity in Dictionary.gf 2017-02-17 15:27:17 +00:00
krasimir
910364ffa9 gloss for london_PN in the dictionary 2017-02-10 14:10:20 +00:00
aarne
049c910f4d ambiguity in ExtraEst resolved 2017-01-30 22:18:02 +00:00
aarne
eadcafa5ff DictionaryFin.unfortunately_Adv 2017-01-30 13:49:16 +00:00
aarne
e9bf0d0966 qualified ambiguous NP in ExtraGer 2017-01-30 13:48:46 +00:00
aarne
5fd6d8bf67 some renamings of internal types in Icelandic to avoid clashes 2017-01-30 13:46:02 +00:00
Herbert Lange
215d61956e fixed clash between ResLat.mkAdv and ParadigmsLAt.mkAdv in latin lexicon 2017-01-26 12:06:32 +00:00
aarne
2758df3265 baseline generation of DictLatEng from William Whitaker's Words - must be revisited 2017-01-24 10:51:35 +00:00
aarne
fea7023cc5 added Ice and Nno to synopsis and ResourceDemo, and updated documentation 2017-01-19 19:58:48 +00:00
aarne
7170642e20 BigLat = GrammarLat,DictLat 2017-01-19 15:40:20 +00:00
aarne
892f50d57d script for building DictLat from William Whitaker's Words. Contains 35288 lemmas. 2017-01-19 14:56:43 +00:00
aarne
7a8b1caa32 added ParadigmsLat.mkAdv 2017-01-19 14:55:48 +00:00
bjatra5
50d5d62c2a Icelandic added to RGL by Bjarki Traustason 2017-01-16 16:30:50 +00:00
krasimir
b52406a9cc a new import script for Sloleks that takes into account the smart paradigms. this fills in the missing forms in Sloleks 2016-12-14 22:47:30 +00:00
krasimir
efa711d1b2 smarter smart paradigms for Slovenian 2016-12-14 22:46:43 +00:00
krasimir
816b56d9f3 typos in the Slovenian grammar 2016-12-08 11:47:48 +00:00
krasimir
9201c470a9 allow plural PNs in Slovenian 2016-12-06 11:39:56 +00:00
krasimir
c063a439a8 added mkA with one argument in Slovenian 2016-12-05 21:47:57 +00:00
krasimir
164c6106f1 added a catch all case in regNouns in Slovenian 2016-12-05 20:21:15 +00:00
aarne
98fa173686 corrected the DType of NounChi.IndefArt to get the classifier right 2016-11-19 03:10:06 +00:00
aarne
bdbbf7d2e7 Anna Ehrlemark's additional work on Slv 2016-11-11 07:45:16 +00:00
aarne
d37d00b6db extrapos field added in German UseComp 2016-11-06 18:11:31 +00:00
krasimir
c1ecb14814 added classify.hs for building dictionaries from WordNet 2016-10-29 09:29:24 +00:00
aarne
1d62281dea some more functions added to Slv by guessing and using Morgan Nilsson's grammar book 2016-10-04 16:17:07 +00:00
aarne
d2d349c93d some hopefully straightforward additions to Slovenian, all marked with ----AR 2016-10-04 10:29:39 +00:00
aarne
056b885f29 a couple more generic structural words in LargeFin 2016-09-23 17:56:21 +00:00
aarne
824ad8dfc8 LargeFin with no lexicon, but just one word in each category+inherent features; still incomplete 2016-09-23 12:32:51 +00:00
aarne
92b2a7ac36 added top-level punctuation to tagged Finnish 2016-09-22 19:49:26 +00:00
aarne
6c8b0be7aa added derivable adverbs to LargeFin (the tagged lexicon from Kotus) 2016-09-22 08:55:47 +00:00
aarne
2e2f042ca2 Omorfi tagging mostly complete for open classes in Fin, some closed classes and syncat words missing 2016-09-22 08:23:04 +00:00
aarne
58df464c6a refactored adjectives in StemFin to get correct tags in tagged/ 2016-09-22 06:33:43 +00:00
aarne
9c4cb67da8 adapted most of the tags to UD parsebank notation in TagFin 2016-09-21 15:37:33 +00:00
aarne
9170fcb237 experimental LargeFin parsing grammar with Kotus lexicon and morphological tags. 2016-09-21 13:29:35 +00:00
aarne
49bfa9cef8 tagged/LangFin.gf now compiles but conversion to tags is not yet complete 2016-09-21 12:28:09 +00:00
prasanth.kolachina
91610cd640 additions to Makefile for translate grammars 2016-09-19 10:45:56 +00:00
aarne
490c8386ba fixed the inflection of DictionaryFin.escape_V2 2016-09-01 12:22:14 +00:00
aarne
e05dea185c improving the smartness of ParadigmsFre.mkV, leading to over 200 improvements in DictionaryFre 2016-09-01 12:08:16 +00:00
krasimir
3055ac0a7c some more words in LexiconSlv and StructuralSlv moved from Anna's grammar 2016-08-30 13:36:18 +00:00
krasimir
51ad54d2c2 added UseComp and CompAP in Slovenian. This also implements the complicated word order 2016-08-30 13:16:44 +00:00
krasimir
5fc11c8cb0 prodrop pronouns from Anna's grammar 2016-08-30 11:28:11 +00:00
krasimir
f1aff40123 an overloaded version of mkPN which takes advantage of the smart paradigms for nouns. also now we store only the singular forms for all PNs. added NounSlv.UsePN 2016-08-30 09:41:57 +00:00
krasimir
3591b71bab more nouns in LexiconSlv.gf from Anna's grammar 2016-08-30 09:06:36 +00:00
krasimir
78acd20ace animacy is now used in syntax as well 2016-08-30 08:30:04 +00:00
krasimir
5c35480e68 Animacy is now stored and used in Mophology but not yet in syntax 2016-08-29 15:28:15 +00:00
krasimir
52ef0b9d5e added smart paradigms for Slovenian but without animacy 2016-08-29 15:03:34 +00:00
krasimir
f286610a21 a couple of entries in the Slovenian lexicon from Anna's MiniLexicon 2016-08-28 23:22:15 +00:00
krasimir
fe6acf7ffd smart paradigms for adjectives adapted from Anna Ehrlemark. The adaptation is not perfect because it includes syncretic forms 2016-08-28 23:11:22 +00:00
krasimir
14720c1238 fix for the Slovenian imperatives 2016-08-28 21:01:52 +00:00
krasimir
2c8a68b002 smart paradigms for verbs in Slovenian from Anna Ehrlemark 2016-08-28 20:19:11 +00:00
krasimir
c0d2623e59 conjunction in Slovenian 2016-08-16 10:35:30 +00:00
krasimir
6c88dcd7a3 added one more overloaded version of mkV2 in Slovenian 2016-08-16 07:51:30 +00:00
krasimir
af10e9913e added genitive case in the Slovenian API 2016-08-16 07:51:10 +00:00
krasimir
95e5cd74b2 AdvVP in Slovenian 2016-08-15 21:24:52 +00:00
krasimir
ea20b6f786 this_Quant and that_Quant. inflected possesive pronouns in Slovenian 2016-08-15 20:52:37 +00:00
krasimir
bb617e06c6 implemented negation in Slovenian based on Anna Ehrlemark's mini resource 2016-08-11 09:44:13 +00:00
krasimir
68a660bb15 added love_V2 in LexiconSlv.gf 2016-08-11 09:43:44 +00:00
krasimir
246c625f5c added/checked a few words in Bulgarian 2016-07-29 11:54:23 +00:00
krasimir
589563d880 two more phrasal verbs in Bulgarian 2016-07-29 11:54:06 +00:00
krasimir
63ea01cf08 merge teetotaler_N and teetotaller_N 2016-07-29 11:52:56 +00:00
krasimir
063084a3b1 mark teapot_N as checked in Bulgarian 2016-07-29 11:41:39 +00:00
krasimir
b480e1aa56 split stainless_A 2016-07-29 11:40:55 +00:00
krasimir
e67ccf84a7 add offline_A in Bulgarian 2016-07-29 11:40:33 +00:00
krasimir
2211acf48e fix teacherFem_N in Bulgarian 2016-07-29 11:39:32 +00:00
krasimir
0b8a2cf790 a few more changes in the dictionaries 2016-07-20 04:27:47 +00:00
krasimir
e6fc91f074 a few more changes in the dictionaries 2016-07-18 19:42:24 +00:00
krasimir
79b4f59505 more splits and fixes in the dictionaries 2016-07-18 13:42:51 +00:00
inari
715ac1ec8c fix go_under_V 2016-07-15 10:56:06 +00:00
krasimir
39ca158f8c ill_Adv -> ill_AdV 2016-07-05 09:51:08 +00:00
krasimir
52e9076641 add ready_VP in Constructions 2016-07-05 09:49:30 +00:00
krasimir
c0ed747ba6 added scared_VP & ill_VP. fixed scared_A and ill_A in the general dictionaries of some languages 2016-07-05 06:22:06 +00:00
krasimir
c5a9da0757 fixes in the translation dictionaries based on the data in the phrasebook 2016-07-04 21:18:43 +00:00
krasimir
3435382e49 fixes in DictionaryBul.gf 2016-07-04 21:17:34 +00:00
krasimir
334067e98f fixes in the glosses of mule_over_V2 and understand_V 2016-07-04 21:16:49 +00:00
krasimir
54cf5ce0c8 added tired_VP in Constructions 2016-07-04 21:15:00 +00:00
krasimir
6f6e6081d4 more splits and some more fixes 2016-06-23 21:26:08 +00:00
200 changed files with 97635 additions and 3537 deletions

View File

@@ -34,6 +34,7 @@ exx: exx-script
gf -retain -s $(GF_alltenses)/TryGer.gfo <api-examples.gfs >api-examples-Ger.txt
gf -retain -s $(GF_alltenses)/TryGre.gfo <api-examples.gfs >api-examples-Gre.txt
gf -retain -s $(GF_alltenses)/TryHin.gfo <api-examples.gfs >api-examples-Hin.txt
gf -retain -s $(GF_alltenses)/TryIce.gfo <api-examples.gfs >api-examples-Ice.txt
gf -retain -s $(GF_alltenses)/TryIta.gfo <api-examples.gfs >api-examples-Ita.txt
gf -retain -s $(GF_alltenses)/TryJpn.gfo <api-examples.gfs >api-examples-Jpn.txt
gf -retain -s $(GF_alltenses)/TryLav.gfo <api-examples.gfs >api-examples-Lav.txt
@@ -41,6 +42,7 @@ exx: exx-script
gf -retain -s $(GF_alltenses)/TryMon.gfo <api-examples.gfs >api-examples-Mon.txt
gf -retain -s $(GF_alltenses)/TryNep.gfo <api-examples.gfs >api-examples-Nep.txt
gf -retain -s $(GF_alltenses)/TryNor.gfo <api-examples.gfs >api-examples-Nor.txt
gf -retain -s $(GF_alltenses)/TryNno.gfo <api-examples.gfs >api-examples-Nno.txt
gf -retain -s $(GF_alltenses)/TryPes.gfo <api-examples.gfs >api-examples-Pes.txt
gf -retain -s $(GF_alltenses)/TryPnb.gfo <api-examples.gfs >api-examples-Pnb.txt
gf -retain -s $(GF_alltenses)/TryPol.gfo <api-examples.gfs >api-examples-Pol.txt

View File

@@ -19,7 +19,7 @@ revealedLang = "Eng"
-- all languages shown
apiExxFiles = ["api-examples-" ++ lang ++ ".txt" | lang <- words
-- "Eng Chi"
"Afr Bul Cat Chi Dan Dut Eng Est Fin Fre Ger Gre Hin Ita Jpn Lav Mlt Mon Nep Nor Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd"
"Afr Bul Cat Chi Dan Dut Eng Est Fin Fre Ger Gre Hin Ice Ita Jpn Lav Mlt Mon Nep Nor Nno Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd"
]
main = do
@@ -45,6 +45,8 @@ main = do
append "%!postproc(html): '(SRC=\"categories.png\")' '\\1 USEMAP=\"#categories\"'"
append "%!postproc(html): '#LParadigms' '<a name=\"RParadigms\"></a>'"
append "%!postproc(tex): '#LParadigms' ''"
append "%!postproc(html): '#quicklinks' '<script src=\"quicklinks.js\"></script>'"
append "%!postproc(tex): '#quicklinks' ''"
delimit $ addToolTips cs
include "synopsis-intro.txt"
title "Categories"
@@ -95,6 +97,8 @@ main = do
space
append "%%toc"
space
append "#quicklinks"
space
let format = if isLatex then "tex" else "html"
system $ "txt2tags -t" ++ format ++ " " ++ " --toc " ++ synopsis
if isLatex then (system $ "pdflatex synopsis.tex") >> return () else return ()
@@ -252,6 +256,7 @@ paradigmFiles = [
("German", srcPath "/german/ParadigmsGer.gf"),
("Greek", srcPath "/greek/ParadigmsGre.gf"),
("Hindi", srcPath "/hindi/ParadigmsHin.gf"),
("Icelandic", srcPath "/icelandic/ParadigmsIce.gf"),
-- ("Interlingua", srcPath "/interlingua/ParadigmsIna.gf"),
("Italian", srcPath "/italian/ParadigmsIta.gf"),
("Japanese", srcPath "/japanese/ParadigmsJpn.gf"),
@@ -260,6 +265,7 @@ paradigmFiles = [
("Mongolian", srcPath "/mongolian/ParadigmsMon.gf"),
("Nepali", srcPath "/nepali/ParadigmsNep.gf"),
("Norwegian", srcPath "/norwegian/ParadigmsNor.gf"),
("Nynorsk", srcPath "/nynorsk/ParadigmsNno.gf"),
("Polish", srcPath "/polish/ParadigmsPol.gf"),
("Punjabi", srcPath "/punjabi/ParadigmsPnb.gf"),
("Romanian", srcPath "/romanian/ParadigmsRon.gf"),

109
doc/quicklinks.js Normal file
View File

@@ -0,0 +1,109 @@
// Find an element with a certain tag containing a certain text.
function findElement(tagname,text) {
var els=document.body.getElementsByTagName(tagname)
for(var i=0;i<els.length;i++)
if(els[i].innerText==text) return els[i]
return null
}
function text(s) { return document.createTextNode(s); }
function appendChildren(n,ds) {
if(Array.isArray(ds)) for(var i in ds) n.appendChild(ds[i]);
else if(typeof ds=="string")
n.appendChild(text(ds))
else
n.appendChild(ds)
}
function node(tag,cls,ds) {
var n=document.createElement(tag)
if(cls) n.className=cls
if(ds) appendChildren(n,ds)
return n
}
function a(href,txt) {
var a=node("a","",txt)
a.href=href
return a
}
function tr(ds) { return node("tr","",ds) }
function th(d) { return node("th","",d) }
function td(d) { return node("td","",d) }
function forAllLinks(list,f) {
for(var i=0;i<list.length;i++) {
var c=list[i].firstElementChild
if(c && c.tagName=="A" && c.href) f(c)
}
}
/* -------------------------------------------------------------------------- */
// Extract links to the syntax rules
function listrules(ul) {
var rules=[]
if(ul.tagName!="UL") return []
forAllLinks(ul.children,function(c) {
rules.push({href:c.href,text:c.innerText.split(" -")[0],
full:c.innerText})
})
return rules
}
// Extract the links to the paradigm sections for all the languages
function listlangs(ul) {
var langs=[]
if(ul.tagName!="UL") return []
forAllLinks(ul.children,function(c) {
if(/^Paradigms for /.test(c.innerText))
langs.push({href:c.href,text:c.innerText.substr(14),
full:c.innerText})
})
return langs
}
function linklist(links) {
var d=node("td","quicklinks")
for(var i=0;i<links.length;i++) {
var l=a(links[i].href,links[i].text)
l.title=links[i].full
d.appendChild(l)
}
return d
}
function quicklinks() {
// Find the detailed table of contents
var h1toc=findElement("h1","Table of Contents")
var ultoc=h1toc.nextElementSibling
while(ultoc && ultoc.tagName!="UL") ultoc=ultoc.nextElementSibling
var lis=ultoc.children
var syntaxrules=[],langs=[]
// Find the Syntax Rules and Lexical Paradigms sections in the toc
for(var i=0;i<lis.length;i++) {
var li=lis[i],c=li.firstElementChild
if(c.tagName=="A") {
if(/^Syntax Rules /.test(c.innerText))
syntaxrules=listrules(c.nextElementSibling)
else if(c.innerText=="Lexical Paradigms")
langs=listlangs(c.nextElementSibling)
}
}
var table=node("table","quicklinks",
[tr([th("Syntax"),th("Morphology")]),
tr([linklist(syntaxrules),linklist(langs)])])
return node("div","quicklinks",
[text("Quick links"),
node("div","expand",table)])
}
document.body.appendChild(quicklinks())

View File

@@ -14,7 +14,7 @@ div.reveal:hover div.popup {
}
.popup dl { margin: 5px; }
tr:hover div.expand {
tr:hover div.expand, div.quicklinks:hover > div.expand {
display: block;
}
@@ -24,3 +24,28 @@ table { border-collapse: collapse; }
td, th { padding: 5px; }
th { background: #9df; }
td { background: white }
/* Quick links */
/* To prevent Quick links from overlapping page header: */
h1 { margin-right: 2.5em; }
div.quicklinks {
position: fixed;
top:0; right:0;
max-height: 97%;
overflow: scroll;
background-color: rgba(255,255,192,0.9);
font-family: sans-serif;
box-shadow: 4px 4px 12px rgba(0,0,0,0.33);
padding: 5px;
}
table.quicklinks th, td.quicklinks {
border: 1px solid black;
vertical-align: top;
font-size: 90%;
line-height: 130%;
}
div.quicklinks a { display: block; }

View File

@@ -9,7 +9,7 @@
<CENTER>
<H1>GF Resource Grammar Library Documentation and Publications</H1>
<FONT SIZE="4"><I>Aarne Ranta</I></FONT><BR>
<FONT SIZE="4">20131018</FONT>
<FONT SIZE="4">20170119</FONT>
</CENTER>
<P>
@@ -239,6 +239,16 @@ In The 3rd Workshop
on South and Southeast Asian NLP, COLING 2012. <I>Reprinted in Shafqat's thesis</I>
</UL>
<H3>Icelandic</H3>
<UL>
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/icelandic">http://www.grammaticalframework.org/lib/src/icelandic</A> (Bjarki Traustason)
<P></P>
<B>Publications</B>
<P></P>
Bjarki Traustason, MSc thesis, Chalmers
</UL>
<H3>Interlingua</H3>
<UL>
@@ -325,12 +335,18 @@ MSc thesis, Chalmers University of Technology,
<A HREF="http://publications.lib.chalmers.se/records/fulltext/161384.pdf">http://publications.lib.chalmers.se/records/fulltext/161384.pdf</A>
</UL>
<H3>Norwegian</H3>
<H3>Norwegian (bokmål)</H3>
<UL>
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/norwegian">http://www.grammaticalframework.org/lib/src/norwegian</A> <A HREF="http://www.grammaticalframework.org/lib/src/scandinavian">http://www.grammaticalframework.org/lib/src/scandinavian</A> (Aarne Ranta)
</UL>
<H3>Norwegian (nynorsk)</H3>
<UL>
<LI><B>Source</B>: <A HREF="http://www.grammaticalframework.org/lib/src/nynorsk">http://www.grammaticalframework.org/lib/src/nynorsk</A> (Stian Rødven Eide) <A HREF="http://www.grammaticalframework.org/lib/src/scandinavian">http://www.grammaticalframework.org/lib/src/scandinavian</A> (Aarne Ranta)
</UL>
<H3>Persian</H3>
<UL>

View File

@@ -258,6 +258,15 @@ on South and Southeast Asian NLP, COLING 2012. //Reprinted in Shafqat's thesis//
===Icelandic===
- **Source**: http://www.grammaticalframework.org/lib/src/icelandic (Bjarki Traustason)
**Publications**
Bjarki Traustason, MSc thesis, Chalmers
===Interlingua===
- **Source**: http://www.grammaticalframework.org/lib/src/interlingua (Jean-Philippe Bernardy)
@@ -350,12 +359,18 @@ http://publications.lib.chalmers.se/records/fulltext/161384.pdf
===Norwegian===
===Norwegian (bokmål)===
- **Source**: http://www.grammaticalframework.org/lib/src/norwegian http://www.grammaticalframework.org/lib/src/scandinavian (Aarne Ranta)
%- **Publications**
===Norwegian (nynorsk)===
- **Source**: http://www.grammaticalframework.org/lib/src/nynorsk (Stian Rødven Eide) http://www.grammaticalframework.org/lib/src/scandinavian (Aarne Ranta)
%- **Publications**
===Persian===

View File

@@ -2,12 +2,13 @@
<HTML>
<HEAD>
<META NAME="generator" CONTENT="http://txt2tags.org">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf8">
<TITLE>The Status of the GF Resource Grammar Library</TITLE>
</HEAD><BODY BGCOLOR="white" TEXT="black">
<CENTER>
<H1>The Status of the GF Resource Grammar Library</H1>
<FONT SIZE="4"><I>Aarne Ranta</I></FONT><BR>
<FONT SIZE="4">20150313</FONT>
<FONT SIZE="4">20170119</FONT>
</CENTER>
<P>
@@ -332,6 +333,23 @@ are marked in the table
<TD>*SV,*KP,MH,AR,PK</TD>
</TR>
<TR>
<TD>Ice</TD>
<TD>Icelandic</TD>
<TD>+</TD>
<TD>-</TD>
<TD>++</TD>
<TD>+</TD>
<TD>+</TD>
<TD>+</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>+</TD>
<TD>*BT</TD>
</TR>
<TR>
<TD>Ina</TD>
<TD>Interlingua</TD>
<TD>+</TD>
@@ -393,7 +411,7 @@ are marked in the table
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>+</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
@@ -468,6 +486,23 @@ are marked in the table
<TD>*DS</TD>
</TR>
<TR>
<TD>Nno</TD>
<TD>Norwegian(n)</TD>
<TD>+</TD>
<TD>+</TD>
<TD>++</TD>
<TD>+</TD>
<TD>+</TD>
<TD>+</TD>
<TD>+</TD>
<TD>+</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>*SRE</TD>
</TR>
<TR>
<TD>Nor</TD>
<TD>Norwegian(b)</TD>
<TD>+</TD>
@@ -563,8 +598,8 @@ are marked in the table
<TD>+</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>-</TD>
<TD>+</TD>
<TD>+</TD>
<TD>-</TD>
<TD>+</TD>
<TD>JK,*NF</TD>
@@ -759,15 +794,16 @@ AB Ansu Berg,
AD Ali El Dada,
AR Aarne Ranta,
AS Adam Slaski,
BB Björn Bringert,
BB Björn Bringert,
BT Bjarki Traustason,
CK Chotiros Kairoje,
CP Chen Peng,
DD Dana Dannélls,
DD Dana Dannélls,
DS Dinesh Simk,
EA Elnaz Abolahrar,
EG Erzsébet Galgóczy
EG Erzsébet Galgóczy
FJ Femke Johansson,
HH Harald Hammarström,
HH Harald Hammarström,
HLa Herbert Lange,
HLe Hans Leiss,
GP Gabriele Paganelli,
@@ -799,8 +835,9 @@ RE Ramona Enache,
PP Peteris Paikens,
SC Server Cimen,
SM Sofy Moradi,
SRE Stian Rødven Eide,
SV Shafqat Virk,
TH Therese Söderberg,
TH Therese Söderberg,
WN Wanjiku Ng'ang'a,
ZL Zhuo Lin Qiqige
</P>

View File

@@ -2,7 +2,7 @@ The Status of the GF Resource Grammar Library
Aarne Ranta
%%date
%!Encoding:utf8
The following table gives the languages currently available in the
GF Resource Grammar Library.
@@ -33,20 +33,22 @@ are marked in the table
| Grc | Greek(anc) | - | - | - | - | - | - | - | - | - | - | - | + | *HLe
| Heb | Hebrew | + | - | - | - | - | - | - | - | - | - | - | + | *DD
| Hin | Hindi | + | + | ++ | + | + | + | + | - | - | + | + | + | *SV,*KP,MH,AR,PK
| Ice | Icelandic | + | - | ++ | + | + | + | - | - | - | - | - | + | *BT
| Ina | Interlingua | + | + | ++ | + | + | - | - | - | - | - | - | - | JB
| Ita | Italian | + | + | ++ | + | + | + | + | - | - | + | ++ | - | *AR,*RE,GP
| Jpn | Japanese | + | - | ++ | + | + | + | - | - | - | + | + | + | *LZ
| Lat | Latin | + | - | - | - | - | - | - | - | - | - | - | - | *AR,*HLa
| Lat | Latin | + | - | - | - | - | - | - | - | + | - | - | - | *AR,*HLa
| Lav | Latvian | + | - | ++ | + | + | + | - | - | - | - | + | + | *NG,*PP
| Mlt | Maltese | + | + | ++ | + | + | + | + | - | - | - | - | + | *JC
| Mon | Mongolian | + | - | ++ | + | + | + | - | - | + | - | - | + | *NE
| Nep | Nepali | + | + | ++ | + | + | - | - | - | - | - | - | + | *DS
| Nno | Norwegian(n) | + | + | ++ | + | + | + | + | + | - | - | - | - | *SRE
| Nor | Norwegian(b) | + | + | ++ | + | + | + | + | + | - | - | + | - | *AR
| Pes | Persian | + | - | + | + | + | + | - | - | - | - | + | + | *SV,*EA,SM
| Pnb | Punjabi | + | + | + | + | + | + | + | - | - | - | - | + | *SV,MH
| Pol | Polish | + | + | + | + | + | + | + | - | - | - | + | + | IN,*AS
| Ron | Romanian | + | + | ++ | + | + | + | + | - | - | - | + | + | *RE
| Rus | Russian | + | + | ++ | + | + | + | - | - | - | - | - | + | JK,*NF
| Rus | Russian | + | + | ++ | + | + | + | - | - | + | + | - | + | JK,*NF
| Snd | Sindhi | + | + | ++ | + | + | + | + | - | - | - | - | + | *SV,*JD
| Spa | Spanish | + | + | ++ | + | + | + | + | + | - | + | ++ | - | *AR,IA,TS,*IL
| Swa | Swahili | + | - | - | - | - | - | - | - | - | - | - | + | *WN,JM
@@ -93,15 +95,16 @@ AB Ansu Berg,
AD Ali El Dada,
AR Aarne Ranta,
AS Adam Slaski,
BB Björn Bringert,
BB Björn Bringert,
BT Bjarki Traustason,
CK Chotiros Kairoje,
CP Chen Peng,
DD Dana Dannélls,
DD Dana Dannélls,
DS Dinesh Simk,
EA Elnaz Abolahrar,
EG Erzsébet Galgóczy
EG Erzsébet Galgóczy
FJ Femke Johansson,
HH Harald Hammarström,
HH Harald Hammarström,
HLa Herbert Lange,
HLe Hans Leiss,
GP Gabriele Paganelli,
@@ -133,8 +136,9 @@ RE Ramona Enache,
PP Peteris Paikens,
SC Server Cimen,
SM Sofy Moradi,
SRE Stian Rødven Eide,
SV Shafqat Virk,
TH Therese Söderberg,
TH Therese Söderberg,
WN Wanjiku Ng'ang'a,
ZL Zhuo Lin Qiqige

View File

@@ -8,7 +8,7 @@
=Introduction=
The GF Resource Grammar Library is the standard library for Grammatical Framework.
It covers the morphology and basic syntax of currently 30 languages:
It covers the morphology and basic syntax of currently 32 languages:
Afrikaans,
Bulgarian,
Catalan,
@@ -22,13 +22,15 @@ French,
German,
Greek,
Hindi,
Icelandic,
Japanese,
Italian,
Latvian,
Maltese,
Mongolian,
Nepali,
Norwegian bokmål,
Norwegian (bokmål),
Norwegial (nynorsk),
Persian,
Polish,
Punjabi,
@@ -53,12 +55,12 @@ constructing trees in them.
- [Chapter 2 #toc5]: syntactic construction functions, with cross-links and
examples.
- [Chapter 3 #toc84]: morphological paradigms.
- [Chapter 4 #toc114]: additional libraries.
- [Chapter 5 #toc120]: how to "browse" the library by
- [Chapter 4 #toc116]: additional libraries.
- [Chapter 5 #toc122]: how to "browse" the library by
loading the grammars into the ``gf`` command editor.
- [Chapter 6 #toc121]: a brief example of how application grammars can
- [Chapter 6 #toc123]: a brief example of how application grammars can
use the resource modules.
- [Detailed table of contents #toc122].
- [Detailed table of contents #toc124].
Other relevant documents:

File diff suppressed because it is too large Load Diff

View File

@@ -84,6 +84,8 @@ SentAP amod acl
DetQuantOrd head nummod amod -- quite wrong; again for same reason as DetQuant function
DetCN det head
IDetCN det head
IDetQuant head empty
CountNP det head
PredetNP det head
PPartNP head amod -- only in core RGL
@@ -183,6 +185,7 @@ Det DET
Digits NUM
IAdv ADV
IDet DET
IQuant DET
IP PRON
Interj INTJ
N NOUN

View File

@@ -149,6 +149,8 @@ TRANSLATE10=TranslateEng.pgf TranslateBul.pgf TranslateChi.pgf TranslateGer.pgf
TRANSLATE11=$(TRANSLATE10) TranslateDut.pgf
TRANSLATE15=$(TRANSLATE10) TranslateDut.pgf TranslateCat.pgf TranslateEst.pgf TranslateTha.pgf TranslateJpn.pgf
# Without dependencies:
Translate10:
$(GFMKT) -name=Translate10 $(TRANSLATE10) +RTS -K32M
@@ -173,6 +175,9 @@ Translate8:
Translate8.pgf: $(TRANSLATE8)
$(GFMKT) -name=Translate8 $(TRANSLATE8) +RTS -K32M
Translate15.pgf: $(TRANSLATE15)
$(GFMKT) -name=Translate15 $(TRANSLATE15) +RTS -K32M
# Translate grammars for individual languages
TranslateEng.pgf:: ; $(GFMKT) -name=TranslateEng translator/TranslateEng.gf
TranslateBul.pgf:: ; $(GFMKT) -name=TranslateBul translator/TranslateBul.gf
@@ -185,6 +190,10 @@ TranslateFre.pgf:: ; $(GFMKT) -name=TranslateFre translator/TranslateFre.gf +RTS
TranslateSwe.pgf:: ; $(GFMKT) -name=TranslateSwe translator/TranslateSwe.gf
TranslateIta.pgf:: ; $(GFMKT) -name=TranslateIta translator/TranslateIta.gf +RTS -K64M
TranslateSpa.pgf:: ; $(GFMKT) -name=TranslateSpa translator/TranslateSpa.gf +RTS -K64M
TranslateCat.pgf:: ; $(GFMKT) -name=TranslateCat translator/TranslateCat.gf +RTS -K64M
TranslateEst.pgf:: ; $(GFMKT) -name=TranslateEst translator/TranslateEst.gf +RTS -K64M
TranslateTha.pgf:: ; $(GFMKT) -name=TranslateTha translator/TranslateTha.gf +RTS -K64M
TranslateJpn.pgf:: ; $(GFMKT) -name=TranslateJpn translator/TranslateJpn.gf +RTS -K64M
# Selected language pairs:
TranslateEngFin: ; $(GFMKT) -name=TranslateEngFin TranslateEng.pgf TranslateFin.pgf

View File

@@ -17,6 +17,10 @@ flags coding=utf8 ;
fun
hungry_VP : VP ; -- x is hungry / x a faim (Fre)
thirsty_VP : VP ; -- x is thirsty / x a soif (Fre)
tired_VP : VP ; -- x is tired / x estoy cansado (Spa)
scared_VP : VP ; -- x is scared
ill_VP : VP ; -- x is ill
ready_VP : VP ; -- x is ready
has_age_VP : Card -> VP ; -- x is y years old / x a y ans (Fre)
have_name_Cl : NP -> NP -> Cl ; -- x's name is y / x s'appelle y (Fre)

View File

@@ -29,7 +29,7 @@ lin
SymbS sy = {s = \\_ => sy.s} ;
SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ;
SymbOrd n = {s = \\_ => n.s ++ "."} ;
SymbOrd n = {s = \\_ => glue n.s "."} ;
lincat

View File

@@ -0,0 +1,8 @@
--# -path=.:alltenses:prelude
resource CombinatorsIce = Combinators - [ appCN, appCNc ] with
(Cat = CatIce),
(Structural = StructuralIce),
(Noun = NounIce),
(Constructors = ConstructorsIce) **
{}

View File

@@ -0,0 +1,8 @@
--# -path=.:alltenses:prelude
resource CombinatorsLat = Combinators - [ appCN, appCNc ] with
(Cat = CatLat),
(Structural = StructuralLat),
(Noun = NounLat),
(Constructors = ConstructorsLat) **
{}

View File

@@ -1,3 +1,4 @@
--# -path=.:alltenses:prelude
--# -path=.:alltenses:prelude:../arabic
resource ConstructorsAra = Constructors with (Grammar = GrammarAra) ;
resource ConstructorsAra = Constructors with (Grammar = GrammarAra) **
open MissingAra in {}

View File

@@ -0,0 +1,3 @@
--# -path=.:alltenses:prelude
resource ConstructorsIce = Constructors with (Grammar = GrammarIce) ;

View File

@@ -0,0 +1,4 @@
--# -path=.:alltenses:prelude:../latin
resource ConstructorsLat = Constructors with (Grammar = GrammarLat) **
open MissingLat in {}

5
src/api/SymbolicIce.gf Normal file
View File

@@ -0,0 +1,5 @@
--# -path=.:../icelandic:../common:../abstract:../prelude
resource SymbolicIce = Symbolic with
(Symbol = SymbolIce),
(Grammar = GrammarIce) ;

6
src/api/SymbolicJpn.gf Normal file
View File

@@ -0,0 +1,6 @@
--# -path=.:../japanese:../common:../abstract:../prelude
resource SymbolicJpn = Symbolic with
(Symbol = SymbolJpn),
(Grammar = GrammarJpn) ;

5
src/api/SymbolicLat.gf Normal file
View File

@@ -0,0 +1,5 @@
--# -path=.:../icelandic:../common:../abstract:../prelude
resource SymbolicLat = Symbolic with
(Symbol = SymbolLat),
(Grammar = GrammarLat) ;

5
src/api/SyntaxIce.gf Normal file
View File

@@ -0,0 +1,5 @@
--# -path=.:alltenses:prelude
instance SyntaxIce of Syntax =
ConstructorsIce, CatIce, StructuralIce, CombinatorsIce ;

5
src/api/SyntaxLat.gf Normal file
View File

@@ -0,0 +1,5 @@
--# -path=.:alltenses:prelude
instance SyntaxLat of Syntax =
ConstructorsLat, CatLat, StructuralLat, CombinatorsLat ;

6
src/api/TryAra.gf Normal file
View File

@@ -0,0 +1,6 @@
--# -path=.:../arabic:../common:../abstract:../prelude
resource TryAra = SyntaxAra, LexiconAra, ParadigmsAra - [mkAdN, mkAdv,mkOrd,mkQuant] **
open (P = ParadigmsAra) in {
}

3
src/api/TryIce.gf Normal file
View File

@@ -0,0 +1,3 @@
--# -path=.:../icelandic:../common:../abstract:../prelude
resource TryIce = SyntaxIce, LexiconIce, ParadigmsIce - [mkAdv,mkAdN,mkOrd] ;

3
src/api/TryLat.gf Normal file
View File

@@ -0,0 +1,3 @@
--# -path=.:../latin:../common:../abstract:../prelude
resource TryLat = SyntaxLat, LexiconLat, ParadigmsLat - [mkAdv,mkAdN,mkOrd] ;

102
src/arabic/MissingAra.gf Normal file
View File

@@ -0,0 +1,102 @@
resource MissingAra = open GrammarAra, Prelude in {
-- temporary definitions to enable the compilation of RGL API
oper AdAdv : AdA -> Adv -> Adv = notYet "AdAdv" ;
oper AdVVP : AdV -> VP -> VP = notYet "AdVVP" ;
oper AdjOrd : Ord -> AP = notYet "AdjOrd" ;
oper AdnCAdv : CAdv -> AdN = notYet "AdnCAdv" ;
oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ;
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
oper AdvS : Adv -> S -> S = notYet "AdvS" ;
oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
oper ApposCN : CN -> NP -> CN = notYet "ApposCN" ;
oper BaseAP : AP -> AP -> ListAP = notYet "BaseAP" ;
oper BaseAdv : Adv -> Adv -> ListAdv = notYet "BaseAdv" ;
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 CompCN : CN -> Comp = notYet "CompCN" ;
oper CompIAdv : IAdv -> IComp = notYet "CompIAdv" ;
oper CompIP : IP -> IComp = notYet "CompIP" ;
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 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 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 ConsNP : NP -> ListNP -> ListNP = notYet "ConsNP" ;
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
oper DetNP : Det -> NP = notYet "DetNP" ;
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 ExistNP : NP -> Cl = notYet "ExistNP" ;
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
oper IdRP : RP = notYet "IdRP" ;
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ;
oper ImpersCl : VP -> Cl = notYet "ImpersCl" ;
oper PConjConj : Conj -> PConj = notYet "PConjConj" ;
oper PPartNP : NP -> V2 -> NP = notYet "PPartNP" ;
oper PassV2 : V2 -> VP = notYet "PassV2" ;
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
oper QuestIComp : IComp -> NP -> QCl = notYet "QuestIComp" ;
oper QuestSlash : IP -> ClSlash -> QCl = notYet "QuestSlash" ;
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 RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ;
oper RelVP : RP -> VP -> RCl = notYet "RelVP" ;
oper SentAP : AP -> SC -> AP = notYet "SentAP" ;
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;
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 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 Use2N3 : N3 -> N2 = notYet "Use2N3" ;
oper UseA2 : A2 -> AP = notYet "UseA2" ;
oper UseComparA : A -> AP = notYet "UseComparA" ;
oper UseN2 : N2 -> CN = notYet "UseN2" ;
oper UseRCl : Temp -> Pol -> RCl -> RS = notYet "UseRCl" ;
oper UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ;
oper UttAP : AP -> Utt = notYet "UttAP" ;
oper UttCN : CN -> Utt = notYet "UttCN" ;
oper UttCard : Card -> Utt = notYet "UttCard" ;
oper UttImpPl : Pol -> Imp -> Utt = notYet "UttImpPl" ;
oper UttImpPol : Pol -> Imp -> Utt = notYet "UttImpPol" ;
oper UttVP : VP -> Utt = notYet "UttVP" ;
oper VocNP : NP -> Voc = notYet "VocNP" ;
oper it_Pron : Pron = notYet "it_Pron" ;
oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ;
oper which_IQuant : IQuant = notYet "which_IQuant" ;
}

View File

@@ -14,6 +14,11 @@ lincat
lin
hungry_VP = mkVP (mkA079 "гладен") ;
thirsty_VP = mkVP (mkA079 "жаден") ;
tired_VP = mkVP (mkA076 "уморен") ;
scared_VP = mkVP (mkA076 "уплашен") ;
ill_VP = mkVP (mkA079 "болен") ;
ready_VP = mkVP (mkA076 "готов") ;
has_age_VP card = mkVP (SyntaxBul.mkAdv (mkPrep "на" R.Acc) (mkNP <lin Card card : Card> (mkN041 "година"))) ;
have_name_Cl x name = mkCl <lin NP x : NP> (dirV2 (medialV (actionV (mkV186 "казвам") (mkV156 "кажа")) R.Acc)) <lin NP name : NP> ;
how_old_QCl p = mkQCl (MorphoFunsBul.mkIAdv "на колко") (mkCl <lin NP p : NP> (mkNP a_Quant plNum (mkN041 "година"))) ;

View File

@@ -1,5 +1,5 @@
--# -coding=cp1251
concrete TextBul of Text = CatBul ** {
concrete TextBul of Text = CatBul ** open Prelude in {
flags coding=cp1251 ;
@@ -7,8 +7,8 @@ concrete TextBul of Text = CatBul ** {
lin
TEmpty = {s = []} ;
TFullStop x xs = {s = x.s ++ "." ++ xs.s} ;
TQuestMark x xs = {s = x.s ++ "?" ++ xs.s} ;
TExclMark x xs = {s = x.s ++ "!" ++ xs.s} ;
TFullStop x xs = {s = x.s ++ SOFT_BIND ++ "." ++ xs.s} ;
TQuestMark x xs = {s = x.s ++ SOFT_BIND ++ "?" ++ xs.s} ;
TExclMark x xs = {s = x.s ++ SOFT_BIND ++ "!" ++ xs.s} ;
}

View File

@@ -6,6 +6,6 @@ concrete CompatibilityCat of Compatibility = CatCat ** open Prelude, CommonRoman
lin
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
OrdInt n = {s = \\_ => n.s ++ "."} ; ---
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ; ---
}

View File

@@ -1,7 +1,7 @@
--# -path=alltenses:.:../abstract
concrete ConstructionCat of Construction = CatCat **
open SyntaxCat, SymbolicCat, ParadigmsCat,
open SyntaxCat, SymbolicCat, ParadigmsCat, BeschCat,
(L = LexiconCat), (E = ExtraCat), (I = IrregCat), (R = ResCat), (C = CommonRomance),
Prelude in {
flags coding=utf8 ;
@@ -10,6 +10,10 @@ flags coding=utf8 ;
lin
hungry_VP = E.ComplCN have_V2 (mkCN (mkN "gana" feminine)) ; -- "fam" (val)
thirsty_VP = E.ComplCN have_V2 (mkCN (mkN "set" feminine)) ;
tired_VP = mkVP stateCopula (mkAP (mkA "cansat")) ;
scared_VP = E.ComplCN have_V2 (mkCN (mkN "por" feminine)) ;
ill_VP = mkVP stateCopula (mkAP (mkA "malalt")) ;
ready_VP = mkVP stateCopula (mkAP (mkA "preparat")) ;
has_age_VP card = mkVP have_V2 (mkNP <lin Card card : Card> L.year_N) ;
@@ -55,6 +59,7 @@ lincat
Year = NP ;
oper
noPrep : Prep = mkPrep [] ;
stateCopula = mkVA (mkV (estar_54 "estar")) ;
lin
weekdayPunctualAdv w = lin Adv {s = w.s ! C.Sg} ; -- lundi

View File

@@ -8,6 +8,11 @@ flags coding=utf8 ;
lin
hungry_VP = mkVP (mkV "饿") ;
thirsty_VP = mkVP (mkA "渴") ;
tired_VP = mkVP (mkV "累了") ;
scared_VP = mkVP (mkA "惊慌") ;
ill_VP = mkVP (mkV "生病了") ;
ready_VP = mkVP L.ready_A ;
has_age_VP card = mkVP (lin AdV card) (mkVP (mkV "岁")) ;
have_name_Cl x y = mkCl (lin NP x) (mkV2 (mkV "叫")) (lin NP y) ;

View File

@@ -67,7 +67,7 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
OrdNumeralSuperl n a = {s = ordinal_s ++ n.s ++ superlative_s ++ a.s} ; ---- to check AR 24/8/2014
DefArt = mkQuant [] [] DTPoss ; -- use that_Quant if you want the_s
IndefArt = mkQuant yi_s [] DTPoss ; -- (DTFull Sg) ; -- empty in the plural
IndefArt = mkQuant yi_s [] DTNum ; -- (DTFull Sg) ; -- empty in the plural
MassNP cn = cn ;

View File

@@ -41,16 +41,5 @@ lin
perfect_neg_Chunk = ss "no ha" ;
past_perfect_Chunk = ss "havia" ;
past_perfect_neg_Chunk = ss "no havia" ;
fullstop_Chunk = ss "." ;
exclmark_Chunk = ss "!" ;
questmark_Chunk = ss "?" ;
comma_Chunk = ss "," ;
colon_Chunk = ss ":" ;
semicolon_Chunk = ss ";" ;
quote_Chunk = ss "\"" ;
lpar_Chunk = ss "(" ;
rpar_Chunk = ss ")" ;
dash_Chunk = ss "-" ;
}

View File

@@ -1,5 +1,5 @@
concrete ChunkFre of Chunk = CatFre, ExtensionsFre [VPS,VPI] **
ChunkFunctor - [AP_Chunk, SSlash_Chunk]
ChunkFunctor - [AP_Chunk, SSlash_Chunk, quote_Chunk]
with (Syntax = SyntaxFre), (Extensions = ExtensionsFre) **
open
SyntaxFre, (E = ExtensionsFre), Prelude,
@@ -10,6 +10,11 @@ lin
SSlash_Chunk s = mkUtt <lin S {s = s.s ! {g = Masc ; n = Sg}} : S> ;
quote_Chunk = variants { ss (SOFT_BIND ++ "\"") ;
ss ("\"" ++ SOFT_BIND) ;
ss ("«" ++ SOFT_BIND) ;
ss (SOFT_BIND ++ "»") } ;
lin
NP_Acc_Chunk np = ss (np.s ! Acc).ton ;
NP_Gen_Chunk np = ss (np.s ! genitive).comp ;
@@ -42,15 +47,4 @@ lin
past_perfect_Chunk = ss "avait" ;
past_perfect_neg_Chunk = ss "n'avait pas" ;
fullstop_Chunk = ss "." ;
exclmark_Chunk = ss "!" ;
questmark_Chunk = ss "?" ;
comma_Chunk = ss "," ;
colon_Chunk = ss ":" ;
semicolon_Chunk = ss ";" ;
quote_Chunk = ss "\"" ;
lpar_Chunk = ss "(" ;
rpar_Chunk = ss ")" ;
dash_Chunk = ss "-" ;
}

View File

@@ -67,18 +67,19 @@ lin
Symb_Chunk s = lin Utt s ;
fullstop_Chunk = ss "." ;
exclmark_Chunk = ss "!" ;
questmark_Chunk = ss "?" ;
comma_Chunk = ss "," ;
colon_Chunk = ss ":" ;
semicolon_Chunk = ss ";" ;
quote_Chunk = ss "\"" ;
lpar_Chunk = ss "(" ;
rpar_Chunk = ss ")" ;
dash_Chunk = ss "-" ;
fullstop_Chunk = sbSS "." ;
exclmark_Chunk = sbSS "!" ;
questmark_Chunk = sbSS "?" ;
comma_Chunk = sbSS "," ;
colon_Chunk = sbSS ":" ;
semicolon_Chunk = sbSS ";" ;
quote_Chunk = variants {sbSS "\"" ; ss ("\"" ++ SOFT_BIND) } ;
lpar_Chunk = ss ("(" ++ SOFT_BIND) ;
rpar_Chunk = sbSS ")" ;
dash_Chunk = sbSS "-" ;
oper
emptyNP : NP = Syntax.mkNP (P.mkPN []) ;
sbSS : Str -> SS = \s -> ss (SOFT_BIND ++ s) ;
}

View File

@@ -42,15 +42,4 @@ oper
past_perfect_Chunk = ss "aveva" ;
past_perfect_neg_Chunk = ss "non aveva" ;
fullstop_Chunk = ss "." ;
exclmark_Chunk = ss "!" ;
questmark_Chunk = ss "?" ;
comma_Chunk = ss "," ;
colon_Chunk = ss ":" ;
semicolon_Chunk = ss ";" ;
quote_Chunk = ss "\"" ;
lpar_Chunk = ss "(" ;
rpar_Chunk = ss ")" ;
dash_Chunk = ss "-" ;
}

View File

@@ -40,16 +40,5 @@ lin
perfect_neg_Chunk = ss "no ha" ;
past_perfect_Chunk = ss "había" ;
past_perfect_neg_Chunk = ss "no había" ;
fullstop_Chunk = ss "." ;
exclmark_Chunk = ss "!" ;
questmark_Chunk = ss "?" ;
comma_Chunk = ss "," ;
colon_Chunk = ss ":" ;
semicolon_Chunk = ss ";" ;
quote_Chunk = ss "\"" ;
lpar_Chunk = ss "(" ;
rpar_Chunk = ss ")" ;
dash_Chunk = ss "-" ;
}

View File

@@ -1,11 +1,11 @@
concrete TextX of Text = CommonX ** {
concrete TextX of Text = CommonX ** open Prelude in {
-- This will work for almost all languages except Spanish.
lin
TEmpty = {s = []} ;
TFullStop x xs = {s = x.s ++ "." ++ xs.s} ;
TQuestMark x xs = {s = x.s ++ "?" ++ xs.s} ;
TExclMark x xs = {s = x.s ++ "!" ++ xs.s} ;
TFullStop x xs = {s = x.s ++ SOFT_BIND ++ "." ++ xs.s} ;
TQuestMark x xs = {s = x.s ++ SOFT_BIND ++ "?" ++ xs.s} ;
TExclMark x xs = {s = x.s ++ SOFT_BIND ++ "!" ++ xs.s} ;
}

View File

@@ -6,7 +6,7 @@ src:
runghc MkMini.hs
compdemo:
$(compile) Afr Bul Cat Chi Dan Dut Eng Est Fin Fre Ger Gre Hin Ita Jpn Lav Mlt Mon Nep Nor Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd
$(compile) Afr Bul Cat Chi Dan Dut Eng Est Fin Fre Ger Gre Hin Ice Ita Jpn Lav Mlt Mon Nep Nor Nno Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd
linkdemo:
$(compile) -link Afr Bul Cat Chi Dan Dut Eng Est Fin Fre Ger Gre Hin Ita Jpn Lav Mlt Mon Nep Nor Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd
$(compile) -link Afr Bul Cat Chi Dan Dut Eng Est Fin Fre Ger Gre Hin Ice Ita Jpn Lav Mlt Mon Nep Nor Nno Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd

View File

@@ -2,9 +2,10 @@ src = "Eng"
langs = [
"Afr","Bul","Cat","Chi","Dan","Dut",
"Est","Fin","Fre","Ger","Gre","Hin",
"Ita","Jpn","Lav","Mlt","Mon","Nep",
"Nor","Pes","Pol","Pnb","Ron","Rus",
"Snd","Spa","Swe","Tha","Urd"
"Ice","Ita","Jpn","Lav","Mlt","Mon",
"Nep","Nor","Nno","Pes","Pol","Pnb",
"Ron","Rus","Snd","Spa","Swe","Tha",
"Urd"
]
file lng = "ResourceDemo" ++ lng ++ ".gf"

View File

@@ -8,6 +8,11 @@ concrete ConstructionDut of Construction = CatDut **
lin
hungry_VP = mkVP have_V2 (mkNP (mkN "honger")) ;
thirsty_VP = mkVP have_V2 (mkNP (mkN "dorst")) ;
tired_VP = mkVP (mkA "moe") ;
scared_VP = mkVP (mkA "bang") ;
ill_VP = mkVP (mkA "ziek") ;
ready_VP = mkVP (mkA "klaar") ;
has_age_VP card = mkVP (mkNP <card : Card> L.year_N) ;
have_name_Cl x y = mkCl (lin NP x) (mkV2 I.heten_V) (lin NP y) ;

View File

@@ -194,7 +194,7 @@ lake_N = mkN "meer" neuter ;
lamp_N = mkN "lamp" utrum ;
language_N = mkN "taal" utrum ;
laugh_V = lachen_V ;
leaf_N = mkN "blad" neuter ;
leaf_N = mkN "blad" "bladeren" neuter ;
learn_V2 = mkV2 "leren" ;
leather_N = mkN "leer" neuter ;
leave_V2 = mkV2 (mkV "verlaten" "verliet" "verlieten" "verlaten") ;

View File

@@ -217,6 +217,7 @@ param
in
case lop of {
#vowel + #consonant => loop ;
_+ #consonant + #vowel + #consonant => loop ;
_+ ("bb" | "dd" | "ff" | "gg" | "kk" | "ll" | "mm" | "nn" | "pp" |
"rr" | "ss" | "tt") => zeg ;

View File

@@ -29,7 +29,7 @@ lin
SymbS sy = {s = \\_ => sy.s} ;
SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ;
SymbOrd n = {s = \\_ => n.s ++ "."} ;
SymbOrd n = {s = \\_ => glue n.s "."} ;
lincat

View File

@@ -7,6 +7,11 @@ concrete ConstructionEng of Construction = CatEng **
lin
hungry_VP = mkVP (mkA "hungry") ;
thirsty_VP = mkVP (mkA "thirsty") ;
tired_VP = mkVP (mkA "tired") ;
scared_VP = mkVP (mkA "scared") ;
ill_VP = mkVP (mkA "ill") ;
ready_VP = mkVP (mkA "ready") ;
has_age_VP card = mkVP (mkAP (lin AdA (mkUtt (mkNP <lin Card card : Card> L.year_N))) L.old_A) ;
have_name_Cl x y = mkCl (mkNP (E.GenNP x) L.name_N) (lin NP y) ;

View File

@@ -0,0 +1,11 @@
* {"not"} PART neg head
* {"has","had","have","will","would","do","does","did"} AUX aux head
CompAP {"is","are","am","was","been","be"} VERB cop head
CompCN {"is","are","am","was","been","be"} VERB cop head
CompAP {"is","are","am","was","been","be"} VERB cop head
CompAdv {"is","are","am","was","been","be"} VERB cop head
UseComp {"is","are","am","was","been","be"} VERB cop head
CompCN {"a","an"} DET det head
ComplVV {"to"} PART mark xcomp

View File

@@ -549,11 +549,11 @@ mkInterj : Str -> Interj
_ => regV s
} ;
prepV2 v p = lin V2 {s = v.s ; p = v.p ; s1 = v.s1 ; c2 = p.s ; isRefl = v.isRefl} ;
prepV2 v p = lin V2 {s = v.s ; p = v.p ; c2 = p.s ; isRefl = v.isRefl} ;
dirV2 v = prepV2 v noPrep ;
prepPrepV3 v p q =
lin V3 {s = v.s ; p = v.p ; s1 = v.s1 ; c2 = p.s ; c3 = q.s ; isRefl = v.isRefl} ;
lin V3 {s = v.s ; p = v.p ; c2 = p.s ; c3 = q.s ; isRefl = v.isRefl} ;
dirV3 v p = prepPrepV3 v noPrep p ;
dirdirV3 v = dirV3 v noPrep ;

View File

@@ -7,6 +7,11 @@ flags coding=utf8 ;
lin
hungry_VP = mkVP have_V2 (lin NP (mkNP (mkPN "kõht tühi"))) ;
thirsty_VP = mkVP have_V2 (lin NP (mkNP (ParadigmsEst.mkN "janu"))) ;
tired_VP = mkVP (ParadigmsEst.mkA "väsinud") ;
scared_VP = mkVP (caseV nominative (mkV "kartma")) ;
ill_VP = mkVP (mkA "haige") ;
ready_VP = mkVP (ParadigmsEst.mkA "valmis") ;
has_age_VP card =
let n_years_AdA : AdA = lin AdA (mkUtt (lin NP (mkNP <lin Card card : Card> L.year_N)))
in mkVP (mkAP n_years_AdA L.old_A) ;

View File

@@ -130,7 +130,7 @@ concrete ExtraEst of ExtraEstAbs = CatEst **
acn = DetCN (DetQuant IndefArt NumSg) cn
in {
s = table {
NPCase Nom | NPAcc => acn.s ! NPCase Part ;
NPCase Nom | NPAcc => acn.s ! NPCase ResEst.Part ;
c => acn.s ! c
} ;
a = acn.a ;

View File

@@ -27,7 +27,7 @@ lin
SymbS sy = sy ;
SymbNum n = {s = \\_,_ => n.s ; isNum = True ; n = Pl} ;
SymbOrd n = {s = \\_ => n.s ++ "."} ;
SymbOrd n = {s = \\_ => glue n.s "."} ;
lincat

View File

@@ -6,10 +6,10 @@ concrete AdjectiveFin of Adjective = CatFin ** open ResFin, StemFin, Prelude in
lin
PositA a = {
s = \\_ => (snoun2nounSep {s = \\f => a.s ! Posit ! sAN f ; h = a.h}).s
s = \\_ => sAdjFull2nforms Posit a ;
} ;
ComparA a np =
let acomp = (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s in {
let acomp = sAdjFull2nforms Compar a in {
s = \\isMod,af => case isMod of {
True => np.s ! NPCase Part ++ acomp ! af ; -- minua isompi
_ => acomp ! af ++ "kuin" ++ np.s ! NPSep -- isompi kuin minä
@@ -19,7 +19,7 @@ concrete AdjectiveFin of Adjective = CatFin ** open ResFin, StemFin, Prelude in
s = \\m,af => ad.s ++ ap.s ! m ! af ++ ad.p ++ np.s ! NPSep
} ;
UseComparA a = {
s = \\_ => (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s
s = \\_ => sAdjFull2nforms Compar a
} ;
-- $SuperlA$ belongs to determiner syntax in $Noun$.
@@ -30,13 +30,13 @@ concrete AdjectiveFin of Adjective = CatFin ** open ResFin, StemFin, Prelude in
ComplA2 a np = {
s = \\isMod,af =>
preOrPost isMod (appCompl True Pos a.c2 np) ((snoun2nounSep {s = \\f => a.s ! Posit ! sAN f ; h = a.h}).s ! af)
preOrPost isMod (appCompl True Pos a.c2 np) (sAdjFull2nforms Posit a ! af)
} ;
ReflA2 a = {
s = \\isMod,af =>
preOrPost isMod
(appCompl True Pos a.c2 (reflPron (agrP3 Sg))) ((snoun2nounSep {s = \\f => a.s ! Posit ! sAN f ; h = a.h}).s ! af)
(appCompl True Pos a.c2 (reflPron (agrP3 Sg))) (sAdjFull2nforms Posit a ! af)
} ;
SentAP ap sc = {
@@ -52,7 +52,7 @@ concrete AdjectiveFin of Adjective = CatFin ** open ResFin, StemFin, Prelude in
} ;
UseA2 a = {
s = \\_ => (snoun2nounSep {s = \\f => a.s ! Posit ! sAN f ; h = a.h}).s
s = \\_ => sAdjFull2nforms Posit a
} ;
}

View File

@@ -6,6 +6,6 @@ concrete CompatibilityFin of Compatibility = CatFin ** open Prelude, ResFin in {
lin
NumInt n = {s = \\_,_ => n.s ; isNum = True ; n = Pl} ;
OrdInt n = {s = \\_ => n.s ++ "."} ;
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ;
}

View File

@@ -7,6 +7,11 @@ flags coding=utf8 ;
lin
hungry_VP = mkVP have_V2 (lin NP (mkNP (ParadigmsFin.mkN "nälkä"))) ;
thirsty_VP = mkVP have_V2 (lin NP (mkNP (ParadigmsFin.mkN "jano"))) ;
tired_VP = mkVP (caseV partitive (mkV "väsyttää")) ;
scared_VP = mkVP (caseV partitive (mkV "pelottaa")) ;
ill_VP = mkVP (mkA "sairas") ;
ready_VP = mkVP (ParadigmsFin.mkA "valmis") ;
has_age_VP card = mkVP (mkAP (lin AdA (mkUtt (lin NP (mkNP <lin Card card : Card> L.year_N)))) L.old_A) ;
have_name_Cl x y = mkCl (mkNP (E.GenNP x) L.name_N) (lin NP y) ;

View File

@@ -65,13 +65,19 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
MkVPS t p vp0 = let vp = vp2old_vp vp0 in
{ -- Temp -> Pol -> VP -> VPS ;
s = \\a => let vps = vp.s ! VIFin t.t ! t.a ! p.p ! a
in
t.s ++ p.s ++
vps.fin ++ vps.inf ++
vp.s2 ! True ! p.p ! a ++
vp.adv ! p.p ++
vp.ext ;
s = \\a =>
let
agrfin = case vp.sc of {
SCNom => <a,True> ;
_ => <agrP3 Sg,False> -- minun täytyy, minulla on
} ;
vps = vp.s ! VIFin t.t ! t.a ! p.p ! agrfin.p1
in
t.s ++ p.s ++
vps.fin ++ vps.inf ++
vp.s2 ! agrfin.p2 ! p.p ! a ++
vp.adv ! p.p ++
vp.ext ;
sc = vp.sc ;
h = vp.h
} ;
@@ -137,6 +143,18 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
a = acn.a ;
isPron = False ; isNeg = False
} ;
PartPlCN cn =
let
acn = DetCN (DetQuant IndefArt NumPl) cn
in {
s = table {
NPCase Nom | NPAcc => acn.s ! NPCase ResFin.Part ;
c => acn.s ! c
} ;
a = acn.a ;
isPron = False ; isNeg = False
} ;
vai_Conj = {s1 = [] ; s2 = "vai" ; n = Sg} ;

View File

@@ -23,7 +23,8 @@ abstract ExtraFinAbs = Extra [
-- i_implicPron : Pron ; -- (minä), minut, ...
whatPart_IP : IP ;
PartCN : CN -> NP ; -- olutta
PartCN : CN -> NP ; -- olutta
PartPlCN : CN -> NP ; -- jauhoja
vai_Conj : Conj ; -- minä vai sinä? ("or" in question)

View File

@@ -151,7 +151,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
n = num.n
} ;
OrdSuperl a = snoun2nounSep {s = \\nc => a.s ! Superl ! sAN nc ; h = a.h} ;
OrdSuperl a = {s = sAdjFull2nforms Superl a ; h = a.h} ;
OrdNumeralSuperl n a = -- kolmanneksi suurin
{s = \\f => n.s ! NOrd (NCase Sg Transl) ++ (snoun2nounSep {s = \\nc => a.s ! Superl ! sAN nc ; h = a.h}).s ! f} ;

View File

@@ -387,7 +387,7 @@ mkVS = overload {
infFirst = Inf1 ; infElat = Inf3Elat ; infIllat = Inf3Illat ; infIness = Inf3Iness ; infPresPart = InfPresPart ; infPresPartAgr = InfPresPartAgr ;
prePrep : Case -> Str -> Prep =
\c,p -> lin Prep {c = NPCase c ; s = <p, [],\\_ => []>} ; -- no possessive suffix
\c,p -> lin Prep {c = NPCase c ; s = <tagFeature (tagPOS "ADP" p) "AdvType" "Pre", [],\\_ => []>} ; -- no possessive suffix
postPrep : Case -> Str -> Prep =
\c,p ->
@@ -397,9 +397,10 @@ mkVS = overload {
Gen => \\a => p ++ possSuffixGen h a ;
_ => \\a => p
} ;
pt = tagFeature (tagPOS "ADP" p) "AdvType" "Post" ;
in case p of {
mukaa + "n" => lin Prep {c = NPCase c ; s = <[],p, a2p>} ;
_ => lin Prep {c = NPCase c ; s = <[],p, a2p>}
mukaa + "n" => lin Prep {c = NPCase c ; s = <[],pt, a2p>} ; ---- p --> mukaa
_ => lin Prep {c = NPCase c ; s = <[],pt, a2p>}
} ;
postGenPrep = postPrep genitive ;
@@ -766,8 +767,8 @@ mkVS = overload {
dirV2 v = mk2V2 v accPrep ;
mkAdv = overload {
mkAdv : Str -> Adv = \s -> {s = s ; lock_Adv = <>} ;
mkAdv : AdvK -> Adv = \s -> {s = s.s ; lock_Adv = <>} ;
mkAdv : Str -> Adv = \s -> {s = tagPOS "ADV" s ; lock_Adv = <>} ;
mkAdv : AdvK -> Adv = \s -> {s = tagPOS "ADV" s.s ; lock_Adv = <>} ;
} ;
mkV2 = overload {

View File

@@ -4,6 +4,12 @@ resource StemFin = open MorphoFin, Prelude in {
flags coding = utf8 ;
oper
-- other classes not treated below are POS tagged when the grammar is used with Omorfi
tagPOS : Str -> Str -> Str = \_,s -> s ;
tagFeature : Str -> Str -> Str -> Str = \s,_,_ -> s ;
oper
SNForm : Type = NForm ;
SNoun : Type = Noun ;
@@ -51,6 +57,9 @@ oper
oper
SAdj = {s : SAForm => Str ; h : Harmony} ;
SAdjFull = {s : Degree => SAForm => Str ; h : Harmony} ;
sAdjFull2nforms : Degree -> SAdjFull -> NForm => Str = \d,a -> (snoun2nounSep {s = \\nc => a.s ! d ! sAN nc ; h = a.h}).s ;
snoun2sadj : SNoun -> SAdj = snoun2sadjComp True ;
@@ -70,7 +79,7 @@ oper
sAAdv : SAForm = AAdv ;
sANGen : (SAForm => Str) -> Str = \a -> a ! AN (NCase Sg Gen) ;
mkAdj : (hyva,parempi,paras : SNoun) -> (hyvin,paremmin,parhaiten : Str) -> {s : Degree => SAForm => Str ; h : Harmony} = \h,p,ps,hn,pn,ph -> {
mkAdj : (hyva,parempi,paras : SNoun) -> (hyvin,paremmin,parhaiten : Str) -> SAdjFull = \h,p,ps,hn,pn,ph -> {
s = table {
Posit => table {
AN nf => h.s ! nf ;

View File

@@ -17,41 +17,41 @@ concrete StructuralFin of Structural = CatFin **
k => kaiket ! k
}
} ;
almost_AdA, almost_AdN = ss "melkein" ;
although_Subj = ss "vaikka" ;
always_AdV = ss "aina" ;
and_Conj = {s1 = [] ; s2 = "ja" ; n = Pl} ;
because_Subj = ss "koska" ;
almost_AdA, almost_AdN = ssp "ADV" "melkein" ;
although_Subj = ssp "CONJ" "vaikka" ;
always_AdV = ssp "ADV" "aina" ;
and_Conj = {s1 = [] ; s2 = tagPOS "CONJ" "ja" ; n = Pl} ;
because_Subj = ssp "CONJ" "koska" ;
before_Prep = prePrep partitive "ennen" ;
behind_Prep = postGenPrep "takana" ;
between_Prep = postGenPrep "välissä" ;
both7and_DConj = sd2 "sekä" "että" ** {n = Pl} ;
but_PConj = ss "mutta" ;
both7and_DConj = sd2 (tagPOS "CONJ" "sekä") (tagPOS "CONJ" "että") ** {n = Pl} ;
but_PConj = ssp "CONJ" "mutta" ;
by8agent_Prep = postGenPrep "toimesta" ;
by8means_Prep = casePrep adessive ;
can8know_VV = mkVV (mkV "osata" "osasi") ;
can_VV = mkVV (mkV "voida" "voi") ;
during_Prep = postGenPrep "aikana" ;
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
everybody_NP = lin NP (makeNP (((mkN "jokainen"))) Sg) ;
every_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "jokainen")) ;
either7or_DConj = sd2 (tagPOS "CONJ" "joko") (tagPOS "CONJ" "tai") ** {n = Sg} ;
everybody_NP = lin NP (makeNP (((mkN "jokainen"))) Sg) ; --UD
every_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "jokainen")) ; --UD
everything_NP = makeNP ((((mkN "kaikki" "kaiken" "kaikkena")))) Sg ;
everywhere_Adv = ss "kaikkialla" ;
few_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "harva")) ;
everywhere_Adv = mkAdv "kaikkialla" ; --UD
few_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "harva")) ; --UD
--- first_Ord = {s = \\n,c => (mkN "ensimmäinen").s ! NCase n c} ;
for_Prep = casePrep allative ;
from_Prep = casePrep elative ;
he_Pron = mkPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
here_Adv = ss "täällä" ;
here7to_Adv = ss "tänne" ;
here7from_Adv = ss "täältä" ;
how_IAdv = ss "miten" ;
how8much_IAdv = ss "kuinka paljon" ;
he_Pron = mkPersonPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
here_Adv = mkAdv "täällä" ;
here7to_Adv = mkAdv "tänne" ;
here7from_Adv = mkAdv "täältä" ;
how_IAdv = ssp "ADV" "miten" ;
how8much_IAdv = ssp "ADV" ("kuinka" ++ tagPOS "ADV" "paljon") ;
how8many_IDet =
{s = \\c => "kuinka" ++ (snoun2nounBind (mkN "moni" "monia")).s ! NCase Sg c ; n = Sg ; isNum = False} ;
if_Subj = ss "jos" ;
if_Subj = ssp "CONJ" "jos" ;
in8front_Prep = postGenPrep "edessä" ;
i_Pron = mkPronoun "minä" "minun" "minua" "minuna" "minuun" Sg P1 ;
i_Pron = mkPersonPronoun "minä" "minun" "minua" "minuna" "minuun" Sg P1 ;
in_Prep = casePrep inessive ;
it_Pron = {
s = \\c => pronSe.s ! npform2case Sg c ;
@@ -65,18 +65,18 @@ concrete StructuralFin of Structural = CatFin **
most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ;
much_Det = MorphoFin.mkDet Sg (snoun2nounBind (exceptNomN (mkN "paljo") "paljon")) ** {isNum = True} ; --Harmony not relevant, it's just a CommonNoun
must_VV = mkVV (caseV genitive (mkV "täytyä")) ;
no_Utt = ss "ei" ;
no_Utt = ssp "INTERJ" "ei" ;
on_Prep = casePrep adessive ;
--- one_Quant = MorphoFin.mkDet Sg DEPREC
only_Predet = {s = \\_,_ => "vain"} ;
or_Conj = {s1 = [] ; s2 = "tai" ; n = Sg} ;
otherwise_PConj = ss "muuten" ;
or_Conj = {s1 = [] ; s2 = tagPOS "CONJ" "tai" ; n = Sg} ;
otherwise_PConj = ssp "ADV" "muuten" ;
part_Prep = casePrep partitive ;
please_Voc = ss ["ole hyvä"] ; --- number
possess_Prep = casePrep genitive ;
quite_Adv = ss "melko" ;
she_Pron = mkPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
so_AdA = ss "niin" ;
quite_Adv = ssp "ADV" "melko" ;
she_Pron = mkPersonPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
so_AdA = ssp "ADV" "niin" ;
somebody_NP = {
s = \\c => jokuPron ! Sg ! npform2case Sg c ;
a = agrP3 Sg ;
@@ -97,42 +97,42 @@ concrete StructuralFin of Structural = CatFin **
a = agrP3 Sg ;
isPron = False ; isNeg = False ; isNeg = False
} ;
somewhere_Adv = ss "jossain" ;
somewhere_Adv = ssp "ADV" "jossain" ;
that_Quant = heavyQuant {
s1 = table (MorphoFin.Number) {
Sg => table (MorphoFin.Case) {
c => (mkPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg P3).s ! NPCase c
c => (mkPersonPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg P3).s ! NPCase c
} ;
Pl => table (MorphoFin.Case) {
c => (mkPronoun "nuo" "noiden" "noita" "noina" "noihin" Sg P3).s ! NPCase c
c => (mkPersonPronoun "nuo" "noiden" "noita" "noina" "noihin" Sg P3).s ! NPCase c
}
} ;
s2 = \\_ => [] ; isNum,isPoss = False ; isDef = True ; isNeg = False
} ;
that_Subj = ss "että" ;
there_Adv = ss "siellä" ; --- tuolla
there7to_Adv = ss "sinne" ;
there7from_Adv = ss "sieltä" ;
therefore_PConj = ss "siksi" ;
they_Pron = mkPronoun "he" "heidän" "heitä" "heinä" "heihin" Pl P3 ; --- ne
that_Subj = ssp "CONJ" "että" ;
there_Adv = ssp "ADV" "siellä" ; --- tuolla
there7to_Adv = ssp "ADV" "sinne" ;
there7from_Adv = ssp "ADV" "sieltä" ;
therefore_PConj = ssp "ADV" "siksi" ;
they_Pron = mkPersonPronoun "he" "heidän" "heitä" "heinä" "heihin" Pl P3 ; --- ne
this_Quant = heavyQuant {
s1 = table (MorphoFin.Number) {
Sg => table (MorphoFin.Case) {
c => (mkPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3).s ! NPCase c
c => (mkPersonPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3).s ! NPCase c
} ;
Pl => table (MorphoFin.Case) {
c => (mkPronoun "nämä" "näiden" "näitä" "näinä" "näihin" Sg P3).s ! NPCase c
c => (mkPersonPronoun "nämä" "näiden" "näitä" "näinä" "näihin" Sg P3).s ! NPCase c
}
} ;
s2 = \\_ => [] ; isNum,isPoss = False ; isDef = True ; isNeg = False
} ;
through_Prep = postGenPrep "kautta" ;
too_AdA = ss "liian" ;
too_AdA = ssp "ADV" "liian" ;
to_Prep = casePrep illative ; --- allative
under_Prep = postGenPrep "alla" ;
very_AdA = ss "erittäin" ;
very_AdA = ssp "ADV" "erittäin" ;
want_VV = mkVV (mkV "tahtoa") ;
we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
we_Pron = mkPersonPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
whatPl_IP = {
s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ;
n = Pl
@@ -141,9 +141,9 @@ concrete StructuralFin of Structural = CatFin **
s = \\c => mikaInt ! Sg ! npform2case Sg c ;
n = Sg
} ;
when_IAdv = ss "milloin" ;
when_Subj = ss "kun" ;
where_IAdv = ss "missä" ;
when_IAdv = ssp "ADV" "milloin" ;
when_Subj = ssp "CONJ" "kun" ;
where_IAdv = ssp "ADV" "missä" ;
which_IQuant = {
s = mikaInt
} ;
@@ -155,14 +155,14 @@ concrete StructuralFin of Structural = CatFin **
s = table {NPAcc => "ketkä" ; c => kukaInt ! Pl ! npform2case Pl c} ;
n = Pl
} ;
why_IAdv = ss "miksi" ;
why_IAdv = ssp "ADV" "miksi" ;
without_Prep = prePrep partitive "ilman" ;
with_Prep = postGenPrep "kanssa" ;
yes_Utt = ss "kyllä" ;
youSg_Pron = mkPronoun "sinä" "sinun" "sinua" "sinuna" "sinuun" Sg P2 ;
youPl_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ;
yes_Utt = ssp "INTERJ" "kyllä" ;
youSg_Pron = mkPersonPronoun "sinä" "sinun" "sinua" "sinuna" "sinuun" Sg P2 ;
youPl_Pron = mkPersonPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ;
youPol_Pron =
let p = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 in
let p = mkPersonPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 in
{s = p.s ; a = AgPol ; hasPoss = True ; poss = p.poss} ;
oper
@@ -300,8 +300,8 @@ lin
isPron = False ; isNeg = True
} ;
at_least_AdN = ss "vähintään" ;
at_most_AdN = ss "enintään" ;
at_least_AdN = ssp "ADV" "vähintään" ;
at_most_AdN = ssp "ADV" "enintään" ;
as_CAdv = X.mkCAdv "yhtä" "kuin" ;
@@ -311,5 +311,10 @@ lin
lin language_title_Utt = ss "suomi" ;
oper
ssp : Str -> Str -> {s : Str} = \p,s -> ss (tagPOS p s) ; -- used in tagged/ for Omorfi, otherwise =ss
mkPersonPronoun : (_,_,_,_,_ : Str) -> Number -> Person -> Pron = \a,b,c,d,e,n,p ->
lin Pron (MorphoFin.mkPronoun a b c d e n p) ;
}

View File

@@ -27,7 +27,7 @@ lin
SymbS sy = sy ;
SymbNum n = {s = \\_,_ => n.s ; isNum = True ; n = Pl} ;
SymbOrd n = {s = \\_ => n.s ++ "."} ;
SymbOrd n = {s = \\_ => glue n.s "."} ;
lincat

View File

@@ -4,6 +4,12 @@ resource StemFin = open MorphoFin, Prelude in {
flags coding = utf8 ;
oper
-- other classes not treated below are POS tagged when the grammar is used with Omorfi
tagPOS : Str -> Str -> Str = \_,s -> s ;
tagFeature : Str -> Str -> Str -> Str = \s,_,_ -> s ;
oper
SNForm : Type = Predef.Ints 10 ;
SNoun : Type = {s : SNForm => Str ; h : Harmony} ;
@@ -125,6 +131,9 @@ param
oper
SAdj = {s : SAForm => Str ; h : Harmony} ;
SAdjFull = {s : Degree => SAForm => Str ; h : Harmony} ;
sAdjFull2nforms : Degree -> SAdjFull -> NForm => Str = \d,a -> (snoun2nounSep {s = \\nc => a.s ! d ! sAN nc ; h = a.h}).s ;
snoun2sadj : SNoun -> SAdj = snoun2sadjComp True ;

View File

@@ -0,0 +1,12 @@
--# -path=.:..:../../abstract:../../common:../../api
concrete LangFin of Lang =
GrammarFin,
LexiconFin
, ConstructionFin
, DocumentationFin --# notpresent
** {
flags startcat = Phr ; unlexer = text ; lexer = finnish ;
} ;

View File

@@ -0,0 +1,61 @@
--# -path=.:..:../../abstract:../../common:../../api
--1 LargeFinAbs: large-scale parsing of Finnish with tagged lexicon
concrete LargeFin of LargeFinAbs =
NounFin,
VerbFin,
AdjectiveFin,
AdverbFin,
-- NumeralFin,
SentenceFin,
QuestionFin,
RelativeFin,
ConjunctionFin,
PhraseFin,
-- StructuralFin - [mkPronoun],
IdiomFin,
TenseX
---- ,ExtraFin
-- ,WordsFin
** open TagFin, StemFin, ResFin, ParadigmsFin, Prelude in {
lincat
Top = {s : Str} ;
Punct = {s : Str} ;
lin
PhrPunctTop phr pu = {s = phr.s ++ pu.s} ;
PhrTop phr = phr ;
thePunct = {s = tagPOS "PUNCT" ""} ;
lin
theN = mkN [] ;
theA = mkA [] ;
theV = mkSVerb [] ** {sc = SCNom ; p = []} ;
theAdv = mkAdv [] ;
theV2 = mkV2 theV ; ---- plus other complement cases?
sg1Pron = mkPron Sg P1 ;
sg2Pron = mkPron Sg P2 ;
sg3Pron = mkPron Sg P3 ;
pl1Pron = mkPron Pl P1 ;
pl2Pron = mkPron Pl P2 ;
pl3Pron = mkPron Pl P3 ;
theConj = {s1 = [] ; s2 = tagPOS "CONJ" [] ; n = Sg} ;
theDistrConj = {s1,s2 = tagPOS "CONJ" [] ; n = Sg} ;
theSubj = {s = tagPOS "SCONJ" []} ;
oper
mkPron : Number -> Person -> Pron = \n,p -> lin Pron {
s = \\npf => tagWord (tagPron "Prs" (Ag n p) npf) (mkTag "PRON") ;
a = Ag n p ;
hasPoss = True ;
poss = [] ; ----
} ;
}

View File

@@ -0,0 +1,54 @@
--1 LargeFinAbs: large-scale parsing of Finnish with tagged lexicon
abstract LargeFinAbs =
Noun,
Verb,
Adjective,
Adverb,
-- Numeral,
Sentence,
Question,
Relative,
Conjunction,
Phrase,
Idiom,
-- Structural,
Tense
---- ,ExtraFinAbs
-- ,WordsFinAbs
** {
flags startcat = Top ;
cat
Top ;
Punct ;
fun
PhrPunctTop : Phr -> Punct -> Top ;
PhrTop : Phr -> Top ;
thePunct : Punct ;
fun
theN : N ;
theA : A ;
theV : V ;
theAdv : Adv ;
theV2 : V2 ;
sg1Pron : Pron ;
sg2Pron : Pron ;
sg3Pron : Pron ;
pl1Pron : Pron ;
pl2Pron : Pron ;
pl3Pron : Pron ;
theConj : Conj ;
theDistrConj : Conj ;
theSubj : Subj ;
theSgDet : Det ;
thePlDet : Det ;
}

View File

@@ -5,15 +5,26 @@ resource StemFin = open TagFin, MorphoFin, Prelude in {
flags coding = utf8 ;
oper
SNForm : Type = Predef.Ints 0 ;
SNoun : Type = {s : SNForm => Str ; h : Harmony } ;
-- other classes not treated below are POS tagged when the grammar is used with Omorfi
nforms2snoun : NForms -> SNoun = \nfs -> {s = nfs ; h = Back} ;
tagPOS : Str -> Str -> Str = \p,s -> tagWord ("+" + p) s ;
tagFeature : Str -> Str -> Str -> Str = \s,f,v -> s ++ mkTag f v ;
oper
SNForm : Type = Predef.Ints 0 ; --- not really needed
SNoun : Type = {s : SNForm => Str ; h : Harmony} ; --- Harmony needed only for API compatibility
mkSNoun : Str -> SNoun = \s -> {s = \\_ => s ; h = Back} ; --- Harmony not used
nforms2snoun : NForms -> SNoun = \nfs -> mkSNoun (nfs ! 0) ;
snoun2nounBind : SNoun -> Noun = snoun2noun True ;
snoun2nounSep : SNoun -> Noun = snoun2noun False ;
snoun2noun : Bool -> SNoun -> Noun = \b,sn -> {s = \\nf => sn.s ! 0++ mkTag "N" + tagNForm nf ; h = Back} ;
snoun2noun : Bool -> SNoun -> Noun = \b,sn -> {
s = \\nf => tagWord (nounTag ++ tagNForm nf) (sn.s ! 0) ;
h = sn.h --- not used
} ;
@@ -35,78 +46,59 @@ oper
snoun2spn : SNoun -> SPN = \n -> {s = \\c => n.s ! 0 ++ tagCase c} ;
exceptNomSNoun : SNoun -> Str -> SNoun = \noun,nom -> {
s = \\_ => nom ;
h = noun.h
} ;
exceptNomSNoun : SNoun -> Str -> SNoun = \noun,nom -> mkSNoun nom ;
-- Adjectives --- could be made more compact by pressing comparison forms down to a few
oper
SAForm : Type = AForm ;
SAForm : Type = SNForm ;
SAdj : Type = SNoun ;
SAdjFull = {s : Degree => SAForm => Str ; h : Harmony} ;
oper
SAdj = {s : SAForm => Str ; h : Harmony} ;
sAdjFull2nforms : Degree -> SAdjFull -> NForm => Str = \d,a ->
\\nf => tagWord (adjectiveTag ++ consTag (tagDegree d) (tagNForm nf)) (a.s ! Posit ! 0) ; ---- order diff from UD
snoun2sadj : SNoun -> SAdj = snoun2sadjComp True ;
snoun2sadjComp : Bool -> SNoun -> SAdj = \isPos,tuore ->
let
tuoree = init (tuore.s ! 0) ;
tuoreesti = tuoree + "sti" ;
tuoreemmin = init tuoree ;
in {s = table {
AN f => tuoree ;
AAdv => if_then_Str isPos tuoreesti tuoreemmin
} ;
h = Back
} ;
snoun2sadjComp : Bool -> SNoun -> SAdj = \_,tuore -> tuore ;
sAN : SNForm -> SAForm = \n -> AN (NCase Sg Nom) ; ---- without eta exp gives internal error 6/8/2013
sAAdv : SAForm = AAdv ;
sANGen : (SAForm => Str) -> Str = \a -> a ! AN (NCase Sg Gen) ;
sAN : SNForm -> SAForm = \n -> n ;
sAAdv : SAForm = 0 ;
sANGen : (SAForm => Str) -> Str = \a -> a ! 0 ;
mkAdj : (hyva,parempi,paras : SNoun) -> (hyvin,paremmin,parhaiten : Str) -> {s : Degree => SAForm => Str ; h : Harmony} = \h,p,ps,hn,pn,ph -> {
s = table {
Posit => table {
AN nf => h.s ! 0 ++ tagNForm nf ;
AAdv => hn
} ;
Compar => table {
AN nf => p.s ! 0 ++ tagNForm nf ;
AAdv => pn
} ;
Superl => table {
AN nf => ps.s ! 0 ++ tagNForm nf ;
AAdv => ph
}
} ;
h = Back ---- TODO: just get rid of h ?
s = \\degr,aform => tagWord (adjectiveTag ++ tagDegree degr) (h.s ! 0) ; ---- AForm ? ; order diff in UD
h = h.h --- not needed
} ;
snoun2compar : SNoun -> Str = \n -> n.s ! 0 + "Comp" ; ---- TODO
snoun2superl : SNoun -> Str = \n -> n.s ! 0 + "Superl" ; ---- TODO
---- where are these needed?
snoun2compar : SNoun -> Str = \n -> n.s ! 0 ++ "?Comp" ; ---- TODO
snoun2superl : SNoun -> Str = \n -> n.s ! 0 ++ "?Superl" ; ---- TODO
-- verbs
oper
SVForm : Type = VForm ;
SVerb : Type = {s : SVForm => Str ; h : Harmony} ;
SVForm : Type = SNForm ;
SVerb : Type = SNoun ;
ollaSVerbForms : SVForm => Str = verbOlla.s ;
mkSVerb = mkSNoun ;
ollaSVerbForms : SVForm => Str = \\_ => "olla" ;
-- used in Cat
SVerb1 = {s : SVForm => Str ; sc : SubjCase ; h : Harmony ; p : Str} ;
SVerb1 = SVerb ** {sc : SubjCase ; p : Str} ;
sverb2verbBind : SVerb -> Verb = sverb2verb True ;
sverb2verbSep : SVerb -> Verb = sverb2verb False ;
vforms2sverb : VForms -> SVerb = \v ->
{s = (vforms2V v).s ; h = case (last (v ! 0)) of {"a" => Back ; _ => Front}} ;
vforms2sverb : VForms -> SVerb = \v -> mkSVerb (v ! 0) ;
sverb2verb : Bool -> SVerb -> Verb = \b,sverb -> {s = sverb.s} ;
sverb2verb : Bool -> SVerb -> Verb = \b,sverb -> {
s = \\vf => tagWord (verbTag ++ tagVForm vf) (sverb.s ! 0)
} ;
predSV : SVerb1 -> VP = \sv ->
predV sv ;
@@ -114,8 +106,9 @@ oper
-- word formation functions
sverb2snoun : SVerb1 -> SNoun = \v -> -- syöminen
let tekem = Predef.tk 4 (v.s ! Inf Inf3Iness) in
let tekem = Predef.tk 4 ((sverb2verb True v).s ! Inf Inf3Iness) in
nforms2snoun (dNainen (tekem + "inen")) ;
{-
@@ -181,11 +174,11 @@ oper
defaultVPTyp = {isNeg = False ; isPass = False} ;
HVerb : Type = Verb ** {sc : SubjCase ; h : Harmony ; p : Str} ;
HVerb : Type = SVerb1 ;
predV : HVerb -> VP = \verb -> {
s = verb ;
s2 = \\_,_,_ => [] ;
s = verb ;
s2 = \\_,_,_ => [] ;
adv = \\_ => verb.p ; -- the particle of the verb
ext = [] ;
vptyp = defaultVPTyp ;
@@ -203,7 +196,7 @@ oper
vp2old_vp : VP -> old_VP = \vp ->
let
verb = vp.s ;
verb = vp.s ** sverb2verb True vp.s ;
sverb : VIForm => Anteriority => Polarity => Agr => {fin, inf : Str} = \\vi,ant,b,agr0 =>
let
agr = verbAgr agr0 ;
@@ -396,7 +389,7 @@ oper
} ;
verb = case ipol of {
Pos => <vp.s ! VIInf vi ! Simul ! Pos ! agr, []> ; -- nähdä/näkemään
Neg => <(vp2old_vp (predV (verbOlla ** {sc = SCNom ; h = Back ; p = []}))).s ! VIInf vi ! Simul ! Pos ! agr,
Neg => <(vp2old_vp (predV vpVerbOlla)).s ! VIInf vi ! Simul ! Pos ! agr,
(vp.s ! VIInf Inf3Abess ! Simul ! Pos ! agr).fin> -- olla/olemaan näkemättä
} ;
vph = vp.h ;
@@ -410,6 +403,6 @@ oper
infVP : SubjCase -> Polarity -> Agr -> VP -> InfForm -> Str = infVPGen Pos ;
vpVerbOlla : HVerb = verbOlla ** {sc = SCNom ; h = Back ; p = []} ;
vpVerbOlla : HVerb = {s = \\_ => "olla" ; sc = SCNom ; h = Back ; p = []} ;
}

View File

@@ -3,35 +3,170 @@ resource TagFin = open ResFin, Prelude in {
oper
Tag : Type = Str ;
mkTag : Str -> Tag = \t -> "+" + t ;
tagWord : Tag -> Str -> Str = \tag,lemma -> "[" ++ lemma ++ tag ++ "]" ;
tagNForm : NForm -> Str = \nf -> case nf of {
NCase n c => tagNumber n + tagCase c ;
NComit => tagNumber Pl + mkTag "Com" ;
NInstruct => tagNumber Pl + mkTag "Ins" ;
NPossNom n => tagNumber n + tagCase Nom ;
NPossGen n => tagNumber n + tagCase Gen ;
NPossTransl n => tagNumber n + tagCase Transl ;
NPossIllat n => tagNumber n + tagCase Illat ;
NCompound => mkTag "Comp"
mkTag = overload {
mkTag : Str -> Tag = \t -> "+" + t ;
mkTag : Str -> Str -> Tag = \t,v -> t + "=" + v ;
} ;
tagCase : Case -> Str = \c -> case c of {
Nom => mkTag "Nom" ;
Gen => mkTag "Gen" ;
Part => mkTag "Par" ;
Transl => mkTag "Tra" ;
Ess => mkTag "Ess" ;
Iness => mkTag "Ine" ;
Elat => mkTag "Ela" ;
Illat => mkTag "Ill" ;
Adess => mkTag "Ade" ;
Ablat => mkTag "Abl" ;
Allat => mkTag "All" ;
Abess => mkTag "Abe"
consTag = overload {
consTag : (_,_ : Str) -> Tag = \t,u -> t + "|" + u ;
consTag : (_,_,_ : Str) -> Tag = \t,u,v -> t + "|" + u + "|" + v ;
consTag : (_,_,_,_ : Str) -> Tag = \t,u,v,x -> t + "|" + u + "|" + v + "|" + x ;
consTag : (_,_,_,_,_ : Str) -> Tag = \t,u,v,x,y -> t + "|" + u + "|" + v + "|" + x + "|" + y ;
consTag : (_,_,_,_,_,_ : Str) -> Tag = \t,u,v,x,y,z -> t + "|" + u + "|" + v + "|" + x + "|" + y + "|" + z ;
} ;
tagNumber : Number -> Str = \n -> case n of {
Sg => mkTag "Sg" ;
Pl => mkTag "Pl"
pairTag : Tag -> Tag -> Tag * Tag = \t,u -> <t,u> ;
tagNForm : NForm -> Tag = \nf -> let ts = tagNForms nf in consTag ts.p1 ts.p2 ;
tagNForms : NForm -> Tag * Tag = \nf -> case nf of { -- keep separate in order to squeeze in Degree of adjectives
NCase n c => pairTag (tagCase c) (tagNumber n) ;
NComit => pairTag (mkTag "Case" "Com") (tagNumber Pl) ;
NInstruct => pairTag (mkTag "Case" "Ins") (tagNumber Pl) ;
NPossNom n => pairTag (tagCase Nom) (tagNumber n) ;
NPossGen n => pairTag (tagCase Gen) (tagNumber n) ;
NPossTransl n => pairTag (tagCase Transl) (tagNumber n) ;
NPossIllat n => pairTag (tagCase Illat) (tagNumber n) ;
NCompound => pairTag (mkTag "Form" "Comp") (tagNumber Sg) ---- TODO: how is this in UD?
} ;
tagPron : Str -> Agr -> NPForm -> Tag = \typ,agr,npf ->
let tagr : Number * Person = case agr of {
Ag n p => <n, p> ;
AgPol => <Pl, P2> ---- Plur in ud?
} ;
n = tagr.p1 ; p = tagr.p2 ;
pt : Tag = mkTag "PronType" typ ; -- Dem Ind Int Prs Rel
in
case npf of {
NPCase c => consTag (tagNForm (NCase n c))(tagPerson p) pt ;
NPAcc => consTag (mkTag "Case" "Acc") (tagNumber n) (tagPerson p) pt ; ---- effect for pronouns only?
NPSep => consTag (tagNForm (NCase n Nom))(tagPerson p) pt ---- correct pro-drop effect?
} ;
tagDegreeAForm : Degree -> AForm -> Str = \d,af -> case af of {
AN nf => let ts = tagNForms nf in consTag ts.p1 (tagDegree d) ts.p2 ;
AAdv => consTag adverbTag (tagDegree d) ---- TODO: how is this in UD?
} ;
tagVForm : VForm -> Str = \vf -> case vf of {
Inf infform => tagInfForm infform ;
Presn num pers => consTag indicativeTag (tagNumber num) (tagPerson pers) presentTag finiteTag activeTag ;
Impf num pers => consTag indicativeTag (tagNumber num) (tagPerson pers) pastTag finiteTag activeTag ;
Condit num pers => consTag conditionalTag (tagNumber num) (tagPerson pers) finiteTag activeTag ;
Potent num pers => consTag potentialTag (tagNumber num) (tagPerson pers) finiteTag activeTag ;
PotentNeg => consTag connegativeTag potentialTag finiteTag activeTag ;
Imper num => consTag imperativeTag (tagNumber num) (tagPerson P2) finiteTag activeTag ;
ImperP3 num => consTag imperativeTag (tagNumber num) (tagPerson P3) finiteTag activeTag ;
ImperP1Pl => consTag imperativeTag (tagNumber Pl) (tagPerson P3) finiteTag activeTag ;
ImpNegPl => consTag connegativeTag imperativeTag finiteTag ; ---- Active not in UD??
PassPresn True => consTag indicativeTag presentTag finiteTag passiveTag ;
PassPresn False => consTag connegativeTag indicativeTag presentTag finiteTag passiveTag ;
PassImpf True => consTag indicativeTag pastTag finiteTag passiveTag ;
PassImpf False => consTag connegativeTag indicativeTag pastTag finiteTag passiveTag ;
PassCondit True => consTag conditionalTag finiteTag passiveTag ;
PassCondit False => consTag connegativeTag conditionalTag finiteTag passiveTag ;
PassPotent True => consTag potentialTag finiteTag passiveTag ;
PassPotent False => consTag connegativeTag potentialTag finiteTag passiveTag ;
PassImper True => consTag imperativeTag finiteTag passiveTag ;
PassImper False => consTag connegativeTag imperativeTag finiteTag passiveTag ;
PastPartAct af => consTag (tagDegreeAForm Posit af) (tagPartForm "Past") participleTag activeTag ;
PastPartPass af => consTag (tagDegreeAForm Posit af) (tagPartForm "Past") participleTag passiveTag ;
PresPartAct af => consTag (tagDegreeAForm Posit af) (tagPartForm "Pres") participleTag activeTag ;
PresPartPass af => consTag (tagDegreeAForm Posit af) (tagPartForm "Pres") participleTag passiveTag ;
AgentPart af => consTag (tagDegreeAForm Posit af) (tagPartForm "Agt") participleTag activeTag
} ;
tagInfForm : InfForm -> Str = \vf -> case vf of {
Inf1 => infinitiveTag "1" ;
Inf1Long => infinitiveTag "1" ; --- insert Person[psor]=3 when used with poss suff
Inf2Iness => infinitiveTag "Ine" "2" ;
Inf2Instr => infinitiveTag "Ins" "2" ;
Inf2InessPass => infinitiveTag "Ins" "2" "Pass" ;
Inf3Iness => infinitiveTag "Ine" "3" ;
Inf3Elat => infinitiveTag "Ela" "3" ;
Inf3Illat => infinitiveTag "Ill" "3" ;
Inf3Adess => infinitiveTag "Ade" "3" ;
Inf3Abess => infinitiveTag "Abe" "3" ;
Inf3Instr => infinitiveTag "Ins" "3" ;
Inf3InstrPass => infinitiveTag "Ins" "3" "Pass" ;
Inf4Nom => infinitiveTag "Nom" "4" ;
Inf4Part => infinitiveTag "Par" "4" ;
Inf5 => infinitiveTag "5" ; ---- not in UD
InfPresPart => consTag (tagDegreeAForm Posit (AN (NCase Sg Nom))) (tagPartForm "Pres") participleTag activeTag ;
InfPresPartAgr => consTag (tagDegreeAForm Posit (AN (NCase Sg Nom))) (tagPartForm "Pres") participleTag activeTag --- poss to add
} ;
infinitiveTag = overload {
infinitiveTag : Str -> Tag = \i ->
consTag (mkTag "InfForm" i) (tagNumber Sg) (mkTag "VerbForm" "Inf") activeTag ; --- UD wants voice and number
infinitiveTag : Str -> Str -> Tag = \c,i ->
consTag (mkTag "Case" c) (mkTag "InfForm" i) (tagNumber Sg) (mkTag "VerbForm" "Inf") activeTag ;
infinitiveTag : Str -> Str -> Str -> Tag = \c,i,v ->
consTag (mkTag "Case" c) (mkTag "InfForm" i) (tagNumber Sg) (mkTag "VerbForm" "Inf") (mkTag "Voice" v) ;
} ;
tagPartForm : Str -> Tag = \pf -> mkTag "PartForm" pf ;
nounTag = mkTag "NOUN" ;
adjectiveTag = mkTag "ADJ" ;
verbTag = mkTag "VERB" ;
adverbTag = mkTag "ADV" ;
activeTag = mkTag "Voice" "Act" ;
passiveTag = mkTag "Voice" "Pass" ;
imperativeTag = mkTag "Mood" "Imp" ;
indicativeTag = mkTag "Mood" "Ind" ;
participleTag = mkTag "VerbForm" "Part" ;
agentTag = mkTag "Agent" ;
finiteTag = mkTag "VerbForm" "Fin" ;
connegativeTag = mkTag "Connegative" "Yes" ;
presentTag = mkTag "Tense" "Pres" ;
conditionalTag = mkTag "Mood" "Cnd" ;
potentialTag = mkTag "Mood" "Pot" ;
pastTag = mkTag "Tense" "Past" ;
tagCase : Case -> Tag = \c -> let k = "Case" in case c of {
Nom => mkTag k "Nom" ;
Gen => mkTag k "Gen" ;
Part => mkTag k "Par" ;
Transl => mkTag k "Tra" ;
Ess => mkTag k "Ess" ;
Iness => mkTag k "Ine" ;
Elat => mkTag k "Ela" ;
Illat => mkTag k "Ill" ;
Adess => mkTag k "Ade" ;
Ablat => mkTag k "Abl" ;
Allat => mkTag k "All" ;
Abess => mkTag k "Abe"
} ;
tagNumber : Number -> Tag = \n -> let k = "Number" in case n of {
Sg => mkTag k "Sing" ;
Pl => mkTag k "Plur"
} ;
tagDegree : Degree -> Tag = \n -> let d = "Degree" in case n of {
Posit => mkTag d "Pos" ;
Compar => mkTag d "Cmp" ;
Superl => mkTag d "Sup"
} ;
tagPerson : Person -> Tag = \p -> let k = "Person" in case p of {
P1 => mkTag k "1" ;
P2 => mkTag k "2" ;
P3 => mkTag k "3"
} ;
tagBool : Bool -> Tag = \b -> case b of {
True => "Pos" ;
False => "Neg"
} ;
}

42059
src/finnish/tagged/WordsFin.gf Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -224,8 +224,9 @@ oper v_besch101 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do
_ + "ir" => conj2finir parler ;
_ + "re" => conj3rendre parler ;
_ + "éger" => conj1assiéger parler ;
_ + ("emer" | "ener" | "eper" | "eser" | "ever") => conj1peser parler ;
_ + ("eler" | "eter") => conj1jeter parler ;
_ + "éder" => conj1céder parler ;
_ + ("écer" | "éder" | "éler" | "éner" | "éper" | "érer" | "éser" | "éter") => conj1céder parler ;
_ + "cer" => conj1placer parler ;
_ + "ger" => conj1manger parler ;
_ + "yer" => conj1payer parler ;

View File

@@ -6,6 +6,6 @@ concrete CompatibilityFre of Compatibility = CatFre ** open Prelude, CommonRoman
lin
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
OrdInt n = {s = \\_ => n.s ++ "."} ; ---
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ; ---
}

View File

@@ -10,6 +10,11 @@ flags coding=utf8 ;
lin
hungry_VP = E.ComplCN have_V2 (mkCN (mkN "faim")) ;
thirsty_VP = E.ComplCN have_V2 (mkCN (mkN "soif")) ;
tired_VP = mkVP (mkA "fatigué") ;
scared_VP = E.ComplCN have_V2 (mkCN (mkN "peur" feminine)) ;
ill_VP = mkVP (mkA "malade") ;
ready_VP = mkVP (mkA "prêt") ;
has_age_VP card = mkVP have_V2 (mkNP <lin Card card : Card> L.year_N) ;
have_name_Cl x y = mkCl x (mkV2 (reflV (mkV "appeler"))) y ;

View File

@@ -396,4 +396,330 @@ lin
oper
vHabere = VTyp VHabere VFalse ;
vEsse = VTyp VEsse VFalse ;
lin
abattre_V = lin V abattre_V2 ;
absoudre_V = lin V absoudre_V2 ;
abstraire_V = lin V abstraire_V2 ;
accroître_V = lin V accroître_V2 ;
accueillir_V = lin V accueillir_V2 ;
acquérir_V = lin V acquérir_V2 ;
adjoindre_V = lin V adjoindre_V2 ;
admettre_V = lin V admettre_V2 ;
apercevoir_V = lin V apercevoir_V2 ;
appartenir_V = lin V appartenir_V2 ;
appendre_V = lin V appendre_V2 ;
apprendre_V = lin V apprendre_V2 ;
assaillir_V = lin V assaillir_V2 ;
asseoir_V = lin V asseoir_V2 ;
astreindre_V = lin V astreindre_V2 ;
atteindre_V = lin V atteindre_V2 ;
attendre_V = lin V attendre_V2 ;
avoir_V = lin V avoir_V2 ;
battre_V = lin V battre_V2 ;
boire_V = lin V boire_V2 ;
bouillir_V = lin V bouillir_V2 ;
ceindre_V = lin V ceindre_V2 ;
circonscrire_V = lin V circonscrire_V2 ;
circonvenir_V = lin V circonvenir_V2 ;
clore_V = lin V clore_V2 ;
combattre_V = lin V combattre_V2 ;
commettre_V = lin V commettre_V2 ;
comparaître_V = lin V comparaître_V2 ;
complaire_V = lin V complaire_V2 ;
comprendre_V = lin V comprendre_V2 ;
compromettre_V = lin V compromettre_V2 ;
concevoir_V = lin V concevoir_V2 ;
conclure_V = lin V conclure_V2 ;
concourir_V = lin V concourir_V2 ;
condescendre_V = lin V condescendre_V2 ;
conduire_V = lin V conduire_V2 ;
confire_V = lin V confire_V2 ;
confondre_V = lin V confondre_V2 ;
conjoindre_V = lin V conjoindre_V2 ;
connaître_V = lin V connaître_V2 ;
conquérir_V = lin V conquérir_V2 ;
consentir_V = lin V consentir_V2 ;
construire_V = lin V construire_V2 ;
contenir_V = lin V contenir_V2 ;
contraindre_V = lin V contraindre_V2 ;
contrebattre_V = lin V contrebattre_V2 ;
contredire_V = lin V contredire_V2 ;
contrefaire_V = lin V contrefaire_V2 ;
contrevenir_V = lin V contrevenir_V2 ;
convaincre_V = lin V convaincre_V2 ;
convenir_V = lin V convenir_V2 ;
correspondre_V = lin V correspondre_V2 ;
corrompre_V = lin V corrompre_V2 ;
coudre_V = lin V coudre_V2 ;
courir_V = lin V courir_V2 ;
couvrir_V = lin V couvrir_V2 ;
craindre_V = lin V craindre_V2 ;
croire_V = lin V croire_V2 ;
cueillir_V = lin V cueillir_V2 ;
cuire_V = lin V cuire_V2 ;
débattre_V = lin V débattre_V2 ;
débouillir_V = lin V débouillir_V2 ;
décevoir_V = lin V décevoir_V2 ;
déchoir_V = lin V déchoir_V2 ;
déclore_V = lin V déclore_V2 ;
décommettre_V = lin V décommettre_V2 ;
déconfire_V = lin V déconfire_V2 ;
découdre_V = lin V découdre_V2 ;
découvrir_V = lin V découvrir_V2 ;
décrire_V = lin V décrire_V2 ;
décroître_V = lin V décroître_V2 ;
décuire_V = lin V décuire_V2 ;
déduire_V = lin V déduire_V2 ;
défaire_V = lin V défaire_V2 ;
défendre_V = lin V défendre_V2 ;
démentir_V = lin V démentir_V2 ;
démettre_V = lin V démettre_V2 ;
départir_V = lin V départir_V2 ;
dépeindre_V = lin V dépeindre_V2 ;
dépendre_V = lin V dépendre_V2 ;
dépourvoir_V = lin V dépourvoir_V2 ;
déprendre_V = lin V déprendre_V2 ;
désapprendre_V = lin V désapprendre_V2 ;
descendre_V = lin V descendre_V2 ;
desservir_V = lin V desservir_V2 ;
déteindre_V = lin V déteindre_V2 ;
détendre_V = lin V détendre_V2 ;
détenir_V = lin V détenir_V2 ;
détordre_V = lin V détordre_V2 ;
détruire_V = lin V détruire_V2 ;
dévêtir_V = lin V dévêtir_V2 ;
devoir_V = lin V devoir_V2 ;
dire_V = lin V dire_V2 ;
disconvenir_V = lin V disconvenir_V2 ;
discourir_V = lin V discourir_V2 ;
disjoindre_V = lin V disjoindre_V2 ;
disparaître_V = lin V disparaître_V2 ;
dissoudre_V = lin V dissoudre_V2 ;
distendre_V = lin V distendre_V2 ;
distordre_V = lin V distordre_V2 ;
distraire_V = lin V distraire_V2 ;
dormir_V = lin V dormir_V2 ;
échoir_V = lin V échoir_V2 ;
éclore_V = lin V éclore_V2 ;
éconduire_V = lin V éconduire_V2 ;
écrire_V = lin V écrire_V2 ;
élire_V = lin V élire_V2 ;
embatre_V = lin V embatre_V2 ;
embattre_V = lin V embattre_V2 ;
émettre_V = lin V émettre_V2 ;
émoudre_V = lin V émoudre_V2 ;
émouvoir_V = lin V émouvoir_V2 ;
empreindre_V = lin V empreindre_V2 ;
enceindre_V = lin V enceindre_V2 ;
enclore_V = lin V enclore_V2 ;
encourir_V = lin V encourir_V2 ;
endormir_V = lin V endormir_V2 ;
enduire_V = lin V enduire_V2 ;
enfreindre_V = lin V enfreindre_V2 ;
enjoindre_V = lin V enjoindre_V2 ;
entendre_V = lin V entendre_V2 ;
entreprendre_V = lin V entreprendre_V2 ;
entretenir_V = lin V entretenir_V2 ;
entrevoir_V = lin V entrevoir_V2 ;
entrouvrir_V = lin V entrouvrir_V2 ;
envoyer_V = lin V envoyer_V2 ;
épandre_V = lin V épandre_V2 ;
équivaloir_V = lin V équivaloir_V2 ;
éteindre_V = lin V éteindre_V2 ;
étendre_V = lin V étendre_V2 ;
étreindre_V = lin V étreindre_V2 ;
exclure_V = lin V exclure_V2 ;
extraire_V = lin V extraire_V2 ;
faillir_V = lin V faillir_V2 ;
faire_V = lin V faire_V2 ;
feindre_V = lin V feindre_V2 ;
fendre_V = lin V fendre_V2 ;
fondre_V = lin V fondre_V2 ;
forfaire_V = lin V forfaire_V2 ;
foutre_V = lin V foutre_V2 ;
frire_V = lin V frire_V2 ;
fuir_V = lin V fuir_V2 ;
geindre_V = lin V geindre_V2 ;
gésir_V = lin V gésir_V2 ;
haïr_V = lin V haïr_V2 ;
inclure_V = lin V inclure_V2 ;
induire_V = lin V induire_V2 ;
inscrire_V = lin V inscrire_V2 ;
instruire_V = lin V instruire_V2 ;
interdire_V = lin V interdire_V2 ;
interrompre_V = lin V interrompre_V2 ;
introduire_V = lin V introduire_V2 ;
joindre_V = lin V joindre_V2 ;
lire_V = lin V lire_V2 ;
mainmettre_V = lin V mainmettre_V2 ;
maintenir_V = lin V maintenir_V2 ;
méconnaître_V = lin V méconnaître_V2 ;
mécroire_V = lin V mécroire_V2 ;
médire_V = lin V médire_V2 ;
mentir_V = lin V mentir_V2 ;
méprendre_V = lin V méprendre_V2 ;
messeoir_V = lin V messeoir_V2 ;
mettre_V = lin V mettre_V2 ;
mévendre_V = lin V mévendre_V2 ;
mordre_V = lin V mordre_V2 ;
moudre_V = lin V moudre_V2 ;
mouvoir_V = lin V mouvoir_V2 ;
nuire_V = lin V nuire_V2 ;
obtenir_V = lin V obtenir_V2 ;
occlure_V = lin V occlure_V2 ;
offrir_V = lin V offrir_V2 ;
oindre_V = lin V oindre_V2 ;
omettre_V = lin V omettre_V2 ;
ouïr_V = lin V ouïr_V2 ;
ouvrir_V = lin V ouvrir_V2 ;
parcourir_V = lin V parcourir_V2 ;
parfondre_V = lin V parfondre_V2 ;
peindre_V = lin V peindre_V2 ;
pendre_V = lin V pendre_V2 ;
percevoir_V = lin V percevoir_V2 ;
perdre_V = lin V perdre_V2 ;
permettre_V = lin V permettre_V2 ;
plaindre_V = lin V plaindre_V2 ;
plaire_V = lin V plaire_V2 ;
poindre_V = lin V poindre_V2 ;
pondre_V = lin V pondre_V2 ;
pourfendre_V = lin V pourfendre_V2 ;
poursuivre_V = lin V poursuivre_V2 ;
pourvoir_V = lin V pourvoir_V2 ;
prédire_V = lin V prédire_V2 ;
prendre_V = lin V prendre_V2 ;
prescrire_V = lin V prescrire_V2 ;
pressentir_V = lin V pressentir_V2 ;
prétendre_V = lin V prétendre_V2 ;
prévaloir_V = lin V prévaloir_V2 ;
prévenir_V = lin V prévenir_V2 ;
prévoir_V = lin V prévoir_V2 ;
produire_V = lin V produire_V2 ;
promettre_V = lin V promettre_V2 ;
promouvoir_V = lin V promouvoir_V2 ;
proscrire_V = lin V proscrire_V2 ;
rabattre_V = lin V rabattre_V2 ;
raire_V = lin V raire_V2 ;
rapprendre_V = lin V rapprendre_V2 ;
rasseoir_V = lin V rasseoir_V2 ;
réadmettre_V = lin V réadmettre_V2 ;
réapprendre_V = lin V réapprendre_V2 ;
rebattre_V = lin V rebattre_V2 ;
recevoir_V = lin V recevoir_V2 ;
recomparaître_V = lin V recomparaître_V2 ;
reconduire_V = lin V reconduire_V2 ;
reconnaître_V = lin V reconnaître_V2 ;
reconquérir_V = lin V reconquérir_V2 ;
reconstruire_V = lin V reconstruire_V2 ;
recoudre_V = lin V recoudre_V2 ;
recourir_V = lin V recourir_V2 ;
recouvrir_V = lin V recouvrir_V2 ;
récrire_V = lin V récrire_V2 ;
recroître_V = lin V recroître_V2 ;
recueillir_V = lin V recueillir_V2 ;
recuire_V = lin V recuire_V2 ;
redécouvrir_V = lin V redécouvrir_V2 ;
redéfaire_V = lin V redéfaire_V2 ;
redescendre_V = lin V redescendre_V2 ;
redevoir_V = lin V redevoir_V2 ;
redire_V = lin V redire_V2 ;
réduire_V = lin V réduire_V2 ;
réécrire_V = lin V réécrire_V2 ;
réélire_V = lin V réélire_V2 ;
réentendre_V = lin V réentendre_V2 ;
refaire_V = lin V refaire_V2 ;
refendre_V = lin V refendre_V2 ;
refondre_V = lin V refondre_V2 ;
réinscrire_V = lin V réinscrire_V2 ;
réintroduire_V = lin V réintroduire_V2 ;
rejoindre_V = lin V rejoindre_V2 ;
relire_V = lin V relire_V2 ;
reluire_V = lin V reluire_V2 ;
remettre_V = lin V remettre_V2 ;
remordre_V = lin V remordre_V2 ;
remoudre_V = lin V remoudre_V2 ;
renaître_V = lin V renaître_V2 ;
rendormir_V = lin V rendormir_V2 ;
rendre_V = lin V rendre_V2 ;
rentraire_V = lin V rentraire_V2 ;
rentrouvrir_V = lin V rentrouvrir_V2 ;
renvoyer_V = lin V renvoyer_V2 ;
repaître_V = lin V repaître_V2 ;
répandre_V = lin V répandre_V2 ;
repeindre_V = lin V repeindre_V2 ;
rependre_V = lin V rependre_V2 ;
reperdre_V = lin V reperdre_V2 ;
répondre_V = lin V répondre_V2 ;
reprendre_V = lin V reprendre_V2 ;
reproduire_V = lin V reproduire_V2 ;
requérir_V = lin V requérir_V2 ;
résoudre_V = lin V résoudre_V2 ;
ressentir_V = lin V ressentir_V2 ;
resservir_V = lin V resservir_V2 ;
restreindre_V = lin V restreindre_V2 ;
reteindre_V = lin V reteindre_V2 ;
retendre_V = lin V retendre_V2 ;
retenir_V = lin V retenir_V2 ;
retondre_V = lin V retondre_V2 ;
retordre_V = lin V retordre_V2 ;
retraduire_V = lin V retraduire_V2 ;
retraire_V = lin V retraire_V2 ;
retranscrire_V = lin V retranscrire_V2 ;
retransmettre_V = lin V retransmettre_V2 ;
rétreindre_V = lin V rétreindre_V2 ;
revaloir_V = lin V revaloir_V2 ;
revendre_V = lin V revendre_V2 ;
revêtir_V = lin V revêtir_V2 ;
revivre_V = lin V revivre_V2 ;
revoir_V = lin V revoir_V2 ;
revouloir_V = lin V revouloir_V2 ;
rire_V = lin V rire_V2 ;
rompre_V = lin V rompre_V2 ;
rouvrir_V = lin V rouvrir_V2 ;
saillir_V = lin V saillir_V2 ;
satisfaire_V = lin V satisfaire_V2 ;
savoir_V = lin V savoir_V2 ;
secourir_V = lin V secourir_V2 ;
séduire_V = lin V séduire_V2 ;
sentir_V = lin V sentir_V2 ;
servir_V = lin V servir_V2 ;
soubattre_V = lin V soubattre_V2 ;
souffrir_V = lin V souffrir_V2 ;
soumettre_V = lin V soumettre_V2 ;
sourire_V = lin V sourire_V2 ;
souscrire_V = lin V souscrire_V2 ;
sous_entendre_V = lin V sous_entendre_V2 ;
sous_tendre_V = lin V sous_tendre_V2 ;
soustraire_V = lin V soustraire_V2 ;
soutenir_V = lin V soutenir_V2 ;
subvenir_V = lin V subvenir_V2 ;
suffire_V = lin V suffire_V2 ;
suivre_V = lin V suivre_V2 ;
surfaire_V = lin V surfaire_V2 ;
surprendre_V = lin V surprendre_V2 ;
surproduire_V = lin V surproduire_V2 ;
surseoir_V = lin V surseoir_V2 ;
surtondre_V = lin V surtondre_V2 ;
survivre_V = lin V survivre_V2 ;
suspendre_V = lin V suspendre_V2 ;
taire_V = lin V taire_V2 ;
teindre_V = lin V teindre_V2 ;
tendre_V = lin V tendre_V2 ;
tenir_V = lin V tenir_V2 ;
tondre_V = lin V tondre_V2 ;
tordre_V = lin V tordre_V2 ;
traduire_V = lin V traduire_V2 ;
traire_V = lin V traire_V2 ;
transcrire_V = lin V transcrire_V2 ;
transmettre_V = lin V transmettre_V2 ;
tréfondre_V = lin V tréfondre_V2 ;
vaincre_V = lin V vaincre_V2 ;
valoir_V = lin V valoir_V2 ;
vendre_V = lin V vendre_V2 ;
vêtir_V = lin V vêtir_V2 ;
vivre_V = lin V vivre_V2 ;
voir_V = lin V voir_V2 ;
vouloir_V = lin V vouloir_V2 ;
}

View File

@@ -389,4 +389,332 @@ fun
vivre_V2 : V2 ;
voir_V2 : V2 ;
vouloir_V2 : V2 ;
-- for easier reuse in applications, V versions of all V2 verbs:
abattre_V : V ;
absoudre_V : V ;
abstraire_V : V ;
accroître_V : V ;
accueillir_V : V ;
acquérir_V : V ;
adjoindre_V : V ;
admettre_V : V ;
apercevoir_V : V ;
appartenir_V : V ;
appendre_V : V ;
apprendre_V : V ;
assaillir_V : V ;
asseoir_V : V ;
astreindre_V : V ;
atteindre_V : V ;
attendre_V : V ;
avoir_V : V ;
battre_V : V ;
boire_V : V ;
bouillir_V : V ;
ceindre_V : V ;
circonscrire_V : V ;
circonvenir_V : V ;
clore_V : V ;
combattre_V : V ;
commettre_V : V ;
comparaître_V : V ;
complaire_V : V ;
comprendre_V : V ;
compromettre_V : V ;
concevoir_V : V ;
conclure_V : V ;
concourir_V : V ;
condescendre_V : V ;
conduire_V : V ;
confire_V : V ;
confondre_V : V ;
conjoindre_V : V ;
connaître_V : V ;
conquérir_V : V ;
consentir_V : V ;
construire_V : V ;
contenir_V : V ;
contraindre_V : V ;
contrebattre_V : V ;
contredire_V : V ;
contrefaire_V : V ;
contrevenir_V : V ;
convaincre_V : V ;
convenir_V : V ;
correspondre_V : V ;
corrompre_V : V ;
coudre_V : V ;
courir_V : V ;
couvrir_V : V ;
craindre_V : V ;
croire_V : V ;
cueillir_V : V ;
cuire_V : V ;
débattre_V : V ;
débouillir_V : V ;
décevoir_V : V ;
déchoir_V : V ;
déclore_V : V ;
décommettre_V : V ;
déconfire_V : V ;
découdre_V : V ;
découvrir_V : V ;
décrire_V : V ;
décroître_V : V ;
décuire_V : V ;
déduire_V : V ;
défaire_V : V ;
défendre_V : V ;
démentir_V : V ;
démettre_V : V ;
départir_V : V ;
dépeindre_V : V ;
dépendre_V : V ;
dépourvoir_V : V ;
déprendre_V : V ;
désapprendre_V : V ;
descendre_V : V ;
desservir_V : V ;
déteindre_V : V ;
détendre_V : V ;
détenir_V : V ;
détordre_V : V ;
détruire_V : V ;
dévêtir_V : V ;
devoir_V : V ;
dire_V : V ;
disconvenir_V : V ;
discourir_V : V ;
disjoindre_V : V ;
disparaître_V : V ;
dissoudre_V : V ;
distendre_V : V ;
distordre_V : V ;
distraire_V : V ;
dormir_V : V ;
échoir_V : V ;
éclore_V : V ;
éconduire_V : V ;
écrire_V : V ;
élire_V : V ;
embatre_V : V ;
embattre_V : V ;
émettre_V : V ;
émoudre_V : V ;
émouvoir_V : V ;
empreindre_V : V ;
enceindre_V : V ;
enclore_V : V ;
encourir_V : V ;
endormir_V : V ;
enduire_V : V ;
enfreindre_V : V ;
enjoindre_V : V ;
entendre_V : V ;
entreprendre_V : V ;
entretenir_V : V ;
entrevoir_V : V ;
entrouvrir_V : V ;
envoyer_V : V ;
épandre_V : V ;
équivaloir_V : V ;
éteindre_V : V ;
étendre_V : V ;
étreindre_V : V ;
exclure_V : V ;
extraire_V : V ;
faillir_V : V ;
faire_V : V ;
feindre_V : V ;
fendre_V : V ;
fondre_V : V ;
forfaire_V : V ;
foutre_V : V ;
frire_V : V ;
fuir_V : V ;
geindre_V : V ;
gésir_V : V ;
haïr_V : V ;
inclure_V : V ;
induire_V : V ;
inscrire_V : V ;
instruire_V : V ;
interdire_V : V ;
interrompre_V : V ;
introduire_V : V ;
joindre_V : V ;
lire_V : V ;
mainmettre_V : V ;
maintenir_V : V ;
méconnaître_V : V ;
mécroire_V : V ;
médire_V : V ;
mentir_V : V ;
méprendre_V : V ;
messeoir_V : V ;
mettre_V : V ;
mévendre_V : V ;
mordre_V : V ;
moudre_V : V ;
mouvoir_V : V ;
nuire_V : V ;
obtenir_V : V ;
occlure_V : V ;
offrir_V : V ;
oindre_V : V ;
omettre_V : V ;
ouïr_V : V ;
ouvrir_V : V ;
-- paître_V : V ;
parcourir_V : V ;
parfondre_V : V ;
peindre_V : V ;
pendre_V : V ;
percevoir_V : V ;
perdre_V : V ;
permettre_V : V ;
plaindre_V : V ;
plaire_V : V ;
poindre_V : V ;
pondre_V : V ;
pourfendre_V : V ;
poursuivre_V : V ;
pourvoir_V : V ;
prédire_V : V ;
prendre_V : V ;
prescrire_V : V ;
pressentir_V : V ;
prétendre_V : V ;
prévaloir_V : V ;
prévenir_V : V ;
prévoir_V : V ;
produire_V : V ;
promettre_V : V ;
promouvoir_V : V ;
proscrire_V : V ;
rabattre_V : V ;
raire_V : V ;
rapprendre_V : V ;
rasseoir_V : V ;
réadmettre_V : V ;
réapprendre_V : V ;
rebattre_V : V ;
recevoir_V : V ;
recomparaître_V : V ;
reconduire_V : V ;
reconnaître_V : V ;
reconquérir_V : V ;
reconstruire_V : V ;
recoudre_V : V ;
recourir_V : V ;
recouvrir_V : V ;
récrire_V : V ;
recroître_V : V ;
recueillir_V : V ;
recuire_V : V ;
redécouvrir_V : V ;
redéfaire_V : V ;
redescendre_V : V ;
redevoir_V : V ;
redire_V : V ;
réduire_V : V ;
réécrire_V : V ;
réélire_V : V ;
réentendre_V : V ;
refaire_V : V ;
refendre_V : V ;
refondre_V : V ;
réinscrire_V : V ;
réintroduire_V : V ;
rejoindre_V : V ;
relire_V : V ;
reluire_V : V ;
remettre_V : V ;
remordre_V : V ;
remoudre_V : V ;
renaître_V : V ;
rendormir_V : V ;
rendre_V : V ;
rentraire_V : V ;
rentrouvrir_V : V ;
renvoyer_V : V ;
repaître_V : V ;
répandre_V : V ;
repeindre_V : V ;
rependre_V : V ;
reperdre_V : V ;
répondre_V : V ;
reprendre_V : V ;
reproduire_V : V ;
requérir_V : V ;
résoudre_V : V ;
ressentir_V : V ;
resservir_V : V ;
restreindre_V : V ;
reteindre_V : V ;
retendre_V : V ;
retenir_V : V ;
retondre_V : V ;
retordre_V : V ;
retraduire_V : V ;
retraire_V : V ;
retranscrire_V : V ;
retransmettre_V : V ;
rétreindre_V : V ;
revaloir_V : V ;
revendre_V : V ;
revêtir_V : V ;
revivre_V : V ;
revoir_V : V ;
revouloir_V : V ;
rire_V : V ;
rompre_V : V ;
rouvrir_V : V ;
saillir_V : V ;
satisfaire_V : V ;
savoir_V : V ;
secourir_V : V ;
séduire_V : V ;
sentir_V : V ;
servir_V : V ;
soubattre_V : V ;
souffrir_V : V ;
soumettre_V : V ;
sourire_V : V ;
souscrire_V : V ;
sous_entendre_V : V ;
sous_tendre_V : V ;
soustraire_V : V ;
soutenir_V : V ;
subvenir_V : V ;
suffire_V : V ;
suivre_V : V ;
surfaire_V : V ;
surprendre_V : V ;
surproduire_V : V ;
surseoir_V : V ;
surtondre_V : V ;
survivre_V : V ;
suspendre_V : V ;
taire_V : V ;
teindre_V : V ;
tendre_V : V ;
tenir_V : V ;
tondre_V : V ;
tordre_V : V ;
traduire_V : V ;
traire_V : V ;
transcrire_V : V ;
transmettre_V : V ;
tréfondre_V : V ;
vaincre_V : V ;
valoir_V : V ;
vendre_V : V ;
vêtir_V : V ;
vivre_V : V ;
voir_V : V ;
vouloir_V : V ;
}

View File

@@ -4,10 +4,10 @@ flags coding=utf8 ;
oper
voyelle : Strs = strs {
"a" ; "à" ; "â" ; "e" ; "é" ; "è" ; "ê¨" ;
"a" ; "à" ; "â" ; "e" ; "é" ; "è" ; "ê" ;
"h" ;
"i" ; "î" ; "o" ; "ô" ; "u" ; "û" ; "y" ;
"A" ; "À" ; "Â" ; "E" ; "É" ; "È" ; "ʨ" ;
"A" ; "À" ; "Â" ; "E" ; "É" ; "È" ; "Ê" ;
"H" ;
"I" ; "Î" ; "O" ; "Ô" ; "U" ; "Û" ; "Y"
} ;

View File

@@ -86,9 +86,9 @@ concrete CatGer of Cat =
-- Open lexical classes, e.g. Lexicon
V, VS, VQ, VA = ResGer.Verb ; -- = {s : VForm => Str} ;
V, VS, VQ = ResGer.Verb ; -- = {s : VForm => Str} ;
VV = Verb ** {isAux : Bool} ;
V2, V2A, V2S, V2Q = Verb ** {c2 : Preposition} ;
V2, VA, V2A, V2S, V2Q = Verb ** {c2 : Preposition} ;
V2V = Verb ** {c2 : Preposition ; isAux : Bool} ;
V3 = Verb ** {c2, c3 : Preposition} ;

View File

@@ -9,6 +9,11 @@ flags coding=utf8 ;
lin
hungry_VP = mkVP (mkA "hungrig") ;
thirsty_VP = mkVP (mkA "durstig") ;
tired_VP = mkVP (mkA "müde") ;
scared_VP = mkVP have_V2 (mkNP (mkN "Angst" "Angsten" feminine)) ;
ill_VP = mkVP (mkA "krank") ;
ready_VP = mkVP (mkA "bereit") ;
has_age_VP card = mkVP (lin AP (mkAP (lin AdA (mkUtt (mkNP <lin Card card : Card> L.year_N))) L.old_A)) ;
have_name_Cl x y = mkCl (lin NP x) (mkV2 I.heißen_V) (lin NP y) ;

View File

@@ -205,7 +205,7 @@ concrete ExtraGer of ExtraGerAbs = CatGer **
-- "es wird gelacht"; generating formal sentences
lincat
FClause = VP ** {subj : NP} ;
FClause = ResGer.VP ** {subj : ResGer.NP} ;
lin

View File

@@ -24,4 +24,10 @@ oper
a = case b of {True => PAg n ; _ => PAgNone}
}
} ;
-- e.g. das selbe
mmkQuant : Quant -> A -> Quant = \q,a -> q ** {
s,sp = \\x,n,g,c => q.s ! x ! n ! g ! c ++ a.s ! Posit ! agrAdj g q.a n ((prepC c).c)
} ;
}

View File

@@ -327,8 +327,11 @@ mkV2 : overload {
mkVV : V -> VV ; -- with zu
auxVV : V -> VV ; -- without zu
mkVA : V -> VA ;
mkVA : overload {
mkVA : V -> VA ;
mkVA : V -> Prep -> VA ;
} ;
mkVQ : V -> VQ ;
@@ -630,7 +633,10 @@ mkV2 : overload {
= \v,p -> prepV2 v p ** {isAux = False ; lock_V2Q = <>} ;
} ;
mkVA v = v ** {lock_VA = <>} ;
mkVA = overload {
mkVA : V -> VA = \v -> lin VA (dirV2 v) ;
mkVA : V -> Prep -> VA = \v,p -> lin VA (v ** {c2 = p}) ;
} ;
mkAS v = v ** {lock_A = <>} ;
mkA2S v p = mkA2 v p ** {lock_A = <>} ;

View File

@@ -31,7 +31,7 @@ lin
SymbS sy = {s = \\_ => sy.s} ;
SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ;
SymbOrd n = {s = \\_ => n.s ++ "."} ;
SymbOrd n = {s = \\_ => glue n.s "."} ;
lincat

View File

@@ -19,7 +19,7 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in {
insertExtrapos (comma ++ conjThat ++ s.s ! Sub) (predV v) ;
ComplVQ v q =
insertExtrapos (comma ++ q.s ! QIndir) (predV v) ;
ComplVA v ap = insertAdj (ap.s ! APred) ap.c ap.ext (predV v) ; -- changed
ComplVA v ap = insertAdj (v.c2.s ++ ap.s ! APred) ap.c ap.ext (predV v) ; -- changed
SlashV2a v = predV v ** {c2 = v.c2} ;
@@ -64,7 +64,8 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in {
insertObj (\\_ => appPrepNP v.c2 np) (
predVGen v.isAux v)))) ** {c2 = v.c2} ;
UseComp comp = insertObj comp.s (predV sein_V) ; -- agr not used
UseComp comp =
insertExtrapos comp.ext (insertObj comp.s (predV sein_V)) ; -- agr not used
-- adj slot not used here for e.g. "ich bin alt" but same behaviour as NPs?
-- "ich bin nicht alt" "ich bin nicht Doris"

View File

@@ -32,7 +32,7 @@ lin
SymbS sy = {s = \\_ => sy.s} ;
SymbNum n = {s = \\_,_ => n.s ; isNum = True ; n = Pl} ;
SymbOrd n = {s = \\_,_,_,_ => n.s ++ "." ; adv= table { Posit => " " ; Compar => " " ; Superl => " "}} ;
SymbOrd n = {s = \\_,_,_,_ => glue n.s "." ; adv= table { Posit => " " ; Compar => " " ; Superl => " "}} ;
lincat

View File

@@ -1,11 +1,11 @@
concrete TextGre of Text = CatGre ** {
concrete TextGre of Text = CatGre ** open Prelude in {
flags coding=utf8 ;
lin
TEmpty = {s = []} ;
TFullStop x xs = {s = x.s ++ "." ++ xs.s} ;
TQuestMark x xs = {s = x.s ++ ";" ++ xs.s} ;
TExclMark x xs = {s = x.s ++ "!" ++ xs.s} ;
TFullStop x xs = {s = x.s ++ SOFT_BIND ++ "." ++ xs.s} ;
TQuestMark x xs = {s = x.s ++ SOFT_BIND ++ ";" ++ xs.s} ;
TExclMark x xs = {s = x.s ++ SOFT_BIND ++ "!" ++ xs.s} ;
}

View File

@@ -8,6 +8,11 @@ flags coding=utf8 ;
lin
hungry_VP = mkVP (mkA "भूखा") ;
thirsty_VP = mkVP (mkA "प्यासा") ;
-- tired_VP = mkVP (mkCompoundA "थका" "हुआ") ;
-- scared_VP = mkVP (mkCompoundA "डरा" "हुआ") ;
ill_VP = mkVP (mkA "बीमार") ;
ready_VP = mkVP (mkA "तैयार") ;
has_age_VP card = mkVP (mkNP <card : Card> (mkCN (mmodN L.year_N))) ;
have_name_Cl x y = mkCl (mkNP (E.GenNP x) L.name_N) (lin NP y) ;

View File

@@ -0,0 +1,47 @@
concrete AdjectiveIce of Adjective = CatIce ** open ResIce, Prelude in {
lin
PositA a = {
s = \\n,g,d,c => a.s ! APosit d n g c
} ;
ComparA a np = {
s = \\n,g,d,c => a.s ! ACompar n g c ++ "heldur en" ++ np.s ! NCase Nom
} ;
ComplA2 a2 np = {
s = \\n,g,d,c => a2.s ! APosit d n g c ++ a2.c2.s ++ np.s ! NCase a2.c2.c
} ;
ReflA2 a2 = {
s = \\n,g,d,c => a2.s ! APosit d n g c ++ a2.c2.s ++ reflPron P3 n g a2.c2.c
} ;
UseA2 a2 = {
s = \\n,g,d,c => a2.s ! APosit d n g c
} ;
UseComparA a = {
s = \\n,g,d,c => a.s ! ACompar n g c
} ;
CAdvAP cadv ap np = {
s = \\n,g,d,c => cadv.s ++ ap.s ! n ! g ! d ! c ++ cadv.p ++ np.s ! NCase Nom
} ;
AdjOrd ord = {
s = \\n,g,d,c => ord.s ! d ! n ! g ! c
} ;
SentAP ap sc = {
s = \\n,g,d,c => ap.s ! n ! g ! d ! c ++ sc.s
} ;
AdAP ad ap = {
s = \\n,g,d,c => ad.s ++ ap.s ! n ! g ! d ! c
} ;
AdvAP ap adv = {
s = \\n,g,d,c => ap.s ! n ! g ! d ! c ++ adv.s
} ;
}

View File

@@ -0,0 +1,22 @@
concrete AdverbIce of Adverb = CatIce ** open ResIce, Prelude in {
lin
PositAdvAdj a = { s = a.adv } ;
PrepNP p np = { s = p.s ++ np.s ! NCase p.c} ;
ComparAdvAdjS cadv a s = {
s = cadv.s ++ a.adv ++ cadv.p ++ s.s
} ;
ComparAdvAdj cadv a np = {
s = cadv.s ++ a.adv ++ cadv.p ++ np.s ! NCase Nom
} ;
AdAdv ad adv = { s = ad.s ++ adv.s} ;
PositAdAAdj a = { s = a.adv } ;
SubjS sub s = { s = sub.s ++ s.s } ;
AdnCAdv cadv = { s = cadv.s ++ cadv.p} ;
}

11
src/icelandic/AllIce.gf Normal file
View File

@@ -0,0 +1,11 @@
--# -path=.:../abstract:../common:../api:../prelude
concrete AllIce of AllIceAbs =
LangIce,
IrregIce
-- ExtraIce
**
{
--{} ;
}

View File

@@ -0,0 +1,9 @@
abstract AllIceAbs =
Lang,
IrregIceAbs,
ExtraIceAbs
**
{
--{} ;
}

150
src/icelandic/CatIce.gf Normal file
View File

@@ -0,0 +1,150 @@
concrete CatIce of Cat = CommonX ** open ResIce, Prelude in {
flags optimize=all_subs ;
lincat
--2 Sentences and clauses
S = {s : Str} ;
QS = {s : QForm => Str} ;
RS = {
s : Agr => Str ;
c : NPCase
} ;
Cl = ResIce.Cl ;
ClSlash = {
s : ResIce.Tense => Anteriority => Polarity => Order => Str ;
c2 : Preposition
} ;
SSlash = {
s : Order => Str ;
c2 : Preposition
} ;
Imp = {s : Polarity => Number => Str} ;
--2 Questions and interrogatives
QCl = {s : ResIce.Tense => Anteriority => Polarity => QForm => Str} ;
IP = {
s : Gender => Case => Str ;
n : Number
} ;
IComp = {s : Number => Gender => Case => Str} ;
IDet = {s : Gender => Case => Str ; n : Number} ;
IQuant = {s : Number => Gender => Case => Str} ;
--2 Relative clauses and pronouns
RCl = {s : ResIce.Tense => Anteriority => Polarity => Agr => Str} ;
RP = {s : Str} ;
--2 Verb phrases
VP = ResIce.VP ;
Comp = {s : Agr => Str} ;
VPSlash = ResIce.VP ** {
c2 : Preposition
} ;
--2 Adjectival phrases
AP = {s : Number => Gender => Declension => Case => Str} ;
--2 Nouns and noun phrases
CN = {
s : Number => Species => Declension => Case => Str ;
comp : Number => Case => Str ; -- used to separate the head from its tail components in cases of possessive constructions.
g : Gender
} ;
NP = ResIce.NP ;
Pron = ResIce.Pron ;
Det = {
s : Gender => Case => Str ;
pron : Gender => Case => Str ; -- pronouns generally follow the noun that they describe, but numbers and ordinals/adjectivs preced it
n : Number ;
b : ResIce.Species ;
d : ResIce.Declension
} ;
Predet = {
s : Number => Gender => Case => Str
} ;
Quant = {
s : Number => Gender => Case => Str ;
b : ResIce.Species ; -- for nouns, indication if the suffixed article is used or not.
d : ResIce.Declension ; -- for adjectives, indication if the weak or strong form of the adjective is used.
isPron : Bool -- pronouns generally follow the noun that they describe
} ;
Num = {
s : Gender => Case => Str ;
n : Number ;
hasCard : Bool
} ;
Card = {
s : Gender => Case => Str ;
n : Number
} ;
Ord = {
s : ResIce.Declension => Number => Gender => Case => Str
} ;
DAP = {
s : Gender => Case => Str ;
n : Number ;
b : ResIce.Species ;
d : ResIce.Declension
} ;
--2 Numerals
Numeral = {s : CardOrd => Str ; n : Number} ;
Digits = {s : CardOrd => Str ; n : Number} ;
--2 Structural words
Conj = {s1,s2 : Str ; n : Number} ;
Prep = ResIce.Preposition ;
--2 Words of open classes
V, VS, VQ, VA = ResIce.Verb;
VV, V2, V2A, V2S, V2Q = ResIce.Verb ** {c2 : Preposition} ;
V3, V2V = ResIce.Verb ** {c2,c3 : Preposition} ;
A = ResIce.Adj ;
A2 = ResIce.Adj ** {c2 : Preposition} ;
N = ResIce.Noun ;
N2 = ResIce.Noun ** {c2 : Preposition} ;
N3 = ResIce.Noun ** {c2,c3 : Preposition} ;
PN = {s : Case => Str ; g : Gender} ;
}

View File

@@ -0,0 +1,93 @@
concrete ConjunctionIce of Conjunction =
CatIce ** open ResIce, Coordination, Prelude in {
lin
ConjS = conjunctDistrSS ;
ConjRS conj ss = conjunctDistrTable Agr conj ss ** {c = ss.c} ;
ConjCN co ns = conjunctDistrTable4 Number Species Declension Case co ns ** {comp = \\_,_ => [] ; g = Neutr} ;
ConjAP co as = conjunctDistrTable4 Number Gender Declension Case co as ;
ConjNP co ns = conjunctDistrTable NPCase co ns ** {
a = {g = ns.a.g ; n = conjNumber co.n ns.a.n ; p = ns.a.p} ;
isPron = ns.isPron
} ;
ConjDet co ds = let cds = (conjunctDistrTable2 Gender Case co ds).s in {
s = cds ;
pron = \\_,_ => [] ;
n = ds.n ;
b = ds.b ;
d = ds.d ;
} ;
ConjAdv = conjunctDistrSS ;
ConjAdV = conjunctDistrSS ;
ConjIAdv = conjunctDistrSS ;
-- These are fun's generated from the list cat's.
BaseS = twoSS ;
ConsS = consrSS comma ;
BaseAdV = twoSS ;
ConsAdV = consrSS comma ;
BaseAdv = twoSS ;
ConsAdv = consrSS comma ;
BaseIAdv = twoSS ;
ConsIAdv = consrSS comma ;
BaseRS x y = twoTable Agr x y ** {c = y.c} ;
ConsRS xs x = consrTable Agr comma xs x ** {c = xs.c} ;
BaseCN = twoTable4 Number Species Declension Case ;
ConsCN = consrTable4 Number Species Declension Case comma ;
BaseAP x y = twoTable4 Number Gender Declension Case x y ;
ConsAP xs x = consrTable4 Number Gender Declension Case comma xs x ;
BaseNP x y = twoTable NPCase x y ** {
a = conjAgr x.a y.a ;
isPron = isBothPron x.isPron y.isPron
} ;
ConsNP xs x = consrTable NPCase comma xs x ** {
a = conjAgr xs.a x.a ;
isPron = isBothPron xs.isPron x.isPron
} ;
BaseDAP x y = twoTable2 Gender Case x y ** {n = y.n ; b = y.b ; d = y.d} ;
ConsDAP x xs = consrTable2 Gender Case comma x xs ** {n = xs.n ; b = xs.b ; d = xs.d} ;
lincat
[S] = {s1,s2 : Str} ;
[Adv] = {s1,s2 : Str} ;
[AdV] = {s1,s2 : Str} ;
[IAdv] = {s1,s2 : Str} ;
[NP] = {s1,s2 : NPCase => Str ; a : Agr ; isPron : Bool} ;
[CN] = {s1,s2 : Number => Species => Declension => Case => Str} ;
[AP] = {s1,s2 : Number => Gender => Declension => Case => Str} ;
[RS] = {s1,s2 : Agr => Str ; c : NPCase} ;
[DAP] = {s1,s2 : Gender => Case => Str ; n : Number ; b : Species ; d : Declension} ;
oper
isBothPron : Bool -> Bool -> Bool = \x,y -> case <x,y> of {
<True,True> => True ;
_ => False
} ;
}

View File

@@ -0,0 +1,6 @@
--# -path=.:../abstract
concrete ConstructionIce of Construction = CatIce **
open SyntaxIce, SymbolicIce, ParadigmsIce, (L = LexiconIce), (E = ExtraIce), (G = GrammarIce), (R = ResIce), (S = StructuralIce), Prelude in {
}

48
src/icelandic/ExtraIce.gf Normal file
View File

@@ -0,0 +1,48 @@
concrete ExtraIce of ExtraIceAbs = CatIce **
open ResIce, Coordination, Prelude, MorphoIce, ParadigmsIce in {
lin
-- Det -> NP
DetNPMasc det = {
s = \\c => det.s ! Masc ! c ;
a = Ag Masc det.n P3
} ;
-- Det -> NP
DetNPFem det = {
s = \\c => det.s ! Fem ! c ;
a = Ag Fem det.n P3
} ;
QuestVPNeutr ip vp =
let
cl = mkClause (ip.s ! Neutr ! Nom) vp {g = Neutr; n = ip.n; p = P3}
in {
s = \\ten,ant,pol => table {
_ => cl.s ! ten ! ant ! pol ! OQuestion
}
} ;
QuestVPFem ip vp =
let
cl = mkClause (ip.s ! Fem ! Nom) vp {g = Fem; n = ip.n; p = P3}
in {
s = \\ten,ant,pol => table {
_ => cl.s ! ten ! ant ! pol ! OQuestion
}
} ;
PrepIPFem prep ip = {
s = prep.s ++ ip.s ! Fem ! prep.c
} ;
PrepIPNeutr prep ip = {
s = prep.s ++ ip.s ! Neutr ! prep.c
} ;
CompIPFem ip = {s = \\_,_,_ => ip.s ! Neutr ! Nom} ;
CompIPNeutr ip = {s = \\_,_,_ => ip.s ! Neutr ! Nom} ;
}

View File

@@ -0,0 +1 @@
abstract ExtraIceAbs = Extra - [ProDrop] ** {}

View File

@@ -0,0 +1,22 @@
--# -path=.:../abstract:../common:prelude
concrete GrammarIce of Grammar =
NounIce,
VerbIce,
AdjectiveIce,
AdverbIce,
NumeralIce,
SentenceIce,
QuestionIce,
RelativeIce,
ConjunctionIce,
PhraseIce,
TextX,
StructuralIce,
IdiomIce,
TenseX
** open ResIce, Prelude in {
flags startcat = Phr ; unlexer = text ; lexer = text ;
} ;

52
src/icelandic/IdiomIce.gf Normal file
View File

@@ -0,0 +1,52 @@
concrete IdiomIce of Idiom = CatIce ** open Prelude, ResIce in {
lin
ImpersCl vp = mkClause "það" vp {g = Neutr ; n = Sg ; p = P3} ;
GenericCl vp = mkClause "maður" vp {g = Masc ; n = Sg ; p = P3} ;
CleftNP np rs = let vp = (predV verbBe) in
mkClause "það" (vp ** {dirObj = \\_ => np.s ! rs.c ++ rs.s ! np.a}) np.a ;
CleftAdv ad s = let vp = (predV verbBe) in
mkClause "það" (vp ** {dirObj = \\_ => ad.s ++ "sem" ++ s.s}) {g = Neutr ; n = Sg ; p = P3} ;
ExistNP np = let vp = (predV verbBe) in
mkClause "til" (vp ** {dirObj = \\_ => np.s ! NCase Nom}) np.a ;
ExistIP ip = let
vp = (predV verbBe) ;
cl = mkClause (ip.s ! Masc ! Nom) vp {g = Masc ; n = ip.n ; p = P3}
in {s = \\ten,ant,pol,_ => cl.s ! ten ! ant ! pol ! ODir ++ "þarna"} ;
ExistNPAdv np adv = let vp = (predV verbBe) in
mkClause "til" (vp ** {dirObj = \\_ => np.s ! NCase Nom ++ adv.s}) np.a ;
ExistIPAdv ip adv = let
vp = (predV verbBe) ;
cl = mkClause (ip.s ! Masc ! Nom) vp {g = Masc ; n = ip.n ; p = P3}
in {s = \\ten,ant,pol,_ => cl.s ! ten ! ant ! pol ! ODir ++ adv.s} ;
ProgrVP vp = let vvp = predV verbBe in
vvp ** {dirObj = \\a => vp.p ! PPres ++ vp.dirObj ! a} ;
ImpPl1 vp = { s = let
agr = gennumperToAgr Masc Pl P1 ;
verb = vp.s ! VPMood Pres Simul ! Pos ! agr
in verb.fin ++ verb.inf ++ vp.dirObj ! agr } ;
ImpP3 np vp = {s = let
verb = vp.s ! VPMood Pres Simul ! Pos ! np.a
in verbLet.s ! VPres Active Indicative np.a.n np.a.p ++ np.s ! NCase Acc ++ verb.inf} ;
SelfAdvVP vp = vp ** {dirObj = \\a => vp.dirObj ! a ++ reflPron a.p a.n a.g Nom} ;
SelfAdVVP vp = vp ** {dirObj = \\a => reflPron a.p a.n a.g Nom ++ vp.dirObj ! a} ;
SelfNP np = {
s = \\c => reflPron np.a.p np.a.n np.a.g Nom ++ np.s ! c ;
a = np.a ;
isPron = False
} ;
}

186
src/icelandic/IrregIce.gf Normal file
View File

@@ -0,0 +1,186 @@
--# -path=.:prelude:../abstract:../common
concrete IrregIce of IrregIceAbs = CatIce ** open ParadigmsIce,MorphoIce in {
flags optimize=values ;
lin
-- present preterite verbs
-- technically they have no past participle..
eiga_V = irregV "eiga" "á" "átti" "eigi" "ætti" "áttinn" ;
mega_V = irregV "mega" "má" "mátti" "megi" "mætti" "máttinn" ;
unna_V = irregV "unna" "ann" "unni" "unni" "ynni" "unnaður" ;
kunna_V = irregV "kunna" "kann" "kunni" "kunni" "kynni" "kunnaður" ;
þurfa_V = irregV "þurfa" "þarf" "þurfti" "þurfi" "þyrfti" "þurfinn" ;
vita_V = irregV "vita" "veit" "vissi" "viti" "vissi" "vitaður";
vilja_V = irregV "vilja" "vil" "vildi" "vilji" "vildi" "viljaður" ;
muna_V = irregV "muna" "man" "mundi" "muni" "myndi" "muninn" ;
munu_V = irregV "munu" "mun" "mundi" "muni" "myndi" "muninn" ;
skulu_V = irregV "skulu" "skal" "skyldi" "skuli" "skyldi" "skulinn" ;
vera_V = irregV "vera" "er" "var" "sé" "væri" "verinn" ;
-- -ri verbs
róa_V = irregV "róa" "ræ" "reri" "rói" "reri" "róinn" ;
gróa_V = irregV "gróa" "græ" "greri" "grói" "greri" "gróinn" ;
núa_V = irregV "núa" "ný" "neri" "núi" "neri" "núinn" ;
snúa_V = irregV "snúa" "sný" "sneri" "snúi" "sneri" "snúinn" ;
-- Strong verbs
bíða_V = irregV "bíða" "beðinn" ;
bíta_V = irregV "bíta" "bitinn" ;
bresta_V = irregV "bresta" "brostinn" ;
brjóta_V = irregV "brjóta" "brotinn" ;
drífa_V = irregV "drífa" "drifinn" ;
fara_V = irregV "fara" "farinn" ;
fljúga_V = irregV "fljúga" "floginn" ;
fljóta_V = irregV "fljóta" "flotinn" ;
frjósa_V = irregV "frjósa" "frosinn" ;
gjósa_V = irregV "gjósa" "gosinn" ;
grípa_V = irregV "grípa" "gripinn" ;
hljóta_V = irregV "hljóta" "hlotinn" ;
hvína_V = irregV "hvína" "hvininn" ;
hrína_V = irregV "hrína" "hrininn" ;
hrífa_V = irregV "hrífa" "hrifinn" ;
hníga_V = irregV "hníga" "hniginn" ;
kvíða_V = irregV "kvíða" "kviðinn" ;
ljúga_V = irregV "ljúga" "loginn" ;
líða_V = irregV "líða" "liðinn" ;
líta_V = irregV "líta" "litinn" ;
míga_V = irregV "míga" "miginn" ;
ríða_V = irregV "ríða" "riðinn" ;
rísa_V = irregV "rísa" "risinn" ;
síga_V = irregV "síga" "siginn" ;
sjúga_V = irregV "sjúga" "soginn" ;
strjúka_V = irregV "strjúka" "strokinn" ;
svífa_V = irregV "svífa" "svifinn" ;
svíkja_V = irregV "svíkja" "svikinn" ;
stíga_V = irregV "stíga" "stiginn" ;
sníða_V = irregV "sníða" "sniðinn" ;
slíta_V = irregV "slíta" "slitinn" ;
skína_V = irregV "skína" "skininn" ;
skríða_V = irregV "skríða" "skriðinn" ;
víkja_V = irregV "víkja" "vikinn" ;
þrífa_V = irregV "þrífa" "þrifinn" ;
hnjóta_V = irregV "hnjóta" "hnotinn" ;
kjósa_V = irregV "kjósa" "kosinn" ;
njóta_V = irregV "njóta" "notinn" ;
sjóða_V = irregV "sjóða" "soðinn" ;
þjóta_V = irregV "þjóta" "þotinn" ;
þrjóta_V = irregV "þrjóta" "þrotinn" ;
drjúpa_V = irregV "drjúpa" "dropinn" ;
fjúka_V = irregV "fjúka" "fokinn" ;
kljúfa_V = irregV "kljúfa" "klofinn" ;
ljúka_V = irregV "ljúka" "lokinn" ;
rjúfa_V = irregV "rjúfa" "rofinn" ;
sjúga_V = irregV "sjúga" "soginn" ;
súpa_V = irregV "súpa" "sopinn" ;
lúka_V = irregV "lúka" "lokinn" ;
lúta_V = irregV "lúta" "lotinn" ;
smjúga_V = irregV "smjúga" "smoginn" ;
detta_V = irregV "detta" "dottinn" ;
skella_V = irregV "skella" "skollinn" ;
skreppa_V = irregV "skreppa" "skroppinn" ;
sleppa_V = irregV "sleppa" "sloppinn" ;
smella_V = irregV "smella" "smollinn" ;
snerta_V = irregV "snerta" "snortinn" ;
spretta_V = irregV "spretta" "sprotinn" ;
verða_V = irregV "verða" "orðinn" ;
svelta_V = irregV "svelta" "soltinn" ;
hverfa_V = irregV "hverfa" "horfinn" ;
sverfa_V = irregV "sverfa" "sorfinn" ;
vella_V = irregV "vella" "ollinn" ;
velta_V = irregV "velta" "oltinn" ;
verpa_V = irregV "verpa" "orpinn" ;
þverra_V = irregV "þverra" "þorrinn" ;
spinna_V = irregV "spinna" "spunninn" ;
finna_V = irregV "finna" "fundinn" ;
vinna_V = irregV "vinna" "unninn" ;
drekka_V = irregV "drekka" "drukkinn" ;
brenna_V = irregV "brenna" "brunninn" ;
renna_V = irregV "renna" "runninn" ;
gjalda_V = irregV "gjalda" "goldinn" ;
skjálfa_V = irregV "skjálfa" "skolfinn" ;
gjalla_V = irregV "gjalla" "gollinn" ;
bjarga_V = irregV "bjarga" "borginn" ; -- has usuall a weak declension in modern speach
hrökkva_V = irregV "hrökkva" "hrokkinn" ;
slökkva_V = irregV "slökkva" "slokkinn" ;
stökkva_V = irregV "stökkva" "stokkinn" ;
sökkva_V = irregV "sökkva" "sokkinn" ;
bera_V = irregV "bera" "borinn" ;
skera_V = irregV "skera" "skorinn" ;
stela_V = irregV "stela" "stolinn" ;
fela_V = irregV "fela" "fólginn" ;
nema_V = irregV "nema" "numinn" ;
gefa_V = irregV "gefa" "gefinn" ;
drepa_V = irregV "drepa" "drepinn" ;
geta_V = irregV "geta" "getinn" ;
kveða_V = irregV "kveða" "kveðinn" ;
leka_V = irregV "leka" "lekinn" ;
lesa_V = irregV "lesa" "lesinn" ;
meta_V = irregV "meta" "metinn" ;
reka_V = irregV "reka" "rekinn" ;
biðja_V = irregV "biðja" "beðinn" ;
sitja_V = irregV "sitja" "setinn" ;
liggja_V = irregV "liggja" "leginn" ;
þiggja_V = irregV "þiggja" "þeginn" ;
fara_V = irregV "fara" "farinn" ;
ala_V = irregV "ala" "alinn" ;
gala_V = irregV "gala" "galinn" ;
grafa_V = irregV "grafa" "grafinn" ;
hlaða_V = irregV "hlaða" "hlaðinn" ;
kala_V = irregV "kala" "kalinn" ;
mala_V = irregV "mala" "malinn" ;
skafa_V = irregV "skafa" "skafinn" ;
skapa_V = irregV "skapa" "skapaður" ;
taka_V = irregV "taka" "tekinn" ;
aka_V = irregV "aka" "ekinn" ;
draga_V = irregV "draga" "dreginn" ;
skaka_V = irregV "skaka" "skekinn" ;
hefja_V = irregV "hefja" "hafinn" ;
kefja_V = irregV "kefja" "kafinn" ;
skekja_V = irregV "skekja" "skakinn" ;
sverja_V = irregV "sverja" "svarinn" ;
deyja_V = irregV "deyja" "dáinn" ;
geyja_V = irregV "geyja" "geyjaður" ;
hlæja_V = irregV "hlæja" "hleginn" ;
klæja_V = irregV "klæja" "klæjaður" ;
flá_V = irregV "flá" "fleginn" ;
slá_V = irregV "slá" "sleginn" ;
þvo_V = irregV "þvo" "þveginn" ;
auka_V = irregV "auka" "jók" "jukum" "aukinn" ;
ausa_V = irregV "ausa" "jós" "jusum" "ausinn" ;
hlaupa_V = irregV (cBjóða "hlaupa" "hleyp" "hljóp" "hlupum" "hlypi") "hlaupa" "hlaupinn" ;
heita_V = irregV "heita" "hét" "hétum" "heitinn" ;
leika_V = irregV "leika" "lék" "lékum" "leikinn" ;
falla_V = irregV "falla" "féll" "féllum" "fallinn" ;
halda_V = irregV "halda" "hélt" "héldum" "haldinn" ;
hanga_V = irregV "hanga" "hékk" "héngum" "hanginn" ;
ganga_V = irregV "ganga" "gékk" "géngum" "genginn" ;
--standa_V = irregV "standa" "staðinn" ;
blása_V = irregV "blása" "blés" "blésum" "blásinn" ;
gráta_V = irregV "gráta" "grét" "grétum" "grátinn" ;
láta_V = irregV "láta" "lét" "létum" "látinn" ;
ráða_V = irregV "ráða" "réð" "réðum" "ráðinn" ;
syngja_V = irregV (cBresta "syngja" "syng" "söng" "sungum" "syngi") "syngja" "sunginn" ;
sjá_V = irregV (cFara "sjá" "sé" "sá" "sáum" "sæi") "sjá" "séður" ;
éta_V = irregV (cBresta "éta" "ét" "át" "átum" "æti") "éta" "étinn" ;
búa_V = irregV (cFara "búa" "bý" "bjó" "bjuggum" "byggi") "búa" "búinn" ;
spýja_V = irregV (cFara "spýja" "spý" "spjó" "spúðum" "spýði") "spúa" "spúinn" ;
fá_V = irregV (cFara "fá" "fæ" "fékk" "fengum" "fengi") "fá" "fenginn" ;
koma_V = irregV (cBresta "koma" "kem" "kom" "komum" "kæmi") "koma" "kominn" ;
sofa_V = irregV (cBjóða "sofa" "sef" "svaf" "sváfum" "sæfi") "sofa" "sofinn" ;
troða_V = irregV (cBresta "troða" "treð" "tróð" "tróðum" "træði") "troða" "troðinn" ;
hrinda_V = irregV (cBresta "hrinda" "hrindi" "hratt" "hrundum" "hryndi") "hrinda" "hrundinn" ;
vinda_V = irregV (cBresta "vinda" "vindi" "vatt" "undum" "yndi") "vinda" "undinn" ;
binda_V = irregV (cBresta "binda" "bindi" "batt" "bundum" "byndi") "binda" "bundinn" ;
springa_V = irregV (cBresta "springa" "spring" "sprakk" "sprungum" "spryngi") "springa" "sprunginn" ;
stinga_V = irregV (cBresta "stinga" "sting" "stakk" "stungum" "styngi") "stinga" "stunginn" ;
höggva_V = irregV (cBresta "höggva" "hegg" "hjó" "hjuggum" "hyggi") "höggva" "höggvinn" ;
vaxa_V = irregV (cBresta "vaxa" "vex" "óx" "uxum" "yxi") "vaxa" "vaxinn" ;
vega_V = irregV (cBresta "vega" "veg" "vó" "vógum" "vægi") "vega" "veginn" ;
standa_V = irregV (cBresta "standa" "stend" "stóð" "stóðum" "stæði") "standa" "staðinn" ;
}

View File

@@ -0,0 +1,213 @@
abstract IrregIceAbs = Cat ** {
fun
-- irregular/present preterite verbs
eiga_V : V ;
mega_V : V ;
unna_V : V ;
kunna_V : V ;
þurfa_V : V ;
vita_V : V ;
vilja_V : V ;
muna_V : V ;
munu_V : V ;
skulu_V : V ;
-- irregular/present preterite verb/special
vera_V : V ;
-- irregular/-ri verbs
róa_V : V ;
gróa_V : V ;
núa_V : V ;
snúa_V : V ;
-- irregular/strong verbs
biðja_V : V ;
binda_V : V ;
bíða_V : V ;
bíta_V : V ;
blása_V : V ;
brenna_V : V ;
bresta_V : V ;
brjóta_V : V ;
hníga_V : V ;
míga_V : V ;
detta_V : V ;
deyja_V : V ;
drekka_V : V ;
drepa_V : V ;
drífa_V : V ;
fara_V : V ;
falla_V : V ;
finna_V : V ;
fljóta_V : V ;
fljúga_V : V ;
frjósa_V : V ;
ganga_V : V ;
gefa_V : V ;
grafa_V : V ;
grípa_V : V ;
halda_V : V ;
hlaupa_V : V ;
hlæja_V : V ;
hrífa_V : V ;
hrína_V : V ;
hvína_V : V ;
koma_V : V ;
kvíða_V : V ;
láta_V : V ;
leika_V : V ;
lesa_V : V ;
líða_V : V ;
líta_V : V ;
ljúga_V : V ;
ríða_V : V ;
rísa_V : V ;
síga_V : V ;
sjá_V : V ;
sjúga_V : V ;
skína_V : V ;
skríða_V : V ;
slíta_V : V ;
sníða_V : V ;
sofa_V : V ;
standa_V : V ;
stíga_V : V ;
strjúka_V : V ;
svífa_V : V ;
svíkja_V : V ;
syngja_V : V ;
sækja_V : V ;
vinna_V : V ;
vita_V : V ;
víkja_V : V ;
þrífa_V : V ;
brjóta_V : V ;
fljóta_V : V ;
frjósa_V : V ;
gjósa_V : V ;
hljóta_V : V ;
hnjóta_V : V ;
kjósa_V : V ;
njóta_V : V ;
sjóða_V : V ;
þjóta_V : V ;
þrjóta_V : V ;
drjúpa_V : V ;
fjúka_V : V ;
kljúfa_V : V ;
ljúga_V : V ;
ljúka_V : V ;
rjúfa_V : V ;
sjúga_V : V ;
súpa_V : V ;
lúka_V : V ;
lúta_V : V ;
fljúga_V : V ;
smjúga_V : V ;
detta_V : V ;
skella_V : V ;
skreppa_V : V ;
sleppa_V : V ;
smella_V : V ;
snerta_V : V ;
spretta_V : V ;
verða_V : V ;
hverfa_V : V ;
svelgja_V : V ;
svelta_V : V ;
sverfa_V : V ;
vella_V : V ;
velta_V : V ;
verpa_V : V ;
þverra_V : V ;
drekka_V : V ;
brenna_V : V ;
renna_V : V ;
gjalda_V : V ;
skjálfa_V : V ;
gjalla_V : V ;
bjarga_V : V ;
spinna_V : V ;
finna_V : V ;
vinna_V : V ;
hrökkva_V : V ;
slökkva_V : V ;
stökkva_V : V ;
sökkva_V : V ;
bera_V : V ;
skera_V : V ;
stela_V : V ;
fela_V : V ;
nema_V : V ;
gefa_V : V ;
drepa_V : V ;
geta_V : V ;
kveða_V : V ;
leka_V : V ;
lesa_V : V ;
meta_V : V ;
reka_V : V ;
biðja_V : V ;
sitja_V : V ;
liggja_V : V ;
þiggja_V : V ;
binda_V : V ;
vinda_V : V ;
hrinda_V : V ;
springa_V : V ;
stinga_V : V ;
syngja_V : V ;
koma_V : V ;
sofa_V : V ;
troða_V : V ;
sjá_V : V ;
éta_V : V ;
fara_V : V ;
ala_V : V ;
gala_V : V ;
grafa_V : V ;
hlaða_V : V ;
kala_V : V ;
mala_V : V ;
skafa_V : V ;
skapa_V : V ;
taka_V : V ;
aka_V : V ;
draga_V : V ;
skaka_V : V ;
hefja_V : V ;
kefja_V : V ;
skekja_V : V ;
sverja_V : V ;
deyja_V : V ;
geyja_V : V ;
hlæja_V : V ;
klæja_V : V ;
flá_V : V ;
slá_V : V ;
þvo_V : V ;
fela_V : V ;
troða_V : V ;
vega_V : V ;
heita_V : V ;
leika_V : V ;
falla_V : V ;
halda_V : V ;
hanga_V : V ;
fá_V : V ;
ganga_V : V ;
blása_V : V ;
gráta_V : V ;
láta_V : V ;
ráða_V : V ;
auka_V : V ;
ausa_V : V ;
hlaupa_V : V ;
búa_V : V ;
spýja_V : V ;
höggva_V : V ;
vaxa_V : V ;
standa_V : V ;
}

6
src/icelandic/LangIce.gf Normal file
View File

@@ -0,0 +1,6 @@
concrete LangIce of Lang =
GrammarIce
,LexiconIce
--,ConstructionIce
** {} ;

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