Skip to content
Irina Dragoste edited this page Aug 4, 2022 · 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. You can contact developers and other users about usage and or development on our support channel.

Usage

Rulewerk can be used in two ways:

Rulewerk rule language

The rule language supported by Rulewerk (or the Rulewerk language) 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. Besides the grammar description, we provide a few examples of the main language features.

Data integration

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

  • The native Rulewerk language syntax 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