The objective of this project is the implementation of self-organizing maps (SOM) to Java2 programming language and utilization of XML based application languages for information exchange and visualization. These self-organizing maps are a special case of neural networks, and are based on competitive learning and where the learning itself is unsupervised. The SOM is used for clustering and projecting the data onto a lower-dimensional display (usually a two-dimensional).
As a result of my Bachelor Thesis of Engineering the JavaSOM package, written in Java2 has been created, and it consists of two independent parts: JSOM and Clusoe. JSOM is the actual implementation of the Self-Organizing Maps algorithm and it contains all the functionality for training maps. Clusoe is merely a user friendly graphical user interface for controlling the JSOM. However, JSOM does not require the usage of Clusoe.
An XML document is used for controlling JSOM during the learning. Also all the required learning data is transferred to the JSOM in XML format. Special Document Type Definitions (DTDs) have been defined for these purposes.
The visualization of results (the trained map) is implemented in JSOM by using Scalable Vector Graphics (SVG), which is an XML application language. The results can also be visualized in the Portable Document Format (PDF). Even though PDF is not an XML application language it is still supported for its wide usage and popularity. However, the PDF is created by using other XML application languages, such as XSL Transformations (XSLT) and XSL Formatting Objects (XSL FO), for transforming the results into PDF.
As a conclusion of my thesis, both the implementation and the written work, the SOM algorithm and its many possible uses are now imported to the Java community knowledge pool for every one to use freely. It is now possible to easily build new applications, which have use for the SOM algorithm capabilities. This includes possible usage in servlets or standalone applications. The main focus for using JavaSOM package will probably be on some data-mining tools or similar applications.
JavaSOM is going to be developed further. So do not forget to list into the announcement mailing list.