forked from GitHub/gf-core
fixed Finnish youPol complement number to Sg ; some encoding things in French
This commit is contained in:
@@ -108,7 +108,7 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
mkPlace : N -> Bool -> {name : CN ; at : Prep ; to : Prep} = \p,e -> {
|
mkPlace : N -> Bool -> {name : CN ; at : Prep ; to : Prep} = \p,e -> {
|
||||||
name = mkCN p ;
|
name = mkCN p ;
|
||||||
at = casePrep (if_then_else Case e adessive inessive) ; -- True: external
|
at = casePrep (if_then_else Case e adessive inessive) ; -- True: external
|
||||||
to = casePrep (if_then_else Case e allative elative) ;
|
to = casePrep (if_then_else Case e allative illative) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
open_Adv = ParadigmsFin.mkAdv "avoinna" ;
|
open_Adv = ParadigmsFin.mkAdv "avoinna" ;
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ History
|
|||||||
<LI>26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
|
<LI>26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
|
||||||
<LI>28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
|
<LI>28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
|
||||||
<LI>30 March. Version 0.3: disambiguation grammar for English
|
<LI>30 March. Version 0.3: disambiguation grammar for English
|
||||||
|
<LI>6 April. Version 0.4: weekdays, nationalities
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
@@ -34,8 +35,9 @@ History
|
|||||||
</P>
|
</P>
|
||||||
<H1>Purpose</H1>
|
<H1>Purpose</H1>
|
||||||
<P>
|
<P>
|
||||||
This phrasebook is a programme for translating touristic phrases
|
This phrasebook is a program for translating touristic phrases
|
||||||
between the 15 European languages included in the <A HREF="http://www.molto-project.eu">MOLTO</A> project
|
between the 15 European languages included in the
|
||||||
|
<A HREF="http://www.molto-project.eu">MOLTO</A> project
|
||||||
(Multilingual On-Line Translation):
|
(Multilingual On-Line Translation):
|
||||||
</P>
|
</P>
|
||||||
<UL>
|
<UL>
|
||||||
@@ -67,11 +69,11 @@ The source code resides in
|
|||||||
<A HREF="http://code.haskell.org/gf/examples/phrasebook/"><CODE>code.haskell.org/gf/examples/phrasebook/</CODE></A>
|
<A HREF="http://code.haskell.org/gf/examples/phrasebook/"><CODE>code.haskell.org/gf/examples/phrasebook/</CODE></A>
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
Current status (28 March 2010):
|
Current status (6 April 2010):
|
||||||
</P>
|
</P>
|
||||||
<UL>
|
<UL>
|
||||||
<LI>available in English, Finnish, French, Italian, Romanian, Swedish
|
<LI>available in English, Finnish, French, Italian, Romanian, Swedish
|
||||||
<LI>very small coverage
|
<LI>small coverage
|
||||||
<LI>works on web browsers calling a server
|
<LI>works on web browsers calling a server
|
||||||
<LI>web service not yet released, but preliminarily available in
|
<LI>web service not yet released, but preliminarily available in
|
||||||
<A HREF="http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html"><CODE>http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html</CODE></A>
|
<A HREF="http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html"><CODE>http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html</CODE></A>
|
||||||
@@ -88,7 +90,7 @@ Compile-time transfer: especially, in Action in Words.
|
|||||||
Quasi-incremental translation: many basic types are also used as phrases.
|
Quasi-incremental translation: many basic types are also used as phrases.
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
Disambiguation, esp. by the parameters in Roles.
|
Disambiguation, esp. of politeness distinctions.
|
||||||
</P>
|
</P>
|
||||||
<H1>Files</H1>
|
<H1>Files</H1>
|
||||||
<P>
|
<P>
|
||||||
@@ -116,16 +118,22 @@ the input language is ambiguous.
|
|||||||
</P>
|
</P>
|
||||||
<H1>To Do</H1>
|
<H1>To Do</H1>
|
||||||
<P>
|
<P>
|
||||||
Text-based translation interface.
|
Improved translation interface
|
||||||
</P>
|
</P>
|
||||||
|
<UL>
|
||||||
|
<LI>a <I>to</I> list of languages: either <I>all</I>, or just one
|
||||||
|
<LI>combined text field/fridge magnet input; filter magnets by started word prefix
|
||||||
|
<LI>a nicer way to show disambiguation (smaller font, maybe hidden by default)
|
||||||
|
</UL>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
The remaining 10 languages
|
The remaining 10 languages
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
Disambiguation grammars for other languages than English.
|
Disambiguation grammars for other languages than English
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
Extract/construct lexica for
|
Extend lexica by hand or (semi)automatically for
|
||||||
</P>
|
</P>
|
||||||
<UL>
|
<UL>
|
||||||
<LI>food stuff
|
<LI>food stuff
|
||||||
@@ -134,7 +142,7 @@ Extract/construct lexica for
|
|||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
Connection to Google translate, for fall-back and for comparison
|
Link to Google translate, for fall-back and for comparison
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
Feedback facility in the UI
|
Feedback facility in the UI
|
||||||
@@ -177,11 +185,11 @@ Here are the steps to follow for contributors:
|
|||||||
</OL>
|
</OL>
|
||||||
</OL>
|
</OL>
|
||||||
|
|
||||||
<OL>
|
<UL>
|
||||||
<LI>Don't delete anything! But you are free to correct incorrect forms.
|
<LI>Don't delete anything! But you are free to correct incorrect forms.
|
||||||
<LI>Don't change the module structure! But you are free to add a new language.
|
<LI>Don't change the module structure! But you are free to add a new language.
|
||||||
<LI>Don't compromise quality to gain coverage: <I>non multa sed multum!</I>
|
<LI>Don't compromise quality to gain coverage: <I>non multa sed multum!</I>
|
||||||
</OL>
|
</UL>
|
||||||
|
|
||||||
|
|
||||||
<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
|
<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ History
|
|||||||
- 26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
|
- 26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
|
||||||
- 28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
|
- 28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
|
||||||
- 30 March. Version 0.3: disambiguation grammar for English
|
- 30 March. Version 0.3: disambiguation grammar for English
|
||||||
|
- 6 April. Version 0.4: weekdays, nationalities
|
||||||
|
|
||||||
|
|
||||||
[Missing constructs missing.txt]
|
[Missing constructs missing.txt]
|
||||||
@@ -28,8 +29,9 @@ History
|
|||||||
|
|
||||||
=Purpose=
|
=Purpose=
|
||||||
|
|
||||||
This phrasebook is a programme for translating touristic phrases
|
This phrasebook is a program for translating touristic phrases
|
||||||
between the 15 European languages included in the [MOLTO http://www.molto-project.eu] project
|
between the 15 European languages included in the
|
||||||
|
[MOLTO http://www.molto-project.eu] project
|
||||||
(Multilingual On-Line Translation):
|
(Multilingual On-Line Translation):
|
||||||
- Bulgarian, Catalan, Danish, Dutch, English,
|
- Bulgarian, Catalan, Danish, Dutch, English,
|
||||||
Finnish, French, German, Italian, Norwegian,
|
Finnish, French, German, Italian, Norwegian,
|
||||||
@@ -54,9 +56,11 @@ The source code resides in
|
|||||||
[``code.haskell.org/gf/examples/phrasebook/`` http://code.haskell.org/gf/examples/phrasebook/]
|
[``code.haskell.org/gf/examples/phrasebook/`` http://code.haskell.org/gf/examples/phrasebook/]
|
||||||
|
|
||||||
|
|
||||||
Current status (28 March 2010):
|
%The abstract syntax defines an [ontology of phrases ontology.html].
|
||||||
|
|
||||||
|
Current status (6 April 2010):
|
||||||
- available in English, Finnish, French, Italian, Romanian, Swedish
|
- available in English, Finnish, French, Italian, Romanian, Swedish
|
||||||
- very small coverage
|
- small coverage
|
||||||
- works on web browsers calling a server
|
- works on web browsers calling a server
|
||||||
- web service not yet released, but preliminarily available in
|
- web service not yet released, but preliminarily available in
|
||||||
[``http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html`` http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html]
|
[``http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html`` http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html]
|
||||||
@@ -71,7 +75,7 @@ Compile-time transfer: especially, in Action in Words.
|
|||||||
|
|
||||||
Quasi-incremental translation: many basic types are also used as phrases.
|
Quasi-incremental translation: many basic types are also used as phrases.
|
||||||
|
|
||||||
Disambiguation, esp. by the parameters in Roles.
|
Disambiguation, esp. of politeness distinctions.
|
||||||
|
|
||||||
|
|
||||||
=Files=
|
=Files=
|
||||||
@@ -97,19 +101,23 @@ the input language is ambiguous.
|
|||||||
|
|
||||||
=To Do=
|
=To Do=
|
||||||
|
|
||||||
Text-based translation interface.
|
Improved translation interface
|
||||||
|
- a //to// list of languages: either //all//, or just one
|
||||||
|
- combined text field/fridge magnet input; filter magnets by started word prefix
|
||||||
|
- a nicer way to show disambiguation (smaller font, maybe hidden by default)
|
||||||
|
|
||||||
|
|
||||||
The remaining 10 languages
|
The remaining 10 languages
|
||||||
|
|
||||||
Disambiguation grammars for other languages than English.
|
Disambiguation grammars for other languages than English
|
||||||
|
|
||||||
Extract/construct lexica for
|
Extend lexica by hand or (semi)automatically for
|
||||||
- food stuff
|
- food stuff
|
||||||
- languages
|
- languages
|
||||||
- places
|
- places
|
||||||
|
|
||||||
|
|
||||||
Connection to Google translate, for fall-back and for comparison
|
Link to Google translate, for fall-back and for comparison
|
||||||
|
|
||||||
Feedback facility in the UI
|
Feedback facility in the UI
|
||||||
|
|
||||||
@@ -145,9 +153,9 @@ Here are the steps to follow for contributors:
|
|||||||
+ How you can open ``gf/examples/phrasebook/www/phrasebook.html`` and use your phrasebook!
|
+ How you can open ``gf/examples/phrasebook/www/phrasebook.html`` and use your phrasebook!
|
||||||
|
|
||||||
|
|
||||||
+ Don't delete anything! But you are free to correct incorrect forms.
|
- Don't delete anything! But you are free to correct incorrect forms.
|
||||||
+ Don't change the module structure! But you are free to add a new language.
|
- Don't change the module structure! But you are free to add a new language.
|
||||||
+ Don't compromise quality to gain coverage: //non multa sed multum!//
|
- Don't compromise quality to gain coverage: //non multa sed multum!//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
|
|||||||
|
|
||||||
Cl = {s : ResFin.Tense => Anteriority => Polarity => SType => Str} ;
|
Cl = {s : ResFin.Tense => Anteriority => Polarity => SType => Str} ;
|
||||||
ClSlash = {s : ResFin.Tense => Anteriority => Polarity => Str ; c2 : Compl} ;
|
ClSlash = {s : ResFin.Tense => Anteriority => Polarity => Str ; c2 : Compl} ;
|
||||||
Imp = {s : Polarity => Number => Str} ;
|
Imp = {s : Polarity => Agr => Str} ;
|
||||||
|
|
||||||
-- Question
|
-- Question
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ concrete ConjunctionFin of Conjunction =
|
|||||||
ConjAdv = conjunctDistrSS ;
|
ConjAdv = conjunctDistrSS ;
|
||||||
|
|
||||||
ConjNP conj ss = conjunctDistrTable NPForm conj ss ** {
|
ConjNP conj ss = conjunctDistrTable NPForm conj ss ** {
|
||||||
a = {n = conjNumber conj.n ss.a.n ; p = ss.a.p} ;
|
a = conjAgr (Ag conj.n P3) ss.a ; -- P3 is the maximum
|
||||||
isPron = False
|
isPron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -61,10 +61,10 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
-- The imperative is not available in a $VP$.
|
-- The imperative is not available in a $VP$.
|
||||||
|
|
||||||
ImpPl1 vp =
|
ImpPl1 vp =
|
||||||
let vps = vp.s ! VIPass ! Simul ! Pos ! {n = Pl ; p = P1}
|
let vps = vp.s ! VIPass ! Simul ! Pos ! Ag Pl P1
|
||||||
in
|
in
|
||||||
{s = vps.fin ++ vps.inf ++
|
{s = vps.fin ++ vps.inf ++
|
||||||
vp.s2 ! True ! Pos ! {n = Pl ; p = P1} ++ vp.ext
|
vp.s2 ! True ! Pos ! Ag Pl P1 ++ vp.ext
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|||||||
@@ -866,7 +866,7 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
|||||||
NPCase Abess => minu + ("tt" + a) ;
|
NPCase Abess => minu + ("tt" + a) ;
|
||||||
NPAcc => Predef.tk 1 minun + "t"
|
NPAcc => Predef.tk 1 minun + "t"
|
||||||
} ;
|
} ;
|
||||||
a = {n = n ; p = p}
|
a = Ag n p
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkDemPronoun : (_,_,_,_,_ : Str) -> Number ->
|
mkDemPronoun : (_,_,_,_,_ : Str) -> Number ->
|
||||||
|
|||||||
@@ -64,13 +64,13 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, Prelude in {
|
|||||||
UsePron p = p ** {isPron = True} ;
|
UsePron p = p ** {isPron = True} ;
|
||||||
|
|
||||||
PredetNP pred np = {
|
PredetNP pred np = {
|
||||||
s = \\c => pred.s ! np.a.n ! c ++ np.s ! c ;
|
s = \\c => pred.s ! complNumAgr np.a ! c ++ np.s ! c ;
|
||||||
a = np.a ;
|
a = np.a ;
|
||||||
isPron = np.isPron -- kaikki minun - ni
|
isPron = np.isPron -- kaikki minun - ni
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PPartNP np v2 = {
|
PPartNP np v2 = {
|
||||||
s = \\c => np.s ! c ++ v2.s ! PastPartPass (AN (NCase np.a.n Ess)) ;
|
s = \\c => np.s ! c ++ v2.s ! PastPartPass (AN (NCase (complNumAgr np.a) Ess)) ;
|
||||||
a = np.a ;
|
a = np.a ;
|
||||||
isPron = np.isPron -- minun täällä - ni
|
isPron = np.isPron -- minun täällä - ni
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ concrete PhraseFin of Phrase = CatFin ** open ResFin, (P = Prelude) in {
|
|||||||
|
|
||||||
UttS s = s ;
|
UttS s = s ;
|
||||||
UttQS qs = {s = qs.s} ;
|
UttQS qs = {s = qs.s} ;
|
||||||
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! Sg} ;
|
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! Ag Sg P2} ;
|
||||||
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ;
|
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Ag Pl P2} ;
|
||||||
UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ;
|
UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! AgPol} ;
|
||||||
|
|
||||||
UttIP ip = {s = ip.s ! NPCase Nom} ;
|
UttIP ip = {s = ip.s ! NPCase Nom} ;
|
||||||
UttIAdv iadv = iadv ;
|
UttIAdv iadv = iadv ;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
|||||||
RAg a => a
|
RAg a => a
|
||||||
} ;
|
} ;
|
||||||
cl = mkClause
|
cl = mkClause
|
||||||
(subjForm {s = rp.s ! agr.n ;
|
(subjForm {s = rp.s ! (complNumAgr agr) ;
|
||||||
a = agr ; isPron = False} vp.sc) agr vp
|
a = agr ; isPron = False} vp.sc) agr vp
|
||||||
in
|
in
|
||||||
cl.s ! t ! ant ! b ! SDecl ;
|
cl.s ! t ! ant ! b ! SDecl ;
|
||||||
@@ -29,7 +29,7 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
|||||||
s = \\t,a,p,ag =>
|
s = \\t,a,p,ag =>
|
||||||
let
|
let
|
||||||
cls = slash.s ! t ! a ! p ;
|
cls = slash.s ! t ! a ! p ;
|
||||||
who = appCompl True p slash.c2 (rp2np ag.n rp)
|
who = appCompl True p slash.c2 (rp2np (complNumAgr ag) rp)
|
||||||
in
|
in
|
||||||
who ++ cls ;
|
who ++ cls ;
|
||||||
c = slash.c2.c
|
c = slash.c2.c
|
||||||
|
|||||||
@@ -26,11 +26,22 @@ resource ResFin = ParamX ** open Prelude in {
|
|||||||
| NPossNom Number | NPossGen Number --- number needed for syntax of AdjCN
|
| NPossNom Number | NPossGen Number --- number needed for syntax of AdjCN
|
||||||
| NPossTransl Number | NPossIllat Number ;
|
| NPossTransl Number | NPossIllat Number ;
|
||||||
|
|
||||||
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
|
-- Agreement of $NP$ has number*person and the polite second ("te olette valmis").
|
||||||
|
|
||||||
|
|
||||||
|
Agr = Ag Number Person | AgPol ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
Agr = {n : Number ; p : Person} ;
|
complNumAgr : Agr -> Number = \a -> case a of {
|
||||||
|
Ag n _ => n ;
|
||||||
|
AgPol => Sg
|
||||||
|
} ;
|
||||||
|
verbAgr : Agr -> {n : Number ; p : Person} = \a -> case a of {
|
||||||
|
Ag n p => {n = n ; p = p} ;
|
||||||
|
AgPol => {n = Pl ; p = P2}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
oper
|
||||||
NP = {s : NPForm => Str ; a : Agr ; isPron : Bool} ;
|
NP = {s : NPForm => Str ; a : Agr ; isPron : Bool} ;
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -106,7 +117,7 @@ param
|
|||||||
|
|
||||||
--2 For $Relative$
|
--2 For $Relative$
|
||||||
|
|
||||||
RAgr = RNoAg | RAg {n : Number ; p : Person} ;
|
RAgr = RNoAg | RAg Agr ;
|
||||||
|
|
||||||
--2 For $Numeral$
|
--2 For $Numeral$
|
||||||
|
|
||||||
@@ -116,11 +127,13 @@ param
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
agrP3 : Number -> Agr = \n ->
|
agrP3 : Number -> Agr = \n ->
|
||||||
{n = n ; p = P3} ;
|
Ag n P3 ;
|
||||||
|
|
||||||
conjAgr : Agr -> Agr -> Agr = \a,b -> {
|
conjAgr : Agr -> Agr -> Agr = \a,b -> case <a,b> of {
|
||||||
n = conjNumber a.n b.n ;
|
<Ag n p, Ag m q> => Ag (conjNumber n m) (conjPerson p q) ;
|
||||||
p = conjPerson a.p b.p
|
<Ag n p, AgPol> => Ag Pl (conjPerson p P2) ;
|
||||||
|
<AgPol, Ag n p> => Ag Pl (conjPerson p P2) ;
|
||||||
|
_ => b
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -163,9 +176,10 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
predV : (Verb ** {sc : NPForm ; qp : Str}) -> VP = \verb -> {
|
predV : (Verb ** {sc : NPForm ; qp : Str}) -> VP = \verb -> {
|
||||||
s = \\vi,ant,b,agr =>
|
s = \\vi,ant,b,agr0 =>
|
||||||
let
|
let
|
||||||
|
|
||||||
|
agr = verbAgr agr0 ;
|
||||||
verbs = verb.s ;
|
verbs = verb.s ;
|
||||||
part : Str = case vi of {
|
part : Str = case vi of {
|
||||||
VIPass => verbs ! PastPartPass (AN (NCase agr.n Nom)) ;
|
VIPass => verbs ! PastPartPass (AN (NCase agr.n Nom)) ;
|
||||||
@@ -573,9 +587,9 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
possSuffixFront : Agr -> Str = \agr ->
|
possSuffixFront : Agr -> Str = \agr ->
|
||||||
table Agr ["ni" ; "si" ; "nsä" ; "mme" ; "nne" ; "nsä"] ! agr ;
|
table Agr ["ni" ; "si" ; "nsä" ; "mme" ; "nne" ; "nsä" ; "nne"] ! agr ;
|
||||||
possSuffix : Agr -> Str = \agr ->
|
possSuffix : Agr -> Str = \agr ->
|
||||||
table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa"] ! agr ;
|
table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa" ; "nne"] ! agr ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> {
|
rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> {
|
||||||
|
|||||||
@@ -9,9 +9,8 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
|
|||||||
PredSCVP sc vp = mkClause (\_ -> sc.s) (agrP3 Sg) vp ;
|
PredSCVP sc vp = mkClause (\_ -> sc.s) (agrP3 Sg) vp ;
|
||||||
|
|
||||||
ImpVP vp = {
|
ImpVP vp = {
|
||||||
s = \\pol,n =>
|
s = \\pol,agr =>
|
||||||
let
|
let
|
||||||
agr = {n = n ; p = P2} ;
|
|
||||||
verb = vp.s ! VIImper ! Simul ! pol ! agr ;
|
verb = vp.s ! VIImper ! Simul ! pol ! agr ;
|
||||||
compl = vp.s2 ! False ! pol ! agr ++ vp.ext --- False = like inf (osta auto)
|
compl = vp.s2 ! False ! pol ! agr ++ vp.ext --- False = like inf (osta auto)
|
||||||
in
|
in
|
||||||
|
|||||||
@@ -159,8 +159,9 @@ concrete StructuralFin of Structural = CatFin **
|
|||||||
yes_Utt = ss "kyllä" ;
|
yes_Utt = ss "kyllä" ;
|
||||||
youSg_Pron = mkPronoun "sinä" "sinun" "sinua" "sinuna" "sinuun" Sg P2 ;
|
youSg_Pron = mkPronoun "sinä" "sinun" "sinua" "sinuna" "sinuun" Sg P2 ;
|
||||||
youPl_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ;
|
youPl_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ;
|
||||||
youPol_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ; --- Sg
|
youPol_Pron =
|
||||||
|
let p = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 in
|
||||||
|
{s = p.s ; a = AgPol} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
jokuPron : MorphoFin.Number => (MorphoFin.Case) => Str =
|
jokuPron : MorphoFin.Number => (MorphoFin.Case) => Str =
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
|
|||||||
ComplVA v ap =
|
ComplVA v ap =
|
||||||
insertObj
|
insertObj
|
||||||
(\\_,b,agr =>
|
(\\_,b,agr =>
|
||||||
ap.s ! False ! (NCase agr.n (npform2case agr.n v.c2.c))) --- v.cs.s ignored
|
let n = (complNumAgr agr) in
|
||||||
|
ap.s ! False ! (NCase n (npform2case n v.c2.c))) --- v.cs.s ignored
|
||||||
(predV v) ;
|
(predV v) ;
|
||||||
|
|
||||||
SlashV2S v s =
|
SlashV2S v s =
|
||||||
@@ -90,12 +91,12 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
|
|||||||
CompAP ap = {
|
CompAP ap = {
|
||||||
s = \\agr =>
|
s = \\agr =>
|
||||||
let
|
let
|
||||||
n = agr.n ;
|
n = complNumAgr agr ;
|
||||||
c = case agr.n of {
|
c = case n of {
|
||||||
Sg => Nom ; -- minä olen iso
|
Sg => Nom ; -- minä olen iso ; te olette iso
|
||||||
Pl => Part -- me olemme isoja
|
Pl => Part -- me olemme isoja ; te olette isoja
|
||||||
} --- definiteness of NP ?
|
} --- definiteness of NP ?
|
||||||
in ap.s ! False ! (NCase agr.n c)
|
in ap.s ! False ! (NCase n c)
|
||||||
} ;
|
} ;
|
||||||
CompNP np = {s = \\_ => np.s ! NPCase Nom} ;
|
CompNP np = {s = \\_ => np.s ! NPCase Nom} ;
|
||||||
CompAdv a = {s = \\_ => a.s} ;
|
CompAdv a = {s = \\_ => a.s} ;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
||||||
|
|
||||||
flags optimize=noexpand ; coding=utf8 ;
|
flags optimize=noexpand ; -- coding=utf8 ;
|
||||||
-- flags optimize=all ;
|
-- flags optimize=all ;
|
||||||
|
|
||||||
param
|
param
|
||||||
@@ -16,7 +16,7 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
|||||||
prepCase : Case -> Str = \c -> case c of {
|
prepCase : Case -> Str = \c -> case c of {
|
||||||
Nom => [] ;
|
Nom => [] ;
|
||||||
Acc => [] ;
|
Acc => [] ;
|
||||||
CPrep P_a => "à" ;
|
CPrep P_a => "à" ;
|
||||||
CPrep P_de => elisDe ;
|
CPrep P_de => elisDe ;
|
||||||
CPrep PNul => []
|
CPrep PNul => []
|
||||||
} ;
|
} ;
|
||||||
@@ -24,7 +24,7 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
|||||||
artDef : Gender -> Number -> Case -> Str = \g,n,c ->
|
artDef : Gender -> Number -> Case -> Str = \g,n,c ->
|
||||||
case <g,n,c> of {
|
case <g,n,c> of {
|
||||||
<Masc,Sg, CPrep P_de> => pre {"du" ; ["de l'"] / voyelle} ;
|
<Masc,Sg, CPrep P_de> => pre {"du" ; ["de l'"] / voyelle} ;
|
||||||
<Masc,Sg, CPrep P_a> => pre {"au" ; ["à l'"] / voyelle} ;
|
<Masc,Sg, CPrep P_a> => pre {"au" ; ["à l'"] / voyelle} ;
|
||||||
<Masc,Sg, _> => elisLe ;
|
<Masc,Sg, _> => elisLe ;
|
||||||
<Fem, Sg, _> => prepCase c ++ elisLa ;
|
<Fem, Sg, _> => prepCase c ++ elisLa ;
|
||||||
<_, Pl, CPrep P_de> => "des" ;
|
<_, Pl, CPrep P_de> => "des" ;
|
||||||
@@ -205,18 +205,20 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
|||||||
|
|
||||||
auxPassive : Verb = copula ;
|
auxPassive : Verb = copula ;
|
||||||
|
|
||||||
copula : Verb = {s = table VF ["être";"être";"suis";"es";"est";"sommes";"êtes";"sont";"sois";"sois";"soit";"soyons";"soyez";"soient";
|
copula : Verb = {s = table VF ["être";"être";"suis";"es";"est";"sommes";"êtes";"sont";"sois";"sois"
|
||||||
"étais";"étais";"était";"étions";"étiez";"étaient";--# notpresent
|
;"soit";"soyons";"soyez";"soient";
|
||||||
"fusse";"fusses";"fût";"fussions";"fussiez";"fussent";--# notpresent
|
"étais";"étais";"était";"étions";"étiez";"étaient";--# notpresent
|
||||||
"fus";"fus";"fut";"fûmes";"fûtes";"furent";--# notpresent
|
"fusse";"fusses";"fût";"fussions";"fussiez";"fussent";--# notpresent
|
||||||
|
"fus";"fus";"fut";"fûmes";"fûtes";"furent";--# notpresent
|
||||||
"serai";"seras";"sera";"serons";"serez";"seront";--# notpresent
|
"serai";"seras";"sera";"serons";"serez";"seront";--# notpresent
|
||||||
"serais";"serais";"serait";"serions";"seriez";"seraient";--# notpresent
|
"serais";"serais";"serait";"serions";"seriez";"seraient";--# notpresent
|
||||||
"sois";"soyons";"soyez";"été";"étés";"étée";"étées";"étant"]; vtyp=VHabere} ;
|
"sois";"soyons";"soyez";"été";"étés";"étée";"étées";"étant"]; vtyp=VHabere} ;
|
||||||
|
|
||||||
avoir_V : Verb = {s=table VF ["avoir";"avoir";"ai";"as";"a";"avons";"avez";"ont";"aie";"aies";"ait";"ayons";"ayez";"aient";
|
avoir_V : Verb = {s=table VF ["avoir";"avoir";"ai";"as";"a";"avons";"avez";"ont";"aie";"aies";"ait"
|
||||||
|
;"ayons";"ayez";"aient";
|
||||||
"avais";"avais";"avait";"avions";"aviez";"avaient"; --# notpresent
|
"avais";"avais";"avait";"avions";"aviez";"avaient"; --# notpresent
|
||||||
"eusse";"eusses";"eût";"eussions";"eussiez";"eussent";--# notpresent
|
"eusse";"eusses";"eût";"eussions";"eussiez";"eussent";--# notpresent
|
||||||
"eus";"eus";"eut";"eûmes";"eûtes";"eurent";--# notpresent
|
"eus";"eus";"eut";"eûmes";"eûtes";"eurent";--# notpresent
|
||||||
"aurai";"auras";"aura";"aurons";"aurez";"auront";--# notpresent
|
"aurai";"auras";"aura";"aurons";"aurez";"auront";--# notpresent
|
||||||
"aurais";"aurais";"aurait";"aurions";"auriez";"auraient";--# notpresent
|
"aurais";"aurais";"aurait";"aurions";"auriez";"auraient";--# notpresent
|
||||||
"aie";"ayons";"ayez";"eu";"eus";"eue";"eues";"ayant"];vtyp=VHabere};
|
"aie";"ayons";"ayez";"eu";"eus";"eue";"eues";"ayant"];vtyp=VHabere};
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ concrete StructuralFre of Structural = CatFre **
|
|||||||
lin
|
lin
|
||||||
|
|
||||||
above_Prep = {s = ["au dessus"] ; c = MorphoFre.genitive ; isDir = False} ;
|
above_Prep = {s = ["au dessus"] ; c = MorphoFre.genitive ; isDir = False} ;
|
||||||
after_Prep = mkPreposition "après" ;
|
after_Prep = mkPreposition "après" ;
|
||||||
all_Predet = {
|
all_Predet = {
|
||||||
s = \\a,c => prepCase c ++ aagrForms "tout" "toute" "tous" "toutes" ! a ;
|
s = \\a,c => prepCase c ++ aagrForms "tout" "toute" "tous" "toutes" ! a ;
|
||||||
c = Nom ;
|
c = Nom ;
|
||||||
@@ -22,7 +22,7 @@ lin
|
|||||||
and_Conj = {s1 = [] ; s2 = "et" ; n = Pl} ;
|
and_Conj = {s1 = [] ; s2 = "et" ; n = Pl} ;
|
||||||
because_Subj = ss ("parce" ++ elisQue) ** {m = Indic} ;
|
because_Subj = ss ("parce" ++ elisQue) ** {m = Indic} ;
|
||||||
before_Prep = mkPreposition "avant" ;
|
before_Prep = mkPreposition "avant" ;
|
||||||
behind_Prep = mkPreposition "derrière" ;
|
behind_Prep = mkPreposition "derrière" ;
|
||||||
between_Prep = mkPreposition "entre" ;
|
between_Prep = mkPreposition "entre" ;
|
||||||
both7and_DConj = {s1,s2 = "et" ; n = Pl} ;
|
both7and_DConj = {s1,s2 = "et" ; n = Pl} ;
|
||||||
but_PConj = ss "mais" ;
|
but_PConj = ss "mais" ;
|
||||||
@@ -80,7 +80,7 @@ lin
|
|||||||
or_Conj = {s1 = [] ; s2 = "ou" ; n = Sg} ;
|
or_Conj = {s1 = [] ; s2 = "ou" ; n = Sg} ;
|
||||||
otherwise_PConj = ss "autrement" ;
|
otherwise_PConj = ss "autrement" ;
|
||||||
part_Prep = complGen ;
|
part_Prep = complGen ;
|
||||||
please_Voc = ss ["s'il vous plaît"] ;
|
please_Voc = ss ["s'il vous plaît"] ;
|
||||||
possess_Prep = complGen ;
|
possess_Prep = complGen ;
|
||||||
quite_Adv = ss "assez" ;
|
quite_Adv = ss "assez" ;
|
||||||
she_Pron =
|
she_Pron =
|
||||||
@@ -102,16 +102,16 @@ lin
|
|||||||
Pl => \\_,c => prepCase c ++ "ces"
|
Pl => \\_,c => prepCase c ++ "ces"
|
||||||
} ;
|
} ;
|
||||||
sp = table {
|
sp = table {
|
||||||
Sg => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g ;
|
Sg => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g ;
|
||||||
Pl => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g
|
Pl => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g
|
||||||
} ;
|
} ;
|
||||||
s2 = [] ---- "-là"
|
s2 = [] ---- "-là"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---b that_NP = makeNP ["cela"] Masc Sg ;
|
---b that_NP = makeNP ["cela"] Masc Sg ;
|
||||||
there7from_Adv = ss ["de là"] ;
|
there7from_Adv = ss ["de là"] ;
|
||||||
there7to_Adv = ss "là" ; --- y
|
there7to_Adv = ss "là" ; --- y
|
||||||
there_Adv = ss "là" ;
|
there_Adv = ss "là" ;
|
||||||
therefore_PConj = ss "donc" ;
|
therefore_PConj = ss "donc" ;
|
||||||
---b these_NP = makeNP ["ceux-ci"] Masc Pl ;
|
---b these_NP = makeNP ["ceux-ci"] Masc Pl ;
|
||||||
they_Pron = mkPronoun
|
they_Pron = mkPronoun
|
||||||
@@ -132,12 +132,12 @@ lin
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
---b this_NP = pn2np (mkPN ["ceci"] Masc) ;
|
---b this_NP = pn2np (mkPN ["ceci"] Masc) ;
|
||||||
---b those_NP = makeNP ["ceux-là"] Masc Pl ;
|
---b those_NP = makeNP ["ceux-là"] Masc Pl ;
|
||||||
through_Prep = mkPreposition "par" ;
|
through_Prep = mkPreposition "par" ;
|
||||||
too_AdA = ss "trop" ;
|
too_AdA = ss "trop" ;
|
||||||
to_Prep = complDat ;
|
to_Prep = complDat ;
|
||||||
under_Prep = mkPreposition "sous" ;
|
under_Prep = mkPreposition "sous" ;
|
||||||
very_AdA = ss "très" ;
|
very_AdA = ss "très" ;
|
||||||
want_VV = mkVV (vouloir_V2 ** {lock_V = <>}) ;
|
want_VV = mkVV (vouloir_V2 ** {lock_V = <>}) ;
|
||||||
we_Pron =
|
we_Pron =
|
||||||
mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos"
|
mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos"
|
||||||
@@ -150,7 +150,7 @@ lin
|
|||||||
where {a = aagr Masc Pl} ;
|
where {a = aagr Masc Pl} ;
|
||||||
when_IAdv = ss "quand" ;
|
when_IAdv = ss "quand" ;
|
||||||
when_Subj = ss "quand" ** {m = Indic} ;
|
when_Subj = ss "quand" ** {m = Indic} ;
|
||||||
where_IAdv = ss "où" ;
|
where_IAdv = ss "où" ;
|
||||||
which_IQuant = {
|
which_IQuant = {
|
||||||
s = \\n,g,c =>
|
s = \\n,g,c =>
|
||||||
prepCase c ++ aagrForms "quel" "quelle" "quels" "quelles" ! aagr g n
|
prepCase c ++ aagrForms "quel" "quelle" "quels" "quelles" ! aagr g n
|
||||||
@@ -190,14 +190,14 @@ lin
|
|||||||
at_least_AdN = ss "au moins" ;
|
at_least_AdN = ss "au moins" ;
|
||||||
at_most_AdN = ss "au plus" ;
|
at_most_AdN = ss "au plus" ;
|
||||||
|
|
||||||
except_Prep = mkPreposition "excepté" ;
|
except_Prep = mkPreposition "excepté" ;
|
||||||
|
|
||||||
as_CAdv = X.mkCAdv "aussi" conjThan ;
|
as_CAdv = X.mkCAdv "aussi" conjThan ;
|
||||||
|
|
||||||
have_V2 = avoir_V2 ;
|
have_V2 = avoir_V2 ;
|
||||||
that_Subj = ss elisQue ** {m = Conjunct} ;
|
that_Subj = ss elisQue ** {m = Conjunct} ;
|
||||||
|
|
||||||
lin language_title_Utt = ss "français" ;
|
lin language_title_Utt = ss "français" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user