prolog
scryer-prolog
prolog | scryer-prolog | |
---|---|---|
14 | 55 | |
641 | 2,113 | |
- | - | |
5.4 | 9.4 | |
about 2 months ago | 11 days ago | |
Go | Rust | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
prolog
-
Mangle, a programming language for deductive database programming
Other resources for logic programming and Go:
ichiban/prolog - ISO Prolog interpreter in pure Go, getting close to v1: https://github.com/ichiban/prolog
trealla-prolog/go - ISO Prolog interpreter embedded via WASM: https://github.com/trealla-prolog/go
guregu/pengine - library for interfacing with Pengines (SWI-Prolog's RPC protocol): https://github.com/guregu/pengine
biscuit-auth/biscuit-go - Biscuits are a fancy auth token with a little Datalog engine: https://github.com/biscuit-auth/biscuit-go
I'm a big fan of logic programming. We've been seeing a small resurgence of interest in it (for example Yarn using Prolog made some waves) and I have some optimism for its future.
- Golog library/language?
-
State machines and reconciliation loops
fully native Prolog, or embedded? I am very familiar with Go, so I was intrigued to see ichiban/prolog. This might enable me to leverage some existing libraries (GitHub, git, etc) and save Prolog for the logic that drives them.
-
Let's philosophize a bit :-)
You may also be interested in this Prolog interpreter in Go: https://github.com/ichiban/prolog
-
Interpreters built in Go
There have been several Prolog interpreters written in Golang. This one appears to be most active: https://github.com/ichiban/prolog .
-
The Power of Prolog
For Go, you have prolog as a scripting engine https://github.com/ichiban/prolog
- Prolog runtime for aws lambda?
- Prolog Go Library
-
Hacker News top posts: Jan 27, 2022
An embeddable Prolog scripting language for Go\ (2 comments)
- An embeddable Prolog scripting language for Go
scryer-prolog
- Pure regex implementation using rational trees and if_/3
-
What Is miniKanren?
Trealla and Tau are both wonderful. Very close cousins of Scryer.
I've never tried compiling on rust before but open an issue or a discussion on the Scryer board and maybe we can figure it out!
https://github.com/mthom/scryer-prolog
- Embedded Scryer Prolog powering video game AI, slides from Scryer Meetup talk
- 2025 Goals for Scryer Prolog
- Arthur Whitney's one liner sudoku solver
- Scryer Prolog: The fourth iteration of rebis-dev is out
- From a Python function to a relation (a short personal essay)
- Linguistic "Power" of Definite Clause Grammars?
-
Ask HN: What's Prolog Like in 2024?
The key performance advantage of Scryer Prolog is its space efficiency for representing lists of characters, yielding a 24 times (!) more compact representation than other Prolog systems.
With Scryer Prolog and other recent systems that implement this representation, such as Trealla Prolog, you can easily process many GBs of text with DCGs, arguably realizing the full potential of the originally intended use case of Prolog for the first time.
The linked benchmarks do not test this aspect at all.
And yes, the strong ISO conformance of Scryer Prolog is also a major attraction especially when using it in highly regulated areas. A recent envisaged application of Scryer Prolog for machine protection systems (MPS) of giant particle accelerators, where adherence to industry standards is of great importance for warranty reasons:
https://github.com/mthom/scryer-prolog/discussions/2441
- Analysing protection systems for giant particle accelerators
What are some alternatives?
go-python - naive go bindings to the CPython2 C-API
swipl-devel - SWI-Prolog Main development repository
go-lua - A Lua VM in Go
logica - Logica is a logic programming language that compiles to SQL. It runs on DuckDB, Google BigQuery, PostgreSQL and SQLite.
OPA (Open Policy Agent) - Open Policy Agent (OPA) is an open source, general-purpose policy engine.
differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.
gval - Expression evaluation in golang
materialize - The Cloud Operational Data Store: use SQL to transform, deliver, and act on fast-changing data.
otto - A JavaScript interpreter in Go (golang)
tau-prolog - An open source Prolog interpreter in JavaScript
go-php - PHP bindings for the Go programming language (Golang)
adventofcode - My solutions to the Advent of Code challenges