Artificial Intelligence Middleware (Draft)


Middleware is the implementation of a concept.Ed Szurkowski

 Artificial Intelligence Systems Integration

Notes:

The reality is that not only is “artificial intelligence” a disparit term, encompasing a broad range of specifics, but “middleware” is a similarly generalized concept representing a variety of fruits from apples to oranges. Under the general rubric of “artificial intelligence middleware”, I’ve identified four main categories: Multi-Agent System middleware, Game AI middleware, Dialog System middleware, and Robotics middleware. According to Wikipedia: “A multi-agent system (MAS) is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems that are difficult or impossible for an individual agent or a monolithic system to solve.” According to Wikipedia: “Robotics middleware is middleware to be used in complex robot control software systems. It is the glue software that every system developer wants to use to connect software (and hardware) components together. Often, only communication between components is considered to be middleware” (see also: Cloud Robotics).

Dialog systems often involve the integration of multiple agents, and robotic systems may involve the integration of dialog systems. Game AI may include both “virtual robotics” and a dialog system layer. However, in dialog systems the middleware layer often seems to blur. Dialog systems themselves may perform a middleware function. The dialog system “dialog manager” component may serve middleware functions. And, additional middleware may interface with a dialog manager and/or dialog system. In fact, middleware and frameworks are often referred to in the same breath, as “middleware framework”. To clarify, according to Wikipedia, middleware “software consists of a set of services that allows multiple processes running on one or more machines to interact”; whereas, a framework “is a collection of software libraries providing a defined application programming interface (API).” (And, a platform “includes some sort of hardware architecture and a software framework”. A software architecture is the set of structures needed to reason about a system, comprised of software elements, relations among them, and properties of both.) Honestly, some “middleware” solutions just defy categorization…. Also note that in effect, certain of the following may represent historical artifacts, or in other words may be outdated.

Wikipedia:

References:

See also:


robotmiddleware2

