The purpose of the project is to develop a portable programming framework that facilitates distributed and multi-threaded programming for C++, Java, and Python. MADARA was originally developed as an agent-based middleware specifically for real-time, distributed artificial intelligence, but is now more general purpose for distributed timing, control, knowledge and reasoning, and quality-of-service.
MADARA is composed of several tools and middleware, and the main entry point into the system is the Knowledge and Reasoning Language (KaRL) Engine, which provides a real-time scripting language for nanosecond execution times hooked into a flexible transport layer for distributed reasoning. The KaRL engine also supports object-oriented C++, Java, and Python programming through Containers, classes that provide abstractions and references for variable location within the KaRL Knowledge Base.
Legend: Supported | Unsupported but planned
Distributed Knowledge Engine
The KaRL engine can be used in a variety of ways, including as a high-performance NoSQL database, a standalone reasoning engine or as a networked reasoner to accomplish computation, quality-of-service, timing, and control. The following is a non-exhaustive list of some of the more interesting features.
This software has been contributed to and used by students and staff at: