Professor George Miller of the Cognitive Science Laboratory of Princeton University directed the development a lexicographic database called WordNet.
Princeton maintains a server by which the WordNet database can be browsed via the World Wide Web.
The WordNet database is implemented as a set of text files. Mark Nahabedian (naha@ai.mit.edu) has developed an interface to this database written in CommonLisp. This software provides an interface by which CommonLisp programs can access lexicgraphic data from WordNet.
There is also a simple browser implemented in CLIM for navigating the WordNet database.
This software represents parts of speech as lisp keyword symbols: :noun, :verb, :adjective and :adverb.
The current version of this software only knows how to find WordNet index and data files as they are named in the UNIX implementation of WordNet. Set the value of the parameter wn::+wordnet-database-directory+ in the file "wordnet-database-files.lisp" to the pathname of the directory where these files can be found.
The current version has only been tested with Symbolics Genera and Macintosh CommonLisp (thanks to Andrew Blumberg, blumberg@ai.mit.edu). The software might require slight modification to run on other Lisp Implementations.
All the files can be found
here. A single file in UNIX
tar
format is also available.
The Base Layer
The base layer defines the packages and export lists for this software. It is implemented by these files:
This layer is implemented by the file wordnet-database-files.lisp.
This layer depends on the files in the base layer.
Record Parsing
The functions in this layer take strings as returned by the functions of the record extraction layer. They parse those strings
into components, returning them as multiple values.
This layer is implemented by the file parse-wordnet-data.lisp.
This layer depends on the files in the base layer.
Data Representation
The data representation was chosen to parallel WordNet's own representation. It models index entries, synonym sets and pointers. Depending on ones application, there might well be more useful ways to represent the WordNet lexicon. Practice might lead us to modify this representation or develop a new one.
This layer is implemented by the file representation.lisp.
This layer depends on the files in the base layer,
the record extraction layer
and the record parsing layer.
Pointer Reasoning
This layer provides some functions for operating on the graph formed by WordNet synonym sets and the pointer relationships among them. Here follows a description of the operations currently provided. This set is expected to grow with time.
This Layer is implemented by the file relationship-algorithms.lisp.
This layer depends on the data representation layer.
Browser
The browser provides a simple user interface for examining the wordnet database. It defines CLIM presentation types and commands for displaying the objects defined in the data representation layer.
It depends on the data representation layer, and on the layers on which that layer depends.
The browser also depends on a domonstration lisp interactor implemented in CLIM, which in the Symbolics Genera CLIM distribution can be found in the directory "sys>clim>rel-2>demo>listener.lisp".
The command :Lookup takes a string as argument. It looks up that string in the indices and prints out a list of index entries that were found.
You can click on one of these index entries to get a list of the synonym sets that it refers to.
Clicking on a synonym set will list the pointer references that it has to other
synsets. The presentation of the pointer includes a presentation of the synset
that it points to. You can click in it in turn to see its pointers.
Examples
Some examples have been written which illustrate the use of this software. Included are functions which list synonyms and antonyms for a specified word, and a function which lists the names and nicknames of the U.S. States. There is also a function which tries to identify the synset for a word having a sense most similar to a specified word by comparing distances along hypernym pointers among the synsets for the word being looked up and the sense indicating word.