Datalog with First-Class Facts
Thomas Gilray, Arash Sahebolamri, Yihao Sun, Sowmith Kunapaneni, Sidharth Kumar, Kristopher K. Micinski
Abstract
Datalog is a popular logic programming language for deductive reasoning tasks in a wide array of applications, including business analytics, program analysis, and ontological reasoning. However, Datalog's restriction to flat facts over atomic constants leads to challenges in working with tree-structured data, such as derivation trees or abstract syntax trees. To ameliorate Datalog's restrictions, popular extensions of Datalog support features such as existential quantification in rule heads (Datalog*, Datalog ∃ ) or algebraic data types (Soufflé). Unfortunately, these are imperfect solutions for reasoning over structured and recursive data types, with general existentials leading to complex implementations requiring unification, and ADTs unable to trigger rule evaluation and failing to support efficient indexing.
We present D L ∃! , a Datalog with first-class facts, wherein every fact is identified with a Skolem term unique to the fact. We show that this restriction offers an attractive price point for Datalogbased reasoning over tree-shaped data, demonstrating its application to databases, artificial intelligence, and programming languages. We implemented D L ∃! as a system Slog, which leverages the uniqueness restriction of D L ∃! to enable a communication-avoiding, massively-parallel implementation built on MPI. We show that Slog outperforms leading systems (Nemo, Vlog, RDFox, and Soufflé) on a variety of benchmarks, with the potential to scale to thousands of threads.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 2fb2a703-446c-4887-a671-34da2d2f3441Cited by top-tier papers1
Ask how each one uses itBuilds on9
- egg: Fast and extensible equality saturationMax Willsey, Chandrakana Nandi, Yisu Remy Wang, Oliver Flatt et al.POPL 2021 · 170 citations
- DBSP: Automatic Incremental View Maintenance for Rich Query LanguagesMihai Budiu, Tej Chajed, Frank McSherry, Leonid Ryzhyk et al.VLDB 2023 · 41 citations
- Kaleido: An Efficient Out-of-core Graph Mining System on A Single MachineCheng Zhao, Zhibin Zhang, Peng Xu, Tianqi Zheng et al.ICDE 2020 · 21 citations
- Optimizing the Bruck Algorithm for Non-uniform All-to-all CommunicationKe Fan, Thomas Gilray, Valerio Pascucci, Xuan Huang et al.HPDC 2022 · 21 citations
- A systematic approach to deriving incremental type checkersAndré Pacak, Sebastian Erdweg, Tamás SzabóOOPSLA 2020 · 16 citations
Related papers
- Fixpoints for the masses: programming with first-class Datalog constraintsMagnus Madsen, Ondrej LhotákOOPSLA 2020 · 22 citations
- The Vadalog Parallel System: Distributed Reasoning with Datalog+/-Luigi Bellomarini, Davide Benedetto, Matteo Brandetti, Emanuel Sallinger et al.VLDB 2024 · 4 citations
- An efficient interpreter for Datalog by de-specializing relationsXiaowen Hu, David Zhao, Herbert Jordan, Bernhard ScholzPLDI 2021 · 6 citations
- Column-Oriented Datalog on the GPUYihao Sun, Sidharth Kumar, Thomas Gilray, Kristopher K. MicinskiAAAI 2025 · 4 citations
- Automated Debugging of Datalog ProgramsJiashen Wei, Baoyuan Luo, Runshuo Xie, Yun Qi et al.OOPSLA 2026
