LearnLib is a free, open source (Apache License, v2.0) Java library for automata learning algorithms.
LearnLib is mainly developed at the Dortmund University of Technology, Germany. Its original purpose is to provide a framework for research on automata learning algorithms as well as for their application in practice.
Please note that the development of LearnLib is still in a very early stage. The public version is a re-implemented version of the former closed-source version of LearnLib. It does not yet have the complete functionality of the original version, but features will be added and made available as time permits. On the other hand, everyone is invited to contribute.
Also please note that many parts of the library have not yet been thoroughly tested.
For simply using LearnLib, you may use the Maven artifacts which are available in the Maven Central repository. It is also possible to download a bundled distribution artifact, if you want to use LearnLib without Maven support. Note, that LearnLib requires Java 8.
If you intend to use development versions of LearnLib, simply clone the development branch of the repository
git clone -b develop --single-branch https://github.com/LearnLib/learnlib.git
and run a single mvn clean install
.
This will build all the required maven artifacts and will install them in your local Maven repository, so that you can reference them in other projects.
If you plan to use a development version of LearnLib in an environment where no Maven support is available, simply run mvn clean package -Pbundles
.
The respective JARs are then available under distribution/target/bundles
.
Note: Development versions of LearnLib usually depend on development versions of AutomataLib. For building development versions of AutomataLib, see the corresponding documentation on the project's README.
For developing the code base of LearnLib, it is suggested to use one of the major Java IDEs, which come with out-of-the-box Maven support.
-
For IntelliJ IDEA:
- Select
File
->New
->Project from existing sources
and select the folder containing the development checkout. - Choose "Import Project from external model", select "Maven" and click
Next
. - Configure the project to your liking, but make sure to check "Import Maven projects automatically" and have "Generated sources folders" set to "Detect automatically".
- Click
Next
until the project is imported (no Maven profile needs to be selected). - In order to have both development versions of AutomataLib and LearnLib available at once, continue to import AutomataLib as documented in the project's README, but choose
File
->New
->Module from existing sources
as the first step.
- Select
-
For Eclipse:
- Note: LearnLib uses annotation processing on several occasions throughout the build process. This is usually handled correctly by Maven, however, for Eclipse you need to install the m2e-apt-plugin and activate annotation processing afterwards (see the issue #32).
- Select
File
->Import...
and select "Existing Maven Projects". - Select the folder containing the development checkout as the root directory and click
Finish
. - In order to have both development versions of AutomataLib and LearnLib available at once, continue to import AutomataLib as documented in the project's README.
- Maven Project Site: latest release | older versions
- API Documentation: latest release | older versions
- Q&A @ Google Groups -- General questions regarding the usage of LearnLib.
- Discussion @ Google Groups -- Discussions about the internals of LearnLib.
- Internal (private) @ Google Groups -- Discussions about future development plans.
- Markus Frohme (2017 - )
- Falk Howar (2013 - )
- Malte Isberner (2013 - 2015)