Artificial Intelligence “Middleware” Solutions

  • 2APL Platform and its corresponding Eclipse plug-in editor are developed to facilitate the development and execution of multi-agent programs. {related:}
  • 3APL Platform has a visual interface for the monitoring and debugging of agents being run therein, and a syntax-coloring editor for source code editing. {related:}
  • Agent Factory Framework is an open source collection of tools, platforms, and languages that support the development and deployment of multi-agent systems. {related:}
  • AgentBuilder is an integrated software toolkit that allows software developers to quickly develop intelligent software agents and agent-based applications. {related:}
  • AgentScape (Distributed Agent Middleware) is a middleware layer that supports large-scale agent systems. {related:}
  • agentTool is a Java-based graphical development environment to help users analyze, design, and implement multiagent systems. {related:}
  • AI.implant from Presagis is a multi-platform artificial intelligence (AI) authoring and runtime software solution. {related:}
  • AiLive is best known for its LiveMove series of Motion Recognition and tracking software products. {related:}
  • AiSeek provides accelerated AI solutions to power tomorrow’s computer games, making possible sophisticated and highly dynamic game worlds, populated by intelligent life. {related:}
  • Artificial Contender (TruSoft) is an AI middleware and set of tools that introduces a new type of AI agent to games – learning, adaptable AC agents capable of behavior-capture. {related:}
  • AWARE is a platform providing the middleware and the functionalities required for the cooperation among aerial flying objects. {related:}
  • CLARAty (Coupled Layer Architecture for Robotic Autonomy) is a reusable robotic software framework for the integration and deployment of new technologies onto robotic platforms. {related:}
  • Cougaar (Cognitive Agent Architecture) is a Java-based architecture for the construction of highly scalable distributed agent-based applications. {related:}
  • DI-Guy (Software Development Toolkit) is a set of C++ libraries and content that enable you to add realistic human characters to your application quickly and efficiently. {related:}
  • EKI One (MASA Group) is a one-stop solution for behavior in online and computer games providing a complete design and runtime environment. {related:}
  • Encog is an advanced neural network and machine learning framework, for Java and DotNet. {related:}
  • FAUST (Formal Analysis Using Specification Tools) was developed to help reaching high quality in requirements document, especially for complex systems with critical aspects. {related:}
  • GearBox (Peer-Reviewed Open-Source Libraries for Robotics) is not a framework, but provides software tools which could be integrated into complete systems. {related:}
  • Havok is a physics engine, designed primarily for video games. {related:}
  • ICE (Internet Communications Engine) is an object-oriented middleware that provides object-oriented Remote Procedure Call, grid computing and Publish/subscribe functionality developed by ZeroC. {related:}
  • IDK (INGENIAS Development Kit) consists of tools that implement notation and implementation techniques described in the original work ofthe INGENIAS Development Process (IDP). {related:}
  • IIOP.NET allows a seamless interoperation between .NET, CORBA and J2EE distributed objects. {related:}
  • IMPACT (Interactive Maryland Platform for Agents Collaborating Together) provides a set of servers (yellow pages, thesaurus, registration, type and interface) that facilitate agent interoperability. {related:}
  • Jadex Framework is open source and Java-based and especially targets the development of concurrent and distributed software systems. (see also: JadexCloud) {related:}
  • Jason IDE is an interpreter for an extended version of AgentSpeak, implementing operational semantics and providing a platform for development of multi-agent systems. {related:}
  • JDE (Jack Development Environment) is a framework in Java for multi-agent system development, built by Agent Oriented Software Pty. Ltd. (AOS). {related:}
  • Jena is an open source Semantic Web framework for Java. It provides an API to extract data from and write to RDF graphs. {related:}
  • JIAC (Java Intelligent Agent Componentware) is a multi-agent architecture and framework that eases the development and the operation of large-scale, distributed applications and services. {related:}
  • Kynapse (Autodesk) is an artificial intelligence middleware that empowers game developers to build compelling character behaviors in video games. {related:}
  • LCM (Lightweight Communications and Marshalling) is a set of libraries and tools for message passing and data marshalling, targeted at real-time systems. {related:}
  • LS/TS (Living Systems Technology Suite) is an industry-grade, Java-based foundation for the professional development and operation of products and solutions based on software agent technology. {related:}
  • MARIE (Mobile and Autonomous Robotics Integration Environment) is a robotic development and integration environment focused on software reusability and exploitation of already available APIs. {related:}
  • MASA group (DirectIA) is a global company focused on the development of Artificial Intelligence-based Modeling & Simulation (M&S) software. {related:}
  • MASDK (Multi-agent System Development Kit) is the framework for visual designing of applied multi-agent systems, automatically producing the software code of agent classes in C++. {related:}
  • Miro (Middleware for Robots) is a distributed object oriented framework for mobile robot control, based on CORBA (Common Object Request Broker Architecture) technology. {related:}
  • MOOS (Mission Oriented Operating Suite) is a cross-platform suite of applications for operating autonomous vehicles. {related:}
  • MundoCore is a communication middleware which was specifically designed for the requirements in mobile- and ubiquitous computing systems. {related:}
  • Neuroph is lightweight Java neural network framework to develop common neural network architectures. {related:}
  • Nuin is a Java framework for building belief-desire-intention (BDI) agents, with a particular emphasis on Semantic Web agents. {related:}
  • Objectiver is a “Requirements Engineering” tool, a new generation power tool to engineer your technical and business requirements, based on KAOS. {related:}
  • OntoMap (Light-Weight Ontology Management Platform) is a knowledge a representation formalism, a reasoner, and a web portal for upper-level ontologies and lexical semantics. {related:}
  • OntoNet (Scalable Knowledge-based Middleware for Networked Systems) incorporates and integrates two aspects: ontological reasoning about system resources and declarative networking within routing components. {related:}
  • OpenRAVE (Open Robotics Automation Virtual Environment) provides an environment for testing, developing, and deploying motion planning algorithms in real-world robotics applications. {related:}
  • OpenCog is a project that aims to build an open source artificial general intelligence (AGI) framework. {related:}
  • OpenJAUS is a software library written in C++ that helps you use JAUS (Joint Architecture for Unmanned Systems) on your systems. {related:} (see also: JAUS Tool Set)
  • OpenOME (Organization Modelling Environment) is a general, goal-oriented and/or agent-oriented modeling and analysis tool. {related:}
  • OpenRobots software tackles the study and design of autonomous machines integrating perception, action and reasoning capabilities. {related:}
  • openSDK is a free and open-source implementation of Sony’s OPEN-R Development Kit, for now discontinued AIBO robots. {related:}
  • Orca is an open-source framework for developing component-based robotic systems. {related:}
  • Orocos (Open Robot Control Software) consists of portable C++ libraries for advanced machine and robot control. {related:}
  • PathEngine is “the most advanced pathfinding library commercially available.” {related:}
  • PlayerStage (Player Project) is free software that enables research in robot and sensor systems, probably the most widely used robot control interface in the world. {related:}
  • PTK (PASSI Toolkit) is Rational Rose plug-in that offers a support for PASSI (a Process for Agent Societies Specification and Implementation) a step-by-step requirement-to-code methodology for designing and developing multi-agent societies. {related:}
  • Pyro (Python Robotics) is a programming environment for easily exploring advanced topics in artificial intelligence and robotics without having to worry about the low-level details. {related:}
  • Rebeca Middleware is a new and powerful event-based middleware for information-driven applications based on publish/subscribe. {related:}
  • RSB (Robotics Service Bus) is a message-oriented, event-driven middleware aiming at scalable integration of robotics systems. {related:}
  • RSCA (Robot Software Communications Architecture) provides a standard operating environment for robot applications with a framework that expedites development. {related:}
  • SAP NetWeaver is SAP’s integrated technology computing platform, and is marketed as a service-oriented application and integration platform (SOA middleware). {related:}
  • Sesame (openRDF) is an open-source framework for querying and analyzing RDF data. (It contains a triplestore.) {related:}
  • SimBionic is an award-winning toolset for creating intelligent behaviors for simulations, games, and other interactive systems quickly and easily, without programming. {related:}
  • Skilligent is a robot control system, where user processes communicate to the system by sending and receiving agnostic UDP, TCP/IP or Serial messages. {related:}
  • SPADE (Smart Python multi-Agent Development Environment) is a Multiagent and Organizations Platform based on the XMPP/Jabber technology and written in Python. {related:}
  • SPARK (SRI Procedural Agent Realization Kit) is an agent framework, based on the BDI model, developed to support the construction of large-scale, practical agent systems. {related:}
  • SpirOps developed the first graphical editor for Artificial Intelligence behaviours, and some other tools to help you to simulate any number of choice making agents. {related:}
  • TAOM4E (Tool for Agent Oriented Modeling for Eclipse) supports a model-driven, agent oriented software development following the Tropos methodology. {related:}
  • UIMA is a component software architecture for the development, discovery, composition, and deployment of multi-modal analytics for the analysis of unstructured information and its integration with search technologies developed by IBM. {related:}
  • UPnP Robot Middleware (Universal Plug and Play) is a set of networking protocols that permits networked devices to seamlessly discover each other’s presence on the network. {related:}
  • Urbi is an open-source software platform to control robots or complex systems. {related:}
  • VisualSoar is a development environment written in Java to aid in the creation of agents for use in the Soar general cognitive architecture. {related:}
  • WURDE (Washington University Robot Development Environment) is middleware for robotics application development, designed to be maximally simple to develop in and easy to add support. {related:}
  • xaitment gives you all the runtime libraries and graphical tools you need to easily, efficiently and cost-effectively develop smarter characters. {related:}
  • YARP (Yet Another Robot Platform) is plumbing for robot software. {related:}

