Commit Graph

3882 Commits

Author SHA1 Message Date
hallgren
ed502c490c PGF2: fixes for named entity callback function 2015-01-21 13:54:48 +00:00
hallgren
ec8b4fec93 PGF2 & PGFService: enable callbacks for named entities and chunks in the c-parse & c-translate web requests 2015-01-21 10:41:12 +00:00
kr.angelov
60cb95258b fix conflicts 2015-01-21 08:35:20 +00:00
kr.angelov
07eb8fec26 added functionType in the Haskell API to the C runtime 2015-01-20 14:45:02 +00:00
hallgren
7577de236f PGF2 & PGFService: work in progress on callbacks for nerc & chunks 2015-01-20 14:57:52 +00:00
hallgren
4372b47d2a PGF2: introduced some type synonyms to make type signature more readable 2015-01-20 12:57:33 +00:00
hallgren
240ba80209 Translating linearization functions to Haskell: move a common record type to PGF.Haskell
Move the Haskell representation of the common linearization type {s:T} to the
shared module PGF.Haskell, so that the same overloaded projection function
proj_s can be used for all concrete syntaxes.
2015-01-19 12:43:32 +00:00
hallgren
0b114195aa Translating linearization functions to Haskell: better treatment of special tokens
Common code has been lifted out from the generated Haskell modules to
an auxiliary module PGF.Haskell, which is currently included in the
regular PGF library, although it is independent of it and probably belongs
in a separate library.

The type Str used by linearization functions is now based on a token
type Tok, which is defined in PGF.Haskell.

PGF.Haskell.Tok is similar to the type GF.Data.Str.Tok, but it has
constructors for the special tokens BIND, SOFT_BIND and CAPIT, and there is
a function

	fromStr :: Str -> String

that computes the effects of these special tokens.
2015-01-14 14:35:39 +00:00
hallgren
4348ae40d2 Translating linearization functions to Haskell: add support for pre {...}
STILL TODO:

	- variants
	- better treatment of special tokens BIND, SOFT_BIND & CAPIT.
2015-01-08 17:52:45 +00:00
hallgren
6db2845375 Translating linearization functions to Haskell: use qualified names to avoid name clashes
All languages in the Phasebook can now be converted to compilable Haskell
code.

STILL TODO:
  
  	- variants
  	- pre { ... }
2015-01-07 16:13:28 +00:00
hallgren
51a233b2f1 Translating linearization functions to Haskell: significant code size reductions
+ Instead of including lists of parameter values generated by GF, generate
  code to enumerate parameter values (in the same order as GF). This seems
  to give a factor of 2-3 code size reduction in the Phrasebook (e.g.
  from 84MB to 25MB for Hin, from 338MB to 154MB for Fre).

+ Deduplicate table entries, i.e. convert "table [..,E,..,E,..,E,..]" into
  "let x = E in table [..,x,..,x,..,x,..]". This gives even more significant
  code size reduction in some cases, e.g. from 569MB to 15MB for
  PhrasebookFin.

All phrasebook languages can now be converted to compilable Haskell code,
except PhrasebookPes, which still has the name clash problem.
2015-01-06 19:57:24 +00:00
hallgren
1f60646f41 More work on translating linearization functions to Haskell
Many Phrasebook languages can now be converted to compilable Haskell code.
Some languages (Fre, Hin, Snd, Urd) generate too much Haskell code to be
practically useful (e.g. 338MB for Fre). One language (Fin) took too long
to convert to Haskell. One language (Pes) has problems with name clashes in
the generated Haskell code.

STILL TODO:

  	- variants
  	- pre { ... }
  	- reduce code duplication for large tables
	- generate qualified names to avoid name clashes
2015-01-06 16:48:03 +00:00
kr.angelov
6acf100ab1 fix the reference counting for callbacks in Python 2015-01-05 11:24:00 +00:00
kr.angelov
328d4df660 API for word alignment in the C runtime and in the Haskell binding 2014-12-29 10:59:20 +00:00
kr.angelov
4b066bde92 more compact implementation for GuStringBuf 2014-12-24 14:20:30 +00:00
kr.angelov
adb9e29dc4 bugfix and tiny optimization for callbacks from Haskell 2014-12-19 10:14:41 +00:00
kr.angelov
705ffaa33d haddock comments for parseWithHeuristics 2014-12-19 09:05:51 +00:00
kr.angelov
022849482d added mkStr to the Haskell binding 2014-12-19 08:58:02 +00:00
kr.angelov
fdc6c9a3cd added mkApp to the Haskell binding 2014-12-19 08:47:00 +00:00
kr.angelov
467a308335 fix in the Haskell binding 2014-12-16 10:35:56 +00:00
kr.angelov
c192aed5ba forgot to export parseWithHeuristics from Haskell 2014-12-16 10:33:45 +00:00
kr.angelov
9b7e18c25e change in the API for literals
The API in the C runtime as well as in the Haskell, Python and Java binding
is changed. Now instead of adding the literal callbacks to the concrete syntax
you need to supply them every time when you need to parse. The main reason is:

