BORN

Bayesian Ontology Reasoner

Build Status Maven Central

BORN is a probabilistic reasoner for BEL (Bayesian EL), which is an extension of the lightweight Description Logic EL. Bayesian Ontology Languages are a family of probabilistic ontology languages that allow to encode probabilistic information over the axioms of an ontology with the help of a Bayesian network. BORN uses the OWL API to read OWL 2 EL ontologies, and it can be used as a Protégé plug-in.

Download

<dependency>
  <groupId>de.tu-dresden.inf.lat.born</groupId>
  <artifactId>born-gui</artifactId>
  <version>0.3.0</version>
</dependency>

Usage

BORN can be used as a Protégé plug-in or as a standalone application.

To use it as a Protégé plug-in, copy the file born-plugin/target/de.tu-dresden.inf.lat.born-VERSION.jar into protege/plugins, where VERSION is BORN’s version and protege is Protégé’s directory.

To use it as a standalone, use file born-standalone/target/born.jar, and start the graphical visual interface with:

java -jar born.jar

or use the console interface giving parameters. The details can be obtained with:

java -jar born.jar help

Source code

To clone and compile the project:

$ git clone https://github.com/julianmendez/born.git
$ cd born
$ mvn clean install

The library, its sources and its Javadoc will be in born-library/target, the plug-in will be in born-plugin/target, the standalone will be in born-standalone/target, and the release ZIP file will be in target.

To compile the project offline, first download the dependencies:

$ mvn dependency:go-offline

and once offline, use:

$ mvn --offline clean install

The bundles uploaded to Sonatype are created with:

$ mvn clean install -DperformRelease=true

and then on each module:

$ cd target
$ jar -cf bundle.jar born-*

and on the main directory:

$ cd target
$ jar -cf bundle.jar born-parent-*

The version number is updated with:

$ mvn versions:set -DnewVersion=NEW_VERSION

where NEW_VERSION is the new version.

Authors

Design and Implementation: Julian Mendez

Idea: İsmail İlkan Ceylan

License

This software is distributed under the Apache License Version 2.0.

Release notes

See release notes.

Architecture

BORN has a hybrid architecture that uses Java and ProbLog. In addition to Java, BORN requires having Python installed, because it is used to execute ProbLog. If ProbLog is not installed, BORN automatically downloads the most recent version of ProbLog, and uses it to solve the queries. Details on the versions of those requirements are available in the release notes.

Modules

BORN is implemented with the following modules:

Packages

born-owlapi can be sudivided in 3 groups of packages:

born-owlapi contains classes to run BORN from the command line. BORN offers several options, which are shown when it is executed with the option --help. Each option is a command, and it receives its own parameters.

Technically each command is implemented in its own package. Each command has the following classes:

born-gui has a package for each panel, and a package to integrate them using tabs. Each package contains:

Contact

In case you need more information, please contact @julianmendez .