Skip to content

Releases: knowsys/rulewerk

v0.9.0

07 Jan 12:41
58d8e92
Compare
Choose a tag to compare

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

Bugfixes:

  • The parser now accepts empty prefixes, as allowed by, e.g., RDF Turtle. (#206)
  • [rulewerk-owlapi] Axioms of type DisjointClasses and DisjointObjectProperties are no longer ignored, and are now translated into corresponding rules. (#209)
  • String constants in long ("foo"^^<http://www.w3.org/2001/XMLSchema#string>) and short notation ("foo") and are now interchangeable.
  • Several reasoning errors in VLog (backend) have been discovered and fixed in the version and fixed in the version v1.3.7 used now.

The attached rulewerk-client-0.9.0.jar can be directly used to run Rulewerk from the command line.
It includes an interactive shell that is launched when running the jar without arguments.

The release uses vlog-java-1.3.7, which is the Maven artifact for the VLog rule engine release v1.3.7. 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.

Rulewerk v0.8.0

25 May 08:56
Compare
Choose a tag to compare

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

Bugfixes:

  • Encoding of RDF strings corrected to make sure VLog succeeds joining on strings
  • Fixed handling of trident databases that are not a direct child of the current working directory
  • Fixed encoding of language-tagged strings that are used in Rulewerk facts, which had caused an exception
  • Several reasoning errors in VLog (backend) have been discovered and fixed in the version v1.3.5 used now.

The attached rulewerk-client-0.8.0.jar can be directly used to run Rulewerk from the command line.
It includes an interactive shell that is launched when running the jar without arguments.

The release uses vlog-java-1.3.5, which is the Maven artifact for the VLog rule engine release v1.3.5. 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.

Rulewerk v0.7.0

03 Sep 19:24
Compare
Choose a tag to compare

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.

Rulewerk v0.6.0

21 May 23:20
Compare
Choose a tag to compare

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

Breaking changes:

  • VLog4j is now called Rulewerk. Consequently, the groupId, artifact Ids, and package names
    of the project have changed.
  • In the examples package, ExamplesUtils.getQueryAnswerCount(queryString, reasoner) does no
    longer exist. It can be replaced by
    reasoner.countQueryAnswers(RuleParser.parsePositiveLiteral(queryString)).getCount()
  • The FileDataSource constructor and those of child classes (CsvFileDataSource, RdfFileDataSource)
    now take the String path to a file instead of File object.
  • The VLog backend has been moved to a new rulewerk-vlog module,
    changing several import paths. Reasoner.getInstance() is
    gone. Furthermore, InMemoryDataSource has become an abstract class,
    use VLogInMemoryDataSource where applicable.

New features:

  • Counting query answers is more efficient now, using Reasoner.countQueryAnswers()
  • All inferred facts can be serialized to a file using Reasoner.writeInferences()
  • All inferred facts can be obtained as a Stream using Reasoner.getInferences()
  • Reasoner.getCorrectness() returns the correctness result of the last reasoning task.
  • Knowledge bases can be serialized to a file using KnowlegdeBase.writeKnowledgeBase()
  • Rules files may import other rules files using @import and
    @import-relative, where the latter resolves relative IRIs using
    the current base IRI, unless the imported file explicitly specifies
    a different one.
  • Named nulls of the form _:name are now allowed during parsing (but
    may not occur in rule bodies). They are renamed to assure that they
    are distinct on a per-file level.
  • The parser allows custom directives to be implemented, and a certain
    set of delimiters allows for custom literal expressions.

Other improvements:

  • Prefix declarations are now kept as part of the Knowledge Base and
    are used to abbreviate names when exporting inferences.

Bugfixes:

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

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

Rulewerk 0.6.0 is not fully backwards compatible with (VLog4j) v0.5.0 due to API changes. However, existing code should not be hard to update. See the release notes for details.

The release uses vlog-java-1.3.3, 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.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-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.

VLog4j v0.5.0

06 Dec 18:50
Compare
Choose a tag to compare

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.

VLog4j v0.4.0

29 Aug 20:18
Compare
Choose a tag to compare

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

  • New own syntax for rules, facts, and data sources to create knowledge bases from files or strings in Java
  • Input predicates can now be used with multiple sources and in rule heads (no more EDB-IDB distinction)
  • New InMemoryDataSource for efficient in-memory fact loading
  • New KnowledgeBase class separates facts, data sources, and rules from the actual Reasoner
  • Modifications to the knowledge base are taken into account by the reasoner
  • New and updated example programs to illustrate use of syntax

Further minor improvements include better error reporting and logging, and some efficiency gains. VLog4j 0.4.0 is not fully backwards compatible with v0.3.0 due to some API changes. However, existing code should not be hard to update. See the release notes for details.

The release uses vlog4j-base-1.3.1, 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

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.

VLog4j v0.3.0

16 Apr 20:14
Compare
Choose a tag to compare

The third release of the Java bindings for the VLog rule engine. Some of the major features of this release are:

  • Support for Graal data structures (conversion from Graal model to VLog model objects)
  • Stratified negation: rule bodies are conjunctions of positive or negated literals
  • SPARQL-based data sources: load remote data from SPARQL endpoints
  • Acyclicity and cyclicity checks: JA, RJA, MFA, RMFA, RFC, as well as a generic method that checks whether given set or rules and fact predicates are acyclic, cyclic, or undetermined

The release uses vlog4j-base-1.2.1, which is the Maven artefact for the bugfix release version of VLog rule engine. vlog4j-base 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 on master.

As the previous release, this release includes the following modules, which are available in Maven Central in group org.semanticweb.vlog:

  • vlog4j-core: essential data models for rules and facts, and essential reasoner functionality
  • vlog4j-rdf: support for reading from RDF files
  • 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
    It is strongly encouraged to use Maven to include vlog4j in your projects, and we do not provide own jar files (but you can, in theory, download jars manually from Maven Central).

VLog4j v0.2.0

10 Dec 13:51
Compare
Choose a tag to compare

The second release of the Java bindings for the VLog rule engine. Some of the major features of this release are:

  • supporting File data sources of N-Triples format (.nt file extension)
  • supporting g-zipped data source files (.csv.gz, .nt.gz)

The release uses vlog4j-base-1.1.1, which is the Maven artifact for the bugfix release version of VLog rule engine. vlog4j-base 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 on master.

As the previous release, this release includes the following modules, which are available in Maven Central in group org.semanticweb.vlog:

  • vlog4j-core: essential data models for rules and facts, and essential reasoner functionality
  • vlog4j-rdf: support for reading from RDF files
  • vlog4j-owlapi: support for converting rules from OWL ontology, loaded with the OWL API
    It is strongly encouraged to use Maven to include vlog4j in your projects, and we do not provide own jar files (but you can, in theory, download jars manually from Maven Central).

VLog4j v0.1.0

13 Apr 20:01
Compare
Choose a tag to compare

This is the first release of the Java bindings for the VLog rule engine. This release includes the following modules, which are available in Maven Central in group org.semanticweb.vlog:

  • vlog4j-core: essential data models for rules and facts, and essential reasoner functionality
  • vlog4j-rdf: support for reading from RDF files
  • vlog4j-owlapi: support for converting rules from OWL ontology, loaded with the OWL API

It is strongly encouraged to use Maven to include vlog4j in your projects, and we do not provide own jar files (but you can, in theory, download jars manually from Maven Central).

The release uses vlog4j-base-1.0.1, which 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 on master.