VLog
VLog
A fast, highly scalable rule engine for existential rules and Datalog.
People
- Markus Krötzsch
- Jacopo Urbani
- Ceriel Jacobs
- Maximilian Marx
- David Carral
- Irina Dragoste
- Larry González
Projects
Research Groups
- Contact Markus Krötzsch
- Publication date April 13, 2018
A current successor system of VLog is Nemo, which improves upon the methods and features of VLog in several ways.
VLog (Vertical Datalog) is a rule engine that supports reasoning over Horn existential rules with stratified negation and, implicitly, Datalog. It uses a novel strategy based on a vertical storage architecture [1], which exhibits a state-of-the-art performance, distinguishing itself by excellent memory footprint and scalability [2].
The engine applies a bottom-up strategy for existential rules, supporting the two most studied materialisation algorithms: the Skolem and the Restricted (Standard) Chase. The latter is recommended for use, as it leads to termination in more cases.
VLog can be used for query answering, federated reasoning and data integration. It allows the use of multiple datasources at the same time, of various types (RDF stores, CSV files, OWL ontologies and remote SPARQL endpoints).
VLog is open-source, and it provides two main tools for such reasoning tasks:
- the core C++ reasoner VLog (https://github.com/karmaresearch/vlog), which is a command-line client with an interactive web interface that provides graphical representations of each rule executions, useful for tracing and debugging rule programs. The pre-compiled binaries can be obtained via Docker (karmaresearch/vlog), which facilitates a platfom-independent use.
- the Java API Rulewerk (https://github.com/knowsys/rulewerk), which integrates the core reasoner for all major OSs, allowing an easy embedding into other applications, and providing additional functionality. It comprises of multiple Maven modules (org.semanticweb.rulewerk): rulewerk-core provides essential data models for rules and facts, and an interface for essential reasoner functionality; rulewerk-parser supports processing knowledge bases in Rulewerk syntax; rulewerk-owlapi supports converting rules from OWL ontology using the OWL API; rulewerk-rdf supports loading data from RDF files; rulewerk-graal supports converting rules, facts and queries from Graal API objects and DLGP files; rulewerk-client is stand-alone application that builds a command-line client for Rulewerk; rulewerk-commands provides support for running commands, as done by the client; rulewerk-vlog supports using VLog as a reasoning backend for Rulewerk; and rulewerk-examples demonstrates the use of above functionality.
[1] Urbani, J., Jacobs, C., Krötzsch, M.: Column-oriented Datalog materialization for large
knowledge graphs. In: Proc. 30th AAAI Conf. on Artificial Intelligence (AAAI’16). pp.
258–264. AAAI Press (2016)
[2] Urbani, J., Krötzsch, M., Jacobs, C., Dragoste, I., Carral, D.: Efficient model construction for Horn logic with VLog: System description. In: Proc. 9th Int. Joint Conf. on Automated Reasoning (IJCAR’18). LNAI, Springer (2018)