-
Notifications
You must be signed in to change notification settings - Fork 13
Home
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.
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 (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.
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
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).