Skip to content

VLog4j v0.5.0

Compare
Choose a tag to compare
@irina-dragoste irina-dragoste released this 06 Dec 18:50
· 613 commits to master since this release

The fifth release of the Java rule reasoning library VLog4j brings a number of changes. Major new features include:

  • New module vlog4j-client provides a stand-alone command line client jar for VLog4j
  • The data model for rules has been refined and changed:
    • Instead of Constant, specific types of constants are used to capture abstract and data values
    • Instead of Variable, ExistentialVariable and UniversalVariable now indicate quantification
    • Blank was renamed to NamedNull to avoid confusion with RDF blank nodes
    • Methods to access terms now use Java Streams and are unified across syntactic objects
  • The parser behaviour for data source declarations and certain datatype literals can be customised

The attached standalone-vlog4j-client-0.5.0.jar can be directly used to run VLog4j from the command line: https://github.com/knowsys/vlog4j/wiki/Standalone-client.

Other improvements include upgrading some dependencies (owl-api, sl4j), replacing Cobertura test coverage tool with JaCoCo, improvements in the parser, and a parsable string representation of data model objects.

This release also includes some bugfixes:

  • Acyclicity checks work again without calling reason() first (issue #128)
  • in vlog4j-owlapi, class expressions of type ObjectMaxCardinality are not allowed in superclasses (issue #104)
  • in vlog4j-owlapi, class expressions of type ObjectOneOf are only allowed as subclasses in axioms of type subClassOf (issue #20)
  • When parsing syntactic fragment such as Facts or Literals, the parser now enforces that all input is consumed.

VLog4j 0.5.0 is not fully backwards compatible with v0.4.0 due to API and syntax changes. However, existing code should not be hard to update. See the release notes for details.

The release uses vlog4j-base-1.3.2, which is the Maven artefact for the VLog rule engine. It packages system-dependent binaries for Linux, MacOS, and Windows, and should work out of the box with current versions of these systems. In case of problems, own binaries can be compiled as described in the README.

This release includes the following modules, which are available in Maven Central in group org.semanticweb.vlog4j:

  • vlog4j-core: essential data models for rules and facts, and essential reasoner functionality
  • vlog4j-parser: support for processing knowledge bases in VLog4j syntax
  • vlog4j-rdf: support for reading from RDF files in Java (not required for loading RDF directly during reasoning)
  • vlog4j-graal: support for translating objects from the Graal rule library to VLog4j
  • vlog4j-owlapi: support for converting rules from OWL ontology, loaded with the OWL API
  • vlog4j-client: stand-alone application that builds a command-line client for VLog4j.

A VLog4j Wiki is available online, with detailed information about our tool, the supported rule language examples and grammar, and related publications.

It is strongly encouraged to use Maven to include VLog4j in your projects, as illustrated in the VLog4j example project. We do not provide own jar files, but you can download jars manually from Maven Central if desired.