1
0
forked from GitHub/gf-core

more shallow grs

This commit is contained in:
aarne
2004-04-14 08:52:11 +00:00
parent 7c6b0cbff6
commit 695dcf7cbc
12 changed files with 1458 additions and 5 deletions

View File

@@ -33,6 +33,12 @@ oper
nounY : Str -> CommonNoun = \fl ->
mkNoun (fl + "y") (fl + "ies") (fl + "y's") (fl + "ies'") ;
nounGen : Str -> CommonNoun = \dog -> case last dog of {
"y" => nounY "dog" ;
"s" => nounS (init "dog") ;
_ => nounReg "dog"
} ;
--3 Proper names
--
-- Regular proper names are inflected with "'s" in the genitive.
@@ -174,6 +180,13 @@ oper
verbP3y : Str -> VerbP3 = \cr ->
mkVerbP3 (cr + "y") (cr + "ies") (cr + "ied") (cr + "ied") ;
verbGen : Str -> VerbP3 = \kill -> case last kill of {
"y" => verbP3y (init "kill") ;
"e" => verbP3y (init "kill") ;
"s" => verbP3s (init "kill") ;
_ => regVerbP3 "kill"
} ;
verbP3Have = mkVerbP3 "have" "has" "had" "had" ;
verbP3Do = mkVerbP3 "do" "does" "did" "done" ;

View File

@@ -9,7 +9,7 @@
-- expressions of basic categories: nouns, adjectives, verbs.
--
-- Closed categories (determiners, pronouns, conjunctions) are
-- accessed through the resource syntax API, $resource.Abs.gf$.
-- accessed through the resource syntax API, $Structural.gf$.
--
-- The main difference with $MorphoEng.gf$ is that the types
-- referred to are compiled resource grammar types. We have moreover
@@ -148,6 +148,12 @@ oper
tvPartReg : Str -> Str -> Str -> TV ; -- get, along, with
-- Ditransitive verbs.
mkV3 : V -> Str -> Str -> V3 ; -- prata, med, om
v3Dir : V -> Str -> V3 ; -- ge,_,till
v3DirDir : V -> V3 ; -- ge,_,_
-- The definitions should not bother the user of the API. So they are
-- hidden from the document.
--.
@@ -239,4 +245,7 @@ oper
tvDir = \v -> mkTV v [] ;
tvGenDir = \s -> tvDir (vGen s) ;
mkV3 x y z = mkDitransVerb x y z ** {lock_V3 = <>} ;
v3Dir x y = mkV3 x [] y ;
v3DirDir x = v3Dir x [] ;
} ;

View File

