Differences between revisions 12 and 13
Revision 12 as of 2019-05-08 11:11:17
Size: 9070
Editor: JohnCarroll
Comment:
Revision 13 as of 2019-07-13 14:45:20
Size: 9078
Editor: JohnCarroll
Comment: new release of precompiled binaries
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
A new, fully open source version of the LKB ('LKB-FOS' for short) is currently under development. This is based on the 'classic' version of the LKB that has been developed over the past several years in Franz Allegro CL, but with the major difference that it is not dependent on any proprietary compilers, runtime environments or code libraries. The source code is in the DELPH-IN public repository [[http://svn.delph-in.net/lkb/branches/fos/]]. For convenience, precompiled binaries for macOS and Linux can be downloaded from [[http://users.sussex.ac.uk/~johnca/lkb_fos.tgz|lkb_fos.tgz]] [65.6 MB]. A Windows binary will be available by early summer 2019. A new, fully open source version of the LKB ('LKB-FOS' for short) is currently under development. This is based on the 'classic' version of the LKB that has been developed over the past several years in Franz Allegro CL, but with the major difference that it is not dependent on any proprietary compilers, runtime environments or code libraries. The source code is in the DELPH-IN public repository [[http://svn.delph-in.net/lkb/branches/fos/]]. For convenience, precompiled binaries for macOS and Linux can be downloaded from [[http://users.sussex.ac.uk/~johnca/lkb_fos.tgz|lkb_fos.tgz]] [65.1 MB]. A Windows binary should be available later in 2019.
Line 5: Line 5:
LKB-FOS has been developed using the tools and libraries ''SBCL'', ''McCLIM'' and ''SLIME'' (replacing Franz Allegro CL, CLIM and ELI). See the following sections for installation and usage instructions. LKB-FOS has been developed using the tools and libraries ''SBCL'', ''McCLIM'' and ''SLIME'' (replacing Franz Allegro CL, CLIM and ELI respectively). See the following sections for installation and usage instructions.

The Fully Open Source version of the LKB

A new, fully open source version of the LKB ('LKB-FOS' for short) is currently under development. This is based on the 'classic' version of the LKB that has been developed over the past several years in Franz Allegro CL, but with the major difference that it is not dependent on any proprietary compilers, runtime environments or code libraries. The source code is in the DELPH-IN public repository http://svn.delph-in.net/lkb/branches/fos/. For convenience, precompiled binaries for macOS and Linux can be downloaded from lkb_fos.tgz [65.1 MB]. A Windows binary should be available later in 2019.

LKB-FOS has been developed using the tools and libraries SBCL, McCLIM and SLIME (replacing Franz Allegro CL, CLIM and ELI respectively). See the following sections for installation and usage instructions.

LKB-FOS on macOS and Linux

To install LKB-FOS, follow the 'Manual Installation' instructions on the LkbInstallation page. You should unpack the files inside your directory $DELPHINHOME, which will create a new directory $DELPHINHOME/lkb_fos. Note that on macOS, for the environment variable DELPHINHOME to be correctly set when you start emacs or the LKB by double clicking, you should set this variable in your ~/.bash_profile file, not in ~/.bashrc. If you use the precompiled binary version of LKB-FOS, you do not need to install SBCL, McCLIM or SLIME.

On macOS, LKB-FOS requires the open source application XQuartz. If you don't already have XQuartz, download it from https://www.xquartz.org and install it. The LKB-FOS binary for macOS is lkb.darwin_x86_64. You can run this binary by typing its name in the Terminal application or in an xterm hosted by XQuartz. To start the LKB without going through the Unix command line, just double click the LKB.app application. Aquamacs http://aquamacs.org works well for running LKB-FOS as a process inside emacs.

On Linux, LKB-FOS requires the Unix application xclip, which is not installed by default in all Linux distributions. In Ubuntu, to download and install it you can run the command sudo apt-get install xclip. The LKB-FOS binary for Linux is lkb.linux_x86_64.

LKB-FOS supports the Linguistic User Interface (LUI): see the LkbLui pages for information on installing and using the LUI. Type (lui-initialize) and (lui-shutdown) to enable and disable it, respectively; alternatively set the environment variable LUI. The LUI executable is expected to be on the user's PATH.

To run LKB-FOS inside emacs, put the following block of lines in the file ~/.emacs in your home directory.

(let ((root (or (getenv "DELPHINHOME") "~/delphin")))
  (load (format "%s/lkb_fos/emacs/dot.emacs" root) nil t t))

Then, when emacs has started up, the following keystrokes will start LKB-FOS.

  Meta-x lkb RET

Features and Enhancements

Porting the LKB to an open source foundation has provided an opportunity to make some improvements to its code base. In addition, the use of a different underlying Lisp system (SBCL with McCLIM rather than Allegro CL and its native CLIM implementation) gives advantages in the areas of speed of processing, multilingual support, and visual appearance. Improved features include:

  • Dialogs: these have been reimplemented to improve their appearance, and a user-friendly file selector dialog has been added.
  • Parser local ambiguity packing: this was previously turned off by default, resulting in even moderately long or ambiguous sentences over-running the chart edge limit. A couple of minor packing/unpacking issues have been resolved and packing is now turned on by default.
  • Multilingual support: SBCL has excellent support for Unicode and McCLIM works well for Unicode output, so LKB-FOS can work with grammars using any language script.

Experienced LKB users might notice further refinements:

  • Responsive window resizing (file selector dialogs and parse tree windows reformat their contents when they are resized).
  • More informative window titles, able to display any Unicode character.
  • Info line in tree windows, showing details of the currently selected tree or tree node.
  • Type hierarchy display that includes a target type's ancestors as well as descendants, can be zoomed in and out, and can also show type constraints.
  • Much faster GLB computation for large type hierarchies.
  • Major speed improvements in the user interface, and also in parsing and generation.
  • Fixes the type hierarchy processing bug in LkbBugs, and incorporates some of the suggestions in LkbWishlist.

  • Implements the new TdlRfc specification of TDL syntax.

LKB-FOS contains all functionality of the classic version of the LKB except for [incr tsdb()] integration and the language model package. Refer to the README file for a more detailed, up-to-date list of bug fixes and new features.

Practical Hints and Tips

Text fields in dialogs do not respond to mouse or trackpad gestures (clicking / dragging), but expect keyboard commands using the arrow keys, backspace key and standard emacs key bindings. Useful commands for text fields are:

Ctrl-space: set mark
Esc-B / Esc-F: go backwards / forwards one word
Esc-Backspace / Esc-D: delete previous / next word

In addition, the following commands access the OS clipboard:

Ctrl-C: copy to clipboard the text between cursor and mark
Ctrl-X: cut to clipboard the text between cursor and mark
Ctrl-V: paste from clipboard at cursor
Ctrl-Z: undo the last change

For interactive input, on macOS the Input Sources menu can be used to switch between language scripts, and the Keyboard Viewer provides convenient multilingual text entry. For output, the LKB requires a Unicode-compatible font. There is no font substitution: all characters to be displayed have to be in the selected sans-serif and monospace fonts.

Suitable Unicode fonts are DejaVu Sans (attractive, and covering many language scripts), Code2000 (less attractive, but with even better coverage), or WenQuanYi Zen Hei (reasonably attractive, with full CJK coverage). (On macOS, these are not standard fonts so you will have to download them yourself - put them in /opt/X11/share/fonts/TTF/ - having first installed XQuartz). To select DejaVu Sans, use the following Unix command:

cat > ~/.fonts.conf <<!
<?xml version="1.0"?>
<fontconfig>
 <dir>/opt/X11/share/fonts/TTF</dir>
 <alias>
 <family>sans-serif</family>
 <prefer>
 <family>DejaVu Sans</family>
 <family>Code2000</family>
 <family>WenQuanYi Zen Hei</family>
 </prefer>
 </alias>
 <alias>
 <family>monospace</family>
 <prefer>
 <family>DejaVu Sans Mono</family>
 <family>Code2000</family>
 <family>WenQuanYi Zen Hei</family>
 </prefer>
 </alias>
</fontconfig>
!

You can verify that DejaVu Sans is selected by running the Unix commands

fc-match sans
fc-match mono

The output of these commands should be

DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"

You can then start up the LKB and it will use these fonts. Note that if you want to input or output non-ASCII characters, you should make sure you are using a Unicode locale such as en_US.UTF-8.

Problems

In macOS 10.12 and upwards, the 'App Translocation' security feature prevents LKB.app from working properly the first time it is launched. To fix this, drag LKB.app to the Desktop and then back again. This is enough to get it working.

Unanticipated errors may cause the LKB graphical interface to become unresponsive. This is because the underlying Lisp system is expecting the user to enter the debugger for that thread. If you are running the LKB inside emacs, a debugger buffer should open automatically. Otherwise, to enter the debugger manually, execute (sb-thread::release-foreground) at the Lisp prompt. You can then type backtrace to inspect the context of the error, and Ctrl-D to kill the thread. The interface should then start responding again.

If you see a message like the following

error finding frame source: Bogus form-number: the source file has probably changed too much to cope with.

this means that there was a previous error, and the error handler was not able to locate the LKB source code file containing the function that signalled that error (perhaps because you are running a precompiled binary). Ignore this error and look back in the system output for the original error message, e.g.

Syntax error at line 25204, character 2: In X_-_BRIDGE_LE, expected a documentation string after double quote character, but did not find two further double quotes
Ignoring (part of) entry for X_-_BRIDGE_LE

If you encounter unexpected problems using LKB-FOS, please email the support address for the LKB (and other LinGO resources): lingo@delph-in.net.

LkbFos (last edited 2019-07-13 14:45:20 by JohnCarroll)

(The DELPH-IN infrastructure is hosted at the University of Oslo)