Dialog System Middleware

  • DIPPER is not a dialogue system itself, but DIPPER supports building (spoken) dialogue systems, by offering interfaces to speech recognisers (Nuance), speech synthesisers (Festival), dialogue managers, natural language understanding, and automated reasoning (SPASS, Bliksem, Mace, PARADOX). {related:}
  • Midiki is a toolkit that is friendly to linguists, supporting sophisticated behavior while providing full visibility into its internal operations. {related:}
  • TRINDIKit is a toolkit for building and experimenting with dialogue move engines and information states. {related:}

Frameworks:

  • CALLAS is a plug-in multimodal framework which allows easy and fast development of Art & Entertainment applications. {related:}
  • Embassi was a project sponsored by the German Fed. Ministry of Research to design and implement a generic dialogue system for rational (spoken) dialogues, ended in 2003. {related:}
  • Galaxy Communicator (MITRE) is a distributed, message-based, hub-and-spoke infrastructure optimized for constructing spoken dialogue systems. {related:}
  • GECA Framework provides a general purpose architecture for connecting modularized ECA functional components for multimodal human-agent interactions. {related:}
  • Jaspis is a framework for adaptive speech applications, designed to support distributed, highly context-sensitive applications that adapt. {related:}
  • Jindigo is a framework for developing and experimenting with incremental spoken dialog systems, developed at the Department of Speech Music and Hearing, KTH. {related:}
  • Maxent (Maximum Entropy Modeling Toolkit) is a general purpose machine learning framework for Python and C++. {related:}
  • OpenInterface is a framework with a graphical environment called OIDE, which allows the assembly of components to specify a “pipeline” defining a multimodal interaction. {related:}
  • OpenNLP library is a machine learning based toolkit for the processing of natural language text, and includes maximum entropy and perceptron based machine learning. {related:}
  • PAL Framework (Personalized Assistant that Learns) is a component architecture focused on improving the way that computers support humans through the use of cognitive systems. {related:}
  • SmartKom merges the advantages of dialogic communication with the advantages of a mixture of graphic control surfaces and gestures. {related:}
  • SRILM (SRI Language Modeling Toolkit) is a toolkit for building and applying statistical language models (LMs). {related:}
  • THSF (Thinking Head Software Framework) is open source software project developing middleware for the Thinking Head Project, in particular the “Event Manager” for the Articulated Head. {related:}
  • VHT Hub is the Java Hub Application Program Interface, part of the “Virtual Human Toolkit” by @USC_ICT. {related:}

Platforms:

  • CSLU Toolkit is a software library comprising a comprehensive suite of tools that enable exploration, learning, and research into speech and human-computer interaction. {related:}
  • SpeechBuilder is a suite of tools that helps facilitate the creation of mixed-initiativespoken dialogue systems for both novice and experienced developers of human language applications. {related:}
  • SUEDE is a speech interface prototyping tool allowing designers to rapidly create prompt/response speech interfaces. {related:}
  • WITAS RDE (Robotic Dialog Environment) is a software environment consisting of programs and modules for the systematic development and effective performance of dialogs between a human and a robot. {related:}