@@ -0,0 +1,594 @@
<html>
<body bgcolor="#FFFFFF" text="#000000" >
<center>
<img SRC="../gf-logo.gif">
<h1>The GF Resource Grammar Library</h1>
<a href="http://www.cs.chalmers.se/~aarne">Aarne Ranta</a>
2002-2004
<p>
Version 0.6: <a href="gf-resource.tgz">source package</a>.
<p>
Current languages: English, Finnish, French, German, Italian, Russian, Swedish.
</center>
<font size=2>
<b>News</b>. <br>
13/4/2004 Version 0.6 written using the module system of GF 2. Also an
extended coverage. The files are placed in separate subdirectories (one
per language) and have different names than before, so that file names
(without the extension <tt>.gf</tt>) are also legal module names.
<br>
15/8/2003 Version 0.4 with Finnish added. Some updates of the Russian modules.
<br>
25/6/2003 Release of GF 1.2 making it much more efficient to work with
resource grammars. See
<a href="http://www.cs.chalmers.se/~aarne/GF/doc/gf-1.2.html">highlights</a>.
Also <a href="gf-resource-0.3.tgz">source package version 0.3</a>
with some bug fixes.
<br>
5/6/2003. Russian resource modules by
<a href="http://www.cs.chalmers.se/~janna">Janna Khegai</a>.
Cyrillic strings in the files <tt>*.RusU.gf</tt> use UTF-8 encoding,
which is automatically detected by the Java GUI to GF. However, in web
browsers the encoding must be set manually.
<br>
3/6/2003. New version of this document, with separate sections
on application and resource grammarians' views and
added documentation
on the type system of each language <tt>X</tt>
in <tt>resource.X.gf</tt>.
<br>
23/5/2003. High-level lexicon access also in
French,
Italian,
and
Swedish.
<br>
23/5/2003.
Italian grammar based on generic Romance modules, shared with French.
<br>
14/4/2003. High-level access to define a lexicon in
English and German.
<p>
<i>
<b>Notice</b>. You need GF Version 2.0beta or later
to work with these resource grammars.
It is available from the
<a href="http://www.cs.chalmers.se/~aarne/GF/">GF home page</a>.
</i>
</font>
<p>
<h2>Introduction</h2>
As programs in general can be divided into
application programs and library programs,
GF grammars can be divided into
<b>application grammars</b> and
<b>resource grammars</b>.
An application grammar is typically built around
a semantic model, which is formalized as the abstract
syntax of the language. Concrete syntax defines
a mapping from the abstract syntax into English or
Swedish or some other language.
A resource grammar is not based on semantics, but its
purpose is to define the linguistic "surface" structures
of some language. The availability of these structures makes it easier to
write application grammars.
<h3>Abstraction level</h3>
Resource grammars
<b>raise the level of abstraction in concrete syntax</b>.
The author of an application grammar is freed from thinking
about inflection, word order, etc, but can use structured
tree-like objects in linearization rules. For instance, to
express the linearization of the arithmetical predicate <i>even</i>
in French, she no longer has to write
<pre>
lin Even x = {s =
table {
m => x.s ++
table {Ind => "est" ; Subj => "soit"} ! m ++
table {Masc => "pair" ; Fem => "paire"} ! x.g
}
} ;
</pre>
but simply
<pre>
lin Even = predA1 (adjReg "pair") ;
</pre>
The author of the French resource grammar will have defined the
functions <tt>predAdj</tt> and <tt>adjReg</tt> in such a way that
they can be used in all applications.
<h3>Unity of language</h3>
In addition to high abstraction level, reusability, and the division
of labour, resource grammars have the virtue of making sense of the
<b>unity of a language</b> such as English: while application grammars
depend on applications, resource grammars depend on language.
What is more, resource grammars for related languages can
share much of their code: to what degree this can be done gives
a measure of how related the languages are.
Thus we find resource grammars to be an interesting linguistic
project in its own right.
<h3>Semantics</h3>
We leave it open if we can also explain the <b>semantics</b>
of resource grammar on the general level. The philosophy of GF,
inherited from logical frameworks,
is that semantics is only given to
application grammars. (You can also compare them to Wittgenstein's
"language games").
This view gives us a lot of freedom in formulating resource grammars.
When describing them, we sometimes say that such-and-such construction
is likely to be ruled out by semantic reasons; what we mean is that
this will actually happen in application grammars; we do <i>not</i>
mean that GF has no semantic rules.
An example of this is the free formation of question adverbials, e.g.
<i>From which city is every number even or odd?</i>.
The resource grammar makes it possible to form this question,
but it can hardly be grammatical in any sensible application grammar.
<h2>Programmer's view on resource grammars</h2>
The resource grammar library a hierarchical structure. Its main layers are
<ul>
<li> The language-dependent <b>core resources</b>, to be described below.
<li> The language-independent <b>core resource API</b>,
<a href="Combination.html"><tt>Combinations.gf</tt></a>.
<a href="Structural.html"><tt>Structural.gf</tt></a>.
<li> The <b>derived resource libraries</b>, some of which are
language-dependent, some of which aren't. The most important
ones are the language-dependent lexical paradigm modules
<tt>ParadigmsX.gf</tt></a>.
</ul>
The core resources should not be needed by application grammarians: it should
be enough to use the core resource API and the derived libraries. If
this is not the case, the best solution is to extend the derived resource
libraries or create new ones.
<h3>Grammaticality guarantee via data abstraction</h3>
An important principle is that
<ul>
<li> the core resource API and the derived resource libraries guarantee
that all type-correct uses of them preserve grammaticality.
</ul>
This principle is simultaneously a guidance for resource grammarians
and an argument for the application grammarian to use these libraries.
What we mean by "only using the libraries" is that
<ul>
<li> all <tt>lin</tt> and
<tt>lincat</tt> rules are built solely from library functions and
argument variables.
</ul>
Thus for instance no records, tables, selections or projections should appear
in the rules. What we have achieved then is <b>total data abstraction</b>,
and the grammaticality guarantee can be given.
<p>
Since the resource grammars are work in progress, their coverage is not
yet sufficient for complete data abstraction. In addition, there may of course
be bugs in the resource grammars that destroy grammaticality. The GF group is
grateful for bug reports, requests, and contributions!
<p>
The most important exception to total data abstraction in practice is the
incompleteness of resource lexica. Since it is impossible to have
full coverage of all the words in a language, users often have to introduce
their own lexical entries, and thereby use literal strings in their GF code.
The safest and most convenient way of using this is via functions
defined in <tt>ParadigmsX.gf</tt> files. Using these functions guarantees
that the lexical entries created are type-correct. But nothing guards
against misspelling a word, picking a wrong inflectional pattern, or
a wrong inherent feature (such as gender).
<h3>The resource grammar documentation in <tt>gfdoc</tt></h3>
All documented GF grammars linked from this page
have been written in GF and then translated to HTML
using a light-weight documentation tool,
<tt>gfdoc</tt>. The tool is available as a part of the GF
source code package, in the Haskell file
<tt>util/GFDoc.hs</tt> that can be run in the Hugs interpreter
by the script <tt>util/gfdoc</tt>. The program also has the
flag <tt>+latex</tt>, which produces output in Latex instead of
HTML.
<h3>The core resource API</h3>
The API is divided into two modules, <tt>Combiantions</tt> and
its extension <tt>Structural</tt>.
<p>
The file <a href="Combinations.html"><tt>Combinations.gf</tt></a>
gives the core resource type signatures of phrasal categories and
syntactic combination rules, together with some explanations
and examples. The examples are so far only in English, but their
equivalents are available in all of the languages for which the
API has been implemented.
<p>
The file <a href="Structural.html"><tt>Structurals.gf</tt></a>
gives a list of structural words such as determiners, pronouns,
prepositions, and conjunctions.
<p>
The file <tt>Structural.gf</tt> cannot be imported directly, but
via the generated files <tt>ResourceX.gf</tt> for each language <tt>X</tt>.
In these files, the <tt>fun/lin</tt> and <tt>cat/lincat</tt> judgements have been
translated into <tt>oper</tt> judgements.
<h3>The lexical paradigm modules</h3>
The lexical paradigm modules define, for
each lexical category, a <b>worst-case macro</b> for adding words
of that category by giving a sufficient number of characteristic
forms. In addition, the most common <b>regular paradigms</b> are
included, where it is enough just to give one form to generate
all the others.
<p>
For example, the English paradigm module has the worst-case macro for nouns,
<pre>
mkN : (man,men,man's,men's : Str) -> Gender -> N ;
</pre>
taking four forms and a gender (<tt>human</tt> or <tt>nonhuman</tt>,
as is also explained in the module). Its application
<pre>
mkN "mouse" "mice" "mouse's" "mice's" nonhuman
</pre>
defines all information that is needed for the noun <i>mouse</i>.
There are also some regular patterns, for instance,
<pre>
nReg : Str -> Gender -> N ; -- dog, dogs
nKiss : Str -> Gender -> N ; -- kiss, kisses
</pre>
examples of which are
<pre>
nReg "car" nonhuman
nKiss "waitress" human
</pre>
<p>
Here are the documented versions of the paradigm modules:
<ul>
<li> English: <a href="ParadigmsEng.html"><tt>ParadigmsEng.gf</tt></a>
<li> Finnish: <a href="ParadigmsFin.html"><tt>ParadigmsFin.gf</tt></a>
<li> French: <a href="ParadigmsFra.html"><tt>ParadigmsFra.gf</tt></a>
<li> German: <a href="ParadigmsDeu.html"><tt>ParadigmsDeu.gf</tt></a>
<li> Italian: <a href="ParadigmsIta.html"><tt>ParadigmsIta.gf</tt></a>
<li> Russian: <a href="ParadigmsRusU.html"><tt>ParadigmsRusU.gf</tt></a>
<li> Swedish: <a href="ParadigmsSwe.html"><tt>ParadigmsSwe.gf</tt></a>
</ul>
<h3>The derived resource libraries</h3>
The core resource grammar is minimal in the sense that it defines the
smallest syntactic combinations and has no redundancy. For applications, it
is usually more convenient to use combinations of the minimal rules.
Some such combinations are given in the <b>predication library</b>,
which defines the simultaneous applications of one- and two-place
verbs and adjectives to all their argument noun phrases. It also
defines some other constructions useful for logical and mathematical
applications.
<p>
The API of the predication library is in the file
<a href="abstract/Predication.html"><tt>Predication.gf</tt></a>.
What is imported is one of the language-dependent files,
<tt>X/PredicationX.gf</tt> for each language <tt>X</tt>.
<h3>The language-dependent type systems</h3>
Sometimes it is useful for the application grammarian to know what the
language-dependent linearizations types are for each category in the
core resource. These types are defined in the files <tt>CombinationsX.gf</tt>:
<ul>
<li> English: <a href="CombinationsEng.html"><tt>CombinationsEng.gf</tt></a>
<li> Finnish: <a href="CombinationsFin.html"><tt>CombinationsFin.gf</tt></a>
<li> French: <a href="CombinationsFra.html"><tt>CombinationsFra.gf</tt></a>
<li> German: <a href="CombinationsDeu.html"><tt>CombinationsDeu.gf</tt></a>
<li> Italian: <a href="CombinationsIta.html"><tt>CombinationsIta.gf</tt></a>
<li> Russian: <a href="CombinationsRusU.html"><tt>CombinationsRusU.gf</tt></a>
<li> Swedish: <a href="CombinationsSwe.html"><tt>CombinationsSwe.gf</tt></a>
</ul>
For the sake of uniformity, we have tried to use the same names
of parameter types when applicable. For instance, the gender parameter
is called <tt>Gender</tt> in every grammar, even though its values
differ. The definitions of the parameter
types are given in the files <tt>TypesX.gf</tt>.
The application grammarian following the complete abstraction principle
should not use the parameter constructors directly, but rather the
names defined in <tt>ParadigmsX.gf</tt>.
<h2>Linguist's view on resource grammars</h2>
<h3>GF and other grammar formalisms</h3>
Linguists in particular might be interested in resource
grammars for their own sake, not as basis of applications.
Since few linguists are so far familiar with GF, we refer to the
<a href="http://www.cs.chalmers.se/~aarne/GF/">GF Homepage</a>
and especially to the
<a href="http://www.cs.chalmers.se/~aarne/GF/Tutorial/">GF Tutorial</a>.
What comes here is a brief summary of the relation of GF to
other record-based formalisms.
<p>
The records of GF are much like feature structures in PATR or HPSG.
The main differences are that
<ul>
<li> GF has a type system inherited from
functional programming languages;
<li> GF records are primarily obtained as linearizations of trees, not
as parses of strings.
</ul>
The latter difference explains why a GF record typically carries more
information than a feature structure. For instance, the record describing
the French noun <i>cheval</i> is
<pre>
{s = table {Sg => "cheval" ; Pl => "chevaux"} ; g = Masc} ;
</pre>
showing the full inflection table of the (abstract) noun <i>cheval</i>.
A PATR record
for the French word <i>cheval</i> would be
<pre>
{s = "cheval" ; n = Sg ; g = Masc} ;
</pre>
showing just the information that can be gathered from the (concrete)
string <i>cheval</i>.
There is a rather straightforward sense in which the PATR record is an
<b>instance</b> of the GF record.
<p>
When generating language from syntax trees (or from logical formulas via
syntax trees), the record containing full inflection tables is an efficient
(linear-time) method of producing the correct forms.
This is important when text is generated in real time in
an interactive system.
<h2>The structure of core resource grammars</h2>
As explained above, the application grammarian's view on resource grammars
is through API modules. They are collections of type signatures of functions.
It is the task of linguists to define these functions.
The definitions are in the end given
in the <b>core resource grammars</b>.
<p>
We have divided the core resource grammar for each language <tt>X</tt>
into the following parts:
<ul>
<li> Type system: <tt>types.X.gf</tt>
<li> Morphology: <tt>morpho.X.gf</tt>
<li> Syntax: <tt>syntax.X.gf</tt>
</ul>
To get the most powerful resource grammar for each language, one can use
these files directly.
<p>
However, the languages we have studied have so much in common
that we have gathered a considerable set of categories and rules
in a <b>multilingual resource grammar</b>. Its parts are
<ul>
<li> Abstract syntax: <a href="Resource.html"><tt>Resource.gf</tt></a>
<li> Language-dependent concrete syntax: <tt>ResourceX.gf</tt></a> for
each language.
</ul>
The advantage of using this API in application grammars is that
<b>their concrete syntax looks the same for all languages</b>
up to non-structural words. Thus it is possible to produce concrete syntaxes
for new languages without knowing almost anything about them.
The abstract syntax serves as a common API to the core resource grammar.
<h3>The code for the core resource grammars</h3>
The following links go to the <tt>gfdoc</tt>-generated
HTML files while showing the names of the GF files.
<ul>
<li> English:
<a href="types.Eng.html"><tt>types.Eng.gf</tt></a>,
<a href="morpho.Eng.html"><tt>morpho.Eng.gf</tt></a>,
<a href="syntax.Eng.html"><tt>syntax.Eng.gf</tt></a>.
<li> Finnish:
<a href="types.Fin.html"><tt>types.Fin.gf</tt></a>,
<a href="morpho.Fin.html"><tt>morpho.Fin.gf</tt></a>,
<a href="syntax.Fin.html"><tt>syntax.Fin.gf</tt></a>.
<li> Shared Romance:
<a href="types.Romance.html"><tt>types.Romance.gf</tt></a>,
<a href="syntax.Romance.html"><tt>syntax.Romance.gf</tt></a>,
<li> French:
<a href="types.Fra.html"><tt>types.Fra.gf</tt></a>,
<a href="morpho.Fra.html"><tt>morpho.Fra.gf</tt></a>,
<a href="syntax.Fra.html"><tt>syntax.Fra.gf</tt></a>.
<li> Italian:
<a href="types.Ita.html"><tt>types.Ita.gf</tt></a>,
<a href="morpho.Ita.html"><tt>morpho.Ita.gf</tt></a>,
<a href="syntax.Ita.html"><tt>syntax.Ita.gf</tt></a>.
<li> Russian:
<a href="types.RusU.html"><tt>types.RusU.gf</tt></a>,
<a href="morpho.RusU.html"><tt>morpho.RusU.gf</tt></a>,
<a href="syntax.RusU.html"><tt>syntax.RusU.gf</tt></a>.
<li> German:
<a href="types.Deu.html"><tt>types.Deu.gf</tt></a>,
<a href="morpho.Deu.html"><tt>morpho.Deu.gf</tt></a>,
<a href="syntax.Deu.html"><tt>syntax.Deu.gf</tt></a>.
<li> Swedish:
<a href="types.Swe.html"><tt>types.Swe.gf</tt></a>,
<a href="morpho.Swe.html"><tt>morpho.Swe.gf</tt></a>,
<a href="syntax.Swe.html"><tt>syntax.Swe.gf</tt></a>.
</ul>
<h2>Compiling and using the resource</h2>
If you want to use the resource grammars,
you should download and unpack the
<a href="gf-resource.tgz">source package</a>.
At Chalmers, however, we keep the resource grammars in the
GF CVS archive, in the directory <tt>Grammars/resource/</tt>,
and you'd better take them that way. The package accessible through www
is usually not quite up to date.
<p>
To compile the resource into reusable operations, for all languages, type
<pre>
make
</pre>
in the <tt>resource/</tt> directory.
This requires that you have a recent version of GF (>= 1.1).
What you get is a set of files with names <tt>res.X.gf</tt>.
The file <tt>res.Types.gf</tt> gives the type signatures
of the operations. You need never consult any of these files,
but mostly look into <tt>resource.Abs.gf</tt> for the type
signatures of syntactic structures.
<h2>Examples of using the resource grammars</h2>
<h3>A test suite</h3>
The grammars <tt>test.X.gf</tt> define a few expressions of each
lexical category and make it possible to test linearization, parsing,
random generation, and editing.
<h3>A database query language</h3>
The grammars <tt>database/(database | restaurant).X.gf</tt>
make use of the resource. The <tt>restaurant.X.gf</tt>
grammars are just one possible application building on the generic
<tt>database.X.gf</tt> grammars.
Look at the
<a href="database/database.Abs.gf">abstract database syntax</a>
and, as an example, the
<a href="database/database.Fra.gf">French concrete syntax</a>.
<h3>A dialogue system for the video recorder</h3>
The grammars <tt>video/video.X.gf</tt> are meant to be a prototype
for dialogu systems. Look at the
<a href="video/video.Abs.gf">abstract video grammar</a>
and, as an example, the
<a href="video/video.Eng.gf">English concrete syntax</a>.
<h2>Functional morphology</h2>
Even though GF is a useful language for describing syntax and semantics, it
is not the optimal choice for morphology.
One reason is the absence of low-level
programming, such as string matching. Another reason is efficiency.
In connection with the resource grammar project, we have started another
project, <b>functional morphology</b>, which uses Haskell to implement
morphology. Haskell morphologies can then be used for generating
GF morphologies, as exemplified by large parts of
<a href="morpho.Swe.html"><tt>morpho.Swe.gf</tt></a>.
<p>
Work is in progress to document functional morphology, but here is
a beginning:
<ul>
<li> General library for defining morphologies:
<a href="General.html"><tt>General.hs</tt></a>.
<li> Swedish inflection engine: <a href="RulesSw.html"><tt>RulesSw.hs</tt></a>.
</ul>
(Notice that we have here used <tt>gfdoc</tt> on Haskell files.)
<p>
To see that it is nevertheless possible to implement morphology in GF, look
at the French morphology in
<a href="morpho.Fra.html"><tt>morpho.Fra.gf</tt></a>.
Its verb part is complete in the sense that it
implements all the 88 inflection tables of the Bescherelle.
<h2>Further reading</h2>
If you want to read an informal introduction to
resource grammars, see these
<a href="karlsruhe.ps.gz">slides</a>, written for a German computer science
audience. Or these
<a href="swedish.ps.gz">other slides</a>, written for a Swedish
linguistic audience.
</body>
</html>

