Skip to content

Rulewerk v0.7.0

Compare
Choose a tag to compare
@irina-dragoste irina-dragoste released this 03 Sep 19:24
· 198 commits to master since this release

The seventh release of the Java rule reasoning library Rulewerk, formally known as VLog4j.

Breaking changes:

  • The RdfModelConverter class from the rdf package is no longer static (and has more options)
  • The Serializer class in the core package has been replaced by a new implementation
    with a completely different interface.
  • The methods getSerialization that were present in most syntax objects have been removed. Use toString() instead for simple serializations, or invoke a custom Serializer.
  • The DataSource interface requires a new method to be implemented.
  • @import, @import-relative, and @source now treat relative paths as relative to the file they occur in, as opposed to the global working directory.

New features:

  • New interactive Rulewerk shell for rule reasoning from the command line client
  • Significant speedup in iterating over query results
  • Support for using data from a Trident database, the recommended data source for large
    RDF graphs in VLog
  • More features to control how Rulewerk imports RDF data using rulewerk-rdf module
  • New class LiteralQueryResultPrinter for pretty-printing query results

Other improvements:

  • Improved serialization of knowledge bases (using namespaces)
  • Simple (non-IRI, namespace-less) predicate names can now include - and _
  • Nulls in input data (aka "blank nodes") are now properly skolemized for VLog
  • InMemoryGraphAnalysisExample now counts proper triangles using negation to avoid "triangles" where
    two or more edges are the same.

Bugfixes:

  • Several reasoning errors in VLog (backend) have been discovered and fixed in the version used now

The attached rulewerk-client-0.7.0.jar can be directly used to run Rulewerk from the command line: https://github.com/knowsys/rulewerk/wiki/Standalone-client.
It now includes an interactive shell that is launched when running the jar without arguments.

Rulewerk 0.7.0 is not fully backwards compatible with (VLog4j) v0.6.0 due to API changes (see Breaking Changes above). However, existing code should not be hard to update..

The release uses vlog-java-1.3.4, which is the Maven artifact 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.rulewerk:

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

A Rulewerk 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 Rulewerk in your projects, as illustrated in the Rulewerk example project. We do not provide own jar files, but you can download jars manually from Maven Central if desired.