Repository navigation
tiny-datalog 0.5.0
Authorization, program analysis, knowledge graphs, and the chase.
- Three new lessons (numbered 20–22, so existing lesson links are unchanged):
- 20, Authorization: Zanzibar-style relationship-based access,
--explainas an audit trail, why listing everyone with access costs more than checking one user, a revocation list that fails open when empty, and Biscuit-style tokens. - 21, Program analysis: points-to and the call graph in one fixpoint, and a taint analysis whose false positive
--explaintraces. - 22, Knowledge graphs: RDFS, OWL 2 RL, existential rules and the chase, and
owl:sameAsas the bridge to union-find and egglog.
- 20, Authorization: Zanzibar-style relationship-based access,
- Lesson 0 gains "One language, many dialects": one program in Soufflé, Datomic, Mangle, Logica and SQL, with a comparison table.
tiny_datalog.chaseand a newtiny-datalog-chasecommand: rules whose head mentions a value the body doesn't name invent unknown values (labelled nulls). It offers the restricted and oblivious chase, checks before running whether the rules are guaranteed to stop and names the cycle if not, has a--max-nullsbudget, and marks answers that aren't certain.- Eight new example programs, plus exercises with answers for the three lessons.
Fix: when a fact could be derived several ways, --explain printed a tree that could change from run to run. It now always picks the same one.
326 tests.