pyDatalog /

The default branch has multiple heads

Filename Size Date modified Message
775 B
53 B
1.2 KB
178 B
26.4 KB
2.8 KB
231 B

pyDatalog adds the logic programming paradigm to python's toolbox, in a pythonic way. You can now run logic queries on databases or python objects, and use logic clauses to define python classes.

Datalog is a truly declarative subset of prolog that is best at

  • managing large sets of related information (e.g. in data integration or the semantic web).
  • simulating intelligent behavior (e.g. in games),
  • performing recursive algorithms (e.g. in network protocol, code and graph analysis)
  • solving discrete constraint problems.

In particular, pyDatalog can be used as a query language:

  • it can perform multi-database queries (from memory datastore, 11 relational databases, and noSQL database with appropriate connectors)
  • it is more expressive than SQL, with a cleaner syntax;
  • it facilitates re-use of SQL code snippet (e.g. for frequent joins or formula);
  • it offloads the database server by performing joins on the application tier.

Datalog excels at accelerated development : Datalog programs are often shorter than their Python equivalent, and Datalog statements can be specified in any order, as simply as formula in a spreadsheet.

See pyDatalog's home page :