Wiki

Clone wiki

BUNDLE / BUNDLE 3.0.x

BUNDLE

BUNDLE: Explains one or more inferences in a given ontology including ontology inconsistency

Table of contents

  1. Usage and options
  2. Using Docker
  3. Using BUNDLE as a library

Usage and options

Usage: bundle [options] <file URI>...

The options --unsat, --all-unsat, --inconsistent, --subclass, --hierarchy, --instance and --property-value are mutually exclusive. By default --inconsistent option is assumed. In the following descriptions C, D, and i can be URIs or local names.

Argument description:

  • -allUnsat,--allUnsat Explain all unsatisfiable classes
  • -bf,--bddfact <buddy | cudd | j | java | jdd>
    Set the BDD Factory, possible values can be "buddy", "cudd", "j","java", "jdd", or a name of a class that has an init() method that returns a BDDFactory. Note: "cal" is not supported, use "buddy" for better performances. If the loading fails the "java" factory will be used. Default value: buddy.
  • -gui
    Run GUI. Not supported yet.
  • -h,--help
    Print this message
  • -hierarchy,--hierarchy
    Print all explanations for the class hierarchy. Not supported yet.
  • -ignoreImports,--ignoreImports
    Ignore imported ontologies.
  • -inconsistent,--inconsistent
    Explain why the ontology is inconsistent
  • -instance,--instance <i,C>
    Explain why i is an instance of C
  • -m,--method <glass | black | owlexp>
    The method that will be used to generate explanations. The value "black" cannot be used to explain inconsistency. Default value: owlexp
  • -max,--maxExplanations <positive_integer> The maximum number of generated explanations for each inference. The provided number must be a positive integer. Default value: 2147483647
  • -noProb,--noProb
    Disable the computation of the probability
  • -propertyValue,--propertyValue <s,p,o>
    Explain why s has value o for property p
  • -r,--reasoner <pellet | hermit | jfact | fact++>
    Inner reasoner to be used. Bundle currently supports: Pellet, Hermit, JFact and FaCT++. The valid arguments for this options are: pellet | hermit | jfact | fact++. Default value: pellet.
  • -subclass,--subclass <C,D>
    Explain why C is a subclass of D
  • -t,--time <arg>
    Maximum time allowed for the inference, 0 for unlimited time. Format: [Xh][Ym][Zs][Kms]. Default value 0s
  • -unsat,--unsat <C>
    Explain why the given class C is unsatisfiable
  • -v,--verbose
    Print detailed exceptions and messages about the progress.

Using Docker

A BUNDLE image was deployed in Docker Hub. To use the BUNDLE image all you have to do is pull the image with the command:

#!bash

sudo docker pull giuseta/bundle:3.0.1
and then you can start the container with the command:

#!bash
sudo docker run -it giuseta/bundle:3.0.1 bash
A bash shell of the container should open. Then you can use the command bundle to run our reasoner.

Using BUNDLE as a library

If your application needs to perform probabilistic logical inference, BUNDLE can also be used as a library. If you are using Maven, all you have to do is to add the following lines in your POM file:

#!XML
<dependencies>
...
    <dependency>
        <groupId>it.unife.ml</groupId>
        <artifactId>bundle</artifactId>
        <version>3.0.2</version>
    </dependency>
...
</dependencies>

Then you can obtain the probability of query in just a few lines:

#!java
Bundle reasoner = new Bundle();
// settings
reasoner.setReasonerFactory(reasonerFactory);
// for example, reasonerFactory can be initialized as PelletReasonerFactory.getInstance()
reasoner.setRootOntology(rootOntology);
reasoner.setMaxExplanations(Integer.MAX_VALUE);
// initalization
reasoner.init();
// compute the first query (query is of type org.semanticweb.owlapi.model.OWLAxiom)
ProbabilisticReasonerResult result1 = reasoner.computeQuery(query);
// compute another query
ProbabilisticReasonerResult result2 = reasoner.computeQuery(anotherQuery);
// it there are not other queries, dispose the reasoner
reasoner.dispose()

Updated