Madara - Multi-Agent Distributed Adaptive Resource Allocation

Project Description

Version: 3.0.2

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.

Getting Help




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.

Special Thanks

This software has been contributed to and used by students and staff at: