Environment for
Supported by Index-Structures


ELKI: Environment for DeveLoping KDD-Applications Supported by Index-Structures.


de.lmu.ifi.dbs.elki The base-package of the ELKI framework.
de.lmu.ifi.dbs.elki.algorithm Package to collect algorithms suitable as a task for the KDDTask main routine.
de.lmu.ifi.dbs.elki.algorithm.clustering Package collects clustering algorithms.
de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering Package to collect biclustering algorithms suitable as a task for the KDDTask main routine.
de.lmu.ifi.dbs.elki.algorithm.clustering.correlation Package to collect correlation clustering algorithms suitable as a task for the KDDTask main routine.
de.lmu.ifi.dbs.elki.algorithm.clustering.correlation.cash Helper classes for the CASH algorithm.
de.lmu.ifi.dbs.elki.algorithm.clustering.subspace Package to collect algorithms for clustering in axis-parallel subspaces, suitable as a task for the KDDTask main routine.
de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.clique Helper classes for the CLIQUE algorithm.
de.lmu.ifi.dbs.elki.algorithm.result Package to collect result classes for the results of algorithms.
de.lmu.ifi.dbs.elki.algorithm.result.clustering Package to collect result classes for the results of clustering algorithms.
de.lmu.ifi.dbs.elki.algorithm.result.clustering.biclustering Package to collect result classes for the results of biclustering algorithms.
de.lmu.ifi.dbs.elki.converter Converter classes as bridges between different formats.
de.lmu.ifi.dbs.elki.data Package collects basic classes for different data types, database object types and label types.
de.lmu.ifi.dbs.elki.database Package collects variants of databases and related classes.
de.lmu.ifi.dbs.elki.database.connection Provides database connection classes.
de.lmu.ifi.dbs.elki.distance Package collects distances and - in its subpackages - distance and similarity functions.
de.lmu.ifi.dbs.elki.distance.distancefunction Package collects distance functions.
de.lmu.ifi.dbs.elki.distance.similarityfunction Package collects similarity functions.
de.lmu.ifi.dbs.elki.distance.similarityfunction.kernel Package collects kernel functions.
de.lmu.ifi.dbs.elki.index Package collects variants of index structures.
de.lmu.ifi.dbs.elki.index.tree Package collects variants of tree-based index structures.
de.lmu.ifi.dbs.elki.index.tree.metrical Package collects metrical tree-based index structures.
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants Package collects variants of the M-Tree.
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mkapp Package collects classes for the MkAppTree
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mkcop Package collects classes for the MkCoPTree
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mkmax Package collects classes for the MkMaxTree
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktab Package collects classes for the MkTabTree
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mtree Package collects classes for the MTree
de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.util Package collects helper classes for the variants of the M-Tree.
de.lmu.ifi.dbs.elki.index.tree.spatial Package collects spatial tree-based index structures.
de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants Package collects variants of the R*-Tree.
de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.deliclu Package collects classes for the DeLiCluTree
de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.rdknn Package collects classes for the RdKNNTree
de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.rstar Package collects classes for the RStarTree
de.lmu.ifi.dbs.elki.index.tree.spatial.rstarvariants.util Package collects helper classes for the variants of the R*-Tree.
de.lmu.ifi.dbs.elki.logging Logging facility for controlling logging behaviour of the complete framework.
de.lmu.ifi.dbs.elki.math Package to support mathematical operations in various areas.
de.lmu.ifi.dbs.elki.math.linearalgebra Linear Algebra package provides classes and computational methods for operations on matrices.
de.lmu.ifi.dbs.elki.math.spacefillingcurves Package to collect implementations of space filling curves.
de.lmu.ifi.dbs.elki.math.statistics Package to support statistical tests and methods.
de.lmu.ifi.dbs.elki.normalization Provides classes and methods for normalizations (and reconstitution) of data sets.
de.lmu.ifi.dbs.elki.parser Package collects parser for different file formats and data types.
de.lmu.ifi.dbs.elki.persistent Package collects classes for persistent data management.
de.lmu.ifi.dbs.elki.preprocessing Package collects preprocessors used for data preparation in a first step of various algorithms or distance measures.
de.lmu.ifi.dbs.elki.properties Contains the property-file and related classes for property handling.
de.lmu.ifi.dbs.elki.utilities Package collects various classes and methods of global utility.
de.lmu.ifi.dbs.elki.utilities.heap Package collects variants of heap structures.
de.lmu.ifi.dbs.elki.utilities.optionhandling Package collects classes required for handling and description of options for any parameterizable class.
de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints Constraints allow to restrict possible values for parameters.
de.lmu.ifi.dbs.elki.utilities.output Helper-classes for output formatting.
de.lmu.ifi.dbs.elki.varianceanalysis Classes for analysis of variance by different methods.


ELKI: Environment for DeveLoping KDD-Applications Supported by Index-Structures.

ELKI is a generic framework for a broad range of KDD-applications and their development. For background, contact-information, and contributors see http://www.dbs.ifi.lmu.de/research/KDD/ELKI/.


The core class is KDDTask for command line interaction. This class' main method manages the reading of parameters from the standard input and passes the parameters to the corresponding classes which, in turn, could have parameters that expect parametrization.

visualization of parameterization

The database connection manages reading of inputfiles or databases and provides a Database-Object as a virtual database to the KDDTask. The KDDTask applies a specified algorithm on this database and collects the result from the algorithm. Finally, KDDTask prints the obtained result to a specified location.

visualization of passing of objects

How to make use of this framework


To use the KDD-Framework we recommend an executable .jar-file: elki.jar. You get a description of usage by calling java -jar elki.jar -h.

Development of new applications


To provide new applications one is simply to implement the specified interfaces. There are interfaces for a broad range of targets of development. Compare the tree of interfaces to get an overview concerning the provided interfaces.

Where are what parameters used for which purpose?

The main class KDDTask requires specification of an Algorithm to use, a DatabaseConnection to manage the input, and a filename where to deploy the output. However, by omitting specification of a filename for output, the results will be given to standard output, thus it may be piped directly to another application.

Furthermore a normalization can be specified for the input. You can additionally require to restore the original values for the output.

Which input is to be provided in what way is to be defined via parameters specifically for a certain DatabaseConnection.

The need for other parameters may differ from implementation to implementation. However, you need not to specify input nor output if you are going to implement an algorithm.

Release 0.1 (2008-07-10_1838)