Introduction

This document gives a brief introduction into the source code the the Databionic ESOM Tools for interested developers. More information can be found in the Javadoc and the source itself. If you have any questions or ideas for new features please contact us on the mailing lists.

Compiling

  1. Install a current Java development kit. We recommend version 1.5 but it should also work with 1.4.x.
  2. Install Maven 1.0.2.
  3. Download and unpack the source package or checkout the latest from CVS.
  4. Set the environment variable ESOM_HOME to the root folder of the package.
  5. Change to the src folder and execute maven jar install.
  6. You should now be able to run the tools located in the bin folder.
  7. If you prefer to use Eclipse, you need to
    1. Check out the source from CVS with Eclipse
    2. Change to the src folder and execute maven jar install.
    3. Refresh the Eclipse project to find the downloaded dependencies.
    4. Build with Eclipse

ESOM packages

databionics.esom
databionics.esom.coolingDefinition of cooling strategies. Add you own versions by implementing the interface Cooling.
databionics.esom.gridESOM grid. A grid holds the prototype vector and defines the map space topology by the function findNeighbors. We implemented 1D and 2D grids with various topologies. Possible extensions of this package include hexagonal grids, spherical grids, and 3D grids. Feel free to ask for assistance if you are interested in implementing these grids.
databionics.esom.guiThe basic GUI components of the ESOM analyzer
databionics.esom.neighborhoodDefinition of neighborhood kernels. Add you own versions by implementing the interface Neighborhood.
databionics.esom.rendererGlobal classes for visualization. The Renderer glues all visualization components together and creates the actual image.
databionics.esom.renderer.backgroundBackground visualization methods that all inherit from BackgroundRenderer. Most backgrounds create a matrix of height values based on the collection of prototype vectors in a grid. Feel free to ask for assistance if you are interested in implementing new background.
databionics.esom.renderer.foregroundForeground visualization methods that all inherit from ForegroundRenderer. Most foregrounds simply decide on a color for the bestmatches. Feel free to ask for assistance if you are interested in implementing new background.
databionics.esom.tool.*
databionics.esom.trainImplementation of training algorithms. All algorithms should inherit from SOM. The SOM class contains the basic algorithm broken down in elementary steps and methods for bestmatch search and neuron update. OnlineSOM and BatchSOM implement these steps in the corresponding order. Possible extensions of this package include algorithms for temporal SOM training or fast approximate training methods. Feel free to ask for assistance if you are interested in implementing new training methods.
databionics.esom.utilSome utility classes mainly for the GUI.

General packages

databionicsBase classes for all applications handling command line parsing and configuration file loading.
databionics.cliExtension of commons-cli with loading default values from config file.
databionics.guiUseful GUI classes like a panel displaying log4j messages and a dialog for running programs based on an XML description of the parameters.
databionics.ioLoading and saving of all file formats. Classes also act as data containers within the code.
databionics.mathPairwise distance calculation and Pareto Density Estimation.
databionics.modulesDescription of program parameters loadable from XML files. Running these programs as a job and watching the result.
databionics.projectManaging a collection of file types.
databionics.runnerHelper class to run external tools (non-Java).
databionics.textSome simple string routines including n-gram similarity.
databionics.utilSome utilities including searching for classes in a jar and reading an environment variable.