Color is doing forward and backward chaining. It participates in dialogues leading to necessary and sufficient answers, supported by proof steps, so that action can take place.
Color is using ISO Prolog notation:
TERM | Examples |
---|---|
IRI | 'urn:example:abc' |
VARIABLE | X _abc |
LITERAL | "abc" true 1.52 1e-18 pi dt("2022-01-15",'http://www.w3.org/2001/XMLSchema#date') |
LIST | [TERM,...] [TERM,...\|LIST] |
COMPOUND | IRI(TERM,...) |
TRIPLE | IRI(TERM,TERM) GRAPH => GRAPH |
GRAPH | TRIPLE,... |
CLAUSE | Examples |
---|---|
ASSERTION | TRIPLE. true => GRAPH. |
FORWARD_RULE | GRAPH, PROLOG => GRAPH. |
QUERY | GRAPH => true. |
ANSWER | GRAPH => true. |
INFERENCE_FUSE | GRAPH => false. |
BACKWARD_RULE | TRIPLE <= GRAPH, PROLOG . |
Color 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.
Install Trealla Prolog and then run
./test
Here is a quick test on Linux that should give no diff:
cd /tmp
git clone https://github.com/trealla-prolog/trealla
cd trealla
make
cd ..
git clone https://github.com/eyereasoner/color
cd color
./test
git diff