Commit Graph

7110 Commits

Author SHA1 Message Date
krasimir
2f9704a624 add the initial sketches of the semantic graph storage 2015-08-20 13:31:43 +00:00
hallgren
2ff7e829dc gf -cshell: linearize: implement options -all -list -treebank
Options -all and -list use PGF2.linearizeAll, which lists all variants, but
not all forms...
Also, there is no attempt to be compatible with the output from the Haskell
run-rime shell, which produces superfluous blank lines (-all) or
commas (-list), and mixes tagged and untagged lines (-treebank -all).
2015-08-18 16:05:45 +00:00
hallgren
41075fb50a GF shell: restore the eh command to working order and document it
Also, when the command line parser fails, append the problematic command line
to the error message "command not parsed".
2015-08-18 13:13:31 +00:00
hallgren
17e7a01ae1 GF shell: add the start options to GFEnv, turn "reload" into an ordinary command 2015-08-17 15:56:39 +00:00
hallgren
2df2d4a683 GF Shell: "ph | wf -file=foo.gfs" now works as advertised
The print_history command was among the commands implemented in an ad-hoc
way instead of being handled by the command line interpreter, which means
it could not be used in a pipe, as in the example in the help info.
The refactoring in the previous patch made this old bug easy to fix.

Also fixed a bug in the "empty" command, introduced when moving the PGF from
CommandEnv to GFEnv.

TODO: fix the undocumented eh command. A comment in the help info for
print_history, and some commented out old code, suggest that eh means
"execute_history", but at present it does nothing...
2015-08-13 15:30:23 +00:00
hallgren
87e64a804c GF Shell: refactoring for improved modularity and reusability:
+ Generalize the CommandInfo type by parameterizing it on the monad
  instead of just the environment.
+ Generalize the commands defined in
  GF.Command.{Commands,Commands2,CommonCommands,SourceCommands,HelpCommand}
  to work in any monad that supports the needed operations.
+ Liberate GF.Command.Interpreter from the IO monad.
  Also, move the current PGF from CommandEnv to GFEnv in
  GF.Interactive, making the command interpreter even more generic.
+ Use a state monad to maintain the state of the interpreter in
  GF.{Interactive,Interactive2}.
2015-08-13 10:49:50 +00:00
hallgren
d860a921e0 GF Shell: turn set_encoding into a common command
Implemented in GF.Command.CommonCommands instead of GF.Interactive &
GF.Interactive2.
2015-08-12 15:00:03 +00:00
hallgren
b536b02534 GF.Interactive2: cleanup 2015-08-12 12:33:36 +00:00
krasimir
8e39c1f622 Bugfix in the android app for Chinese which was causing the first character in the translation to disappear 2015-08-12 18:44:45 +00:00
hallgren
6fff2def39 GF shell: source commands (cc, sd, so, ss & dg) can now be used in pipes
These commands are now implemented as regular commands (i.e. using the
CommandInfo data type) in the new module GF.Command.SourceCommands.

The list of commands exported from GF.Command.Commmands now called pgfCommands
instead of allCommands.

The list allCommands of all commands is now assembled
from sourceCommands, pgfCommands, commonCommands and helpCommand in
GF.Interactive.
2015-08-12 11:05:08 +00:00
hallgren
063912c386 Move welcome message from GF.Interactive & GF.Interactive2 to GF.Command.Messages
...to avoid the duplication.
2015-08-12 11:01:45 +00:00
hallgren
e50f92c41d GF shell: make environment types abstract, comment out some dead code 2015-08-11 16:14:38 +00:00
krasimir
6b90024d09 pickling/unpickling for types 2015-08-12 10:11:00 +00:00
krasimir
ac6ce58777 support for transparent pickling/unpickling of abstract expressions in Python 2015-08-12 09:21:23 +00:00
hallgren
911310bb40 gf -cshell: improved help for the 'import' command 2015-08-10 16:39:31 +00:00
hallgren
666945a7b0 Forgot to include gf.cabal in previous patch 2015-08-10 16:38:28 +00:00
hallgren
10e7bacbfd Factor out common code from GF.Command.Commands and GF.Command.Commands2
Created module GF.Command.CommonCommands with ~250 lines of code for commands
that do not depend on the type of PGF in the environemnt, either because they
don't use the PGF or because they are just documented here and implemented
elsewhere.

TODO: further refactoring so that documentation and implementation of
*all* commands can be kept together.
2015-08-10 16:30:17 +00:00
hallgren
8d6e61a8df gf -cshell: preliminary support for the C run-time system in the GF shell
Some C run-time functionality is now available in the GF shell, by starting
GF with 'gf -cshell' or 'gf -crun'. Only limited functionality is available
when running the shell in these modes:

- You can only import .pgf files, not source files.
- The -retain flag can not be used and the commands that require it to work
  are not available.
- Only 18 of the 40 commands available in the usual shell have been
  implemented. The 'linearize' and 'parse' commands are the only ones
  that call the C run-time system, and they support only a limited set of
  options and flags. Use the 'help' commmands for details.
- A new command 'generate_all', that calls PGF2.generateAll, has been added.
  Unfortuntaly, using it causes 'segmentation fault'.

This is implemented by adding two new modules: GF.Command.Commands2 and
GF.Interactive2. They are copied and modified versions of GF.Command.Commands
and GF.Interactive, respectively. Code for unimplemented commands and other
code that has not been adapted to the C run-time system has been left in
place, but commented out, pending further work.
2015-08-10 14:12:51 +00:00
hallgren
d38efbaa6a Refactor GF shell modules to improve modularity and reusability
+ Move type CommandInfo from GF.Command.Commands to a new module
  GF.Commands.CommandInfo and make it independent of the PGF type.
