|
JSOMap API DesignIntroductionJSOMap 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. MapFigure 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.
AlgorithmFigure 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.
ParametersFigure 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.
EventsFigure 7. UML diagram for the JSOMap event listener interfaces. View the Events design document.
Other Documentation
|
Send mail to zcox@iastate.edu with
questions or comments about this web site.
|