Home Up

API Design
API Design EE 547 Project ComS 572 Project

 

Pattern
Data
Node and Model
Map
Algorithm
Parameters
Events

JSOMap API Design

Introduction

JSOMap is a Java-based package for working with Self-Organizing Maps.  Utilizing object-oriented and smart software design principles, it is intended to be incredibly easy to use in a variety of applications, from pure number crunching to interactive demos, while also being very flexible and supportive of customization. 

A collection of Java interfaces specifies the different parts involved in the SOM algorithm, and is backed by fully functioning default implementation classes, ready for use by the user.  Custom implementations are easily integrated into the existing class structure since the API refers to interfaces, not concrete classes.

The sections below provide a brief overview of the main interfaces in the JSOMap API.  Each section also links to another document, which discusses the design and use of that interface in detail.  The other documents also describe any implementations of the interface.

 

Pattern

Figure 1.  UML diagram for the Pattern interface.

The Pattern interface represents a basic unit of data in JSOMap.  Traditionally, a pattern is a numerical vector, like .  However, JSOMap uses a more abstract notion of a pattern.  Thus, things that don’t fit well into a vector, such as a string of characters or a generic set of objects, can use their own custom data structures that implement Pattern.

View the Pattern design document.

 

Data

Figure 2.  UML diagram for the Data interface.

The Data interface represents a collection of patterns.  This interface is used by the rest of the JSOMap API for accessing the data used by the SOM.  The patterns can be stored in any data structure, as long as they can be accessed by an integer index. 

View the Data design document.

 

Node and Model

Figure 3.  UML diagram for the Node and Model interfaces.

The Node interface represents a node in the map.  Each node has both a model and an underlying pattern.  The pattern of the node represents the node’s position in the map. 

Likewise, the Model interface represents a model of a node.  Each model has both a corresponding node and an underlying pattern.  The pattern of a model is of the same type as the data patterns, since that is what it is modeling.

View the Node and Model design document.

 

Map

Figure 4.  UML diagram for the Map interface.

The Map interface represents the actual map.  Since the map is made up of nodes and models, the Map interface specifies methods for accessing and setting the nodes and models.  It also specifies methods for accessing and setting the topology of the nodes.

View the Map design document.

 

Algorithm

Figure 5.  UML diagram for the Algorithm interface.

The Algorithm interface represents the algorithm that adjusts the models of the map so that the map approximates the distribution of the data patterns.  Every algorithm uses data, a map, and some parameters, so the Algorithm interface specifies methods for accessing and setting these objects.  It also specifies two control methods for starting and stopping the algorithm.

View the Algorithm design document.

 

Parameters

Figure 6.  UML diagram for the Parameters interface.

Every SOM algorithm uses parameters.  These can include the maximum number of iterations, the distance metric, the neighborhood function, etc.  Also, different SOM algorithms can use different parameters.  The Parameters interface represents a collection of parameters used by a SOM algorithm.

View the Parameters design document.

 

Events

Figure 7.  UML diagram for the JSOMap event listener interfaces.

JSOMap provides support for two types of events: algorithm events and configuration events.  Algorithm events occur during the execution of an algorithm (see the EventAlgorithm description in the Algorithm section) and configuration events occur when the algorithm, the map, or the parameters is configured.

View the Events design document.

 

Other Documentation

Javadoc
Design document (pdf)
Creating a new pattern type
Creating a new algorithm

 

 

SourceForge.net Logo

Send mail to zcox@iastate.edu with questions or comments about this web site.
Last modified: March 04, 2002