Next revision
|
Previous revision
|
hekate:beating_heart [2009/06/02 17:21] wojnicki Document moved from hekatedev:beating_heart |
hekate:beating_heart [2019/06/27 15:49] (current) |
====== Beating HeaRT ====== | ====== Beating HeaRT ====== |
| |
| ===== Docs ===== |
| |
| More docs available upon request from the author: wojnicki@agh.edu.pl. |
| |
===== Concept ===== | ===== Concept ===== |
| |
The main concept is to provide a runtime environment for the [[:hekate:hml1| Hekate Markup Language Mark 1]] supported with I/O primitives complying with the ideas emerged form [[hekatedev:hekate_case_io]] and roughly implemented in Prolog as [[hekatedev:hekate_prolog_io]] (a Java based implementation is under development now). | The main concept is to provide a runtime environment for the [[:hekate:hml1| Hekate Markup Language Mark 1]] supported with I/O primitives complying with the ideas emerged form [[hekatedev:hekate_case_io]] and implemented in Prolog (based on [[hekatedev:hekate_prolog_io]]) or Java. |
| |
The runtime is coded in Prolog (guess why ;-)). | The runtime is coded in Prolog (guess why ;-)). |
| |
==== Starting inference process ==== | ==== Starting inference process ==== |
| |
| |
| |
* Second release, thermostat case added, more logical operators (to make the thermostat case work) {{:hekatedev:bheart-rel-2.tar.gz}} | * Second release, thermostat case added, more logical operators (to make the thermostat case work) {{:hekate:bheart-rel-2.tar.gz}} |
| |
cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hades co -r rel-2 bheart | cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hades co -r rel-2 bheart |
| |
* First realase, the test case (editor) works fine: {{:hekatedev:bheart-rel-1.tar.gz|}} | * First realase, the test case (editor) works fine: {{:hekate:bheart-rel-1.tar.gz|}} |
| |
cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hades co -r rel-1 bheart | cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hades co -r rel-1 bheart |
| |
| ===== Modules ===== |
| |
| The inference engine is highly modularized. |
| It consists of the following modules: |
| * hml.pl - Hekate Markup Language ([[HML1]]) support |
| * infeng.pl - inference engine |
| * operators.pl - available operators |
| * prolog-runtime.pl - prolog i/o predicates |
| * runtime.pl - auxiliary runtime predicates |
| * hml-view.pl - HML visualization support (markup independent), not mandatory for run-time execution; spawns graphviz and generates XTT diagrams (yet to be released, avaliable through CVS only) |
| |
| This way the Beating HeaRT can be extended easily. |
| |
| ===== I/O Modules ===== |
| |
| There are two I/O modules currently available for the Inference Engine. |
| They allow to call apropriate trigger routines for non-state attributes which are implemented as Prolog predicates or Java methods. |
| |
===== Examples ===== | ===== Examples ===== |
* ^k -- moves the cursor right, | * ^k -- moves the cursor right, |
* ^q -- quits. | * ^q -- quits. |
| |
| The XTT editor model is given below (click to enlarge). |
| The model is generated by the Beating HeaRT visualization plugin. |
| |
| {{:hekate:editor-xtt-bh.png?800|}} |
| |
The following code, loads up The Beating HeaRT, reads in logic, defines all I/O routines for apropriate attributes and launches the inference process. | The following code, loads up The Beating HeaRT, reads in logic, defines all I/O routines for apropriate attributes and launches the inference process. |
:-run_xtt_single(xtt_0). | :-run_xtt_single(xtt_0). |
</code> | </code> |
| |
==== Thermostat ==== | ==== Thermostat ==== |
| |
| |
Now it is easy to assume that the inference process hsould start with Table id 1. | Now it is easy to assume that the inference process hsould start with Table id 1. |
| |
| The following visualization is generated by the Beating HeaRT visualization module. |
| |
| {{:hekate:therm-xtt-bh.png?800|}} |
| |
The following code, loads up The Beating HeaRT, reads in logic, defines all I/O routines for appropriate attributes and launches the inference process. | The following code, loads up The Beating HeaRT, reads in logic, defines all I/O routines for appropriate attributes and launches the inference process. |