View File

@@ -18,9 +18,11 @@ abstract Shallow = {
Verb ;
TV ;
Adj ;
N ;
Noun ;
CN ;
NP ;
PN ;
Adv ;
Prep ;
@@ -48,7 +50,9 @@ abstract Shallow = {
PrepNP : Prep -> NP -> Adv ;
PrepNoun : CN -> Prep -> NP -> CN ;
CNNoun : Noun -> CN ;
NounN : N -> Noun ;
DefNP, IndefNP, EveryNP, AllNP : CN -> NP ;
UsePN : PN -> NP ;
PossessPrep : Prep ;
}

View File

@@ -9,9 +9,11 @@ incomplete concrete ShallowI of Shallow = open (Resource = Resource) in {
Verb = Resource.V ;
TV = Resource.TV ;
Adj = Resource.Adj1 ;
N = Resource.N ;
Noun = Resource.CN ;
CN = Resource.CN ;
NP = Resource.NP ;
PN = Resource.PN ;
Adv = Resource.AdV ;
Det = Resource.Det ;
Prep = Resource.Prep ;
@@ -62,12 +64,14 @@ incomplete concrete ShallowI of Shallow = open (Resource = Resource) in {
ModNoun a n = Resource.ModAdj (Resource.AdjP1 a) n ;
PrepNP = Resource.PrepNP ;
PrepNoun f p x = Resource.AdvCN f (Resource.PrepNP p x) ;
NounN = Resource.UseN ;
CNNoun n = n ;
AllNP = Resource.DetNP (Resource.AllNumDet Resource.NoNum) ;
EveryNP = Resource.DetNP Resource.EveryDet ;
DefNP = Resource.DefOneNP ;
IndefNP = Resource.IndefOneNP ;
UsePN = Resource.UsePN ;
PossessPrep = Resource.PossessPrep ;
}

View File

@@ -0,0 +1,244 @@
abstract LexAbs = Shallow ** {
fun journey1 : Verb ;
fun judge1 : Verb ;
fun Dinah1 : PN ;
fun On1 : Adj ;
fun Rachel1 : PN ;
fun Rebekah1 : PN ;
fun Laban1 : PN ;
fun Leah1 : PN ;
fun Lot1 : PN ;
fun Lotan1 : PN ;
fun Pharaoh1 : PN ;
fun Hamor1 : PN ;
fun right1 : Adj ;
fun roll1 : Verb ;
fun rule1 : Verb ;
fun rain1 : Verb ;
fun reign1 : Verb ;
fun receive1 : Verb ;
fun reward1 : Verb ;
fun reach1 : Verb ;
fun remember1 : Verb ;
fun remove1 : Verb ;
fun refrain1 : Verb ;
fun rest1 : Verb ;
fun restore1 : Verb ;
fun return1 : Verb ;
fun require1 : Verb ;
fun Bless1 : Verb ;
fun Benjamin1 : PN ;
fun number1 : Verb ;
fun name1 : Verb ;
fun nourish1 : Verb ;
fun guard1 : PN ;
fun gather1 : Verb ;
fun gracious1 : Adj ;
fun great1 : Adj ;
fun go1 : Adj ;
fun good1 : Adj ;
fun Manasseh1 : PN ;
fun kill1 : Verb ;
fun kiss1 : Verb ;
fun king1 : N ;
fun kind1 : Adj ;
fun know1 : Adj ;
fun lodge1 : Verb ;
fun love1 : Verb ;
fun lord1 : N ;
fun look1 : Verb ;
fun leap1 : Verb ;
fun light1 : Verb ;
fun light2 : Adj ;
fun lift1 : Verb ;
fun lion1 : PN ;
fun live1 : Verb ;
fun laugh1 : Verb ;
fun lad1 : N ;
fun lad2 : Verb ;
fun lade1 : Verb ;
fun Abimelech1 : PN ;
fun Abram1 : PN ;
fun Abraham1 : PN ;
fun Ishmael1 : PN ;
fun Isaac1 : PN ;
fun Israel1 : PN ;
fun God1 : PN ;
fun vow1 : Verb ;
fun very1 : Adj ;
fun visit1 : Verb ;
fun smell1 : Verb ;
fun scatter1 : Verb ;
fun stand1 : Adj ;
fun stay1 : Verb ;
fun sister1 : PN ;
fun see1 : Verb ;
fun seem1 : Verb ;
fun seek1 : Adj ;
fun secret1 : Adj ;
fun separate1 : Verb ;
fun serve1 : Verb ;
fun servant1 : N ;
fun spoil1 : Verb ;
fun sojourn1 : Verb ;
fun sow1 : Verb ;
fun sore1 : Adj ;
fun son1 : N ;
fun sad1 : Adj ;
fun sack1 : N ;
fun save1 : Verb ;
fun saw1 : Adj ;
fun sure1 : Adj ;
fun should1 : Adj ;
fun she1 : Verb ;
fun shew1 : Verb ;
fun master1 : PN ;
fun marry1 : Verb ;
fun may1 : Adj ;
fun man1 : PN ;
fun mock1 : Verb ;
fun mother1 : PN ;
fun mourn1 : Verb ;
fun men1 : PN ;
fun mean1 : Adj ;
fun multiply1 : Verb ;
fun fill1 : Verb ;
fun finish1 : Verb ;
fun find1 : Adj ;
fun follow1 : Verb ;
fun form1 : Verb ;
fun forty1 : PN ;
fun fetch1 : Verb ;
fun fear1 : Verb ;
fun fear2 : Adj ;
fun favour1 : Verb ;
fun faint1 : Verb ;
fun fail1 : Verb ;
fun father1 : N ;
fun She1 : Verb ;
fun Shechem1 : PN ;
fun Sarai1 : PN ;
fun Sarah1 : PN ;
fun Judah1 : PN ;
fun Jacob1 : PN ;
fun Joseph1 : PN ;
fun dry1 : Verb ;
fun dress1 : Verb ;
fun dream1 : Verb ;
fun deliver1 : Verb ;
fun desire1 : Verb ;
fun destroy1 : Verb ;
fun depart1 : Verb ;
fun devour1 : Verb ;
fun do1 : Adj ;
fun double1 : Verb ;
fun day1 : N ;
fun dwell1 : Verb ;
fun discern1 : Verb ;
fun distress1 : Verb ;
fun displease1 : Verb ;
fun divide1 : Verb ;
fun die1 : Verb ;
fun bad1 : Adj ;
fun bless1 : Verb ;
fun build1 : Verb ;
fun bury1 : Verb ;
fun brother1 : PN ;
fun breath1 : Verb ;
fun bow1 : Verb ;
fun be1 : Verb ;
fun bed1 : PN ;
fun yield1 : Verb ;
fun young1 : Adj ;
fun your1 : PN ;
fun obey1 : Verb ;
fun open1 : Verb ;
fun open2 : Adj ;
fun on1 : Adj ;
fun our1 : N ;
fun offer1 : Verb ;
fun turn1 : Verb ;
fun tarry1 : Verb ;
fun till1 : Adj ;
fun twenty1 : PN ;
fun travail1 : Verb ;
fun touch1 : Verb ;
fun ten1 : PN ;
fun their1 : PN ;
fun escape1 : Verb ;
fun establish1 : Verb ;
fun exceeding1 : Adj ;
fun enter1 : Verb ;
fun end1 : Verb ;
fun eat1 : Adj ;
fun empty1 : Verb ;
fun embalm1 : Verb ;
fun hard1 : Adj ;
fun hast1 : Verb ;
fun haste1 : Verb ;
fun hang1 : Verb ;
fun hate1 : Verb ;
fun hire1 : Verb ;
fun he1 : Verb ;
fun hearken1 : Verb ;
fun would1 : Adj ;
fun worship1 : Verb ;
fun woman1 : PN ;
fun weary1 : Verb ;
fun well1 : N ;
fun went1 : Adj ;
fun widow1 : PN ;
fun wicked1 : Adj ;
fun wife1 : PN ;
fun wander1 : Verb ;
fun water1 : Verb ;
fun walk1 : Verb ;
fun wash1 : Verb ;
fun pitch1 : Verb ;
fun prosper1 : Verb ;
fun preserve1 : Verb ;
fun present1 : Verb ;
fun prevail1 : Verb ;
fun pray1 : Verb ;
fun plant1 : Verb ;
fun place1 : Verb ;
fun part1 : Verb ;
fun pass1 : Verb ;
fun pursue1 : Verb ;
fun purchase1 : Verb ;
fun appoint1 : Verb ;
fun appear1 : Verb ;
fun accept1 : Verb ;
fun ask1 : Verb ;
fun ass1 : N ;
fun ass2 : PN ;
fun another1 : PN ;
fun answer1 : Verb ;
fun curse1 : Verb ;
fun circumcise1 : Verb ;
fun cry1 : Verb ;
fun cease1 : Verb ;
fun certain1 : Adj ;
fun change1 : Verb ;
fun charge1 : Verb ;
fun children1 : PN ;
fun cause1 : Verb ;
fun camel1 : N ;
fun call1 : Verb ;
fun carry1 : Verb ;
fun consume1 : Verb ;
fun conceive1 : Verb ;
fun corrupt1 : Verb ;
fun couch1 : Verb ;
fun commune1 : Verb ;
fun command1 : Verb ;
fun comfort1 : Verb ;
fun increase1 : Verb ;
fun intreat1 : Verb ;
fun interpret1 : Verb ;
fun Nahor1 : PN ;
fun Noah1 : PN ;
fun Esau1 : PN ;
fun Ephraim1 : PN ;
fun Egyptian1 : N ;
}

View File

@@ -0,0 +1,245 @@
--# -path=.:..:../../../prelude:../../abstract:../../english
concrete LexEng of LexAbs = ShallowEng ** open ParadigmsEng in {
lin journey1 = vGen "journey" ;
lin judge1 = vGen "judge" ;
lin Dinah1 = pnReg "Dinah" ;
lin On1 = mkAdj1 "On" ;
lin Rachel1 = pnReg "Rachel" ;
lin Rebekah1 = pnReg "Rebekah" ;
lin Laban1 = pnReg "Laban" ;
lin Leah1 = pnReg "Leah" ;
lin Lot1 = pnReg "Lot" ;
lin Lotan1 = pnReg "Lotan" ;
lin Pharaoh1 = pnReg "Pharaoh" ;
lin Hamor1 = pnReg "Hamor" ;
lin right1 = mkAdj1 "right" ;
lin roll1 = vGen "roll" ;
lin rule1 = vGen "rule" ;
lin rain1 = vGen "rain" ;
lin reign1 = vGen "reign" ;
lin receive1 = vGen "receive" ;
lin reward1 = vGen "reward" ;
lin reach1 = vGen "reach" ;
lin remember1 = vGen "remember" ;
lin remove1 = vGen "remove" ;
lin refrain1 = vGen "refrain" ;
lin rest1 = vGen "rest" ;
lin restore1 = vGen "restore" ;
lin return1 = vGen "return" ;
lin require1 = vGen "require" ;
lin Bless1 = vGen "Bless" ;
lin Benjamin1 = pnReg "Benjamin" ;
lin number1 = vGen "number" ;
lin name1 = vGen "name" ;
lin nourish1 = vGen "nourish" ;
lin guard1 = pnReg "guard" ;
lin gather1 = vGen "gather" ;
lin gracious1 = mkAdj1 "gracious" ;
lin great1 = mkAdj1 "great" ;
lin go1 = mkAdj1 "go" ;
lin good1 = mkAdj1 "good" ;
lin Manasseh1 = pnReg "Manasseh" ;
lin kill1 = vGen "kill" ;
lin kiss1 = vGen "kiss" ;
lin king1 = nNonhuman "king" ;
lin kind1 = mkAdj1 "kind" ;
lin know1 = mkAdj1 "know" ;
lin lodge1 = vGen "lodge" ;
lin love1 = vGen "love" ;
lin lord1 = nNonhuman "lord" ;
lin look1 = vGen "look" ;
lin leap1 = vGen "leap" ;
lin light1 = vGen "light" ;
lin light2 = mkAdj1 "light" ;
lin lift1 = vGen "lift" ;
lin lion1 = pnReg "lion" ;
lin live1 = vGen "live" ;
lin laugh1 = vGen "laugh" ;
lin lad1 = nNonhuman "lad" ;
lin lad2 = vGen "lad" ;
lin lade1 = vGen "lade" ;
lin Abimelech1 = pnReg "Abimelech" ;
lin Abram1 = pnReg "Abram" ;
lin Abraham1 = pnReg "Abraham" ;
lin Ishmael1 = pnReg "Ishmael" ;
lin Isaac1 = pnReg "Isaac" ;
lin Israel1 = pnReg "Israel" ;
lin God1 = pnReg "God" ;
lin vow1 = vGen "vow" ;
lin very1 = mkAdj1 "very" ;
lin visit1 = vGen "visit" ;
lin smell1 = vGen "smell" ;
lin scatter1 = vGen "scatter" ;
lin stand1 = mkAdj1 "stand" ;
lin stay1 = vGen "stay" ;
lin sister1 = pnReg "sister" ;
lin see1 = vGen "see" ;
lin seem1 = vGen "seem" ;
lin seek1 = mkAdj1 "seek" ;
lin secret1 = mkAdj1 "secret" ;
lin separate1 = vGen "separate" ;
lin serve1 = vGen "serve" ;
lin servant1 = nNonhuman "servant" ;
lin spoil1 = vGen "spoil" ;
lin sojourn1 = vGen "sojourn" ;
lin sow1 = vGen "sow" ;
lin sore1 = mkAdj1 "sore" ;
lin son1 = nNonhuman "son" ;
lin sad1 = mkAdj1 "sad" ;
lin sack1 = nNonhuman "sack" ;
lin save1 = vGen "save" ;
lin saw1 = mkAdj1 "saw" ;
lin sure1 = mkAdj1 "sure" ;
lin should1 = mkAdj1 "should" ;
lin she1 = vGen "she" ;
lin shew1 = vGen "shew" ;
lin master1 = pnReg "master" ;
lin marry1 = vGen "marry" ;
lin may1 = mkAdj1 "may" ;
lin man1 = pnReg "man" ;
lin mock1 = vGen "mock" ;
lin mother1 = pnReg "mother" ;
lin mourn1 = vGen "mourn" ;
lin men1 = pnReg "men" ;
lin mean1 = mkAdj1 "mean" ;
lin multiply1 = vGen "multiply" ;
lin fill1 = vGen "fill" ;
lin finish1 = vGen "finish" ;
lin find1 = mkAdj1 "find" ;
lin follow1 = vGen "follow" ;
lin form1 = vGen "form" ;
lin forty1 = pnReg "forty" ;
lin fetch1 = vGen "fetch" ;
lin fear1 = vGen "fear" ;
lin fear2 = mkAdj1 "fear" ;
lin favour1 = vGen "favour" ;
lin faint1 = vGen "faint" ;
lin fail1 = vGen "fail" ;
lin father1 = nNonhuman "father" ;
lin She1 = vGen "She" ;
lin Shechem1 = pnReg "Shechem" ;
lin Sarai1 = pnReg "Sarai" ;
lin Sarah1 = pnReg "Sarah" ;
lin Judah1 = pnReg "Judah" ;
lin Jacob1 = pnReg "Jacob" ;
lin Joseph1 = pnReg "Joseph" ;
lin dry1 = vGen "dry" ;
lin dress1 = vGen "dress" ;
lin dream1 = vGen "dream" ;
lin deliver1 = vGen "deliver" ;
lin desire1 = vGen "desire" ;
lin destroy1 = vGen "destroy" ;
lin depart1 = vGen "depart" ;
lin devour1 = vGen "devour" ;
lin do1 = mkAdj1 "do" ;
lin double1 = vGen "double" ;
lin day1 = nNonhuman "day" ;
lin dwell1 = vGen "dwell" ;
lin discern1 = vGen "discern" ;
lin distress1 = vGen "distress" ;
lin displease1 = vGen "displease" ;
lin divide1 = vGen "divide" ;
lin die1 = vGen "die" ;
lin bad1 = mkAdj1 "bad" ;
lin bless1 = vGen "bless" ;
lin build1 = vGen "build" ;
lin bury1 = vGen "bury" ;
lin brother1 = pnReg "brother" ;
lin breath1 = vGen "breath" ;
lin bow1 = vGen "bow" ;
lin be1 = vGen "be" ;
lin bed1 = pnReg "bed" ;
lin yield1 = vGen "yield" ;
lin young1 = mkAdj1 "young" ;
lin your1 = pnReg "your" ;
lin obey1 = vGen "obey" ;
lin open1 = vGen "open" ;
lin open2 = mkAdj1 "open" ;
lin on1 = mkAdj1 "on" ;
lin our1 = nNonhuman "our" ;
lin offer1 = vGen "offer" ;
lin turn1 = vGen "turn" ;
lin tarry1 = vGen "tarry" ;
lin till1 = mkAdj1 "till" ;
lin twenty1 = pnReg "twenty" ;
lin travail1 = vGen "travail" ;
lin touch1 = vGen "touch" ;
lin ten1 = pnReg "ten" ;
lin their1 = pnReg "their" ;
lin escape1 = vGen "escape" ;
lin establish1 = vGen "establish" ;
lin exceeding1 = mkAdj1 "exceeding" ;
lin enter1 = vGen "enter" ;
lin end1 = vGen "end" ;
lin eat1 = mkAdj1 "eat" ;
lin empty1 = vGen "empty" ;
lin embalm1 = vGen "embalm" ;
lin hard1 = mkAdj1 "hard" ;
lin hast1 = vGen "hast" ;
lin haste1 = vGen "haste" ;
lin hang1 = vGen "hang" ;
lin hate1 = vGen "hate" ;
lin hire1 = vGen "hire" ;
lin he1 = vGen "he" ;
lin hearken1 = vGen "hearken" ;
lin would1 = mkAdj1 "would" ;
lin worship1 = vGen "worship" ;
lin woman1 = pnReg "woman" ;
lin weary1 = vGen "weary" ;
lin well1 = nNonhuman "well" ;
lin went1 = mkAdj1 "went" ;
lin widow1 = pnReg "widow" ;
lin wicked1 = mkAdj1 "wicked" ;
lin wife1 = pnReg "wife" ;
lin wander1 = vGen "wander" ;
lin water1 = vGen "water" ;
lin walk1 = vGen "walk" ;
lin wash1 = vGen "wash" ;
lin pitch1 = vGen "pitch" ;
lin prosper1 = vGen "prosper" ;
lin preserve1 = vGen "preserve" ;
lin present1 = vGen "present" ;
lin prevail1 = vGen "prevail" ;
lin pray1 = vGen "pray" ;
lin plant1 = vGen "plant" ;
lin place1 = vGen "place" ;
lin part1 = vGen "part" ;
lin pass1 = vGen "pass" ;
lin pursue1 = vGen "pursue" ;
lin purchase1 = vGen "purchase" ;
lin appoint1 = vGen "appoint" ;
lin appear1 = vGen "appear" ;
lin accept1 = vGen "accept" ;
lin ask1 = vGen "ask" ;
lin ass1 = nNonhuman "ass" ;
lin ass2 = pnReg "ass" ;
lin another1 = pnReg "another" ;
lin answer1 = vGen "answer" ;
lin curse1 = vGen "curse" ;
lin circumcise1 = vGen "circumcise" ;
lin cry1 = vGen "cry" ;
lin cease1 = vGen "cease" ;
lin certain1 = mkAdj1 "certain" ;
lin change1 = vGen "change" ;
lin charge1 = vGen "charge" ;
lin children1 = pnReg "children" ;
lin cause1 = vGen "cause" ;
lin camel1 = nNonhuman "camel" ;
lin call1 = vGen "call" ;
lin carry1 = vGen "carry" ;
lin consume1 = vGen "consume" ;
lin conceive1 = vGen "conceive" ;
lin corrupt1 = vGen "corrupt" ;
lin couch1 = vGen "couch" ;
lin commune1 = vGen "commune" ;
lin command1 = vGen "command" ;
lin comfort1 = vGen "comfort" ;
lin increase1 = vGen "increase" ;
lin intreat1 = vGen "intreat" ;
lin interpret1 = vGen "interpret" ;
lin Nahor1 = pnReg "Nahor" ;
lin Noah1 = pnReg "Noah" ;
lin Esau1 = pnReg "Esau" ;
lin Ephraim1 = pnReg "Ephraim" ;
lin Egyptian1 = nNonhuman "Egyptian" ;
}

View File

@@ -0,0 +1,21 @@
N!nNonhuman: car cars |car's|cars'|
N!nNonhuman: bab/y babies |baby's|babies'|
N!nNonhuman: bos/s bosses |boss's|bosses'|
PN!pnReg: john john's *johns
Verb!vGen: walk walked
Verb!vGen: ja/m jammed
Verb!vGen: ra/p rapped
Verb!vGen: shar/e shared
Verb!vGen: sp/y spied
Verb!vGen: kis/s kissed
Adj!mkAdj1: slow |slowest|slowly|
Adj!mkAdj1: bi/g |biggest|bigly|
Adj!mkAdj1: happ/y |happiest|happily|
--
-- To do then:
-- grep fun koe >LexAbs.gf
-- grep lin koe >LexEng.gf
-- And prefix these files with
-- abstract LexAbs = Shallow ** {
-- --# -path=.:..:../../../prelude:../../abstract:../../english
-- concrete LexEng of LexAbs = ShallowEng ** open ParadigmsEng in {

View File

@@ -0,0 +1,148 @@
abstract Lex = Shallow ** {
fun regn1 : N ;
fun revben1 : N ;
fun räkna1 : Verb ;
fun rädda1 : Verb ;
fun räcka1 : Verb ;
fun rätt1 : N ;
fun rop1 : N ;
fun port1 : N ;
fun para1 : Verb ;
fun pläga1 : Verb ;
fun prisa1 : Verb ;
fun pröva1 : Verb ;
fun präst1 : N ;
fun D1 : N ;
fun utplåna1 : Verb ;
fun upprätta1 : Verb ;
fun Gera1 : Verb ;
fun släkt1 : N ;
fun slakta1 : Verb ;
fun slut1 : N ;
fun sluta1 : Verb ;
fun svara1 : Verb ;
fun spräcklig1 : Adj ;
fun sten1 : N ;
fun stycke1 : N ;
fun strimmig1 : Adj ;
fun stanna1 : Verb ;
fun stadga1 : Verb ;
fun stoft1 : N ;
fun söka1 : Verb ;
fun synda1 : Verb ;
fun säck1 : N ;
fun så1 : Verb ;
fun sina1 : Verb ;
fun skynda1 : Verb ;
fun skämta1 : Verb ;
fun skänk1 : N ;
fun ske1 : Verb ;
fun skaffa1 : Verb ;
fun skara1 : N ;
fun samla1 : Verb ;
fun flytta1 : Verb ;
fun femtedel1 : N ;
fun får1 : N ;
fun fängsla1 : Verb ;
fun fäst1 : N ;
fun folk1 : N ;
fun frukt1 : N ;
fun frukta1 : Verb ;
fun fråga1 : Verb ;
fun föröka1 : Verb ;
fun förkunna1 : Verb ;
fun förbanna1 : Verb ;
fun förbund1 : N ;
fun fördärva1 : Verb ;
fun förvärva1 : Verb ;
fun dräpa1 : Verb ;
fun dag1 : N ;
fun döda1 : Verb ;
fun nådig1 : Adj ;
fun namn1 : N ;
fun vin1 : N ;
fun vinträd1 : N ;
fun vila1 : Verb ;
fun vädur1 : N ;
fun växa1 : Verb ;
fun välsigna1 : Verb ;
fun vakta1 : Verb ;
fun vandra1 : Verb ;
fun vattna1 : Verb ;
fun vagn1 : N ;
fun vara1 : Verb ;
fun tvista1 : Verb ;
fun tjänstekvinna1 : N ;
fun tjäna1 : Verb ;
fun tjänarinna1 : N ;
fun tjänare1 : N ;
fun tält1 : N ;
fun tänka1 : Verb ;
fun tak1 : N ;
fun tal1 : N ;
fun tala1 : Verb ;
fun träd1 : N ;
fun trösta1 : Verb ;
fun torn1 : N ;
fun åsna1 : N ;
fun åkalla1 : Verb ;
fun år1 : N ;
fun gåva1 : N ;
fun gods1 : N ;
fun buga1 : Verb ;
fun budbärare1 : N ;
fun bo1 : Verb ;
fun blod1 : N ;
fun brokig1 : Adj ;
fun bruka1 : Verb ;
fun brunn1 : N ;
fun bröd1 : N ;
fun bevisa1 : Verb ;
fun bevara1 : Verb ;
fun berg1 : N ;
fun berätta1 : Verb ;
fun befallning1 : N ;
fun behandla1 : Verb ;
fun baka1 : Verb ;
fun barn1 : N ;
fun balsamera1 : Verb ;
fun otillbörlig1 : Adj ;
fun offra1 : Verb ;
fun omstörta1 : Verb ;
fun hjord1 : N ;
fun hövding1 : N ;
fun höga1 : Verb ;
fun högtidlig1 : Adj ;
fun hebré1 : N ;
fun heta1 : Verb ;
fun heta2 : Verb ;
fun hämta1 : Verb ;
fun härstamma1 : Verb ;
fun hus1 : N ;
fun husfolk1 : N ;
fun hav1 : N ;
fun harpa1 : N ;
fun lyssna1 : Verb ;
fun ljus1 : N ;
fun lägra1 : Verb ;
fun lämna1 : Verb ;
fun låga1 : N ;
fun liv1 : N ;
fun ledsaga1 : Verb ;
fun lova1 : Verb ;
fun land1 : N ;
fun kunna1 : Verb ;
fun källa1 : N ;
fun kasta1 : Verb ;
fun kalla1 : Verb ;
fun konung1 : N ;
fun kvinna1 : N ;
fun killing1 : N ;
fun idka1 : Verb ;
fun inbyggare1 : N ;
fun möta1 : Verb ;
fun mäktig1 : Adj ;
fun märka1 : Verb ;
fun människa1 : N ;
fun misshaga1 : Verb ;
}

View File

@@ -0,0 +1,150 @@
--# -path=.:..:../../../prelude:../../abstract:../../swedish
concrete LexSwe of Lex = ShallowSwe ** open ParadigmsSwe in {
lin regn1 = nRep "regn" ;
lin revben1 = nRep "revben" ;
lin räkna1 = vKoka "räkna" ;
lin rädda1 = vKoka "rädda" ;
lin räcka1 = vSteka "räcka" ;
lin rätt1 = nRisk "rätt" ;
lin rop1 = nRep "rop" ;
lin port1 = nBil "port" ;
lin para1 = vKoka "para" ;
lin pläga1 = vKoka "pläga" ;
lin prisa1 = vKoka "prisa" ;
lin pröva1 = vKoka "pröva" ;
lin präst1 = nRisk "präst" ;
lin D1 = nRep "D" ;
lin utplåna1 = vKoka "utplåna" ;
lin upprätta1 = vKoka "upprätta" ;
lin Gera1 = vKoka "Gera" ;
lin släkt1 = nRep "släkt" ;
lin slakta1 = vKoka "slakta" ;
lin slut1 = nRep "slut" ;
lin sluta1 = vKoka "sluta" ;
lin svara1 = vKoka "svara" ;
lin spräcklig1 = adjReg "spräcklig" ;
lin sten1 = nBil "sten" ;
lin stycke1 = nDike "stycke" ;
lin strimmig1 = adjReg "strimmig" ;
lin stanna1 = vKoka "stanna" ;
lin stadga1 = vKoka "stadga" ;
lin stoft1 = nRep "stoft" ;
lin söka1 = vSteka "söka" ;
lin synda1 = vKoka "synda" ;
lin säck1 = nBil "säck" ;
lin så1 = vBo "så" ;
lin sina1 = vKoka "sina" ;
lin skynda1 = vKoka "skynda" ;
lin skämta1 = vKoka "skämta" ;
lin skänk1 = nRisk "skänk" ;
lin ske1 = vBo "ske" ;
lin skaffa1 = vKoka "skaffa" ;
lin skara1 = nApa "skara" ;
lin samla1 = vKoka "samla" ;
lin flytta1 = vKoka "flytta" ;
lin femtedel1 = nBil "femtedel" ;
lin får1 = nRep "får" ;
lin fängsla1 = vKoka "fängsla" ;
lin fäst1 = nRep "fäst" ;
lin folk1 = nRep "folk" ;
lin frukt1 = nBil "frukt" ;
lin frukta1 = vKoka "frukta" ;
lin fråga1 = vKoka "fråga" ;
lin föröka1 = vKoka "föröka" ;
lin förkunna1 = vKoka "förkunna" ;
lin förbanna1 = vKoka "förbanna" ;
lin förbund1 = nRep "förbund" ;
lin fördärva1 = vKoka "fördärva" ;
lin förvärva1 = vKoka "förvärva" ;
lin dräpa1 = vSteka "dräpa" ;
lin dag1 = nBil "dag" ;
lin döda1 = vKoka "döda" ;
lin nådig1 = adjReg "nådig" ;
lin namn1 = nRep "namn" ;
lin vin1 = nRep "vin" ;
lin vinträd1 = nRep "vinträd" ;
lin vila1 = vKoka "vila" ;
lin vädur1 = nBil "vädur" ;
lin växa1 = vSteka "växa" ;
lin välsigna1 = vKoka "välsigna" ;
lin vakta1 = vKoka "vakta" ;
lin vandra1 = vKoka "vandra" ;
lin vattna1 = vKoka "vattna" ;
lin vagn1 = nBil "vagn" ;
lin vara1 = vKoka "vara" ;
lin tvista1 = vKoka "tvista" ;
lin tjänstekvinna1 = nApa "tjänstekvinna" ;
lin tjäna1 = vKoka "tjäna" ;
lin tjänarinna1 = nApa "tjänarinna" ;
lin tjänare1 = nMurare "tjänare" ;
lin tält1 = nRep "tält" ;
lin tänka1 = vSteka "tänka" ;
lin tak1 = nRep "tak" ;
lin tal1 = nRep "tal" ;
lin tala1 = vKoka "tala" ;
lin träd1 = nRep "träd" ;
lin trösta1 = vKoka "trösta" ;
lin torn1 = nRep "torn" ;
lin åsna1 = nApa "åsna" ;
lin åkalla1 = vKoka "åkalla" ;
lin år1 = nRep "år" ;
lin gåva1 = nApa "gåva" ;
lin gods1 = nRep "gods" ;
lin buga1 = vKoka "buga" ;
lin budbärare1 = nMurare "budbärare" ;
lin bo1 = vBo "bo" ;
lin blod1 = nRep "blod" ;
lin brokig1 = adjReg "brokig" ;
lin bruka1 = vKoka "bruka" ;
lin brunn1 = nBil "brunn" ;
lin bröd1 = nRep "bröd" ;
lin bevisa1 = vKoka "bevisa" ;
lin bevara1 = vKoka "bevara" ;
lin berg1 = nRep "berg" ;
lin berätta1 = vKoka "berätta" ;
lin befallning1 = nBil "befallning" ;
lin behandla1 = vKoka "behandla" ;
lin baka1 = vKoka "baka" ;
lin barn1 = nRep "barn" ;
lin balsamera1 = vKoka "balsamera" ;
lin otillbörlig1 = adjReg "otillbörlig" ;
lin offra1 = vKoka "offra" ;
lin omstörta1 = vKoka "omstörta" ;
lin hjord1 = nBil "hjord" ;
lin hövding1 = nBil "hövding" ;
lin höga1 = vSteka "höga" ;
lin högtidlig1 = adjReg "högtidlig" ;
lin hebré1 = nRisk "hebré" ;
lin heta1 = vKoka "heta" ;
lin heta2 = vSteka "heta" ;
lin hämta1 = vKoka "hämta" ;
lin härstamma1 = vKoka "härstamma" ;
lin hus1 = nRep "hus" ;
lin husfolk1 = nRep "husfolk" ;
lin hav1 = nRep "hav" ;
lin harpa1 = nApa "harpa" ;
lin lyssna1 = vKoka "lyssna" ;
lin ljus1 = nRep "ljus" ;
lin lägra1 = vKoka "lägra" ;
lin lämna1 = vKoka "lämna" ;
lin låga1 = nApa "låga" ;
lin liv1 = nRep "liv" ;
lin ledsaga1 = vKoka "ledsaga" ;
lin lova1 = vKoka "lova" ;
lin land1 = nRep "land" ;
lin kunna1 = vKoka "kunna" ;
lin källa1 = nApa "källa" ;
lin kasta1 = vKoka "kasta" ;
lin kalla1 = vKoka "kalla" ;
lin konung1 = nBil "konung" ;
lin kvinna1 = nApa "kvinna" ;
lin killing1 = nBil "killing" ;
lin idka1 = vKoka "idka" ;
lin inbyggare1 = nMurare "inbyggare" ;
lin möta1 = vSteka "möta" ;
lin mäktig1 = adjReg "mäktig" ;
lin märka1 = vSteka "märka" ;
lin människa1 = nApa "människa" ;
lin misshaga1 = vKoka "misshaga" ;
}

View File

@@ -0,0 +1,12 @@
N!nApa: ap/a apor
N!nBil: bil bilen bilar
N!nNyckel: cyk/el cykeln cyklar
N!nRisk: vals valserna
N!nDike: rik/e riket rikena
N!nRep: val valet
N!nMurare: kik/are kikarna
Adj1!adjReg: bill/ig billigt
Adj1!adjReg: dyr dyrt dyra |dyraste|dyrare|dyrast|
V!vKoka: tal/a |talar|talade|talat|
V!vSteka: lek/a leker |lekte|lekt|
V!vBo: sy syr sydde

View File

@@ -69,9 +69,9 @@ oper
nKikare : Str -> N ; -- kikare (kikaren, kikare, kikarna) ; utrum
-- Nouns used as functions need a preposition. The most common ones are "av",
-- "på", and "till".
-- "på", and "till". A preposition is a string.
mkFun : N -> Preposition -> Fun ;
mkFun : N -> Str -> Fun ;
funAv : N -> Fun ;
funPaa : N -> Fun ;
funTill : N -> Fun ;
@@ -157,8 +157,14 @@ oper
-- Two-place verbs, and the special case with direct object.
mkTV : V -> Preposition -> TV ; -- tycka, om
tvDir : V -> TV ; -- gilla
mkTV : V -> Str -> TV ; -- tycka, om
tvDir : V -> TV ; -- gilla
-- Ditransitive verbs.
mkV3 : V -> Str -> Str -> V3 ; -- prata, med, om
v3Dir : V -> Str -> V3 ; -- ge,_,till
v3DirDir : V -> V3 ; -- ge,_,_
-- The definitions should not bother the user of the API. So they are
-- hidden from the document.
@@ -288,5 +294,8 @@ oper
mkPartV v p = {s = v.s ; s1 = p ; lock_V = <>} ;
mkTV x y = mkTransVerb x y ** {lock_TV = <>} ;
tvDir = \v -> mkTV v [] ;
mkV3 x y z = mkDitransVerb x y z ** {lock_V3 = <>} ;
v3Dir x y = mkV3 x [] y ;
v3DirDir x = v3Dir x [] ;
} ;