+ Make the module GF.Command.Interpreter independent of the PGF type and
  eliminate the import of GF.Command.Commands.
+ Move the implementation of the "help" command to its own module
  GF.Command.Help
2015-08-10 13:01:02 +00:00
krasimir
20644d0299 bump the version number for the Android app 2015-08-10 08:34:29 +00:00
krasimir
a33e06649d now the app shows the correct abstract syntax names for unknown words while it still produces the right TTS 2015-08-06 14:19:13 +00:00
krasimir
26c2f12170 another fix in the Thai keyboard 2015-08-06 14:18:49 +00:00
hallgren
ac9e86f5f2 GF Home Page: Updated the link to the Haskell API, and a couple of other links 2015-08-06 14:07:18 +00:00
krasimir
336128309b disable the visualization of glosses in the App until we have a complete database 2015-08-06 13:02:27 +00:00
krasimir
3f90b8305a set the optimization levels for the JNI code to release level 2015-08-06 13:01:07 +00:00
krasimir
9b0cb5adad bugfix for the word prediction in the App 2015-08-06 12:51:42 +00:00
krasimir
266fe48aa8 a better layout for the Thai keyboard 2015-08-06 12:23:27 +00:00
krasimir
f6796ced2d bugfix in lookup_morpho in the C runtime 2015-08-06 11:51:23 +00:00
hallgren
7736ba5694 Update doc/gf-help-full.txt (GF shell reference manual) 2015-08-04 11:49:17 +00:00
hallgren
8c1c29b829 FoodsTur.gf: use Predef.BIND instead of "&+"
...for better results when used with the C run-time system.
2015-07-28 10:58:00 +00:00
aarne
a1a602c681 rewrote an mkPN application in WordsGer to work around a problem that might be a type checker bug 2015-07-23 16:16:38 +00:00
hallgren
3788098e0a Setup.hs: ignore .* instead of . and .. when compiling/copying all files in a directory
This avoids problems with .DS_Store files created by the Finder on OS X.
2015-07-22 14:34:02 +00:00
hallgren
e9c060d3f9 PGF web service: option to leave &+ uninterpreted in linearized output
By adding unlexer=none (or unlexer=id) in requests that output linearizations
(e.g. command=linearize, command=translate), you can leave &+ uninterpreted
instead of gluing the adjacent tokens. This means that the output is left in
a format that can be parsed in a subsequent request.

To implement this consistently, the function linearizeAndBind was replaced
with the function linearizedAndUnlex (but there are a couple of requests
that do not call this function...)

Note that this applies to the Haskell run-time requests only. The C run-time
request (c-linearize, c-translate) always applies the &+ token and the
c-parse request can parse input containing glued tokens.
2015-07-21 14:21:49 +00:00
aarne
55e2a4c9cb added PassV2 to App; PassVPSlash did not work as VPSlash was disabled for speed reasons 2015-07-21 13:01:29 +00:00
aarne
db23eec58e removed the obsolete examples/translator directory, which caused confusion 2015-07-20 14:32:50 +00:00
hallgren
400195b307 Setup.hs: correctly parse output from 'darcs changes' for newer versions of darcs
It worked with darcs-2.8 before, now it also works with darcs-2.10.
2015-07-20 13:02:49 +00:00
krasimir
880f0a63d0 make the virtual machine instructions more uniform 2015-07-16 15:43:18 +00:00
krasimir
d22c07dcfb refine the GNU lightning patch to avoid generating unnecessary code 2015-07-16 15:29:14 +00:00
krasimir
fac48d43e8 bugfixes in the JIT compiler for x86_64. One of the fixes is actually in GNU lightning 2015-07-16 15:21:09 +00:00
aarne
3ad6e0c6bc added a space after the tag in word alignment to work around a graphviz bug shown with Chinese characters 2015-07-16 08:36:14 +00:00
hallgren
f994d556e0 Wide Coverage Demo: avoid errors if d3 or d3Tree can't be loaded 2015-07-15 14:07:26 +00:00
krasimir
4810a0b8e5 add the Python API tutorial to the GF home page 2015-07-15 12:12:50 +00:00
krasimir
aa6b6d3155 fixed missing do in the Haskell binding 2015-07-12 15:37:45 +00:00
krasimir
192b1cc018 the reasoner's states are now closures just like the code for the def rules. This means more compact JIT compiled code and uniformity with the code for def rules 2015-07-04 15:06:34 +00:00
krasimir
b3680b6025 merge the states for reasoning and evaluation into a single structure 2015-07-03 11:53:52 +00:00
krasimir
1c2b6702d7 merge brassiere_1_N/brassiere_2_N and aborigine_N/aboriginal_N 2015-07-01 11:14:48 +00:00
krasimir
7daf119cbc forgot to add the DBManager 2015-07-01 09:51:01 +00:00
krasimir
34ef01f613 the Android app now can show Glosses from WordNet 2015-07-01 09:44:56 +00:00
krasimir
fa13e1834c specify strict APP_PLATFORM to avoid crashes on devices with older android version 2015-06-30 22:14:12 +00:00
krasimir
22773909bf add function 'functions' in the Haskell binding to the C runtime 2015-06-30 20:42:19 +00:00