Back
Suiron?

Suiron is an inference engine. Its fact/rule definition language is similar to Prolog, but there are some differences.

In Prolog, lower case strings are 'atoms' (constants) and capitalized strings are logic variables. For example, in the query below:

?- father(F, luke).

the strings 'father', and 'luke' are atoms. 'F' is a variable.

This method of defining variables is very inconvenient, especially for natural language applications. In Suiron, an atom can be upper case or lower case. A variable starts with a dollar sign. Thus, the above query is written:

?- father($F, Luke).

Otherwise, Suiron is similar to Prolog. Although it is much less comprehensive than mature Prolog projects, such as tuProlog and GNU Prolog, it is fast and convenient.

Suiron has been implemented in Golang, Julia, Rust, and Java. (The Java version, which was written first, is called Inferencilo.) These inference engines can be cloned from the Github repository: Indrikoterio. The rust version can also be found at crates.io.

This web site was implemented using WebAssembly (Wasm). The Golang version of Suiron was compiled to wasm; its methods are called from Javascript.