mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 09:28:54 -06:00
Compare commits
109 Commits
RELEASE-3.
...
RELEASE-3.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f2020517f | ||
|
|
2eefb1b74b | ||
|
|
bf4313f38e | ||
|
|
d819db35f3 | ||
|
|
a742d54515 | ||
|
|
7a04b65fb1 | ||
|
|
018e38b448 | ||
|
|
8e5d492c0c | ||
|
|
798149941a | ||
|
|
16600cd30d | ||
|
|
df39e466bb | ||
|
|
7bd6b4c13a | ||
|
|
7a761bc3b3 | ||
|
|
06aa7948da | ||
|
|
9c995e8592 | ||
|
|
367b2a0d95 | ||
|
|
31f4c1d4a8 | ||
|
|
eb9d25cc7e | ||
|
|
dc2e103622 | ||
|
|
f4b0b5a001 | ||
|
|
b8f5ed01c6 | ||
|
|
6574b8e5c0 | ||
|
|
1668a5ba73 | ||
|
|
c5a686d71c | ||
|
|
b204fc4cd0 | ||
|
|
e35d515647 | ||
|
|
36f3d8483c | ||
|
|
d76f8b383e | ||
|
|
7423db4e33 | ||
|
|
d22204745d | ||
|
|
64311f3ff1 | ||
|
|
ec1526db77 | ||
|
|
9df5dba0c3 | ||
|
|
dd42c9918b | ||
|
|
c145ded203 | ||
|
|
910364ffa9 | ||
|
|
049c910f4d | ||
|
|
eadcafa5ff | ||
|
|
e9bf0d0966 | ||
|
|
5fd6d8bf67 | ||
|
|
215d61956e | ||
|
|
2758df3265 | ||
|
|
fea7023cc5 | ||
|
|
7170642e20 | ||
|
|
892f50d57d | ||
|
|
7a8b1caa32 | ||
|
|
50d5d62c2a | ||
|
|
b52406a9cc | ||
|
|
efa711d1b2 | ||
|
|
816b56d9f3 | ||
|
|
9201c470a9 | ||
|
|
c063a439a8 | ||
|
|
164c6106f1 | ||
|
|
98fa173686 | ||
|
|
bdbbf7d2e7 | ||
|
|
d37d00b6db | ||
|
|
c1ecb14814 | ||
|
|
1d62281dea | ||
|
|
d2d349c93d | ||
|
|
056b885f29 | ||
|
|
824ad8dfc8 | ||
|
|
92b2a7ac36 | ||
|
|
6c8b0be7aa | ||
|
|
2e2f042ca2 | ||
|
|
58df464c6a | ||
|
|
9c4cb67da8 | ||
|
|
9170fcb237 | ||
|
|
49bfa9cef8 | ||
|
|
91610cd640 | ||
|
|
490c8386ba | ||
|
|
e05dea185c | ||
|
|
3055ac0a7c | ||
|
|
51ad54d2c2 | ||
|
|
5fc11c8cb0 | ||
|
|
f1aff40123 | ||
|
|
3591b71bab | ||
|
|
78acd20ace | ||
|
|
5c35480e68 | ||
|
|
52ef0b9d5e | ||
|
|
f286610a21 | ||
|
|
fe6acf7ffd | ||
|
|
14720c1238 | ||
|
|
2c8a68b002 | ||
|
|
c0d2623e59 | ||
|
|
6c88dcd7a3 | ||
|
|
af10e9913e | ||
|
|
95e5cd74b2 | ||
|
|
ea20b6f786 | ||
|
|
bb617e06c6 | ||
|
|
68a660bb15 | ||
|
|
246c625f5c | ||
|
|
589563d880 | ||
|
|
63ea01cf08 | ||
|
|
063084a3b1 | ||
|
|
b480e1aa56 | ||
|
|
e67ccf84a7 | ||
|
|
2211acf48e | ||
|
|
0b8a2cf790 | ||
|
|
e6fc91f074 | ||
|
|
79b4f59505 | ||
|
|
715ac1ec8c | ||
|
|
39ca158f8c | ||
|
|
52e9076641 | ||
|
|
c0ed747ba6 | ||
|
|
c5a9da0757 | ||
|
|
3435382e49 | ||
|
|
334067e98f | ||
|
|
54cf5ce0c8 | ||
|
|
6f6e6081d4 |
@@ -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
|
||||
|
||||
@@ -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
109
doc/quicklinks.js
Normal 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())
|
||||
@@ -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; }
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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===
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
1820
doc/synopsis.html
1820
doc/synopsis.html
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
8
src/api/CombinatorsIce.gf
Normal file
8
src/api/CombinatorsIce.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
resource CombinatorsIce = Combinators - [ appCN, appCNc ] with
|
||||
(Cat = CatIce),
|
||||
(Structural = StructuralIce),
|
||||
(Noun = NounIce),
|
||||
(Constructors = ConstructorsIce) **
|
||||
{}
|
||||
8
src/api/CombinatorsLat.gf
Normal file
8
src/api/CombinatorsLat.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
resource CombinatorsLat = Combinators - [ appCN, appCNc ] with
|
||||
(Cat = CatLat),
|
||||
(Structural = StructuralLat),
|
||||
(Noun = NounLat),
|
||||
(Constructors = ConstructorsLat) **
|
||||
{}
|
||||
@@ -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 {}
|
||||
|
||||
3
src/api/ConstructorsIce.gf
Normal file
3
src/api/ConstructorsIce.gf
Normal file
@@ -0,0 +1,3 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
resource ConstructorsIce = Constructors with (Grammar = GrammarIce) ;
|
||||
4
src/api/ConstructorsLat.gf
Normal file
4
src/api/ConstructorsLat.gf
Normal 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
5
src/api/SymbolicIce.gf
Normal 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
6
src/api/SymbolicJpn.gf
Normal 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
5
src/api/SymbolicLat.gf
Normal 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
5
src/api/SyntaxIce.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
instance SyntaxIce of Syntax =
|
||||
ConstructorsIce, CatIce, StructuralIce, CombinatorsIce ;
|
||||
|
||||
5
src/api/SyntaxLat.gf
Normal file
5
src/api/SyntaxLat.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:alltenses:prelude
|
||||
|
||||
instance SyntaxLat of Syntax =
|
||||
ConstructorsLat, CatLat, StructuralLat, CombinatorsLat ;
|
||||
|
||||
6
src/api/TryAra.gf
Normal file
6
src/api/TryAra.gf
Normal 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
3
src/api/TryIce.gf
Normal 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
3
src/api/TryLat.gf
Normal 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
102
src/arabic/MissingAra.gf
Normal 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" ;
|
||||
|
||||
|
||||
}
|
||||
@@ -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 "година"))) ;
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 ++ "."} ; ---
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
|
||||
@@ -42,15 +42,4 @@ lin
|
||||
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 "-" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 "-" ;
|
||||
|
||||
}
|
||||
@@ -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) ;
|
||||
}
|
||||
@@ -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 "-" ;
|
||||
|
||||
}
|
||||
@@ -41,15 +41,4 @@ lin
|
||||
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 "-" ;
|
||||
|
||||
}
|
||||
@@ -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} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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") ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
11
src/english/LangEng.labels
Normal file
11
src/english/LangEng.labels
Normal 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
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 ++ "."} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
@@ -138,6 +144,18 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
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} ;
|
||||
|
||||
CompPartAP ap = {
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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) ;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
|
||||
12
src/finnish/tagged/LangFin.gf
Normal file
12
src/finnish/tagged/LangFin.gf
Normal 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 ;
|
||||
|
||||
} ;
|
||||
61
src/finnish/tagged/LargeFin.gf
Normal file
61
src/finnish/tagged/LargeFin.gf
Normal 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 = [] ; ----
|
||||
} ;
|
||||
|
||||
|
||||
}
|
||||
54
src/finnish/tagged/LargeFinAbs.gf
Normal file
54
src/finnish/tagged/LargeFinAbs.gf
Normal 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 ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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 = []} ;
|
||||
|
||||
}
|
||||
@@ -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
42059
src/finnish/tagged/WordsFin.gf
Normal file
File diff suppressed because it is too large
Load Diff
42048
src/finnish/tagged/WordsFinAbs.gf
Normal file
42048
src/finnish/tagged/WordsFinAbs.gf
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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 ;
|
||||
|
||||
@@ -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 ++ "."} ; ---
|
||||
|
||||
}
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
} ;
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -327,7 +327,10 @@ 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 = <>} ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
}
|
||||
@@ -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) ;
|
||||
|
||||
47
src/icelandic/AdjectiveIce.gf
Normal file
47
src/icelandic/AdjectiveIce.gf
Normal 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
|
||||
} ;
|
||||
}
|
||||
22
src/icelandic/AdverbIce.gf
Normal file
22
src/icelandic/AdverbIce.gf
Normal 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
11
src/icelandic/AllIce.gf
Normal file
@@ -0,0 +1,11 @@
|
||||
--# -path=.:../abstract:../common:../api:../prelude
|
||||
|
||||
concrete AllIce of AllIceAbs =
|
||||
LangIce,
|
||||
IrregIce
|
||||
-- ExtraIce
|
||||
**
|
||||
{
|
||||
--{} ;
|
||||
|
||||
}
|
||||
9
src/icelandic/AllIceAbs.gf
Normal file
9
src/icelandic/AllIceAbs.gf
Normal file
@@ -0,0 +1,9 @@
|
||||
abstract AllIceAbs =
|
||||
Lang,
|
||||
IrregIceAbs,
|
||||
ExtraIceAbs
|
||||
**
|
||||
{
|
||||
--{} ;
|
||||
|
||||
}
|
||||
150
src/icelandic/CatIce.gf
Normal file
150
src/icelandic/CatIce.gf
Normal 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} ;
|
||||
}
|
||||
93
src/icelandic/ConjunctionIce.gf
Normal file
93
src/icelandic/ConjunctionIce.gf
Normal 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
|
||||
} ;
|
||||
}
|
||||
6
src/icelandic/ConstructionIce.gf
Normal file
6
src/icelandic/ConstructionIce.gf
Normal 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
48
src/icelandic/ExtraIce.gf
Normal 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} ;
|
||||
}
|
||||
1
src/icelandic/ExtraIceAbs.gf
Normal file
1
src/icelandic/ExtraIceAbs.gf
Normal file
@@ -0,0 +1 @@
|
||||
abstract ExtraIceAbs = Extra - [ProDrop] ** {}
|
||||
22
src/icelandic/GrammarIce.gf
Normal file
22
src/icelandic/GrammarIce.gf
Normal 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
52
src/icelandic/IdiomIce.gf
Normal 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
186
src/icelandic/IrregIce.gf
Normal 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" ;
|
||||
}
|
||||
213
src/icelandic/IrregIceAbs.gf
Normal file
213
src/icelandic/IrregIceAbs.gf
Normal 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
6
src/icelandic/LangIce.gf
Normal 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
Reference in New Issue
Block a user