Clone wiki

org.openmarkov / OpenMarkov's_organization

OpenMarkov's organization

OpenMarkov is structured as a set of subprojects. The division has been designed so that dependencies are minimized and the application can be easily extended. Each subproject is stored in a different Bitbucket repository and deployed as a Maven artifact on our Nexus server, as explained below.

Maven dependencies

At this moment OpenMarkov consists of 44 subprojects that follow the next structure:

Maven dependency structure

The packages "heuristic" and "learning", colored in blue, comprise several subprojects.

"Heuristic" contains all the heuristics implemented in OpenMarkov:

Heuristic dependency structure

The "learning" package contains the learning algorithms, the metrics, and the graphical user interface for automatic and interactive learning.

Heuristic dependency structure


The code is stored in two servers: Bitbucket ( and Nexus (


Bitbucket is a web-based hosting system, similar to SourceForge, JavaSource, GitHub or Google Code. It offers two control version systems: Mercurial and Git. It also offers wikis, issue trackers, and other facilities.

We use Git to store in Bitbucket a working copy of OpenMarkov's Java source code, as well as this wiki and an issue tracker.


Nexus is an application for managing software repositories.

We use Maven to deploy OpenMarkov's code in our nexus server,, in the form of snapshots and stable releases. This repository contains a .jar file for each subproject. The .jar file for the subproject "full" includes all the other .jar files and allows the user to run OpenMarkov's GUI as a Java application. It can also be downloaded from the users' page.

If you wish to browse OpenMarkov's code or use it as an API, install an IDE and then download OpenMarkov's repositories.