diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
| commit | e9e80fc389365e24d4300d7d5390c7d833a96c50 (patch) | |
| tree | f0b58473adaa670bd8fc52ada419d8cad470ee03 /examples/mp3 | |
| parent | b96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff) | |
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'examples/mp3')
| -rw-r--r-- | examples/mp3/Lexicon.gf | 6 | ||||
| -rw-r--r-- | examples/mp3/LexiconEng.gf | 9 | ||||
| -rw-r--r-- | examples/mp3/LexiconFin.gf | 9 | ||||
| -rw-r--r-- | examples/mp3/LexiconFre.gf | 9 | ||||
| -rw-r--r-- | examples/mp3/LexiconGer.gf | 8 | ||||
| -rw-r--r-- | examples/mp3/LexiconSwe.gf | 9 | ||||
| -rw-r--r-- | examples/mp3/MP3.gf | 19 | ||||
| -rw-r--r-- | examples/mp3/MP3Eng.gf | 5 | ||||
| -rw-r--r-- | examples/mp3/MP3Fin.gf | 5 | ||||
| -rw-r--r-- | examples/mp3/MP3Fre.gf | 5 | ||||
| -rw-r--r-- | examples/mp3/MP3Ger.gf | 5 | ||||
| -rw-r--r-- | examples/mp3/MP3I.gf | 24 | ||||
| -rw-r--r-- | examples/mp3/MP3Swe.gf | 5 | ||||
| -rw-r--r-- | examples/mp3/mp3-resource.html | 117 | ||||
| -rw-r--r-- | examples/mp3/mp3-resource.txt | 90 | ||||
| -rw-r--r-- | examples/mp3/mp3.gfcm | 840 |
16 files changed, 0 insertions, 1165 deletions
diff --git a/examples/mp3/Lexicon.gf b/examples/mp3/Lexicon.gf deleted file mode 100644 index 8d3bccaf9..000000000 --- a/examples/mp3/Lexicon.gf +++ /dev/null @@ -1,6 +0,0 @@ -interface Lexicon = open Structural in { - - oper - play : TV ; - song : N ; -} diff --git a/examples/mp3/LexiconEng.gf b/examples/mp3/LexiconEng.gf deleted file mode 100644 index 5b5861397..000000000 --- a/examples/mp3/LexiconEng.gf +++ /dev/null @@ -1,9 +0,0 @@ -instance LexiconEng of Lexicon = open StructuralEng, ParadigmsEng in { - - oper - play = tvDir (vReg "play") ; - song = nReg "song" nonhuman ; - - yesterday = npReg "Yesterday" ; - -}
\ No newline at end of file diff --git a/examples/mp3/LexiconFin.gf b/examples/mp3/LexiconFin.gf deleted file mode 100644 index 757535bbf..000000000 --- a/examples/mp3/LexiconFin.gf +++ /dev/null @@ -1,9 +0,0 @@ -instance LexiconFin of Lexicon = open StructuralFin, ParadigmsFin in { - - oper - play = tvDir (vKattaa "soittaa" "soitan") ; - song = nRae "kappale" "kappaleena" ; - - yesterday = UsePN (mkPN (nPuu "Yesterday")) ; - -}
\ No newline at end of file diff --git a/examples/mp3/LexiconFre.gf b/examples/mp3/LexiconFre.gf deleted file mode 100644 index 33188ca1b..000000000 --- a/examples/mp3/LexiconFre.gf +++ /dev/null @@ -1,9 +0,0 @@ -instance LexiconFre of Lexicon = open StructuralFre, ParadigmsFre in { - - oper - play = tvDir (vAimer "jouer") ; - song = nReg "chanson" feminine ; - - yesterday = mkNP "Yesterday" masculine ; - -}
\ No newline at end of file diff --git a/examples/mp3/LexiconGer.gf b/examples/mp3/LexiconGer.gf deleted file mode 100644 index 729a64ac8..000000000 --- a/examples/mp3/LexiconGer.gf +++ /dev/null @@ -1,8 +0,0 @@ -instance LexiconGer of Lexicon = open StructuralGer, ParadigmsGer in { - - oper - play = tvDir (vWeak "spielen") ; - song = nBuch "lied" "lieder" ; - - yesterday = npReg "Yesterday" ; -}
\ No newline at end of file diff --git a/examples/mp3/LexiconSwe.gf b/examples/mp3/LexiconSwe.gf deleted file mode 100644 index f4b17080f..000000000 --- a/examples/mp3/LexiconSwe.gf +++ /dev/null @@ -1,9 +0,0 @@ -instance LexiconSwe of Lexicon = open StructuralSwe, ParadigmsSwe in { - - oper - play = tvDir (vKoka "spela") ; - song = nBil "låt" ; - - yesterday = npReg "Yesterday" neutrum ; - -}
\ No newline at end of file diff --git a/examples/mp3/MP3.gf b/examples/mp3/MP3.gf deleted file mode 100644 index cc4dd882a..000000000 --- a/examples/mp3/MP3.gf +++ /dev/null @@ -1,19 +0,0 @@ -abstract MP3 = { - cat - Move ; - Song ; - - fun - Play : Song -> Move ; - CanPlay : Song -> Move ; - WantPlay : Song -> Move ; - WhichPlay : Move ; - - ThisSong : Song ; - This : Song ; - - Yesterday : Song ; - ----- MkSong : String -> Song ; - -} diff --git a/examples/mp3/MP3Eng.gf b/examples/mp3/MP3Eng.gf deleted file mode 100644 index 7648c1117..000000000 --- a/examples/mp3/MP3Eng.gf +++ /dev/null @@ -1,5 +0,0 @@ ---# -path=.:resource-0.6/english:resource-0.6/abstract:prelude - -concrete MP3Eng of MP3 = MP3I with - (Structural = StructuralEng), - (Lexicon = LexiconEng) ; diff --git a/examples/mp3/MP3Fin.gf b/examples/mp3/MP3Fin.gf deleted file mode 100644 index 099917c18..000000000 --- a/examples/mp3/MP3Fin.gf +++ /dev/null @@ -1,5 +0,0 @@ ---# -path=.:resource-0.6/finnish:resource-0.6/abstract:prelude - -concrete MP3Fin of MP3 = MP3I with - (Structural = StructuralFin), - (Lexicon = LexiconFin) ; diff --git a/examples/mp3/MP3Fre.gf b/examples/mp3/MP3Fre.gf deleted file mode 100644 index 2fcd6b8f2..000000000 --- a/examples/mp3/MP3Fre.gf +++ /dev/null @@ -1,5 +0,0 @@ ---# -path=.:resource-0.6/french:resource-0.6/romance:resource-0.6/abstract:prelude - -concrete MP3Fre of MP3 = MP3I with - (Structural = StructuralFre), - (Lexicon = LexiconFre) ; diff --git a/examples/mp3/MP3Ger.gf b/examples/mp3/MP3Ger.gf deleted file mode 100644 index 5dfdfe19c..000000000 --- a/examples/mp3/MP3Ger.gf +++ /dev/null @@ -1,5 +0,0 @@ ---# -path=.:resource-0.6/german:resource-0.6/abstract:prelude - -concrete MP3Ger of MP3 = MP3I with - (Structural = StructuralGer), - (Lexicon = LexiconGer) ; diff --git a/examples/mp3/MP3I.gf b/examples/mp3/MP3I.gf deleted file mode 100644 index ab8eb7915..000000000 --- a/examples/mp3/MP3I.gf +++ /dev/null @@ -1,24 +0,0 @@ ---# -path=.:resource-0.6/english:resource-0.6/abstract:prelude - -incomplete concrete MP3I of MP3 = open Structural, Lexicon in { - - flags startcat=Move ; - - lincat - Move = Phr ; - Song = NP ; - - lin - Play song = ImperOne (ImperVP (PosVG (PredTV play song))) ; - CanPlay song = QuestPhrase (QuestVP ThouNP (PosVG (PredVV CanVV (PredTV play song)))) ; - WantPlay song = IndicPhrase (PredVP INP (PosVG (PredVV WantVV (PredTV play song)))) ; - WhichPlay = QuestPhrase (IntVP (NounIPOne (UseN song)) (PosVG (PredPassV (VTrans play)))) ; - - ThisSong = DetNP ThisDet (UseN song) ; - This = ThisNP ; - - Yesterday = yesterday ; - ----- MkSong : String -> Song ; - -} diff --git a/examples/mp3/MP3Swe.gf b/examples/mp3/MP3Swe.gf deleted file mode 100644 index 54e20171f..000000000 --- a/examples/mp3/MP3Swe.gf +++ /dev/null @@ -1,5 +0,0 @@ ---# -path=.:resource-0.6/swedish:resource-0.6/abstract:prelude - -concrete MP3Swe of MP3 = MP3I with - (Structural = StructuralSwe), - (Lexicon = LexiconSwe) ; diff --git a/examples/mp3/mp3-resource.html b/examples/mp3/mp3-resource.html deleted file mode 100644 index b1125d017..000000000 --- a/examples/mp3/mp3-resource.html +++ /dev/null @@ -1,117 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> -<HEAD> -<META NAME="generator" CONTENT="http://txt2tags.sf.net"> -<TITLE>Using the GF resource grammar library in multilingual grammars: an example</TITLE> -</HEAD><BODY BGCOLOR="white" TEXT="black"> -<P ALIGN="center"><CENTER><H1>Using the GF resource grammar library in multilingual grammars: an example</H1> -<FONT SIZE="4"> -<I>Author: Aarne Ranta <aarne (at) cs.chalmers.se></I><BR> -Last update: Fri Dec 16 14:30:57 2005 -</FONT></CENTER> - -<P></P> -<HR NOSHADE SIZE=1> -<P></P> - <UL> - <LI><A HREF="#toc1">Quick try</A> - <LI><A HREF="#toc2">Structure</A> - <LI><A HREF="#toc3">Resource library version</A> - </UL> - -<P></P> -<HR NOSHADE SIZE=1> -<P></P> -<P> -This document describes the contents of the directory -<A HREF="http://www.cs.chalmers.se/~aarne/GF/examples/mp3/"><CODE>GF/examples/mp3</CODE></A>. -</P> -<P> -This directory contains a small example of a dialogue system -grammar built by using the GF resource grammar library. Its sole -purpose is to demonstrate this usage, i.e. -</P> - <UL> - <LI>how the resource API is used to define concrete syntax - <P></P> - <LI>how to divide the grammar into modules - </UL> - -<P> -Thus it is not intended to be (even a part of) a really useful -system. -</P> -<A NAME="toc1"></A> -<H2>Quick try</H2> -<P> -To try out the grammar, do for example -</P> -<PRE> - gf mk3.gfcm -- start GF - - > gr | l -multi -- random generate - - > p -tr "which song is played ?" | l -multi -- parse and translate - - > gt -tr | l -lang=MP3Swe -- generate Swedish "treebank" - - > si -tr | p | l -multi -- translate speech input - [say:] I want to play Yesterday -</PRE> -<P> -The last command only works if you have installed -<A HREF="http://mi.eng.cam.ac.uk/~sjy/software.htm">ATK</A> and compiled -<A HREF="http://www.cs.chalmers.se/Cs/Research/Language-technology/darcs/GF/doc/darcs.html">GF version 14/12/2005</A> -or later. -</P> -<A NAME="toc2"></A> -<H2>Structure</H2> -<P> -The directory consists of the following grammars: -</P> -<UL> -<LI><A HREF="MP3.gf"><CODE>MP3.gf</CODE></A> the main abstract syntax -<LI><A HREF="MP3I.gf"><CODE>MP3I.gf</CODE></A> functor implementation of the main abstract -<LI><A HREF="MP3Eng.gf"><CODE>MP3Eng.gf</CODE></A> English instantiation of the functor -<LI><A HREF="MP3Fin.gf"><CODE>MP3Fin.gf</CODE></A> Finnish instantiation of the functor (buggy) -<LI><A HREF="MP3Fre.gf"><CODE>MP3Fre.gf</CODE></A> French instantiation of the functor -<LI><A HREF="MP3Ger.gf"><CODE>MP3Ger.gf</CODE></A> German instantiation of the functor -<LI><A HREF="MP3Swe.gf"><CODE>MP3Swe.gf</CODE></A> Swedish instantiation of the functor -<LI><A HREF="Lexicon.gf"><CODE>Lexicon.gf</CODE></A> the interface on which <CODE>MP3I.gf</CODE> depends -<LI><A HREF="LexiconEng.gf"><CODE>LexiconEng.gf</CODE></A> English instance of the interface -<LI><A HREF="LexiconFin.gf"><CODE>LexiconFin.gf</CODE></A> Finnish instance of the interface -<LI><A HREF="LexiconFre.gf"><CODE>LexiconFre.gf</CODE></A> French instance of the interface -<LI><A HREF="LexiconGer.gf"><CODE>LexiconGer.gf</CODE></A> German instance of the interface -<LI><A HREF="LexiconSwe.gf"><CODE>LexiconSwe.gf</CODE></A> Swedish instance of the interface -</UL> - -<P> -The main linguistic content is in the functor <CODE>MP3I</CODE> and the -instances of the <CODE>Lexicon</CODE> interface. -</P> -<P> -The way in which the implementation is divided to a functor -and an interface depending on it should work as a model for -building resource grammar applications in general. -</P> -<P> -In order to compile the grammars from source, you must set the -environment variable <CODE>GF_LIB_PATH</CODE> to point at the root -of your GF library, e.g. in the bash shell, -</P> -<PRE> - export GF_LIB_PATH=/usr/local/lib/GF/ -</PRE> -<P></P> -<A NAME="toc3"></A> -<H2>Resource library version</H2> -<P> -The example builds on resource v. 0.6. The reason for not building -on a later version is that German is not yet implemented for them. -The example will probably be migrated to v. 1.0 soon. The new resource -version will fix the bugs in the Finnish implementation. -</P> - -<!-- html code generated by txt2tags 2.0 (http://txt2tags.sf.net) --> -<!-- cmdline: txt2tags -\-toc mp3-resource.txt --> -</BODY></HTML> diff --git a/examples/mp3/mp3-resource.txt b/examples/mp3/mp3-resource.txt deleted file mode 100644 index 60c39fcb7..000000000 --- a/examples/mp3/mp3-resource.txt +++ /dev/null @@ -1,90 +0,0 @@ -Using the GF resource grammar library in multilingual grammars: an example -Author: Aarne Ranta <aarne (at) cs.chalmers.se> -Last update: %%date(%c) - -% NOTE: this is a txt2tags file. -% Create an html file from this file using: -% txt2tags --toc mp3-resource.txt - -%!target:html - - - -This document describes the contents of the directory -[``GF/examples/mp3`` http://www.cs.chalmers.se/~aarne/GF/examples/mp3/]. - -This directory contains a small example of a dialogue system -grammar built by using the GF resource grammar library. Its sole -purpose is to demonstrate this usage, i.e. - - - how the resource API is used to define concrete syntax - - - how to divide the grammar into modules - - -Thus it is not intended to be (even a part of) a really useful -system. - - -==Quick try== - -To try out the grammar, do for example -``` - gf mk3.gfcm -- start GF - - > gr | l -multi -- random generate - - > p -tr "which song is played ?" | l -multi -- parse and translate - - > gt -tr | l -lang=MP3Swe -- generate Swedish "treebank" - - > si -tr | p | l -multi -- translate speech input - [say:] I want to play Yesterday -``` -The last command only works if you have installed the -[ATK http://mi.eng.cam.ac.uk/~sjy/software.htm] speech recognition library -and compiled -[GF version 14/12/2005 http://www.cs.chalmers.se/Cs/Research/Language-technology/darcs/GF/doc/darcs.html] -or later, with support for ATK enabled. - - -==Structure== - -The directory consists of the following grammars: - -- [``MP3.gf`` MP3.gf] the main abstract syntax -- [``MP3I.gf`` MP3I.gf] functor implementation of the main abstract -- [``MP3Eng.gf`` MP3Eng.gf] English instantiation of the functor -- [``MP3Fin.gf`` MP3Fin.gf] Finnish instantiation of the functor (buggy) -- [``MP3Fre.gf`` MP3Fre.gf] French instantiation of the functor -- [``MP3Ger.gf`` MP3Ger.gf] German instantiation of the functor -- [``MP3Swe.gf`` MP3Swe.gf] Swedish instantiation of the functor -- [``Lexicon.gf`` Lexicon.gf] the interface on which ``MP3I.gf`` depends -- [``LexiconEng.gf`` LexiconEng.gf] English instance of the interface -- [``LexiconFin.gf`` LexiconFin.gf] Finnish instance of the interface -- [``LexiconFre.gf`` LexiconFre.gf] French instance of the interface -- [``LexiconGer.gf`` LexiconGer.gf] German instance of the interface -- [``LexiconSwe.gf`` LexiconSwe.gf] Swedish instance of the interface - - -The main linguistic content is in the functor ``MP3I`` and the -instances of the ``Lexicon`` interface. - -The way in which the implementation is divided to a functor -and an interface depending on it should work as a model for -building resource grammar applications in general. - -In order to compile the grammars from source, you must set the -environment variable ``GF_LIB_PATH`` to point at the root -of your GF library, e.g. in the bash shell, - -``` export GF_LIB_PATH=/usr/local/lib/GF/ - - -==Resource library version== - -The example builds on resource v. 0.6. The reason for not building -on a later version is that German is not yet implemented for them. -The example will probably be migrated to v. 1.0 soon. The new resource -version will fix the bugs in the Finnish implementation. - diff --git a/examples/mp3/mp3.gfcm b/examples/mp3/mp3.gfcm deleted file mode 100644 index 83ea7451f..000000000 --- a/examples/mp3/mp3.gfcm +++ /dev/null @@ -1,840 +0,0 @@ -concrete MP3Eng of MP3=open StructuralEng,LexiconEng in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s="can"++("you"++("play"++Song@0.s!<TypesEng.AccP>))++"?";lock_Phr={}};"(can you play Song_0)?"; -lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move"; -lin Play:MP3.Move=\Song@0->{s="play"++Song@0.s!<TypesEng.AccP>++"!";lock_Phr={}};"(play Song_0)!"; -lincat Song={s:(TypesEng.NPForm=>Str);n:TypesEng.Number;p:TypesEng.Person;lock_NP:{}}={s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenP)(TypesEng.GenSP)=>str@0};n=<TypesEng.Sg>;p=<TypesEng.P1>;lock_NP={}};"Song"; -lin This:MP3.Song=\->{s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenSP)=>"this";(TypesEng.GenP)=>"this's"};n=<TypesEng.Sg>;p=<TypesEng.P3>;lock_NP={}};"this"; -lin ThisSong:MP3.Song=\->{s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenSP)=>"this"++"song";(TypesEng.GenP)=>"this"++"song's"};n=<TypesEng.Sg>;p=<TypesEng.P3>;lock_NP={}};"this song"; -lin WantPlay:MP3.Move=\Song@0->{s="I"++("want"++("to"++("play"++Song@0.s!<TypesEng.AccP>)))++".";lock_Phr={}};"(I want to play Song_0)."; -lin WhichPlay:MP3.Move=\->{s="which"++"song"++("is"++"played")++"?";lock_Phr={}};"((which song)is played)?"; -lin Yesterday:MP3.Song=\->{s=table TypesEng.NPForm{(TypesEng.NomP)(TypesEng.AccP)(TypesEng.GenSP)=>"Yesterday";(TypesEng.GenP)=>"Yesterday's"};n=<TypesEng.Sg>;p=<TypesEng.P3>;lock_NP={}};"Yesterday"; -} -resource LexiconEng=open StructuralEng,ParadigmsEng in{flags modulesize=n0;} -resource ParadigmsEng=open Predef,Prelude,SyntaxEng,ResourceEng in{flags modulesize=n0;} -resource ResourceEng=open Prelude,SyntaxEng in{flags modulesize=n0;} -resource SyntaxEng=MorphoEng**open Prelude,Coordination in{flags modulesize=n85;AAdj data in TypesEng; -AAdv data in TypesEng; -AForm data in TypesEng; -AccP data in TypesEng; -AdjDegr in TypesEng; -Adjective in TypesEng; -param Anteriority=Simul|Anter; -Case data in TypesEng; -CommonNoun in TypesEng; -Comp data in TypesEng; -Degree data in TypesEng; -Gen data in TypesEng; -GenP data in TypesEng; -GenSP data in TypesEng; -Gender data in TypesEng; -Hum data in TypesEng; -Indic data in TypesEng; -InfImp data in TypesEng; -NPForm data in TypesEng; -NoHum data in TypesEng; -Nom data in TypesEng; -NomP data in TypesEng; -Number data in TypesEng; -P1 data in TypesEng; -P2 data in TypesEng; -P3 data in TypesEng; -PPart data in TypesEng; -Particle in TypesEng; -Past data in TypesEng; -Person data in TypesEng; -Pl data in TypesEng; -Pos data in TypesEng; -Pronoun in TypesEng; -ProperName in TypesEng; -param QuestForm=DirQ|IndirQ; -RelPron in TypesEng; -Sg data in TypesEng; -Sup data in TypesEng; -param Tense=Pres|Pas|Fut; -VForm data in TypesEng; -Verb in TypesEng; -param VerbForm=VInd SyntaxEng.Tense SyntaxEng.Anteriority TypesEng.Number TypesEng.Person|VCond SyntaxEng.Anteriority|VInf SyntaxEng.Anteriority|VImp; -VerbP3 in TypesEng; -adjDegrIrreg in MorphoEng; -adjDegrLong in MorphoEng; -adjDegrReg in MorphoEng; -artDef in MorphoEng; -artIndef in MorphoEng; -contractNot in MorphoEng; -dont in MorphoEng; -mkAdjDegrWorst in MorphoEng; -mkAdjective in MorphoEng; -mkNoun in MorphoEng; -mkPronoun in MorphoEng; -mkVerb in MorphoEng; -mkVerbP3 in MorphoEng; -nameReg in MorphoEng; -nounGen in MorphoEng; -nounReg in MorphoEng; -nounS in MorphoEng; -nounY in MorphoEng; -plural in TypesEng; -pronHe in MorphoEng; -pronI in MorphoEng; -pronIt in MorphoEng; -pronShe in MorphoEng; -pronThey in MorphoEng; -pronWe in MorphoEng; -pronYouPl in MorphoEng; -pronYouSg in MorphoEng; -regAdjective in MorphoEng; -regVerbP3 in MorphoEng; -relPron in MorphoEng; -singular in TypesEng; -toCase in TypesEng; -toNPForm in TypesEng; -verbBe in MorphoEng; -verbGen in MorphoEng; -verbNoPart in MorphoEng; -verbP3Do in MorphoEng; -verbP3Have in MorphoEng; -verbP3e in MorphoEng; -verbP3s in MorphoEng; -verbP3y in MorphoEng; -verbPart in MorphoEng; -} -resource MorphoEng=TypesEng**open Prelude,Predef in{flags modulesize=n43;AAdj data in TypesEng; -AAdv data in TypesEng; -AForm data in TypesEng; -AccP data in TypesEng; -AdjDegr in TypesEng; -Adjective in TypesEng; -Case data in TypesEng; -CommonNoun in TypesEng; -Comp data in TypesEng; -Degree data in TypesEng; -Gen data in TypesEng; -GenP data in TypesEng; -GenSP data in TypesEng; -Gender data in TypesEng; -Hum data in TypesEng; -Indic data in TypesEng; -InfImp data in TypesEng; -NPForm data in TypesEng; -NoHum data in TypesEng; -Nom data in TypesEng; -NomP data in TypesEng; -Number data in TypesEng; -P1 data in TypesEng; -P2 data in TypesEng; -P3 data in TypesEng; -PPart data in TypesEng; -Particle in TypesEng; -Past data in TypesEng; -Person data in TypesEng; -Pl data in TypesEng; -Pos data in TypesEng; -Pronoun in TypesEng; -ProperName in TypesEng; -RelPron in TypesEng; -Sg data in TypesEng; -Sup data in TypesEng; -VForm data in TypesEng; -Verb in TypesEng; -VerbP3 in TypesEng; -plural in TypesEng; -singular in TypesEng; -toCase in TypesEng; -toNPForm in TypesEng; -} -resource TypesEng=open Prelude in{flags modulesize=n8;param AForm=AAdj|AAdv; -param Case=Nom|Gen; -param Degree=Pos|Comp|Sup; -param Gender=NoHum|Hum; -param NPForm=NomP|AccP|GenP|GenSP; -param Number=Sg|Pl; -param Person=P1|P2|P3; -param VForm=InfImp|Indic TypesEng.Person|Past TypesEng.Number|PPart; -} -concrete MP3Swe of MP3=open StructuralSwe,LexiconSwe in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s="kan"++("du"++("spela"++Song@0.s!<TypesSwe.PAcc>))++"?";lock_Phr={}};"(kan du spela Song_0)?"; -lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move"; -lin Play:MP3.Move=\Song@0->{s="spela"++Song@0.s!<TypesSwe.PAcc>++"!";lock_Phr={}};"(spela Song_0)!"; -lincat Song={s:(TypesSwe.NPForm=>Str);g:TypesSwe.Gender;n:TypesSwe.Number;lock_NP:{}}={s=table TypesSwe.NPForm{(TypesSwe.PNom)(TypesSwe.PAcc)(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>str@0};g=<TypesSwe.Utr>;n=<TypesSwe.Sg>;lock_NP={}};"Song"; -lin This:MP3.Song=\->{s=table TypesSwe.NPForm{(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>"det"++"här"++"s";(TypesSwe.PNom)(TypesSwe.PAcc)=>"det"++"här"};g=<TypesSwe.Neutr>;n=<TypesSwe.Sg>;lock_NP={}};"det här"; -lin ThisSong:MP3.Song=\->{s=table TypesSwe.NPForm{(TypesSwe.PNom)(TypesSwe.PAcc)=>"den"++"här"++"låten";(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>"den"++"här"++"låtens"};g=<TypesSwe.Utr>;n=<TypesSwe.Sg>;lock_NP={}};"(den här)låten"; -lin WantPlay:MP3.Move=\Song@0->{s="jag"++("vill"++("spela"++Song@0.s!<TypesSwe.PAcc>))++".";lock_Phr={}};"(jag vill spela Song_0)."; -lin WhichPlay:MP3.Move=\->{s="vilken"++"låt"++"spelas"++"?";lock_Phr={}};"((vilken låt)spelas)?"; -lin Yesterday:MP3.Song=\->{s=table TypesSwe.NPForm{(TypesSwe.PNom)(TypesSwe.PAcc)=>"Yesterday";(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Utr)))(TypesSwe.PGen(TypesSwe.ASg(TypesSwe.Neutr)))(TypesSwe.PGen(TypesSwe.APl))=>"Yesterdays"};g=<TypesSwe.Neutr>;n=<TypesSwe.Sg>;lock_NP={}};"Yesterday"; -} -resource LexiconSwe=open StructuralSwe,ParadigmsSwe in{flags modulesize=n0;} -resource ParadigmsSwe=open Predef,Prelude,SyntaxSwe,ResourceSwe in{flags modulesize=n0;} -resource ResourceSwe=open Prelude,SyntaxSwe in{flags modulesize=n0;} -resource SyntaxSwe=MorphoSwe**open Prelude,Coordination in{flags modulesize=n172;AF data in TypesSwe; -APl data in TypesSwe; -APron data in TypesSwe; -ASg data in TypesSwe; -Act data in TypesSwe; -Adj in TypesSwe; -AdjForm data in TypesSwe; -AdjFormGrad data in TypesSwe; -AdjFormPos data in TypesSwe; -AdjFormSup data in TypesSwe; -AdjPronForm data in TypesSwe; -Adv in TypesSwe; -AdvInv in TypesSwe; -Art in TypesSwe; -AuxInf data in TypesSwe; -AuxPres data in TypesSwe; -AuxPret data in TypesSwe; -AuxSup data in TypesSwe; -AuxVerbForm data in TypesSwe; -AxPl data in TypesSwe; -AxSg data in TypesSwe; -Case data in TypesSwe; -Cnj data in TypesSwe; -Comp data in TypesSwe; -Compar data in TypesSwe; -Conjunct in TypesSwe; -Def data in TypesSwe; -Degree data in TypesSwe; -Gen data in TypesSwe; -GenNum data in TypesSwe; -Gender data in TypesSwe; -Imper data in TypesSwe; -Imperat data in TypesSwe; -Ind data in TypesSwe; -Indef data in TypesSwe; -Indicat data in TypesSwe; -Inf data in TypesSwe; -Infin in TypesSwe; -Infinit data in TypesSwe; -Interj in TypesSwe; -Masc data in TypesSwe; -Mode data in TypesSwe; -NPForm data in TypesSwe; -Neutr data in TypesSwe; -NoMasc data in TypesSwe; -Nom data in TypesSwe; -Number data in TypesSwe; -param Order=Main|Inv|Sub; -P1 data in TypesSwe; -P2 data in TypesSwe; -P3 data in TypesSwe; -PAcc data in TypesSwe; -PGen data in TypesSwe; -PNm in TypesSwe; -PNom data in TypesSwe; -Part in TypesSwe; -Pass data in TypesSwe; -Person data in TypesSwe; -Pl data in TypesSwe; -Pos data in TypesSwe; -Posit data in TypesSwe; -Prep in TypesSwe; -Preposition in MorphoSwe; -Pres data in TypesSwe; -Pret data in TypesSwe; -ProAdj in TypesSwe; -ProPN in TypesSwe; -PtPres data in TypesSwe; -PtPret data in TypesSwe; -param QuestForm=DirQ|IndirQ; -RAcc data in MorphoSwe; -RGen data in MorphoSwe; -RNom data in MorphoSwe; -RPrep data in MorphoSwe; -RelCase data in MorphoSwe; -param RelGender=RNoGen|RG TypesSwe.Gender; -SF data in TypesSwe; -Sex data in TypesSwe; -SexNum data in TypesSwe; -Sg data in TypesSwe; -Species data in TypesSwe; -param SpeciesP=IndefP|DefP TypesSwe.Species; -Strong data in TypesSwe; -Subjunct in TypesSwe; -Subst in TypesSwe; -SubstForm data in TypesSwe; -Sup data in TypesSwe; -SupStrong data in TypesSwe; -SupWeak data in TypesSwe; -Super data in TypesSwe; -Supin data in TypesSwe; -Utr data in TypesSwe; -VAux in TypesSwe; -VF data in TypesSwe; -VFin data in TypesSwe; -VForm data in TypesSwe; -VI data in TypesSwe; -VInf data in TypesSwe; -VMode data in TypesSwe; -VPres data in TypesSwe; -Verb in TypesSwe; -VerbForm data in TypesSwe; -Verbum in TypesSwe; -Voice data in TypesSwe; -Weak data in TypesSwe; -aAbstrakt in MorphoSwe; -aFager in MorphoSwe; -aFin in MorphoSwe; -aGrund in MorphoSwe; -aKorkad in MorphoSwe; -aVaken in MorphoSwe; -aVid in MorphoSwe; -adverbForm in TypesSwe; -artDef in MorphoSwe; -artIndef in MorphoSwe; -de_38 in MorphoSwe; -den_39 in MorphoSwe; -det_40 in MorphoSwe; -du_33 in MorphoSwe; -extVerb in TypesSwe; -extVerbPart in TypesSwe; -farbror_8 in MorphoSwe; -gammal_16 in MorphoSwe; -giva_1147 in MorphoSwe; -gå_1174 in MorphoSwe; -han_34 in MorphoSwe; -hava_1198 in MorphoSwe; -hon_35 in MorphoSwe; -jag_32 in MorphoSwe; -liten_1146 in MorphoSwe; -man_1144 in MorphoSwe; -mkVerb in MorphoSwe; -mkVerbPart in MorphoSwe; -mor_1 in MorphoSwe; -ni_37 in MorphoSwe; -pronSådan in MorphoSwe; -pronVilken in MorphoSwe; -relPronForms in MorphoSwe; -sApa in MorphoSwe; -sBil in MorphoSwe; -sHus in MorphoSwe; -sKam in MorphoSwe; -sKikare in MorphoSwe; -sLik in MorphoSwe; -sMuseum in MorphoSwe; -sNivå in MorphoSwe; -sNummer in MorphoSwe; -sNyckel in MorphoSwe; -sPapper in MorphoSwe; -sParti in MorphoSwe; -sPojke in MorphoSwe; -sProgram in MorphoSwe; -sRike in MorphoSwe; -sRum in MorphoSwe; -sSak in MorphoSwe; -sVarelse in MorphoSwe; -stor_25 in MorphoSwe; -ung_29 in MorphoSwe; -vByta in MorphoSwe; -vFinna in MorphoSwe; -vGömma in MorphoSwe; -vHyra in MorphoSwe; -vLeka in MorphoSwe; -vTala in MorphoSwe; -vTyda in MorphoSwe; -vTåla in MorphoSwe; -vVända in MorphoSwe; -vara_1200 in MorphoSwe; -verbFinnas in MorphoSwe; -verbHava in MorphoSwe; -verbVara in MorphoSwe; -vi_36 in MorphoSwe; -} -resource MorphoSwe=TypesSwe**open Prelude in{flags modulesize=n99;AF data in TypesSwe; -APl data in TypesSwe; -APron data in TypesSwe; -ASg data in TypesSwe; -Act data in TypesSwe; -Adj in TypesSwe; -AdjForm data in TypesSwe; -AdjFormGrad data in TypesSwe; -AdjFormPos data in TypesSwe; -AdjFormSup data in TypesSwe; -AdjPronForm data in TypesSwe; -Adv in TypesSwe; -AdvInv in TypesSwe; -Art in TypesSwe; -AuxInf data in TypesSwe; -AuxPres data in TypesSwe; -AuxPret data in TypesSwe; -AuxSup data in TypesSwe; -AuxVerbForm data in TypesSwe; -AxPl data in TypesSwe; -AxSg data in TypesSwe; -Case data in TypesSwe; -Cnj data in TypesSwe; -Comp data in TypesSwe; -Compar data in TypesSwe; -Conjunct in TypesSwe; -Def data in TypesSwe; -Degree data in TypesSwe; -Gen data in TypesSwe; -GenNum data in TypesSwe; -Gender data in TypesSwe; -Imper data in TypesSwe; -Imperat data in TypesSwe; -Ind data in TypesSwe; -Indef data in TypesSwe; -Indicat data in TypesSwe; -Inf data in TypesSwe; -Infin in TypesSwe; -Infinit data in TypesSwe; -Interj in TypesSwe; -Masc data in TypesSwe; -Mode data in TypesSwe; -NPForm data in TypesSwe; -Neutr data in TypesSwe; -NoMasc data in TypesSwe; -Nom data in TypesSwe; -Number data in TypesSwe; -P1 data in TypesSwe; -P2 data in TypesSwe; -P3 data in TypesSwe; -PAcc data in TypesSwe; -PGen data in TypesSwe; -PNm in TypesSwe; -PNom data in TypesSwe; -Part in TypesSwe; -Pass data in TypesSwe; -Person data in TypesSwe; -Pl data in TypesSwe; -Pos data in TypesSwe; -Posit data in TypesSwe; -Prep in TypesSwe; -Pres data in TypesSwe; -Pret data in TypesSwe; -ProAdj in TypesSwe; -ProPN in TypesSwe; -PtPres data in TypesSwe; -PtPret data in TypesSwe; -param RelCase=RNom|RAcc|RGen|RPrep; -SF data in TypesSwe; -Sex data in TypesSwe; -SexNum data in TypesSwe; -Sg data in TypesSwe; -Species data in TypesSwe; -Strong data in TypesSwe; -Subjunct in TypesSwe; -Subst in TypesSwe; -SubstForm data in TypesSwe; -Sup data in TypesSwe; -SupStrong data in TypesSwe; -SupWeak data in TypesSwe; -Super data in TypesSwe; -Supin data in TypesSwe; -Utr data in TypesSwe; -VAux in TypesSwe; -VF data in TypesSwe; -VFin data in TypesSwe; -VForm data in TypesSwe; -VI data in TypesSwe; -VInf data in TypesSwe; -VMode data in TypesSwe; -VPres data in TypesSwe; -Verb in TypesSwe; -VerbForm data in TypesSwe; -Verbum in TypesSwe; -Voice data in TypesSwe; -Weak data in TypesSwe; -adverbForm in TypesSwe; -extVerb in TypesSwe; -extVerbPart in TypesSwe; -} -resource TypesSwe=open Prelude in{flags modulesize=n24;param AdjForm=AF TypesSwe.AdjFormGrad TypesSwe.Case; -param AdjFormGrad=Posit TypesSwe.AdjFormPos|Compar|Super TypesSwe.AdjFormSup; -param AdjFormPos=Strong TypesSwe.GenNum|Weak TypesSwe.SexNum; -param AdjFormSup=SupStrong|SupWeak; -param AdjPronForm=APron TypesSwe.GenNum TypesSwe.Case; -param AuxVerbForm=AuxInf|AuxPres|AuxPret|AuxSup; -param Case=Nom|Gen; -param Degree=Pos|Comp|Sup; -param GenNum=ASg TypesSwe.Gender|APl; -param Gender=Utr|Neutr; -param Mode=Ind|Cnj; -param NPForm=PNom|PAcc|PGen TypesSwe.GenNum; -param Number=Sg|Pl; -param Person=P1|P2|P3; -param Sex=NoMasc|Masc; -param SexNum=AxSg TypesSwe.Sex|AxPl; -param Species=Indef|Def; -param SubstForm=SF TypesSwe.Number TypesSwe.Species TypesSwe.Case; -param VFin=Pres TypesSwe.Mode TypesSwe.Voice|Pret TypesSwe.Mode TypesSwe.Voice|Imper; -param VForm=VPres TypesSwe.VMode TypesSwe.Voice; -param VInf=Inf TypesSwe.Voice|Supin TypesSwe.Voice|PtPres TypesSwe.Case|PtPret TypesSwe.AdjFormPos TypesSwe.Case; -param VMode=Infinit|Indicat|Imperat; -param VerbForm=VF TypesSwe.VFin|VI TypesSwe.VInf; -param Voice=Act|Pass; -} -concrete MP3Fre of MP3=open StructuralFre,LexiconFre in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s=variants{("est-ce"++[pre"que"{"qu'"/"a""â""ā""e""ę""é""č""h""i""î""o""ô""u""û""y"}])[]}++("tu"++("peux"++table Prelude.Bool{(Prelude.True)=>Song@0.s!<TypesFre.Aton<TypesFre.Acc>>++"jouer";(Prelude.False)=>"jouer"++Song@0.s!<TypesFre.Aton<TypesFre.Acc>>}!(table Prelude.Bool{(Prelude.False)=><Prelude.False>;(Prelude.True)=><Prelude.True>}!(table TypesFre.ClitType{(TypesFre.Clit0)=><Prelude.False>;(TypesFre.Clit1)(TypesFre.Clit2)(TypesFre.Clit3)=><Prelude.True>}!(Song@0.c)))))++"?";lock_Phr={}};"((est-ce que)tu peux Song_0 jouer)?"; -lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move"; -lin Play:MP3.Move=\Song@0->{s=table Prelude.Bool{(Prelude.True)=>Song@0.s!<TypesFre.Aton<TypesFre.Acc>>++"joue";(Prelude.False)=>"joue"++Song@0.s!<TypesFre.Aton<TypesFre.Acc>>}!(table Prelude.Bool{(Prelude.False)=><Prelude.False>;(Prelude.True)=><Prelude.True>}!(table TypesFre.ClitType{(TypesFre.Clit0)=><Prelude.False>;(TypesFre.Clit1)(TypesFre.Clit2)(TypesFre.Clit3)=><Prelude.True>}!(Song@0.c)))++"!";lock_Phr={}};"(Song_0 joue)!"; -lincat Song={s:(TypesFre.NPForm=>Str);g:TypesFre.PronGen;n:TypesFre.Number;p:TypesFre.Person;c:TypesFre.ClitType;lock_NP:{}}={s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Ton(TypesFre.Gen))(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Dat))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>str@0};g=<TypesFre.PGen<TypesFre.Masc>>;n=<TypesFre.Sg>;p=<TypesFre.P1>;c=<TypesFre.Clit0>;lock_NP={}};"Song"; -lin This:MP3.Song=\->{s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>"de"++"ceci";(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Dat))=>"ā"++"ceci";(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))=>"ceci"};g=<TypesFre.PGen<TypesFre.Masc>>;n=<TypesFre.Sg>;p=<TypesFre.P3>;c=<TypesFre.Clit0>;lock_NP={}};"ceci"; -lin ThisSong:MP3.Song=\->{s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))=>"cette"++"chanson";(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Dat))=>"ā"++("cette"++"chanson");(TypesFre.Ton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>[pre"de"{"d'"/"a""â""ā""e""ę""é""č""h""i""î""o""ô""u""û""y"}]++("cette"++"chanson")};g=<TypesFre.PGen<TypesFre.Fem>>;n=<TypesFre.Sg>;p=<TypesFre.P3>;c=<TypesFre.Clit0>;lock_NP={}};"cette chanson"; -lin WantPlay:MP3.Move=\Song@0->{s=[pre"je"{"j'"/"a""â""ā""e""ę""é""č""h""i""î""o""ô""u""û""y"}]++("veux"++table Prelude.Bool{(Prelude.True)=>Song@0.s!<TypesFre.Aton<TypesFre.Acc>>++"jouer";(Prelude.False)=>"jouer"++Song@0.s!<TypesFre.Aton<TypesFre.Acc>>}!(table Prelude.Bool{(Prelude.False)=><Prelude.False>;(Prelude.True)=><Prelude.True>}!(table TypesFre.ClitType{(TypesFre.Clit0)=><Prelude.False>;(TypesFre.Clit1)(TypesFre.Clit2)(TypesFre.Clit3)=><Prelude.True>}!(Song@0.c))))++".";lock_Phr={}};"(je veux Song_0 jouer)."; -lin WhichPlay:MP3.Move=\->{s="quelle"++"chanson"++(variants{("est-ce"++"qui")[]}++("est"++"jouée"))++"?";lock_Phr={}};"((quelle chanson)(est-ce qui)est jouée)?"; -lin Yesterday:MP3.Song=\->{s=table TypesFre.NPForm{(TypesFre.Ton(TypesFre.Gen))(TypesFre.Aton(TypesFre.Gen))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Sg)(TypesFre.Fem))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Masc))(TypesFre.Poss(TypesFre.Pl)(TypesFre.Fem))=>"de"++"Yesterday";(TypesFre.Ton(TypesFre.Dat))(TypesFre.Aton(TypesFre.Dat))=>"ā"++"Yesterday";(TypesFre.Ton(TypesFre.Nom))(TypesFre.Ton(TypesFre.Acc))(TypesFre.Aton(TypesFre.Nom))(TypesFre.Aton(TypesFre.Acc))=>"Yesterday"};g=<TypesFre.PGen<TypesFre.Masc>>;n=<TypesFre.Sg>;p=<TypesFre.P3>;c=<TypesFre.Clit0>;lock_NP={}};"Yesterday"; -} -concrete MP3I of MP3={flags modulesize=n0;flags startcat=Move;} -resource LexiconFre=open StructuralFre,ParadigmsFre in{flags modulesize=n0;} -resource Lexicon={flags modulesize=n0;} -resource ParadigmsFre=open Prelude,TypesFre,SyntaxFre,MorphoFre,ResourceFre in{flags modulesize=n0;} -resource ResourceFre=open SyntaxFre,MorphoFre,Prelude in{flags modulesize=n0;} -resource SyntaxFre=TypesFre**open Prelude,Coordination,MorphoFre in{flags modulesize=n108;AA data in TypesFre; -AF data in TypesFre; -AForm data in TypesFre; -Acc data in TypesFre; -Adj in TypesFre; -AdjComp in TypesFre; -Aton data in TypesFre; -CNom in TypesFre; -Case data in TypesFre; -CaseA in TypesFre; -Clit0 data in TypesFre; -Clit1 data in TypesFre; -Clit2 data in TypesFre; -Clit3 data in TypesFre; -ClitType data in TypesFre; -Comp data in TypesFre; -Con data in TypesFre; -Cond data in TypesFre; -Dat data in TypesFre; -Degree data in TypesFre; -Fem data in TypesFre; -Futur data in TypesFre; -Gen data in TypesFre; -Gender data in TypesFre; -Imparf data in TypesFre; -Imper data in TypesFre; -Ind data in TypesFre; -Indic data in TypesFre; -Inf data in TypesFre; -Masc data in TypesFre; -Mode data in TypesFre; -NPForm data in TypesFre; -NPFormA in TypesFre; -Nom data in TypesFre; -NumPersI data in TypesFre; -Number data in TypesFre; -P1 data in TypesFre; -P2 data in TypesFre; -P3 data in TypesFre; -PGen data in TypesFre; -PNoGen data in TypesFre; -PPasse data in TypesFre; -PPres data in TypesFre; -Part data in TypesFre; -Passe data in TypesFre; -Person data in TypesFre; -Pl data in TypesFre; -PlP1 data in TypesFre; -PlP2 data in TypesFre; -Pos data in TypesFre; -Poss data in TypesFre; -Pres data in TypesFre; -PronGen data in TypesFre; -Pronoun in TypesFre; -param QuestForm=DirQ|IndirQ; -RComplex data in TypesFre; -RG data in TypesFre; -RNoGen data in TypesFre; -RSimple data in TypesFre; -RelForm data in TypesFre; -RelFormA in TypesFre; -RelGen data in TypesFre; -SImparf data in TypesFre; -SPres data in TypesFre; -Sg data in TypesFre; -SgP2 data in TypesFre; -Subjo data in TypesFre; -Sup data in TypesFre; -TPart data in TypesFre; -TSubj data in TypesFre; -Temps data in TypesFre; -Ton data in TypesFre; -VF data in TypesFre; -VFin data in TypesFre; -VForm data in TypesFre; -VImper data in TypesFre; -VInfin data in TypesFre; -VPart data in TypesFre; -VerbPres in TypesFre; -Verbum in TypesFre; -accusative in TypesFre; -adjCompLong in TypesFre; -case2pform in TypesFre; -case2pformClit in TypesFre; -dative in TypesFre; -elisDe in TypesFre; -elisLa in TypesFre; -elisLe in TypesFre; -elisNe in TypesFre; -elisQue in TypesFre; -elisSi in TypesFre; -elision in TypesFre; -genitive in TypesFre; -mkAdjComp in TypesFre; -nombreVerb in TypesFre; -nominative in TypesFre; -pform2case in TypesFre; -pgen2gen in TypesFre; -plural in TypesFre; -prepCase in TypesFre; -prepositional in TypesFre; -relPronForms in TypesFre; -singular in TypesFre; -stressed in TypesFre; -unstressed in TypesFre; -vImper in TypesFre; -verbPres in TypesFre; -voyelle in TypesFre; -} -resource SyntaxRomance={flags modulesize=n0;} -resource Coordination=open Prelude in{flags modulesize=n1;param ListSize=TwoElem|ManyElem; -} -resource MorphoFre=open Predef,Prelude,TypesFre in{flags modulesize=n0;} -resource Prelude=open Predef in{flags modulesize=n2;param Bool=True|False; -param ENumber=E0|E1|E2|Emore; -} -resource Predef={flags modulesize=n1;param PBool=PTrue|PFalse; -} -resource TypesFre={flags modulesize=n18;param AForm=AF TypesFre.Gender TypesFre.Number|AA; -param Case=Nom|Acc|Gen|Dat; -param ClitType=Clit0|Clit1|Clit2|Clit3; -param Degree=Pos|Comp|Sup; -param Gender=Masc|Fem; -param Mode=Ind|Con; -param NPForm=Ton TypesFre.Case|Aton TypesFre.Case|Poss TypesFre.Number TypesFre.Gender; -param NumPersI=SgP2|PlP1|PlP2; -param Number=Sg|Pl; -param Person=P1|P2|P3; -param PronGen=PGen TypesFre.Gender|PNoGen; -param RelForm=RSimple TypesFre.Case|RComplex TypesFre.Gender TypesFre.Number TypesFre.Case; -param RelGen=RNoGen|RG TypesFre.Gender; -param TPart=PPres|PPasse TypesFre.Gender TypesFre.Number; -param TSubj=SPres|SImparf; -param Temps=Pres|Imparf|Passe|Futur; -param VF=VFin TypesFre.Mode TypesFre.Number TypesFre.Person|VImper TypesFre.NumPersI|VPart TypesFre.Gender TypesFre.Number|VInfin; -param VForm=Inf|Indic TypesFre.Temps TypesFre.Number TypesFre.Person|Cond TypesFre.Number TypesFre.Person|Subjo TypesFre.TSubj TypesFre.Number TypesFre.Person|Imper TypesFre.NumPersI|Part TypesFre.TPart; -} -resource TypesRomance={flags modulesize=n0;} -resource Resource={flags modulesize=n0;} -concrete MP3Ger of MP3=open StructuralGer,LexiconGer in{flags modulesize=n9;flags startcat=Move;lin CanPlay:MP3.Move=\Song@0->{s="kannst"++("du"++(Song@0.s!<TypesGer.NPCase<TypesGer.Acc>>++"spielen"))++"?";lock_Phr={}};"(kannst du Song_0 spielen)?"; -lincat Move={s:Str;lock_Phr:{}}={s=str@0;lock_Phr={}};"Move"; -lin Play:MP3.Move=\Song@0->{s="spiel"++Song@0.s!<TypesGer.NPCase<TypesGer.Acc>>++"!";lock_Phr={}};"(spiel Song_0)!"; -lincat Song={s:(TypesGer.NPForm=>Str);n:TypesGer.Number;p:TypesGer.Person;pro:Prelude.Bool;lock_NP:{}}={s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))(TypesGer.NPCase(TypesGer.Dat))(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>str@0};n=<TypesGer.Sg>;p=<TypesGer.P1>;pro=<Prelude.True>;lock_NP={}};"Song"; -lin This:MP3.Song=\->{s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Dat))=>"diesem";(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>"dieses"};n=<TypesGer.Sg>;p=<TypesGer.P3>;pro=<Prelude.False>;lock_NP={}};"dieses"; -lin ThisSong:MP3.Song=\->{s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Dat))=>"diesem"++"lied";(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))=>"dieses"++"lied";(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>"dieses"++"liedes"};n=<TypesGer.Sg>;p=<TypesGer.P3>;pro=<Prelude.False>;lock_NP={}};"dieses lied"; -lin WantPlay:MP3.Move=\Song@0->{s="ich"++("will"++(Song@0.s!<TypesGer.NPCase<TypesGer.Acc>>++"spielen"))++".";lock_Phr={}};"(ich will Song_0 spielen)."; -lin WhichPlay:MP3.Move=\->{s="welches"++"lied"++("wird"++"gespielt")++"?";lock_Phr={}};"((welches lied)wird gespielt)?"; -lin Yesterday:MP3.Song=\->{s=table TypesGer.NPForm{(TypesGer.NPCase(TypesGer.Nom))(TypesGer.NPCase(TypesGer.Acc))(TypesGer.NPCase(TypesGer.Dat))=>"Yesterday";(TypesGer.NPCase(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Masc))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Fem))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GSg(TypesGer.Neut))(TypesGer.Gen))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Nom))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Acc))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Dat))(TypesGer.NPPoss(TypesGer.GPl)(TypesGer.Gen))=>"Yesterdays"};n=<TypesGer.Sg>;p=<TypesGer.P3>;pro=<Prelude.False>;lock_NP={}};"Yesterday"; -} -abstract MP3={flags modulesize=n9;fun CanPlay:(h_:MP3.Song)->MP3.Move={}; -cat Move[]=; -fun Play:(h_:MP3.Song)->MP3.Move={}; -cat Song[]=; -fun This:MP3.Song={}; -fun ThisSong:MP3.Song={}; -fun WantPlay:(h_:MP3.Song)->MP3.Move={}; -fun WhichPlay:MP3.Move={}; -fun Yesterday:MP3.Song={}; -} -resource LexiconGer=open StructuralGer,ParadigmsGer in{flags modulesize=n0;} -resource ParadigmsGer=open Prelude,MorphoGer,SyntaxGer,ResourceGer in{flags modulesize=n0;} -resource ResourceGer=open Prelude,SyntaxGer in{flags modulesize=n0;} -resource SyntaxGer=MorphoGer**open Prelude,Coordination in{flags modulesize=n132;AForm data in TypesGer; -AMod data in TypesGer; -APred data in TypesGer; -Acc data in TypesGer; -AdjComp in TypesGer; -Adjective in TypesGer; -Adjf data in TypesGer; -Case data in TypesGer; -CommNoun in TypesGer; -Comp data in TypesGer; -Dat data in TypesGer; -Degree data in TypesGer; -Fem data in TypesGer; -GPl data in TypesGer; -GSg data in TypesGer; -Gen data in TypesGer; -GenNum data in TypesGer; -Gender data in TypesGer; -Inv data in TypesGer; -Main data in TypesGer; -Masc data in TypesGer; -NPCase data in TypesGer; -NPForm data in TypesGer; -NPPoss data in TypesGer; -Neut data in TypesGer; -Nom data in TypesGer; -Number data in TypesGer; -Order data in TypesGer; -P1 data in TypesGer; -P2 data in TypesGer; -P3 data in TypesGer; -Particle in TypesGer; -Person data in TypesGer; -Pl data in TypesGer; -Pos data in TypesGer; -Preposition in TypesGer; -ProPN in MorphoGer; -param QuestForm=DirQ|IndirQ; -RelPron in MorphoGer; -Sg data in TypesGer; -Strong data in TypesGer; -Sub data in TypesGer; -Sup data in TypesGer; -VForm data in TypesGer; -VImp data in TypesGer; -VImpfInd data in TypesGer; -VImpfSubj data in TypesGer; -VInd data in TypesGer; -VInf data in TypesGer; -VPart data in TypesGer; -VPresPart data in TypesGer; -VSubj data in TypesGer; -Verb in TypesGer; -Verbum in TypesGer; -Weak data in TypesGer; -aMod in MorphoGer; -adde in MorphoGer; -adjCompReg in MorphoGer; -adjCompReg3 in MorphoGer; -adjE in MorphoGer; -adjEr in MorphoGer; -adjGen in MorphoGer; -adjInvar in MorphoGer; -adjReg in MorphoGer; -artDef in MorphoGer; -artIndef in MorphoGer; -caselist in MorphoGer; -declN1 in MorphoGer; -declN1M in MorphoGer; -declN1e in MorphoGer; -declN1eM in MorphoGer; -declN1in in MorphoGer; -declN2 in MorphoGer; -declN2i in MorphoGer; -declN2in in MorphoGer; -declN2n in MorphoGer; -declN2u in MorphoGer; -declN2uF in MorphoGer; -declN3 in MorphoGer; -declN3u in MorphoGer; -declN3uS in MorphoGer; -declNs in MorphoGer; -gNumber in MorphoGer; -impe in MorphoGer; -mkAdjComp in MorphoGer; -mkAdjective in MorphoGer; -mkNoun in MorphoGer; -mkNoun2es in MorphoGer; -mkNoun2n in MorphoGer; -mkNoun2s in MorphoGer; -mkNoun2ses in MorphoGer; -mkNoun3 in MorphoGer; -mkNoun4 in MorphoGer; -mkPronPers in MorphoGer; -mkVerb in MorphoGer; -mkVerbSimple in MorphoGer; -mkVerbum in MorphoGer; -numGenNum in MorphoGer; -plural in TypesGer; -pronDu in MorphoGer; -pronEnding in MorphoGer; -pronEr in MorphoGer; -pronEs in MorphoGer; -pronIch in MorphoGer; -pronIhr in MorphoGer; -pronSSie in MorphoGer; -pronSie in MorphoGer; -pronSiePl in MorphoGer; -pronWir in MorphoGer; -regVerb in MorphoGer; -relPron in MorphoGer; -singular in TypesGer; -verbGeben in MorphoGer; -verbHaben in MorphoGer; -verbSein in MorphoGer; -verbWerden in MorphoGer; -verbumAux in MorphoGer; -verbumDürfen in MorphoGer; -verbumGratulieren in MorphoGer; -verbumHaben in MorphoGer; -verbumKönnen in MorphoGer; -verbumMögen in MorphoGer; -verbumMüssen in MorphoGer; -verbumSein in MorphoGer; -verbumSollen in MorphoGer; -verbumStrongLaufen in MorphoGer; -verbumStrongSehen in MorphoGer; -verbumStrongSingen in MorphoGer; -verbumWeak in MorphoGer; -verbumWerden in MorphoGer; -verbumWissen in MorphoGer; -verbumWollen in MorphoGer; -} -resource MorphoGer=TypesGer**open Predef,Prelude in{flags modulesize=n54;AForm data in TypesGer; -AMod data in TypesGer; -APred data in TypesGer; -Acc data in TypesGer; -AdjComp in TypesGer; -Adjective in TypesGer; -Adjf data in TypesGer; -Case data in TypesGer; -CommNoun in TypesGer; -Comp data in TypesGer; -Dat data in TypesGer; -Degree data in TypesGer; -Fem data in TypesGer; -GPl data in TypesGer; -GSg data in TypesGer; -Gen data in TypesGer; -GenNum data in TypesGer; -Gender data in TypesGer; -Inv data in TypesGer; -Main data in TypesGer; -Masc data in TypesGer; -NPCase data in TypesGer; -NPForm data in TypesGer; -NPPoss data in TypesGer; -Neut data in TypesGer; -Nom data in TypesGer; -Number data in TypesGer; -Order data in TypesGer; -P1 data in TypesGer; -P2 data in TypesGer; -P3 data in TypesGer; -Particle in TypesGer; -Person data in TypesGer; -Pl data in TypesGer; -Pos data in TypesGer; -Preposition in TypesGer; -Sg data in TypesGer; -Strong data in TypesGer; -Sub data in TypesGer; -Sup data in TypesGer; -VForm data in TypesGer; -VImp data in TypesGer; -VImpfInd data in TypesGer; -VImpfSubj data in TypesGer; -VInd data in TypesGer; -VInf data in TypesGer; -VPart data in TypesGer; -VPresPart data in TypesGer; -VSubj data in TypesGer; -Verb in TypesGer; -Verbum in TypesGer; -Weak data in TypesGer; -plural in TypesGer; -singular in TypesGer; -} -resource TypesGer=open Prelude in{flags modulesize=n11;param AForm=APred|AMod TypesGer.Adjf TypesGer.GenNum TypesGer.Case; -param Adjf=Strong|Weak; -param Case=Nom|Acc|Dat|Gen; -param Degree=Pos|Comp|Sup; -param GenNum=GSg TypesGer.Gender|GPl; -param Gender=Masc|Fem|Neut; -param NPForm=NPCase TypesGer.Case|NPPoss TypesGer.GenNum TypesGer.Case; -param Number=Sg|Pl; -param Order=Main|Inv|Sub; -param Person=P1|P2|P3; -param VForm=VInf|VInd TypesGer.Number TypesGer.Person|VImp TypesGer.Number|VSubj TypesGer.Number TypesGer.Person|VImpfInd TypesGer.Number TypesGer.Person|VImpfSubj TypesGer.Number TypesGer.Person|VPresPart TypesGer.AForm|VPart TypesGer.AForm; -} |
