Skip to content

The oko reasoning engine is performing forward and backward chaining of n3p data.

License

Notifications You must be signed in to change notification settings

KNowledgeOnWebScale/oko

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oko

The oko reasoning engine is performing forward and backward chaining of n3p data.

Architecture and design

The oko engine is processing n3p data and it is itself implemented as n3p data.

It is running on top of Scryer Prolog which is implemented in Rust.

n3p syntax

TERM Examples
IRI 'http://example.org/ns#Socrates'
VARIABLE X _abc
LITERAL "abc" 1.52 1e-18 pi dt("2022-01-15",'http://www.w3.org/2001/XMLSchema#date')
LIST [TERM,...] [TERM,...|LIST] []
TRIPLE IRI(TERM,TERM)
GRAPH TRIPLE,...
CLAUSE Examples
ASSERTION TRIPLE. true => GRAPH.
FORWARD_RULE GRAPH => GRAPH.
QUERY GRAPH => true.
ANSWER GRAPH => true.
INFERENCE_FUSE GRAPH => false.
BACKWARD_RULE TRIPLE <= GRAPH.

The oko engine performs forward chaining for a FORWARD_RULE and backward chaining for a BACKWARD_RULE.

Queries are posed and answered as GRAPH => true. so the answers are also queries be it with some parts substituted and eventually containing more variables than in the original query. This forms a dialogue leading to necessary and sufficient answers, supported by proof steps, so that action can take place.

The builtin triples are:

  • 'http://idlabresearch.github.io/ns#builtin'(Subject,[])
  • 'http://idlabresearch.github.io/ns#pso_triple'([P,S,O],Triple)

Installation and test

Install Rust and Scryer Prolog and then

$ git clone https://github.com/idlabresearch/oko
$ cd oko
$ ./test

Background

About

The oko reasoning engine is performing forward and backward chaining of n3p data.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published