EYE Reasoners

Reasoning implemented in many languages.

EYE has grown from one pioneering Prolog engine into a family of open reasoners for Notation3, RDF, SPARQL 1.2 RL, and Prolog-style rule languages, where an answer can arrive with a proof that another program can check.

Notation3 reasoners

The EYE family offers several Notation3 implementations and runtimes. Choose the one that best matches your environment, integration needs, and reasoning workload.

SWI-Prolog + C

EYE

The original Euler Yet another proof Engine: a mature N3 and RDF Surfaces reasoner with proof output.

TypeScript + EYE/Wasm

eye-js

The original EYE engine compiled to WebAssembly and packaged for browser and Node.js applications.

JavaScript

Eyeling

A compact N3 reasoner for Node.js, browsers, RDF pipelines, streaming messages, and accountable proofs.

Python

Pyling

A Python port of Eyeling for N3 reasoning from Python code, notebooks, RDFLib graphs, or the command line.

Rust + WebAssembly

Eyeron

A Rust N3 reasoner that derives conclusions, writes N3 proofs, and checks them, as a CLI, library, or browser app.

Go · experimental

Romeo

A fast, dependency-free forward-chaining N3 reasoner descended from Eyeling and distributed as a static binary.

Rule languages with checkable proofs

A newer generation of EYE engines works with Prolog-style facts and rules or with SPARQL. They share one bargain: an answer can come with the reasoning behind it, and a separate checker can verify that proof against the program.

JavaScript

eyeon

A symbolic logic programming language in a subset of Prolog, with query explanations, executable checks, and independently checked proof certificates.

JavaScript

Eyedia

Reasoning you can see: a dependency-free Prolog rule language that combines forward :+ and backward :- rules with checkable proofs.

Python

peye

A standalone, dependency-free Python rule language with forward and backward reasoning, checkable proofs, and a conformance suite.

Rust + WebAssembly

wheye

A small relational reasoner: a Prolog subset with tabled recursion and independently checked proof certificates.

JavaScript · SPARQL 1.2 RL

Eyeleng

An implementation of SPARQL 1.2 RL (SRL) tracking the W3C draft, with stratification, forward and backward evaluation, and a conformance harness.

Try one in your browser

These hosted playgrounds let you edit and run examples without installing a local reasoner.

EYE via Wasm

eye-js example

Run the original EYE reasoner in a browser.

N3 · JavaScript

Eyeling playground

Experiment with the compact JavaScript engine.

N3 · Rust/Wasm

Eyeron playground

Reason with the Rust implementation through WebAssembly.

SPARQL 1.2 RL

Eyeleng playground

Run SRL rule sets over RDF 1.2 data in the browser.

ISO Prolog

EyeProlog playground

Run portable Prolog programs with inspectable proofs.

Prolog subset

eyeon playground

Ask, explain with why, and check assertions.

Forward + backward

Eyedia playground

See derivations and verify their proof certificates.

Python

peye playground

Write Python rules and run the conformance suite in the browser.

Rust/Wasm

wheye playground

Try tabled recursion and checked proof certificates.

Law as rules

eyelee playground

Evaluate Dutch-law questions with Answer, Reason, and Check.

A shared starting point

Almost every engine can begin with the same familiar Socrates example: facts and a rule go in; a conclusion comes out, together with the reasoning that supports it.

human(socrates).
mortal(Person) :- human(Person).

?- mortal(Who).
?- why.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix : <http://example.org/socrates#>.

:Socrates a :Human.
:Human rdfs:subClassOf :Mortal.

{ ?S a ?A. ?A rdfs:subClassOf ?B }
=>
{ ?S a ?B }.

Wider EYE ecosystem

These close neighbours build on the reasoners above: drivers, applications, interchange tools, and test suites.

Looking for the broader reasoner landscape? Jos De Roo maintains an overview spanning N3, RDF Surfaces, Datalog, SHACL Rules, RIF, and first-order logic: view the full reasoners list.