SETUP INSTRUCTIONS for SINGLE USER LexDB ======================================== $ export MyLexDB=erg $ createdb $MyLexDB [NOW edit SQL script file 'su-init.sql' to specify the LexDB fields] $ psql $MyLexDB => \i su-init.sql [now load the field mappings...] => \copy dfn from lexdb.dfn => \q [NOW load your grammar, as normal, in the LKB] [then open a connection to the empty LexDB...] LKB(): (initialize-lexdb :type :single-user :dbname "MYLEXDB") [and export you lexicon to dump files for the database...] LKB(): (export-lexicon) [import the dump file into the database...] $ psql $MyLexDB => \copy lex from /home/bmw20/tmp/LinGO.rev LKB->Set Options->*LEXDB-PARAMS* = ((:dbname "MYLEXDB") (:type :single-user)) [NOW reload grammar in LKB, and you should see a messages similar to the following: ... (LexDB) connected to LexDB erg2@localhost:5432 as database user bmw20 (LexDB) total 'lex' entries available: 23055 ... ] [now we initialize the table of orthography keys...] LKB(): (new-lex-key-table *lexicon*) [and the database SEMI...] LKB(): (new-semi *lexicon*) THAT'S IT Description: - lexicon entries should be made available in 'lex' (which can be a table or a view) - the mapping from database fields into AVM path-values in specified in 'dfn' - a table 'lex_key' is generated by '(new-lex-key-table *lexicon*)' and is used for lexicon lookup - a number of tables (and a view) 'semi_*' are generated by '(new-semi *lexicon*)' and store the database object SEMI - you are responsible for ensuring that there exists an appropriate index on the 'name' field of 'lex' (or things will run slow...) - you are free to define 'lex' as a view (eg. you could store a large number of lexicon entries in another table 'all_entries', create a table 'active'to specify which entry 'name's you want in view, then define 'lex' as: CREATE VIEW lex AS active JOIN all_entries USING name;