Difference between revisions of "Apertium-viewer"
(56 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
Apertium-viewer is a tool to view and edit the output of the various stages of an apertium translation. |
|||
{{TOCD}} |
|||
Apertium-viewer is a little program which can be used to view and edit the output of the various stages of an apertium translation. |
|||
[[Image:Screenshot-jApertiumView.png|thumb|400px|right|A screen shot showing translation from English to Esperanto]] |
|||
The various stages update ''while you type'', and a change made in any one pane updates the subsequent stages. |
|||
The various stages update ''while you type'', and you can make change in any of the stages and see what then happens in the subsequent stages. |
|||
[[Image:Screenshot-jApertiumView.png|thumb|400px|right|A screen shot. Some stages are hidden (split panes have been moved together)]] |
|||
Really invaluable when you want to work with and understand a language pair. |
|||
Such a tool is invaluable when you want to work with a language pair. |
|||
== What you need == |
|||
* Java JRE 1.6 or later |
|||
== Installing and running apertium-viewer == |
== Installing and running apertium-viewer == |
||
You don't need to install Apertium to try it out. |
|||
Download [https://svn.code.sf.net/p/apertium/svn/builds/apertium-viewer/apertium-viewer.jar apertium-viewer.jar] and save it to your hard drive. |
|||
Only requirement is that you have Java 7 or later installed. |
|||
Double-click on apertium-viewer.jar (or right click on it and open with Java Runtime) |
Download apertium-viewer.jar from [https://github.com/apertium/apertium-viewer/releases github] and save it to your hard drive. Double-click on apertium-viewer.jar (or right click on it and open with Java Runtime) |
||
Or, from the command line, type: |
|||
<pre> |
<pre> |
||
wget https:// |
wget https://github.com/apertium/apertium-viewer/releases/download/2.6.0/apertium-viewer.jar -O apertium-viewer.jar |
||
java -jar apertium-viewer.jar |
java -Xmx500m -jar apertium-viewer.jar |
||
</pre> |
</pre> |
||
(the parameter -Xmx500m is only neccesary if you want to edit very large dictionary files) |
|||
== Testing unreleased language pairs from Github == |
|||
At startup Apertium-viewer will scan for languages installed on the system, but you really don't need to install your own language pairs anywhere to use it. Just compile the language pair with 'make' and point to the .mode file generated: Choose File | Load mode and select the mode file from the language pair. |
|||
[[Image:Screenshot-jApertiumView-OpenMode.png|thumb|300px|right|Opening a mode file]] |
|||
The [[Language pair packages#List of ready-to-use packages|online language pairs]] are also supported. You can choose any of the 24 online pairs that are available and work with them as if they where installed locally, even if they aren't. |
|||
==Keyboard shortcuts== |
|||
* Alt-U: Set/unset 'mark unknown words' |
|||
* Alt-I: Fit text: Automatically resising panes. Stages with unchanged text are automatically collapsed. |
|||
* Alt-C: Copy All: Puts text for all stages into clipboard |
|||
* Alt-S: Hide/Show commands (for clearer view) |
|||
* Ctrl-0/Ctrl-1 brings focus to the first pane (input), |
|||
* Ctrl-2 brings focus to the to the second pane (etc). |
|||
* Ctrl-9 brings focus to the last pane (output). It autoscrolls to make the panes fully visible. |
|||
* Ctrl-Pgup, Ctrl-PgDn: Cycle throgh the text panes |
|||
* Ctrl-Z/Ctrl-Y Undo/redo on a per text-pane/stage basis |
|||
* Ctrl-T: Make test case: Text can be copied directly into a [[Wiki regression testing]] wiki page (also using Tools | Make Test Case...). |
|||
* Ctrl-I: Import Wiki text case |
|||
==Features== |
|||
* Syntax highlighting. If a surface form has an ambigious analysis it's shown in red. If you click on an alternative it is selected (basically, between / /) and can be removed it pressing Delete key. |
|||
[[Image:Screenshot-jApertiumView-3.png|thumb|400px|right|A click on an ambigious analysis selects one possibility (press Del to delete it). Also, the freeze button is shown.]] |
|||
* Views can be frozen/paused to not propagate changes |
|||
* Zoom button to get a detached window (particularly input and output windows). |
|||
[[Image:Screenshot-Apertium-viewer-1.png|thumb|400px|right| When the text is the same as on the former stage it is shown with a yellow background. Commands have been hidden for a clearer view. |
|||
Coloring scheme for version 1.4 is shown]] |
|||
* Language pairs can be tested directly from the Github source directory, without installing them ('make install'). You can just directly point to a mode file and use it. |
|||
* [[Language pair packages#List of ready-to-use packages|Online language pairs]] can be used within the application without the need of having them locally. |
|||
'''Version 1.3 (dec 2008)''' |
|||
[[Image:Wiki test case paste.png|thumb|400px|right|Apertium-viewer showing a [[Wiki regression testing]] case text ready to be pasted.]] |
|||
[[Image:Apertium-Viewer_Wiki_test_case_import.png|thumb|400px|right|Apertium-viewer import of a [[Wiki regression testing]] case.]] |
|||
* Up to 10 texts can be stored for later use |
|||
* Text field with keyboard focus is highlighted |
|||
'''Version 1.4 (apr 2010)''' |
|||
* Highlighting: Different colors for ambigious and unrecognized words, and for chunks |
|||
* A "Hide intermediate" button hides all but input and output text |
|||
'''Version 1.5 (nov 2010)''' |
|||
* Option to ignore error messages from commands (stderr) to make it usable for Gramtrans stuff |
|||
'''Version 2.0 (aug 2012)''' |
|||
* Removed the requirement of a local Apertium installation, and offers a much higher translation speed, based on [[lttoolbox-java]]. External processing can still be enabled in the options. |
|||
* Support for the 25 [[Language pair packages#List of ready-to-use packages|online language pairs]]. All these pairs can be used within the application without the need of having them locally. |
|||
* Full and meaningful names for the modes (for instance, "Basque → Spanish" instead of "eu-es"). |
|||
'''Version 2.1 (april 2015)''' |
|||
* Automatically store separate input text for each source language |
|||
'''Version 2.3 (may 2015)''' |
|||
* If you switch to a new language, a bundled example phrase is shown |
|||
* It's become a development platform! You can easily view/edit the concerned dictionaries and compile from within the tool! |
|||
For developers that installed pairs from SVN source: |
|||
* Click on a command to edit the source code. |
|||
* The tool validates XML dictionary and transfer files. |
|||
* After a change, you can recompile the pair and immediately see the result |
|||
'''Version 2.4 (may 2015)''' |
|||
* Support for trace of transfer/interchunk - with links to the applied rules - also works for online modes |
|||
* Support for editing the .lexc source file from a HFST binary file |
|||
'''Version 2.5 (may 2015)''' |
|||
* Easy tool to download and compile language pair from SVN (using [https://github.com/unhammer/apertium-get apertium-get]) |
|||
* "Edit | Search for development language pairs" will find most language pairs on your system so you dont have to load modes |
|||
* List of modes can be arbitrarily large and contain commments |
|||
'''Version 2.5.2 (august 2015)''' |
|||
* Option to edit source code in external editor |
|||
* About box: Show Environment variables and other stuff that might help locating problems |
|||
* Userfriendly Download menu |
|||
* Automatic checks if a new version of Apertium-viewer is available |
|||
'''Version 2.5.3 (july 2017)''' |
|||
* Fix: Mode lines with quotes and spaces are now handled correctly |
|||
'''Version 2.5.4 (july 2018)''' |
|||
* Fix online language pairs (path had moved) |
|||
=== Version 2.5.5 (oct 2019) === |
|||
* External editor can be specified. Jumping to line numbers works as well. |
|||
* Fixed internal editor works with Java JDK 9 to 13 |
|||
* lttoolbox-java kan read files compiled with lttoolbox version 3.5.0 |
|||
* '''note''' lttoolbox-java currently lacks support for functionality added the last 5 years - and it doesent work in Java JDK 9+. Use C++ version instead. |
|||
== Troubleshooting == |
|||
=== Troubleshooting if it won't start === |
=== Troubleshooting if it won't start === |
||
Line 41: | Line 141: | ||
On Linux the file to delete would be: |
On Linux the file to delete would be: |
||
~/.java/.userPrefs/apertiumview/prefs.xml |
rm -f ~/.java/.userPrefs/apertiumview/prefs.xml |
||
B) remove the problematic .mode. You can do that by uninstalling language pairs and/or doing 'make clean' in your SVN pairs. |
|||
B) remove the problematic .mode. You can do so by uninstalling language pairs. |
|||
===OSX troubleshooting === |
===OSX troubleshooting === |
||
Line 55: | Line 154: | ||
=== Mac users === |
=== Mac users === |
||
Many modern macs come with an old JDK 1. |
Many modern macs come with an old JDK 1.6 or earlier. Make sure JDK 8 is installed and paste |
||
'/Library/Internet Plug-ins/JavaAppletPlugin.plugin/Contents/Home/bin/java' -jar ~/apertium-viewer.jar |
|||
into the terminal |
into the terminal |
||
== Getting, compiling and running apertium-viewer from source == |
== Getting, compiling and running apertium-viewer from source == |
||
Check out the source code (Netbeans project) from the [https://sourceforge.net/p/apertium/svn/HEAD/tree/trunk/apertium-viewer/ subversion repository]. |
|||
Check out the source code (Netbeans project) from https://github.com/apertium/apertium-viewer. |
|||
<pre> |
<pre> |
||
git clone https://github.com/apertium/apertium-viewer |
|||
cd apertium-viewer |
cd apertium-viewer |
||
ant |
|||
ant run |
ant run |
||
</pre> |
</pre> |
||
To run it's easiest just to type 'ant run' or use Netbeans to compile. |
To run it's easiest just to type 'ant run' or use Netbeans to compile. |
||
You might need to specify where to look for JDK, like: |
|||
<pre> |
|||
ant -Dplatforms.default_platform.home=/usr run |
|||
</pre> |
|||
You need a copy of http://wiki.apertium.org/wiki/Lttoolbox-java (put lttooolbox.jar in lib/ or link the projects) |
|||
== TODO == |
|||
== Testing unreleased language pairs from subversion == |
|||
At startup Apertium-viewer will scan for languages installed on the system. |
|||
But you don't need to install your own language pairs anywhere to use it! All what is needed is to compile the language pair with 'make' and point to the .mode file generated. |
|||
Just choose File | Load mode and select the mode file from the language pair. |
|||
[[Image:Screenshot-jApertiumView-OpenMode.png|thumb|300px|right|Opening a mode file]] |
|||
Since version 2.0 [[Language pair packages#List of ready-to-use packages|online language pairs]] are also supported. You can choose any of the 24 online pairs that are available and work with them as if they where installed locally, even if they aren't. |
|||
See development in https://github.com/apertium/apertium-viewer/commits/master |
|||
==Keyboard shortcuts== |
|||
* Alt-U: Set/unset 'mark unknown words' |
|||
* Alt-I: Fit text: Automatically resising panes. Stages with unchanged text are automatically collapsed. |
|||
* Alt-C: Copy All: Puts text for all stages into clipboard |
|||
* Alt-S: Hide/Show commands (for clearer view) |
|||
* Ctrl-0/Ctrl-1 brings focus to the first pane (input), |
|||
* Ctrl-2 brings focus to the to the second pane (etc). |
|||
* Ctrl-9 brings focus to the last pane (output). It autoscrolls to make the panes fully visible. |
|||
* Ctrl-Pgup, Ctrl-PgDn: Cycle throgh the text panes |
|||
* Ctrl-Z/Ctrl-Y Undo/redo on a per text-pane/stage basis |
|||
* Ctrl-T: Make test case: Text can be copied directly into a [[Regression testing]] wiki page (also using Tools | Make Test Case...). |
|||
* Ctrl-I: Import Wiki text case |
|||
==== Feature requests/bugs ==== |
|||
==Features== |
|||
* Syntax highlighting. If a surface form has an ambigious analysis its shown in red. If you click on an alternative it is selected (basically, between / /) and can be removed it pressing Delete key. |
|||
[[Image:Screenshot-jApertiumView-3.png|thumb|400px|right|A click on an ambigious analysis selects one posibility (press Del to delete it). Also the freeze button is shown.]] |
|||
* Views can be frozen/paused to not propagate changes |
|||
* Zoom button to get a detached window (particularly input and output windows). |
|||
[[Image:Screenshot-Apertium-viewer-1.png|thumb|400px|right| When the text is the same as on the former stage it is shown with a yellow background. Commands have been hidden for a clearer view. |
|||
Coloring scheme for version 1.4 is shown]] |
|||
* Language pairs can be tested directly from the SVN source directory, without installing them ('make install'). Unlike [Apertium-view], it doesent use dbus. Rather you can just directly point to a mode file and use it. |
|||
* [[Language pair packages#List of ready-to-use packages|Online language pairs]] can be used within the application without the need of having them locally. |
|||
* Run via Java WebStart, so user doesent have to install anything (apart from Java). However, if you plan on developing a pair in SVN you'll need to install Apertium to compile the dictionaries. |
|||
* Even if a file is saved, the editor sometimes still warns about unsaved changes |
|||
=== Version 1.3 (dec 2008) === |
|||
* Create a dedicated lexer (see http://jflex.de/) for our dictionary format |
|||
[[Image:Wiki test case paste.png|thumb|400px|right|Apertium-viewer showing a Wiki [[Regression testing]] case text ready to be pasted.]] |
|||
* Polish the editor, create better autocompletion |
|||
[[Image:Apertium-Viewer_Wiki_test_case_import.png|thumb|400px|right|Apertium-viewer import of a Wiki [[Regression testing]] case.]] |
|||
* Integrate tools from apertium-dixtools |
|||
* Up to 10 texts can be stored for later use |
|||
* Text field with keyboard focus is highlighted |
|||
* If it can't auto-find the source, maybe it could ask for (and store) the location of the source? (Should probably also be editable for the auto-found sources, in case it finds the wrong file.). Most of the time I find the files, and if not I try some 'desperate searches' using wildcards. I'll do a select list of I get to the 'desperate' step and remember the decision. The problem is, what if the user chooses the wrong file? |
|||
=== Version 1.4 (apr 2010) === |
|||
I would also need an option to select another file.. |
|||
* If I use Ctrl-F to search a word, and then click in the editor with the mouse, I jump back to where I was before searching |
|||
* Much improved highlighting: Different colors for ambigious and unrecognized words, and for chunks |
|||
* A "Hide intermediate" button hides all but input and output text |
|||
=== Version 1.5 (nov 2010) === |
|||
* Option to ignore error messages from commands (stderr) to make it usable for Gramtrans stuff |
|||
=== Version 2.0 (aug 2012) === |
|||
* Completely based on [[lttoolbox-java]]. This removes the requirement of a local Apertium installation, and offers a much higher translation speed. External processing can still be enabled in the options. |
|||
* Support for the 25 [[Language pair packages#List of ready-to-use packages|online language pairs]]. All these pairs can be used within the application without the need of having them locally. |
|||
* Full and meaningful names for the modes (for instance, "Basque → Spanish" instead of "eu-es"). |
|||
=== Version 2.1 (april 2015) === |
|||
* More robust and user friendly startup and UI |
|||
* Automatically store separate input text for each source language |
|||
* One big JAR file (easyer than the dist/lib/ folder) |
|||
Please report bugs to https://github.com/apertium/apertium-viewer/issues |
|||
===Feature requests/bugs=== |
|||
* Restoring of view sizes after restart is not perfect yet (press Fit to text to fix) |
|||
* Shrinking view sizes not perfect yet (press Fit to text a few times to fix) |
|||
* Moving chunks as units rather than text. |
|||
: foo{ bar } baz { bin } → baz{ bin } foo { bar } |
|||
* Re-use the processes instead of respawning (use null-flush) |
|||
* Use apertium-transfer with the -t option, catching and parsing stderr so that rule numbers can be displayed. |
|||
==Related software== |
==Related software== |
||
* [[Apertium-view]] is a simpler version of the same program and coded in Python instead of Java and |
* [[Apertium-view]] is a simpler version of the same program and coded in Python instead of Java and requires dbus and that you install your language pairs. |
||
* [[Apertium-view.sh]] is a short shell script that just displays output from all parts of the pipeline, no interactive features |
* [[Apertium-view.sh]] is a short shell script that just displays output from all parts of the pipeline, no interactive features |
||
* [[Apertium-tolk]] is similar to, but much simpler than Apertium-viewer. It only has an input window and an output window. Where Apertium-viewer is aimed at developers, Apertium-tolk is intended to be as user friendly as possible. |
* [[Apertium-tolk]] is similar to, but much simpler than Apertium-viewer. It only has an input window and an output window. Where Apertium-viewer is aimed at developers, Apertium-tolk is intended to be as user friendly as possible. |
Latest revision as of 20:54, 20 February 2022
Apertium-viewer is a tool to view and edit the output of the various stages of an apertium translation.
The various stages update while you type, and you can make change in any of the stages and see what then happens in the subsequent stages. Really invaluable when you want to work with and understand a language pair.
Contents
Installing and running apertium-viewer[edit]
You don't need to install Apertium to try it out. Only requirement is that you have Java 7 or later installed.
Download apertium-viewer.jar from github and save it to your hard drive. Double-click on apertium-viewer.jar (or right click on it and open with Java Runtime)
Or, from the command line, type:
wget https://github.com/apertium/apertium-viewer/releases/download/2.6.0/apertium-viewer.jar -O apertium-viewer.jar java -Xmx500m -jar apertium-viewer.jar
(the parameter -Xmx500m is only neccesary if you want to edit very large dictionary files)
Testing unreleased language pairs from Github[edit]
At startup Apertium-viewer will scan for languages installed on the system, but you really don't need to install your own language pairs anywhere to use it. Just compile the language pair with 'make' and point to the .mode file generated: Choose File | Load mode and select the mode file from the language pair.
The online language pairs are also supported. You can choose any of the 24 online pairs that are available and work with them as if they where installed locally, even if they aren't.
Keyboard shortcuts[edit]
- Alt-U: Set/unset 'mark unknown words'
- Alt-I: Fit text: Automatically resising panes. Stages with unchanged text are automatically collapsed.
- Alt-C: Copy All: Puts text for all stages into clipboard
- Alt-S: Hide/Show commands (for clearer view)
- Ctrl-0/Ctrl-1 brings focus to the first pane (input),
- Ctrl-2 brings focus to the to the second pane (etc).
- Ctrl-9 brings focus to the last pane (output). It autoscrolls to make the panes fully visible.
- Ctrl-Pgup, Ctrl-PgDn: Cycle throgh the text panes
- Ctrl-Z/Ctrl-Y Undo/redo on a per text-pane/stage basis
- Ctrl-T: Make test case: Text can be copied directly into a Wiki regression testing wiki page (also using Tools | Make Test Case...).
- Ctrl-I: Import Wiki text case
Features[edit]
- Syntax highlighting. If a surface form has an ambigious analysis it's shown in red. If you click on an alternative it is selected (basically, between / /) and can be removed it pressing Delete key.
- Views can be frozen/paused to not propagate changes
- Zoom button to get a detached window (particularly input and output windows).
- Language pairs can be tested directly from the Github source directory, without installing them ('make install'). You can just directly point to a mode file and use it.
- Online language pairs can be used within the application without the need of having them locally.
Version 1.3 (dec 2008)
- Up to 10 texts can be stored for later use
- Text field with keyboard focus is highlighted
Version 1.4 (apr 2010)
- Highlighting: Different colors for ambigious and unrecognized words, and for chunks
- A "Hide intermediate" button hides all but input and output text
Version 1.5 (nov 2010)
- Option to ignore error messages from commands (stderr) to make it usable for Gramtrans stuff
Version 2.0 (aug 2012)
- Removed the requirement of a local Apertium installation, and offers a much higher translation speed, based on lttoolbox-java. External processing can still be enabled in the options.
- Support for the 25 online language pairs. All these pairs can be used within the application without the need of having them locally.
- Full and meaningful names for the modes (for instance, "Basque → Spanish" instead of "eu-es").
Version 2.1 (april 2015)
- Automatically store separate input text for each source language
Version 2.3 (may 2015)
- If you switch to a new language, a bundled example phrase is shown
- It's become a development platform! You can easily view/edit the concerned dictionaries and compile from within the tool!
For developers that installed pairs from SVN source:
- Click on a command to edit the source code.
- The tool validates XML dictionary and transfer files.
- After a change, you can recompile the pair and immediately see the result
Version 2.4 (may 2015)
- Support for trace of transfer/interchunk - with links to the applied rules - also works for online modes
- Support for editing the .lexc source file from a HFST binary file
Version 2.5 (may 2015)
- Easy tool to download and compile language pair from SVN (using apertium-get)
- "Edit | Search for development language pairs" will find most language pairs on your system so you dont have to load modes
- List of modes can be arbitrarily large and contain commments
Version 2.5.2 (august 2015)
- Option to edit source code in external editor
- About box: Show Environment variables and other stuff that might help locating problems
- Userfriendly Download menu
- Automatic checks if a new version of Apertium-viewer is available
Version 2.5.3 (july 2017)
- Fix: Mode lines with quotes and spaces are now handled correctly
Version 2.5.4 (july 2018)
- Fix online language pairs (path had moved)
Version 2.5.5 (oct 2019)[edit]
- External editor can be specified. Jumping to line numbers works as well.
- Fixed internal editor works with Java JDK 9 to 13
- lttoolbox-java kan read files compiled with lttoolbox version 3.5.0
- note lttoolbox-java currently lacks support for functionality added the last 5 years - and it doesent work in Java JDK 9+. Use C++ version instead.
Troubleshooting[edit]
Troubleshooting if it won't start[edit]
If the wiewer wont start up and you get something like this in the console
Unregognized parameter: ? LTProc3.2j: process a stream with a letter transducer USAGE: LTProc [-c] [-a|-g|-n|-d|-b|-p|-s|-t] fst_file [input_file [output_file]]
then it means that you've hit an internal bug that prevents the viewer from starting: The viewer is internally using lttoolbox-java for processing (when the viewer starts, it will try to use lttoolbox-java on the last used language pair, but if that pair is using an option unkown to lttoolbox-java, then the program will EXIT, making you unable to switch to another mode!).
The solution A) either is to delete a preferences file that apertium-viewer uses to remember the last used pair. On Linux the file to delete would be:
rm -f ~/.java/.userPrefs/apertiumview/prefs.xml
B) remove the problematic .mode. You can do so by uninstalling language pairs.
OSX troubleshooting[edit]
Delete the preferences file:
Users/<yourusername>/Library/Preferences/com.apple.java.util.prefs.plist
If this still doesn't work try recompiling the program from source (run, ant run) --Jonasfromseier 17:09, 6 May 2013 (UTC)
Mac users[edit]
Many modern macs come with an old JDK 1.6 or earlier. Make sure JDK 8 is installed and paste
'/Library/Internet Plug-ins/JavaAppletPlugin.plugin/Contents/Home/bin/java' -jar ~/apertium-viewer.jar
into the terminal
Getting, compiling and running apertium-viewer from source[edit]
Check out the source code (Netbeans project) from https://github.com/apertium/apertium-viewer.
git clone https://github.com/apertium/apertium-viewer cd apertium-viewer ant run
To run it's easiest just to type 'ant run' or use Netbeans to compile. You might need to specify where to look for JDK, like:
ant -Dplatforms.default_platform.home=/usr run
You need a copy of http://wiki.apertium.org/wiki/Lttoolbox-java (put lttooolbox.jar in lib/ or link the projects)
TODO[edit]
See development in https://github.com/apertium/apertium-viewer/commits/master
Feature requests/bugs[edit]
- Even if a file is saved, the editor sometimes still warns about unsaved changes
- Create a dedicated lexer (see http://jflex.de/) for our dictionary format
- Polish the editor, create better autocompletion
- Integrate tools from apertium-dixtools
- If it can't auto-find the source, maybe it could ask for (and store) the location of the source? (Should probably also be editable for the auto-found sources, in case it finds the wrong file.). Most of the time I find the files, and if not I try some 'desperate searches' using wildcards. I'll do a select list of I get to the 'desperate' step and remember the decision. The problem is, what if the user chooses the wrong file?
I would also need an option to select another file..
- If I use Ctrl-F to search a word, and then click in the editor with the mouse, I jump back to where I was before searching
Please report bugs to https://github.com/apertium/apertium-viewer/issues
Related software[edit]
- Apertium-view is a simpler version of the same program and coded in Python instead of Java and requires dbus and that you install your language pairs.
- Apertium-view.sh is a short shell script that just displays output from all parts of the pipeline, no interactive features
- Apertium-tolk is similar to, but much simpler than Apertium-viewer. It only has an input window and an output window. Where Apertium-viewer is aimed at developers, Apertium-tolk is intended to be as user friendly as possible.