summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-05-26 21:30:04 +0000
committeraarne <aarne@chalmers.se>2010-05-26 21:30:04 +0000
commit48070392e8e9fc375de6cf6f408a8b41377b8d10 (patch)
tree80568203558b9817f94ce5226d7d87beb008070a
parent26fad2dfe283ffb8a2bf6f526900f90fbbfd30d8 (diff)
fixes in partitives in Phrasebook
-rw-r--r--examples/phrasebook/Implementation.html4
-rw-r--r--examples/phrasebook/Makefile4
-rw-r--r--examples/phrasebook/Ontology.html6
-rw-r--r--examples/phrasebook/Sentences.gf4
-rw-r--r--examples/phrasebook/SentencesFin.gf7
-rw-r--r--examples/phrasebook/SentencesI.gf4
-rw-r--r--examples/phrasebook/Words.gf2
-rw-r--r--examples/phrasebook/WordsFin.gf2
-rw-r--r--examples/phrasebook/missing.txt3
-rw-r--r--examples/phrasebook/phrasebook.html25
-rw-r--r--examples/phrasebook/phrasebook.txt22
-rw-r--r--examples/phrasebook/www/old-phrasebook.html (renamed from examples/phrasebook/www/phrasebook.html)0
-rw-r--r--examples/phrasebook/www/support.js49
13 files changed, 90 insertions, 42 deletions
diff --git a/examples/phrasebook/Implementation.html b/examples/phrasebook/Implementation.html
index 5cb0635fb..a4b2ccd12 100644
--- a/examples/phrasebook/Implementation.html
+++ b/examples/phrasebook/Implementation.html
@@ -85,6 +85,7 @@ gfdoc - a rudimentary GF document generator.
ObjItem i = i ;
ObjNumber n k = mkNP n k ;
ObjIndef k = mkNP a_Quant k ;
+ ObjPlural k = mkNP aPl_Det k ;
ObjMass k = mkNP k ;
ObjAndObj = mkNP and_Conj ;
OneObj o = o ;
@@ -129,8 +130,7 @@ gfdoc - a rudimentary GF document generator.
NNumeral n = mkCard &lt;lin Numeral n : Numeral> ;
- AHave p kind = mkCl p.name have_V2 (mkNP aPl_Det kind) ;
- AHaveMass p kind = mkCl p.name have_V2 (mkNP kind) ;
+ AHave p obj = mkCl p.name have_V2 obj ;
AHaveCurr p curr = mkCl p.name have_V2 (mkNP aPl_Det curr) ;
ACitizen p n = mkCl p.name n ;
ABePlace p place = mkCl p.name place.at ;
diff --git a/examples/phrasebook/Makefile b/examples/phrasebook/Makefile
index b1a944276..93c4a70c5 100644
--- a/examples/phrasebook/Makefile
+++ b/examples/phrasebook/Makefile
@@ -5,10 +5,10 @@ all: fin demo missing
demo: compdemo linkdemo
compdemo:
- $(compile) Bul Dan Dut Eng Fre Ger Ita Nor Ron Spa Swe DisambPhrasebookEng
+ $(compile) Bul Cat Dan Dut Eng Fre Ger Ita Nor Ron Spa Swe DisambPhrasebookEng
linkdemo:
- $(compile) -link Eng Bul Dan Dut Fin Fre Ger Ita Nor Ron Spa Swe DisambPhrasebookEng
+ $(compile) -link Eng Bul Cat Dan Dut Fin Fre Ger Ita Nor Ron Spa Swe DisambPhrasebookEng
#separate, because slow...
fin:
diff --git a/examples/phrasebook/Ontology.html b/examples/phrasebook/Ontology.html
index e431598da..0765ac4e0 100644
--- a/examples/phrasebook/Ontology.html
+++ b/examples/phrasebook/Ontology.html
@@ -101,6 +101,7 @@ Here are some general syntactic constructions.
ObjItem : Item -> PrimObject ; -- this pizza
ObjNumber : Number -> Kind -> PrimObject ; -- five pizzas
ObjIndef : Kind -> PrimObject ; -- a pizza
+ ObjPlural : Kind -> PrimObject ; -- pizzas
ObjMass : MassKind -> PrimObject ; -- water
ObjAndObj : PrimObject -> Object -> Object ; -- this pizza and a beer
OneObj : PrimObject -> Object ; -- this pizza
@@ -146,8 +147,7 @@ Determiners.
Actions are typically language-dependent, not only lexically but also
structurally. However, these ones are mostly functorial.
<pre>
- AHave : Person -> Kind -> Action ; -- you have pizzas
- AHaveMass : Person -> MassKind -> Action ; -- you have water
+ AHave : Person -> Object -> Action ; -- you have pizzas
AHaveCurr : Person -> Currency -> Action ; -- you have dollars
ACitizen : Person -> Citizenship -> Action ; -- you are Swedish
ABePlace : Person -> Place -> Action ; -- you are in the bar
@@ -300,7 +300,7 @@ Notice that also negations and questions can be formed from these.
AThirsty : Person -> Action ; -- I am thirsty
ATired : Person -> Action ; -- I am tired
AUnderstand : Person -> Action ; -- I (don't) understand
- AWant : Person -> Object -> Action ; -- I want two beers
+ AWant : Person -> Object -> Action ; -- I want two apples
AWantGo : Person -> Place -> Action ; -- I want to go to the hospital
</pre>
diff --git a/examples/phrasebook/Sentences.gf b/examples/phrasebook/Sentences.gf
index 572d89f74..2d2fc8aab 100644
--- a/examples/phrasebook/Sentences.gf
+++ b/examples/phrasebook/Sentences.gf
@@ -90,6 +90,7 @@ abstract Sentences = Numeral ** {
ObjItem : Item -> PrimObject ; -- this pizza
ObjNumber : Number -> Kind -> PrimObject ; -- five pizzas
ObjIndef : Kind -> PrimObject ; -- a pizza
+ ObjPlural : Kind -> PrimObject ; -- pizzas
ObjMass : MassKind -> PrimObject ; -- water
ObjAndObj : PrimObject -> Object -> Object ; -- this pizza and a beer
OneObj : PrimObject -> Object ; -- this pizza
@@ -133,8 +134,7 @@ abstract Sentences = Numeral ** {
-- Actions are typically language-dependent, not only lexically but also
-- structurally. However, these ones are mostly functorial.
- AHave : Person -> Kind -> Action ; -- you have pizzas
- AHaveMass : Person -> MassKind -> Action ; -- you have water
+ AHave : Person -> Object -> Action ; -- you have pizzas
AHaveCurr : Person -> Currency -> Action ; -- you have dollars
ACitizen : Person -> Citizenship -> Action ; -- you are Swedish
ABePlace : Person -> Place -> Action ; -- you are in the bar
diff --git a/examples/phrasebook/SentencesFin.gf b/examples/phrasebook/SentencesFin.gf
index 625890046..61533b35c 100644
--- a/examples/phrasebook/SentencesFin.gf
+++ b/examples/phrasebook/SentencesFin.gf
@@ -1,5 +1,5 @@
concrete SentencesFin of Sentences = NumeralFin ** SentencesI -
- [Is,NameNN,
+ [Is, NameNN, ObjMass,
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
] with
(Syntax = SyntaxFin),
@@ -15,5 +15,8 @@ concrete SentencesFin of Sentences = NumeralFin ** SentencesI -
YouFamMale, YouFamFemale =
{name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
YouPolMale, YouPolFemale =
- {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
+ {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
+
+ ObjMass = PartCN ;
+
}
diff --git a/examples/phrasebook/SentencesI.gf b/examples/phrasebook/SentencesI.gf
index bcd6f01b8..be7170a93 100644
--- a/examples/phrasebook/SentencesI.gf
+++ b/examples/phrasebook/SentencesI.gf
@@ -78,6 +78,7 @@ incomplete concrete SentencesI of Sentences = Numeral **
ObjItem i = i ;
ObjNumber n k = mkNP n k ;
ObjIndef k = mkNP a_Quant k ;
+ ObjPlural k = mkNP aPl_Det k ;
ObjMass k = mkNP k ;
ObjAndObj = mkNP and_Conj ;
OneObj o = o ;
@@ -120,8 +121,7 @@ incomplete concrete SentencesI of Sentences = Numeral **
NNumeral n = mkCard <lin Numeral n : Numeral> ;
- AHave p kind = mkCl p.name have_V2 (mkNP aPl_Det kind) ;
- AHaveMass p kind = mkCl p.name have_V2 (mkNP kind) ;
+ AHave p obj = mkCl p.name have_V2 obj ;
AHaveCurr p curr = mkCl p.name have_V2 (mkNP aPl_Det curr) ;
ACitizen p n = mkCl p.name n ;
ABePlace p place = mkCl p.name place.at ;
diff --git a/examples/phrasebook/Words.gf b/examples/phrasebook/Words.gf
index 92b423cf3..fd1b2ef7c 100644
--- a/examples/phrasebook/Words.gf
+++ b/examples/phrasebook/Words.gf
@@ -139,7 +139,7 @@ abstract Words = Sentences ** {
AThirsty : Person -> Action ; -- I am thirsty
ATired : Person -> Action ; -- I am tired
AUnderstand : Person -> Action ; -- I (don't) understand
- AWant : Person -> Object -> Action ; -- I want two beers
+ AWant : Person -> Object -> Action ; -- I want two apples
AWantGo : Person -> Place -> Action ; -- I want to go to the hospital
-- Miscellaneous phrases. Notice that also negations and questions can be formed from
diff --git a/examples/phrasebook/WordsFin.gf b/examples/phrasebook/WordsFin.gf
index 995030707..8b5681cb8 100644
--- a/examples/phrasebook/WordsFin.gf
+++ b/examples/phrasebook/WordsFin.gf
@@ -1,4 +1,4 @@
--- (c) 2009 Aarne Ranta under LGPL
+-- (c) 2010 Aarne Ranta under LGPL
concrete WordsFin of Words = SentencesFin **
open
diff --git a/examples/phrasebook/missing.txt b/examples/phrasebook/missing.txt
index c79435613..6ec0d7070 100644
--- a/examples/phrasebook/missing.txt
+++ b/examples/phrasebook/missing.txt
@@ -1,12 +1,13 @@
DisambPhrasebookEng :
PhrasebookBul : GCongratulations GGoodLuck GHappyBirthday
+PhrasebookCat : pot01
PhrasebookDan :
PhrasebookDut :
PhrasebookEng :
PhrasebookFin :
PhrasebookFre :
PhrasebookGer :
-PhrasebookIta : HowFar HowFarBy HowFarFrom HowFarFromBy Pound
+PhrasebookIta :
PhrasebookNor :
PhrasebookRon :
PhrasebookSpa : GCongratulations GGoodLuck GHappyBirthday
diff --git a/examples/phrasebook/phrasebook.html b/examples/phrasebook/phrasebook.html
index f9c06462a..56b1a8875 100644
--- a/examples/phrasebook/phrasebook.html
+++ b/examples/phrasebook/phrasebook.html
@@ -6,7 +6,8 @@
</HEAD><BODY BGCOLOR="white" TEXT="black">
<P ALIGN="center"><CENTER><H1>MOLTO Multilingual Phrasebook</H1>
<FONT SIZE="4">
-<I>Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta </I><BR>
+<I>Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta, Jordi Saludes </I><BR>
+Showcase for project FP7-ICT-247914, Deliverable D10.2.
</FONT></CENTER>
<P>
@@ -17,9 +18,11 @@
History
</P>
<UL>
-<LI>20 May. Version 0.9:
+<LI>26 May. Version 0.9:
+ Catalan added, mass/count noun distinction to reduce overgeneration,
+ improved web interface.
+<LI>20 May. Version 0.8:
Spanish added, Bulgarian complete.
-<P></P>
<LI>9 May. Version 0.7:
Danish and Norwegian added (preliminary versions induced from statistical models
and resource grammars).
@@ -39,7 +42,7 @@ History
<A HREF="missing.txt">Missing constructs</A>
</P>
<P>
-<A HREF="http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html">Back to phrasebook</A>
+<A HREF="http://www.grammaticalframework.org/demos/phrasebook/">Back to phrasebook</A>
</P>
<P>
</font>
@@ -81,18 +84,17 @@ The source code resides in
<A HREF="http://code.haskell.org/gf/examples/phrasebook/"><CODE>code.haskell.org/gf/examples/phrasebook/</CODE></A>
</P>
<P>
-Current status (20 May 2010):
+Current status (26 May 2010):
</P>
<UL>
<LI>small but useful coverage in abstract syntax
<LI>reasonable implementations for
- Bulgarian, Danish, Dutch, English, Finnish, French, German,
+ Bulgarian, Catalan, Danish, Dutch, English, Finnish, French, German,
Italian, Norwegian, Romanian, Spanish, Swedish
-<LI>mostly just cloned for the rest of MOLTO languages
-<LI>temporary user interdace
+<LI>Polish and Russian under construction
<LI>works on web browsers calling a server
<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://www.grammaticalframework.org/demos/phrasebook/">http://www.grammaticalframework.org/demos/phrasebook/</A>
</UL>
<H1>Points illustrated</H1>
@@ -150,6 +152,9 @@ Separate concrete syntaxes.
the input language is ambiguous.
</P>
<P>
+<CODE>Numeral</CODE>: resource grammar module directly inherited from the library.
+</P>
+<P>
Here is the module structure as produced in GF by
</P>
<PRE>
@@ -252,6 +257,6 @@ Here are the steps to follow for contributors:
</UL>
-<!-- html code generated by txt2tags 2.4 (http://txt2tags.sf.net) -->
+<!-- html code generated by txt2tags 2.5 (http://txt2tags.sf.net) -->
<!-- cmdline: txt2tags -thtml phrasebook.txt -->
</BODY></HTML>
diff --git a/examples/phrasebook/phrasebook.txt b/examples/phrasebook/phrasebook.txt
index 68a0d6f48..fa682596b 100644
--- a/examples/phrasebook/phrasebook.txt
+++ b/examples/phrasebook/phrasebook.txt
@@ -1,5 +1,6 @@
MOLTO Multilingual Phrasebook
-Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta
+Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta, Jordi Saludes
+Showcase for project FP7-ICT-247914, Deliverable D10.2.
%!postproc(html): #HR <HR>
@@ -13,9 +14,11 @@ Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa
#BSMALL
History
-- 20 May. Version 0.9:
+- 26 May. Version 0.9:
+ Catalan added, mass/count noun distinction to reduce overgeneration,
+ improved web interface.
+- 20 May. Version 0.8:
Spanish added, Bulgarian complete.
-
- 9 May. Version 0.7:
Danish and Norwegian added (preliminary versions induced from statistical models
and resource grammars).
@@ -33,7 +36,7 @@ History
[Missing constructs missing.txt]
-[Back to phrasebook http://tournesol.cs.chalmers.se/~aarne/phrasebook/phrasebook.html]
+[Back to phrasebook http://www.grammaticalframework.org/demos/phrasebook/]
#ESMALL
#HR
@@ -68,16 +71,15 @@ The source code resides in
[``code.haskell.org/gf/examples/phrasebook/`` http://code.haskell.org/gf/examples/phrasebook/]
-Current status (20 May 2010):
+Current status (26 May 2010):
- small but useful coverage in abstract syntax
- reasonable implementations for
- Bulgarian, Danish, Dutch, English, Finnish, French, German,
+ Bulgarian, Catalan, Danish, Dutch, English, Finnish, French, German,
Italian, Norwegian, Romanian, Spanish, Swedish
-- mostly just cloned for the rest of MOLTO languages
-- temporary user interdace
+- Polish and Russian under construction
- works on web browsers calling a server
- 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://www.grammaticalframework.org/demos/phrasebook/
@@ -131,6 +133,8 @@ Separate concrete syntaxes.
``DisambPhrasebook``: disambiguation grammars generating feedback phrases if
the input language is ambiguous.
+``Numeral``: resource grammar module directly inherited from the library.
+
Here is the module structure as produced in GF by
```
> i -retain DisambPhrasebookEng.gf
diff --git a/examples/phrasebook/www/phrasebook.html b/examples/phrasebook/www/old-phrasebook.html
index 4e6113bd4..4e6113bd4 100644
--- a/examples/phrasebook/www/phrasebook.html
+++ b/examples/phrasebook/www/old-phrasebook.html
diff --git a/examples/phrasebook/www/support.js b/examples/phrasebook/www/support.js
index 15ccc38d0..e2240624c 100644
--- a/examples/phrasebook/www/support.js
+++ b/examples/phrasebook/www/support.js
@@ -1,7 +1,11 @@
+/* --- Accessing document elements ------------------------------------------ */
+
function element(id) {
return document.getElementById(id);
}
+/* --- JSONP ---------------------------------------------------------------- */
+
// Inspired by the function jsonp from
// http://www.west-wind.com/Weblog/posts/107136.aspx
// See also http://niryariv.wordpress.com/2009/05/05/jsonp-quickly/
@@ -12,8 +16,8 @@ function jsonp(url,callback)
url += "&jsonp="
else
url += "?jsonp="
- url += callback + "&";
- //url += new Date().getTime().toString(); // prevent caching
+ url += callback;
+ //url += "&" + new Date().getTime().toString(); // prevent caching
var script = empty("script");
script.setAttribute("src",url);
@@ -52,6 +56,7 @@ function div_class(cls,contents) { return wrap_class("div",cls,contents); }
function p(contents) { return wrap("p",contents); }
function dt(contents) { return wrap("dt",contents); }
+function li(contents) { return wrap("li",contents); }
function th(contents) { return wrap("th",contents); }
function td(contents) { return wrap("td",contents); }
@@ -64,13 +69,18 @@ function tr(cells) {
}
function button(label,action) {
- var el=empty("input");
- el.setAttribute("type","button");
+ var el=empty("input","type","button");
el.setAttribute("value",label);
el.setAttribute("onclick",action);
return el;
}
+function option(label,value) {
+ var el=empty("option","value",value);
+ el.innerHTML=label;
+ return el;
+}
+
function appendChildren(el,cs) {
for(var i=0;i<cs.length;i++)
el.appendChild(cs[i]);
@@ -107,7 +117,10 @@ function swap(a,i,j) { // Note: this doesn't work on strings.
return a;
}
-function sort(a) { // Note: this doesn't work on strings.
+function sort(a) {
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/sort
+ return a.sort;
+ /* // Note: this doesn't work on strings.
for(var i=0;i<a.length-1;i++) {
var min=i;
for(var j=i+1;j<a.length;j++)
@@ -115,6 +128,7 @@ function sort(a) { // Note: this doesn't work on strings.
if(min!=i) swap(a,i,min);
}
return a;
+ */
}
function filter(p,xs) {
@@ -124,7 +138,7 @@ function filter(p,xs) {
return ys;
}
-function implode(cs) {
+function implode(cs) { // array of strings to string
/*
var s="";
for(var i=0;i<cs.length;i++)
@@ -133,6 +147,9 @@ function implode(cs) {
*/
return cs.join("");
}
+
+function hasPrefix(s,pre) { return s.substr(0,pre.length)==pre; }
+
/*
function all(p,xs) {
for(var i=0;i<xs.length;i++)
@@ -147,6 +164,9 @@ function map(f,xs) {
return ys;
}
+// map in continuation passing style
+function mapc(f,xs,cont) { mapc_from(f,xs,0,[],cont); }
+
function mapc_from(f,xs,i,ys,cont) {
if(i<xs.length)
f(xs[i],function(y){ys[i]=y;mapc_from(f,xs,i+1,ys,cont)});
@@ -154,4 +174,19 @@ function mapc_from(f,xs,i,ys,cont) {
cont(ys);
}
-function mapc(f,xs,cont) { mapc_from(f,xs,0,[],cont); }
+function overlaps(as,bs) {
+ for(var i=0;i<as.length;i++)
+ if(elem(as[i],bs)) return true;
+ return false;
+}
+
+function elem(a,as) {
+ for(var i=0;i<as.length;i++)
+ if(a==as[i]) return true;
+ return false;
+}
+
+function shuffle(a) {
+ for(i=0;i<a.length;i++) swap(a,i,Math.floor(Math.random()*a.length))
+ return a;
+}