Skip to content

klaudiosinani/awesome-prolog

Repository files navigation

Awesome Prolog Awesome

A curated list of open-source Prolog frameworks, libraries and resources.

Contents

API interfaces

Artificial Intelligence

Build Systems

  • biomake - GNU-Make-like building utility.

Compilers

  • SWI-Prolog - Widely used, comprehensive Prolog compiler.
  • GNU Prolog - ISO Prolog compiler with useful extensions.
  • YAP - High-performance Prolog compiler.
  • Ciao - A Prolog system with many extensions.
  • Eclipse CLP - A constraint logic programming system.
  • XSB - XSB logic programming and deductive database system.

Database

Date

Development

IDE

Interpreters

  • golog - Interpreter in Go.
  • erlog - Interpreter in Erlang.
  • chalk - Interpreter in Rust.
  • jiprolog - Interpreter in Java.
  • prolog.js - Interpreter in JavaScript.
  • prolog - Interpreter in Haskell.
  • ELPI - Embeddable λProlog Interpreter in OCaml.
  • scryer prolog - ISO-compatible interpreter in Rust.

JSON

  • djson - Declarative JSON.

Logging

Machine Learning

  • mlu - Probabilistic logic programs.
  • cplint - Reasoning suite for probabilistic logic programs.
  • cplint_datasets - Dataset for machine learning.

Math

Miscellaneous

Native

  • by_unix - Unix primitives library.
  • inotify - Linux notification library.
  • plmidi - Macos MIDI interface.
  • plgi - Gnome bindings.

Object Oriented Programming

  • logtalk - Object oriented logic programming.

Parsing

Regular Expressions

  • regex - Regular expressions library.

REST Frameworks

  • arouter - HTTP router/dispatcher.

Server

Testing

  • tap - Automated TAP testing.
  • quickcheck - QuickCheck randomized testing.
  • PlUnit - Prolog unit tests.

Text Editor Extensions

Utilities

  • pac - Anonymous predicates expansion utility.
  • list_util - List utility predicates.
  • gvterm - Reveal terms using Graphviz.
  • odf_sheet - Load and analyze ODF spreadsheets.
  • graphml - Create GraphML files.
  • fileutils - File manipulation library.
  • dia - UML loading predicates.
  • cplint_r - R plotting predicates.
  • tuProlog - Light-weight system for distributed applications and infrastructures.

Resources

Tutorials

Beginner

Advanced

Videos

Free Courses

Books

Community

Contributing

Contributions are super welcome!

Have a look at the Contributing Guidelines on how to get started.

License

CC0