- referentially transparent API for Haskell
- when we start using memory mapped files we will not be allowed to change
  anything in the grammar data structures. At that point the old API would
  be impossible to use.
2014-12-16 10:21:26 +00:00
kr.angelov
48d494aa3b bump the version code in AndroidManifest.xml 2014-12-11 23:29:58 +00:00
kr.angelov
0f3f2b6039 update the nerc for the changes in the grammar 2014-12-11 21:54:34 +00:00
aarne
6c3eaa48f7 updates in app help file, e.g. the app name 2014-12-11 20:05:57 +00:00
hallgren
dc3fd2c044 Work in progress on translating linearization functions to Haskell
The translation is currently good enough to translate all concrete syntaxes
of the Foods and Letter grammars, and some concrete syntaxes of the Phrasebook
grammar (e.g. PhrasebookEng & PhrasebookSpa works, but there are problems with
e.g. PhrasebookSwe and PhrasebookChi)

This functionality is enabled by running

	gf -make -output-format=haskell -haskell=concrete ...

TODO:
	- variants
	- pre { ... }
	- eta expansion of linearization functions
	- record subtyping can still cause type errors in the Haskell code
	  in some cases
	- reduce code large tables
2014-12-11 16:08:36 +00:00
hallgren
a15225ae1f GF.Grammar.Macros: generalize the type of collectOp
New type:

    collectOp :: Monoid m => (Term -> m) -> Term -> m
2014-12-11 16:05:42 +00:00
hallgren
903789ad03 GF.Server: remove some code duplication 2014-12-11 15:58:57 +00:00
kr.angelov
32dbb4409b back to familiar you in Hindi 2014-12-11 16:13:55 +00:00
kr.angelov
af0ee1fa72 update gf-translator.svg 2014-12-11 13:44:48 +00:00
kr.angelov
ad9767ac3f edit the presentation image 2014-12-10 13:33:28 +00:00
kr.angelov
309119400f rename HLCompiler to GFTranslator 2014-12-10 13:21:18 +00:00
kr.angelov
33904b1956 added presentation image for the app 2014-12-10 13:14:11 +00:00
kr.angelov
f2a23c8924 make sure that the app doesn't crash even if nonExist is used somewhere in the grammars 2014-12-09 12:31:36 +00:00
kr.angelov
cfb688afce make sure that neither I nor I'm is recognized as name in English 2014-12-09 08:49:22 +00:00
kr.angelov
3ef92fc5cc bugfix for unknown words 2014-12-08 19:38:03 +00:00
hallgren
245903942e Haddock documentation: expose exportPGF, some other small improvements 2014-12-08 14:48:14 +00:00
kr.angelov
34f2ce6f5e restore the visualisation of abstract trees from the app 2014-12-08 16:17:42 +00:00
kr.angelov
ba9ccca0bd fix for the unknown words 2014-12-08 15:42:14 +00:00
kr.angelov
c07b2ad55c fix typo 2014-12-08 15:36:07 +00:00
kr.angelov
568c6bb542 register the callback for the Symb category 2014-12-08 15:22:33 +00:00
kr.angelov
fa53434bce added a callback for unknown words 2014-12-08 15:18:01 +00:00
aarne
fdec3e6f84 some edits in app help file 2014-12-07 17:42:47 +00:00
hallgren
491777b0c1 Eliminate the record extension operator from the Value type returned by the partial evaluator
It was used only in cases where a lock field needed to be added to a
run-time variable, like e.g. in examples/phrasebook/SentencesTha.gf: 

    lin
      PGreetingMale g   = mkText (lin Text g) (lin Text (ss "ครับ")) | g ;
      PGreetingFemale g = mkText (lin Text g) (lin Text (ss "ค่ะ")) | g ;

But lock fields are only meaningful during type checking and can safely be
ignored in later passes.
2014-12-05 12:42:17 +00:00
aarne
dbdcff1fac fixes in app help file ; commented out fake TTS for Bul and Cat ; remove []_ from output with unlinearized functions, so that speech doesn't get garbled. 2014-12-05 09:23:44 +00:00
aarne
c6f96d15e4 quick reference text prepended to app help file 2014-12-04 20:30:50 +00:00
hallgren
ac24b34696 Wide Coverage Translation Demo web app: updated to use App12.pgf 2014-12-03 15:08:56 +00:00
aarne
c15060d783 Catalan in android app builder ; updated app document with Cat ; substitute voice output for Bulgarian and Catalan ; replaced brackets in unknown words by capitalization (for better speech output ; this is experimental) 2014-12-03 14:38:17 +00:00
kr.angelov
0e01782af1 faster translation in the app 2014-12-01 23:15:24 +00:00
kr.angelov
34f91ecce2 better color filter to indicate listening 2014-12-01 21:13:09 +00:00