Project Description

DKAL (Distributed Knowledge Authorization Language) is a distributed authorization policy language. This project contains an engine for running DKAL policies. It is implemented primarly in F#.


  • 2013/9/1:
    • New Logic Engines!
      • UFOL engine allows for expressing rules and actions in the universal fragment of First Order Logic; most noticeable is the ability to use negation and disjunction operators.
      • Datalog engine takes advantage of translating PIL to Datalog using Z3 as a backend (and in the future, XSB as well)
  • 2012/10/21:
  • 2012/8/29:
  • 2011/6/9: We added lots of developer documentation.
  • 2011/6/6: DKAL v1.0.0.364 released
  • 2011/6/6: Try out DKAL live on rise4fun


For a quick start on how to use DKAL, please refer to our documentation on:
Otherwise, if you plan to extend or modify the DKAL engine, please visit our developer documentation section.

DKAL Challenges

We have collected a list of interesting theoretical and practical challenges related to DKAL and its underlying infon logic.

Underlying Theory

More information about DKAL, and its underlying theory, please visit our section on suggested reading, or go directly to Yuri Gurevich's web page on the topic.

Last edited Sep 4, 2013 at 8:42 PM by epavese, version 26