Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/klaudiosinani/awesome-prolog

Curated list of Prolog packages and resources
https://github.com/klaudiosinani/awesome-prolog

List: awesome-prolog

awesome list logic programming prolog

Last synced: about 2 months ago
JSON representation

Curated list of Prolog packages and resources

Awesome Lists containing this project

README

        

# Awesome Prolog [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

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

## Contents

- [API Interfaces](#api-interfaces)
- [Artificial Intelligence](#artificial-intelligence)
- [Build Systems](#build-systems)
- [Compilers](#compilers)
- [Database](#database)
- [Date](#date)
- [Development](#development)
- [IDE](#ide)
- [Interpreters](#interpreters)
- [JSON](#json)
- [Logging](#logging)
- [Machine Learning](#machine-learning)
- [Math](#math)
- [Miscellaneous](#miscellaneous)
- [Native](#native)
- [Object Oriented Programming](#object-oriented-programming)
- [Parsing](#parsing)
- [Regular Expressions](#regular-expressions)
- [REST Frameworks](#rest-frameworks)
- [Server](#server)
- [Testing](#testing)
- [Text Editor Extensions](#text-editor-extensions)
- [Utilities](#utilities)
- [Resources](#resources)
- [Tutorials](#tutorials)
- [Videos](#videos)
- [Free Courses](#free-courses)
- [Books](#books)
- [Community](#community)
- [Contributing](#contributing)
- [License](#license)

## API interfaces

- [twitter_pack](https://github.com/samwalrus/twitter_pack) - Twitter API interface.
- [amazon_api](http://packs.ndrix.com/amazon_api/index.html) - Amazon API interface.
- [blog_core](https://blog-core.net) - Blog/CMS framework.
- [irc_client](https://github.com/eazar001/irc_client) - Low-level IRC interface.
- [geoip](https://github.com/JanWielemaker/geoip) - GeoIP interface.
- [pl_omdb](https://github.com/eazar001/pl_omdb) - OMDB API interface.

## Artificial Intelligence

- [zamia-ai](https://github.com/gooofy/zamia-ai) - Open source AI system.

## Build Systems

- [biomake](https://github.com/evoldoers/biomake) - GNU-Make-like building utility.

## Compilers

- [SWI-Prolog](http://www.swi-prolog.org) - Widely used, comprehensive Prolog compiler.
- [GNU Prolog](http://www.gprolog.org) - ISO Prolog compiler with useful extensions.
- [YAP](https://github.com/vscosta/yap-6.3/) - High-performance Prolog compiler.
- [Ciao](https://github.com/ciao-lang/ciao) - A Prolog system with many extensions.
- [Eclipse CLP](https://eclipseclp.org/) - A constraint logic programming system.
- [XSB](http://xsb.sourceforge.net/) - XSB logic programming and deductive database system.

## Database

- [prolongo](https://github.com/khueue/prolongo) - MongoDB driver.
- [docstore](https://github.com/rla/docstore) - Document-oriented database.
- [db_facts](http://stoics.org.uk/~nicos/sware/db_facts) - Centric abstraction layer for SQL.
- [bio_db](http://stoics.org.uk/~nicos/sware/bio_db) - Biological datasets manager.
- [prosqlite](http://stoics.org.uk/~nicos/sware/prosqlite) - SQLite interface.
- [TerminuDB](https://github.com/terminusdb/terminusdb) - for knowledge graph representation

## Date

- [julian](https://github.com/mndrix/julian) - Date-time library.

## Development

- [typedef](http://www.swi-prolog.org/pack/list?p=typedef) - Type definitions.
- [lambda](http://www.swi-prolog.org/pack/list?p=lambda) - Lambda expressions.
- [func](https://github.com/mndrix/func/) - Function application and composition.
- [condition](https://github.com/mndrix/condition) - Common Lisp-like condition system.
- [function_expansion](https://github.com/mndrix/function_expansion) - Function-like macros.
- [fsyntax](http://ciao-lang.org/ciao/build/doc/ciao.html/fsyntax_doc.html) - Ciao functional syntax.

## IDE

- [swish](https://github.com/SWI-Prolog/swish) - SWI-Prolog web IDE.
- [Prolog Development Tool](http://sewiki.iai.uni-bonn.de/research/pdt/docs/start) - Prolog IDE for Eclipse.
- [VSC-Prolog](https://github.com/arthwang/vsc-prolog) - Prolog extension for Visual Studio Code.

## Interpreters

- [golog](https://github.com/mndrix/golog) - Interpreter in Go.
- [erlog](https://github.com/rvirding/erlog) - Interpreter in Erlang.
- [chalk](https://github.com/rust-lang-nursery/chalk) - Interpreter in Rust.
- [jiprolog](https://github.com/jiprolog/jiprolog) - Interpreter in Java.
- [prolog.js](https://github.com/jldupont/prolog.js) - Interpreter in JavaScript.
- [prolog](https://github.com/Erdwolf/prolog) - Interpreter in Haskell.
- [ELPI](https://github.com/LPCIC/elpi) - Embeddable λProlog Interpreter in OCaml.
- [scryer prolog](https://github.com/mthom/scryer-prolog) - ISO-compatible interpreter in Rust.

## JSON

- [djson](http://packs.ndrix.com/djson/index.html) - Declarative JSON.

## Logging

- [log4p](https://github.com/hargettp/log4p) - Logging library.
- [httplog](https://github.com/JanWielemaker/httplog) - HTTP logfiles.

## Machine Learning

- [mlu](http://stoics.org.uk/~nicos/sware/mlu) - Probabilistic logic programs.
- [cplint](https://github.com/friguzzi/cplint) - Reasoning suite for probabilistic logic programs.
- [cplint_datasets](https://github.com/friguzzi/cplint_datasets) - Dataset for machine learning.

## Math

- [matrix](https://github.com/friguzzi/matrix) - Matrix operations.
- [nan_numerics_prime](https://github.com/jp-diegidio/Nan.Numerics.Prime-Prolog) - Prime numbers library.
- [pljulia](https://github.com/samer--/pljulia) - Numerical and technical computing.

## Miscellaneous

- [Online compiler](https://www.tutorialspoint.com/execute_prolog_online.php) - Execute Prolog online.
- [turing](https://bitbucket.org/ttmrichter/turing/src) - Turing Machine simulator.
- [yesbot](https://github.com/eazar001/yesbot) - IRC Bot.
- [webconsole](http://www.swi-prolog.org/pack/list?p=webconsole) - Browser as HTML console.
- [prologmud](https://github.com/TeamSPoon/prologmud_samples) - Online text adventure game.

## Native

- [by_unix](http://stoics.org.uk/~nicos/sware/by_unix) - Unix primitives library.
- [inotify](https://github.com/JanWielemaker/inotify) - Linux notification library.
- [plmidi](https://github.com/samer--/plmidi) - Macos MIDI interface.
- [plgi](http://www.swi-prolog.org/pack/list?p=plgi) - Gnome bindings.

## Object Oriented Programming

- [logtalk](http://www.swi-prolog.org/pack/list?p=logtalk) - Object oriented logic programming.

## Parsing

- [atom_feed](http://packs.ndrix.com/atom_feed/index.html) - Atom and RSS feeds parser.
- [tokenize](https://github.com/aBathologist/tokenize) - Straightforward text tokenizing.
- [markdown](https://github.com/rla/prolog-markdown) - Markdown parser.
- [yaml](http://www.swi-prolog.org/pack/list?p=yaml) - YAML parser.

## Regular Expressions

- [regex](https://github.com/mndrix/regex) - Regular expressions library.

## REST Frameworks

- [arouter](https://github.com/rla/alternative-router) - HTTP router/dispatcher.

## Server

- [httppl](https://github.com/jamesbvaughan/httppl) - Simple HTTP server.
- [letswicrypt](https://github.com/triska/letswicrypt) - HTTPS server.

## Testing

- [tap](https://github.com/mndrix/tap) - Automated TAP testing.
- [quickcheck](https://github.com/mndrix/quickcheck) - QuickCheck randomized testing.
- [PlUnit](http://www.swi-prolog.org/pldoc/package/plunit.html) - Prolog unit tests.

## Text Editor Extensions

- [prolog.vim](https://github.com/adimit/prolog.vim) - Prolog integration for Vim.
- [ediprolog](https://github.com/triska/ediprolog) - Prolog integration for Emacs.
- [sublimeprolog](https://github.com/alnkpa/sublimeprolog) - Prolog integration
for Sublime Text.
- [repl.vim](https://github.com/ujihisa/repl.vim) - VIM REPL with support for SWIProlog.
- [Ciao mode for Emacs](https://github.com/ciao-lang/ciao_emacs) - Emacs mode for Ciao and Prolog.

## Utilities

- [pac](http://www.swi-prolog.org/pack/list?p=pac) - Anonymous predicates expansion utility.
- [list_util](https://github.com/mndrix/list_util) - List utility predicates.
- [gvterm](http://www.swi-prolog.org/pack/list?p=gvterm) - Reveal terms using Graphviz.
- [odf_sheet](http://www.swi-prolog.org/pack/list?p=odf_sheet) - Load and analyze ODF spreadsheets.
- [graphml](http://www.swi-prolog.org/pack/list?p=graphml) - Create GraphML files.
- [fileutils](http://www.swi-prolog.org/pack/list?p=fileutils) - File manipulation library.
- [dia](http://www.swi-prolog.org/pack/list?p=dia) - UML loading predicates.
- [cplint_r](https://github.com/frnmst/cplint_r) - R plotting predicates.
- [tuProlog](http://apice.unibo.it/xwiki/bin/view/Tuprolog/WebHome) - Light-weight system for distributed applications and infrastructures.

## Resources

### Tutorials

#### Beginner

- [Learn Prolog Now!](http://learnprolognow.org/lpnpage.php?pageid=online) - Thorough introductory course to programming in Prolog.
- [P-99: Ninety-Nine Prolog Problems](https://sites.google.com/site/prologsite/prolog-problems) - Practice problems in Prolog and Logic programming.
- [The Power of Prolog](https://www.metalevel.at/prolog) - Introduction to modern Prolog.
- [Simply Logical](http://book.simply-logical.space) - Intelligent reasoning by example.
- [Prolog Wikibook](https://en.wikibooks.org/wiki/Prolog) - Thorough Prolog overview.

#### Advanced

- [Prolog for Software Engineering](https://www.cs.auckland.ac.nz/~j-hamer/07.363/prolog-for-se.html) - Software engineering fundamentals using Prolog.
- [Prolog Modules](http://chiselapp.com/user/ttmrichter/repository/gng/doc/trunk/output/tutorials/swiplmodtut.html) - Fundamentals in SWI-Prolog Modules.
- [Web Applications in SWI-Prolog](http://www.pathwayslms.com/swipltuts/html) - Building web application with SWI-Prolog.
- [Constraint Logic Programming over Finite Domains](https://github.com/triska/clpz) - Fundamentals of Constraint Systems on Finite Domains.
- [Printing Messages in SWI-Prolog](http://www.pathwayslms.com/swipltuts/message/index.html) - IO handling in libraries.

### Videos

- [Prolog Tutorial](https://www.youtube.com/watch?v=SykxWpFwMGs) - General hour-long video tutorial.
- [Introduction to Prolog](https://www.youtube.com/watch?v=GHLfeGN5OMk) - Hour-long introduction to Prolog.
- [Programming In Prolog](https://youtu.be/gJOZZvYijqk) - Four-part video introduction.

### Free Courses
- [Prolog Online Training](https://www.youtube.com/playlist?list=PLWPirh4EWFpFLjsd3IUqymnCVBaz1Yagg) - Tutorials Point's series on Prolog.
- [Prolog in Artificial Intelligence](https://www.youtube.com/playlist?list=PLWPirh4EWFpEYxjEJyDoqplBhJF91Mwkp) - Tutorials Point's series on Prolog with lectures relating Prolog to AI.

### Books

- [Adventure in Prolog](http://www.amzi.com/AdventureInProlog/apreface.php) - Pragmatic approach to Prolog.
- [Prolog Programming in Depth](http://www.covingtoninnovations.com/books.html#ppid) - Full coverage of the Prolog programming language.
- [Logic, Programming and Prolog](http://www.j-paine.org/prolog/mathnotes/files/pms/node1.html) - Foundations of Logic programming and programming techniques in Prolog.
- [Natural Language Processing for Prolog Programmers](http://www.covingtoninnovations.com/books.html#nlp) - Turning theories into practical techniques.
- [Artificial Intelligence through Prolog](http://faculty.nps.edu/ncrowe/book/book.html) - In-depth coverage of key concepts on artificial intelligence.
- [Building Expert Systems in Prolog](http://www.amzi.com/ExpertSystemsInProlog/index.htm) - Build prototype expert system shells and their underlying inference engines.
- [Coding Guidelines for Prolog](https://arxiv.org/abs/0911.2899) - Coding standards and good practices for Prolog.
- [The Art of Prolog](https://mitpress.mit.edu/books/art-prolog-second-edition) - Advanced programming techniques for Prolog.

### Community

- [Prolog FAQ](https://www.metalevel.at/prolog/faq) - Frequently Asked Questions list of the SWI-Prolog newsgroup.
- [SWI-Prolog Discourse](https://swi-prolog.discourse.group/) - Official SWI-Prolog Discourse board.
- [SWI-Prolog Mailing List](http://www.swi-prolog.org/Mailinglist.html) - Announcements, questions and discussion among SWI-Prolog users.
- [SWI-Prolog Freenode](http://webchat.freenode.net/?channels=##prolog) - IRC channel of the SWI-Prolog community.
- [SWI-Prolog Google Group](https://groups.google.com/forum/#!forum/swi-prolog) - SWI-Prolog user
discussion forum **DEPRECATED**.
- [Stack Overflow Prolog](https://stackoverflow.com/questions/tagged/prolog) - User questions under the Prolog tag.
- [Reddit Prolog](http://www.reddit.com/r/prolog) - Logic Programming and Prolog subreddit.

## Contributing

Contributions are super welcome!

Have a look at the [Contributing Guidelines](contributing.md) on how to get started.

## License

[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0)