knowsys / rulewerk

Java library based on the VLog rule engine
Apache License 2.0
32 stars 13 forks source link

Rulewerk

Rulewerk Test Status Coverage Status Maven Central

Rulewerk is a Java library based on the VLog rule engine.

Note: The recent Nemo rule engine also implements support for a Rulewerk-like Datalog-dialect, and might be a good choice for some projects using Rulewerk. Currently, there is no Rulewerk-integration of Nemo yet, but many Rulewerk progams will work in Nemo (or can easily be adapted), whereas Nemo tends to have more features (e.g., arithmetic built-ins and datatype support).

Installation

The current release of Rulewerk is version 0.9.0. The easiest way of using the library is with Maven. Maven users must add the following dependency to the dependencies in their pom.xml file:

<dependency>
    <groupId>org.semanticweb.rulewerk</groupId>
    <artifactId>rulewerk-core</artifactId>
    <version>0.9.0</version>
</dependency>

Previous to version 0.6.0, rulewerk project name was vlog4j. Older versions released under name vlog4j have <groupId>org.semanticweb.vlog4j</groupId> and <artifactId>vlog4j-core</artifactId>, the latest version being version 0.5.0.

You need to use Java 1.8 or above. Available source modules include:

Test module rulewerk-integrationtests contains integration tests that verify the correctness of the backend reasoners for various complex reasoning problems.

The released rulewerk-vlog packages use vlog-java, which packages system-dependent VLog binaries for Linux, macOS, and Windows, and should work out of the box with current versions of these systems (for Linux, you will need at least libstdc++-v3.4.22; for macOS, you will need at least macOS 10.14). In case of problems, or if you are using the current development version, own binaries can be compiled as follows:

Documentation

Development