Instructions for updating Agile to use KPML3.2 for Agile.

This information is project specific!!!
If you are not part of the Agile project then the instructions in this file are not relevant for you.


 

(This also assumes that certain fixes have been done to the Agile prototype that remove pointless redundancies between packages: Sergei V. has said that he has improved this. Sergei has also done some trial installation of a 3.2beta and reports that things are generally working.)

This note contains:


Installation.

The following needs to be done to use KPML3.2.

First, download and install your KPML3 version. Note that ONLY VERSIONS OF KPML3.2 DATED MAY 2000 OR AFTER are fully compatible with the latest Agile. If you have downloaded an older KPML3 this should therefore be replaced. (This is particularly for the font handling issues.) The easiest is to install KPML3 as a sister directory of the kpml2_0 directory that is already in the Agile integrated system directory. If you do this, then further changes are minimised.

Second, download the following new Agile-specific file to your newly created KPML3 directory:

and the Agile-specific file:

to the Agile root directory.

This latter file can be used for installing/compiling your KPML3 for the first time. If you have placed KPML3 alongside kpml2_0 as described above, then you need make no changes to this file. Just startup LWW4.1, and load this file, and KPML3 will be compiled. This must be done before you start the agile integrated system. When you already have a compiled KPML3 then you do not need to load this file again.

Third, copy/move the resources directory from kpml2_0 for Agile to your KPML3 directory, or new resources as required.

Finally, in the file start-agile.lisp change the directory for KPML: e.g.,

(defvar lpkpml (format nil "~a~a" cl-user::**agile-root** "kpml32\\")) 

and in the file a_integrate.lisp remove the particular explicit loading of KPML2 specific patches.

(concatenate 'string if::lpkpml "ExtraPatches/KPML2-agreement-patch")) 
(concatenate 'string if::lpkpml "ExtraPatches/agreement-patch-note")) 

Note also that IF YOU WANT A VERSION OF KPML FOR DEBUGGING AND DISPLAYING GENERATION WITH APPROPRIATE FONTS, THEN YOU WILL NEED TO LOAD THE LISPWORKS ESSENTIAL PATCHES FOR LWW4.1: THESE PATCHES ARE NO LONGER LOADED IN THE INTEGRATED AGILE SYSTEM WHICH IS OK FOR DEMOING GENERATION ONLY, BUT NO GOOD FOR DEVELOPMENT.

Without these patches any attempt in KPML to graph a generated structure or to display a non-Latin font will BREAK. (I think!) [And as usual, showing your own local fonts is not even a slight indication that this problem will not surface! I have given up for Windows98.] After doing all this, when you start agile with the Agile standard start-agile.lisp function, it will use your newly installed/copied KPML3 version rather than KPML2. If this checks out ok, with text being generated unchanged, then you can remove your KPML2 directory. CHECK FIRST!


New features.

Too numerous to mention--but immediately relevant to Agile (indeed, the ones I describe here have been explicitly requested, by you, so...) are at least the following.

First (this one for Serge): the morphology declaration for languages has been extended so that you can now explicitly state which file is to load the additional code necessary for running language specific morphology components. Previously this was all put in a file code-add.lisp, but this confused morphology-specific additions, which are going to be quite likely with general KPML code additions specific to particular languages, which should be virtually non-existent. Therefore, KPML 3.2 does not load code-add.lisp ever (if the appropriate flag is set, it will load the old file code-patches.lisp however). To make KPML load your morphology you must change your morphology declaration in the file properties.lisp for your language to something of the form (modelled on the Russian here):

(define-language-morphology-requirements 
    :language :RUSSIAN 
    :systemicized NIL
    :generator-fn ENGLISH-GRAMMATICAL-FEATURES-TO-LEXICAL-FEATURE
    :generator-file "code-add.lisp")

I don't know if the :generator-fn line is still necessary, but I left it in here because it was in the Russian resources. When the :generator-file line is present, whenever the properties.lisp file is loaded (usually when the language resource is loaded), the named generator file in that language directory will be loaded too. The generator file should be in the same directory as the properties file.

Second, the declaration define-language-font-requirements also in the properties.lisp file has been extended so that you can explicity specify a code-page for using with your language. Lets see what this does and if it helps (or breaks...). For example,

(define-language-font-requirements 
    :language :RUSSIAN 
    :font "Arial Cyr" 
    :code-page    948) 

Note that if you do not have the relevant Harlequin patches installed this will probably cause display to break even in your own language! Reports of success or otherwise will be very welcome.

Third, there is a much extended agreement operator (this one for Jiri). Examples and description of use is available here.

Finally, there is an additional declaration for the properties.lisp file that I would encourage you to use. It associates a brief description with a language and any special instructions required for loading the language. This will be used for largely automatic creation of webpages documenting and illustrating the individual language resources and for helping others to use the resources. The description will usually be presented on the web and so can include HTML and pointers to web sites where more details of the resources are given. Example of use:

(define-language-description (:language :english :style :html)
  "This is the Nigel grammar definition." 
  "Basic information about Nigel is in  "
  "Matthiessen (1998)  <i>Lexicogrammatical Cartography</i> ." 
  "More information    can be found <A HREF=\"Nigel-site\">here</A>.") 

    
Happy generating!
John Bremen, June 2nd. 2000