Scryer Prolog: A modern Prolog implementation written mostly in Rust
As a contributor to Scryer Prolog (I designed the logo!), I find this project to be one of the most exciting current developments in the logic programming community, and one of the most promising new Prolog systems in many years.<p>Notably, Scryer Prolog is currently the only free Prolog system that aims for full conformance to the Prolog ISO standard, supports constraints such as dif&#x2F;2, CLP(B) and CLP(ℤ), includes the most recent declarative features such as if_&#x2F;3 and and the ..._si&#x2F;1 family of predicates, provides support for sound unification and an alternative execution strategy called SLG resolution, and also implements a very efficient internal representation of lists of characters and partial strings, thus making it the first Prolog system in decades with the potential to efficiently support the use case Prolog was developed for: efficient and convenient text processing. On top of this, it is the first Prolog system ever implemented in Rust, making it especially exciting for fans of this language while also benefiting from many of its innovations.<p>Here are a few interesting applications of Scryer Prolog:<p>The <i>precautionary</i> package by David C. Norris, using Scryer Prolog for safety analysis of phase 1 dose-escalation trials in clinical oncology:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;dcnorris&#x2F;precautionary" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dcnorris&#x2F;precautionary</a><p>A Prolog library to connect to PostgreSQL databases by  Adrián Arroyo Calle:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;aarroyoc&#x2F;postgresql-prolog" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;aarroyoc&#x2F;postgresql-prolog</a><p>The Retina chainer, targeting EYE Reasoning via Scryer and Trealla by Jos de Roo:<p><a href="https:&#x2F;&#x2F;josd.github.io&#x2F;retina&#x2F;" rel="nofollow">https:&#x2F;&#x2F;josd.github.io&#x2F;retina&#x2F;</a><p>Thank you Mark and everyone who contributed for all your work on Scryer Prolog, keep up the great work! Some of these innovations have already spread to other Prolog systems, such as Trealla and Tau Prolog, and I hope that Scryer serves as an inspiration for many more systems. Exciting times ahead!<p>Regarding the name of the project: &quot;Scrying&quot; is the practice of looking into a suitable medium in the hope of detecting significant messages or visions:<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Scrying" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Scrying</a><p>What a fitting name for a Prolog system!