Clone wiki

BUNDLE / BUNDLE 3.0.0

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>
    Method that will be used to generate explanations. black cannot be used to explain inconsistency. Default value: owlexp
  • -max,--maxExplanations <positive_integer>
    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. In order to use the BUNDLE image all you have to do is pull the image with the command:

sudo docker pull giuseta/bundle:3.0.0-SNAPSHOT

and then you can start the container with the command:

sudo docker run -it giuseta/bundle:3.0.0-SNAPSHOT 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:

<dependency>
    <groupId>it.unife.endif.ml</groupId>
    <artifactId>bundle</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>

...

<repositories>
...
    <repository>
        <id>ossrh-snapshots</id>
        <name>Sonatype OSSRH (OSS Repository Hosting) Snapshots</name>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </repository>
</repositories>

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

Bundle reasoner = new Bundle();
// settings
reasoner.setRootOntology(rootOntology);
// initalization
reasoner.init();
// compute the first query (query is of type org.semanticweb.owlapi.model.OWLAxiom)
QueryResult result1 = reasoner.computeQuery(query);
// compute another query
QueryResult result2 = reasoner.computeQuery(anotherQuery);
// it there are not other queries, dispose the reasoner
reasoner.dispose()

Updated