Skip to content
Maximilian Marx edited this page Mar 2, 2020 · 11 revisions

Rulewerk is a toolkit for using rules for knowledge modelling, data integration, and declarative computing. It integrates the rule engine VLog with many high-level features for knowledge base management and rule manipulation.

Usage

Rulewerk can be used in two ways:

Rule language

The rule language supported by Rulewerk is an extension of Datalog rule with several useful features:

  • Stratified (i.e., non-recursive) negation
  • Existential quantifiers in rule heads (value invention)
  • Diverse data sources, including dynamic integration of results from SPARQL endpoints

Rulewerk provides reasoning and query answering capabilities for this language.

Data integration

Rules and facts can be loaded from a variety of sources:

  • The native RLS syntax of Rulewerk supports the definition of rules, facts, and external data sources
  • Knowledge bases in the DLGP format of the Graal rule library can be loaded
  • Rulewerk can convert many OWL ontologies into equivalent rules, e.g., for query answering over OWL
  • Data can be retrieved from RDF and CSV files
  • Data can be obtained via the SPARQL query language from local or remote graph databases
  • Data can be defined programmatically in Java

Further features

Rulewerk provides a full-fledged Java API for working with rules, including features for analysis and manipulation of knowledge bases.

  • Loading, manipulating, and serialising of rules, facts, and data sources
  • Query answering and export of inferences to files
  • Static analysis of rule sets (e.g., for checking acyclicity conditions, which guarantee the termination of materialisation-based reasoning).
Clone this wiki locally