The HeKatE RunTime

HeKatE Run Time (HeaRT) is a dedicated inference engine for the XTT2 rule bases. The engine implements the inference based on ALSVfd logic. It is implemented in Prolog in order to directly interpret the HMR representation which is generated by HQEd. HMR (HeKatE Meta Representation) is a textual representation of the XTT2 logic designed by HQEd. It is a human readable form, as opposed to the machine readable HML (HeKatE Markup Language) format. HeaRT allows to: store and export models in HMR files, and verify HMR syntax and logic.

Currently the runtime is in a beta stage.

HeaRT is part of HaDEs.

See also the developemnt page.

Getting it

Just download a HeaRT milestone file below.

You need a SWI-Prolog environment.



Download the heart-m6.tar.gz file.


Download the heart-m5.tar.gz file.


Download the heart-m4.tar.gz file.


Download the heart-m3.tar.gz file.


Download the heart-m2_1.tar.gz file.
Download the heart-m2.tar.gz file.
Download the heart-m1.tar.gz file.

HeaRT Quick Start

What is HeaRT

HeaRT is an inference engine for XTT2 rule based systems. More about HeaRT and XTT2: here, here and here

HeaRT uses HMR language. More about the language: here

HeaRT uses TCP/IP protocol when running in server mode to communicate. more about it here


See the HeaRT Overview as well as the more technical HeaRT HowTo. For a detailed documentation see the HeaRT technical report.

How to install and run HeaRT

  1. Download and install SWI-Prolog. On Linux, you can install swipl from repository.
  2. Download HeaRT from one of the obove distributions
  3. Run HeaRT:
    1. Linux:
      cd HEART_DIR
    2. Windows:
  4. Run HeaRT in server mode. Type in SWI-Prolog console: srv.

Check the simplest example of HMR model - Thermostat. (Download)

How to use TCP/IP Protocol

Run it in different modes:

  • Fixed order inference (run tables given as a parameter. In this case ms,dt,th,os): ?- gox(init,[ms,dt,th,os],foi).
  • Data-driven (give only start tables): ?- gox(init,[ms,dt,th],ddi).
  • Goal-driven (give only goal table): ?- gox(init,[os],gdi).
  • Token-driven (given goal table, follow links): ?- gox(init,[os],tdi).

Check the TCP/IP protocol:

  • Run model. We assume that models are stored in storage directory. Each user have his own directory inside storage. For example user called user2 that owns model, willhave it stored in HEART_DIR/storage/user2/
    1. Run heart in server mode: srv
    2. Run telnet on port 8090 (default HeaRT port)
    3. Request list of all models: [model, getlist].
    4. Run model for a given state: [model,run,'thermostat','user2',ddi, [ms,dt,th,os], [ [day,mon], [hour,13], [month, 3] ] ].


  • 2009.11.30 – HeaRT M3, important bug fixes and improvements after cases implementation, trajectory, attribute domains handling, hqed integration.
  • 2009.08.19 – HeaRT M2_1, server invocation and documentation fixes.
  • 2009.08.14 – HeaRT M2, beta stage, most of the functionality implemented, halva framework and integration libraries provided.
  • 2009.05.13 – HeaRT M1, alpha stage, needs testing, support by

Report bugs

Please report the bugs, suggestions to the CVStrac system.


  • access the system with the wiki user/pass
  • do not extra login to the CVStrac itself
  • submit new Tickets anonymously, use HeaRT subsystem
  • please leave your contact information, as well as other reference, e.g. MIW project ID
hekate/heart.txt · Last modified: 2019/06/27 15:49 (external edit) Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0