Surya

Description


Surya is an implementation of an inference engine, that computes answer sets for A-Prolog with choice and cardinality rules. It is written in C programming language.

Most of the inferences obtained by A-Prolog inference engines are conclusions resulting from considering single A-Prolog rules at a time. Any information present among many such rules put together was not retrived. This lead to high amounts of backtracking and thereby, slower computation of models. Addressing this problem, Surya was implemented adding a new inference rule called Extended Evaluation Rule(EER). EER retrives information distributed among several rules in the program. It is applied to the choice and cardinality rules written in the program. The efficiency of the system depends on the efficient implementation of EER. We believe that EER has been efficiently implemented giving orders of magnitude efficiency in cases where it is applied and almost no overhead for cases where it is not applied. An example of a program can be found here. For description of the language and a detailed explanation of the algorithm of the engine and results, please refer to:

"Optimizing The Computation Of Stable Models Using Merged Rules.",
Master's thesis by Veena S. Mellarkod.

All papers and thesis reports are available from the KR-LAB website.

Requirements

To run Surya, the following program must be installed: lparse.

Download

The installation instructions and usage can be found here: readme.
The Source Code and examples: surya.tar.gz

Author: Veena S. Mellarkod (mellarko@cs.ttu.edu)