-
Notifications
You must be signed in to change notification settings - Fork 13
Home
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.
Rulewerk can be used in two ways:
- As a Java library in your own programming projects
- As a stand-alone client application (experimental)
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.
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
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).