Skip to content

eyereasoner/rebus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rebus

Reasoning engine using bottom-up steps

  • Using webized prolog which basically means that atoms can be IRIs.
  • Besides top-down reasoning with conclusion :- premise rules, it also does bottom-up reasoning with conclusion :+ premise rules.
  • Variables are interpreted universally except for conclusion :+ premise conclusion-only variables which are interpreted existentially.
  • Bottom-up reasoning can use stable(n) to fail if the deductive closure at level n is not yet stable.
  • Bottom-up reasoning steps produce bus((conclusion_inst :+ premise_inst)).
  • Queries are posed as true :+ premise and answered as bus((true :+ premise_inst)).
  • Inference fuses are defined as false :+ premise and blown as bus(false :+ premise_inst)) with return code 2.

Rationale for bottom-up reasoning with conclusion :+ premise rules

  • conclusion can be a conjunction
  • conclusion can be false to blow an inference fuse
  • conclusion can be true to pose a query
  • conclusion can not be any other built-in
  • conclusion-only variables are existentials
  • producing bottom-up steps bus/1
  • avoiding loops that could occur with top-down reasoning

Installation and test

  • Install Scryer Prolog and run the tests
    git clone https://github.com/eyereasoner/rebus
    cd rebus/etc
    ./test-scryer
    
  • Install SWI Prolog and run the tests
    git clone https://github.com/eyereasoner/rebus
    cd rebus/etc
    ./test-swipl
    
  • Install Trealla Prolog and run the tests
    git clone https://github.com/eyereasoner/rebus
    cd rebus/etc
    ./test-trealla
    

Background

About

A reasoning engine using bottom-up steps

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages