Notes:
Middleware is not the implementation of a concept, but rather it is a type of software that sits between different layers or components of an application or system, and provides services and interfaces to enable communication and integration between those layers or components.
Middleware is often used in complex systems, where different components or layers need to communicate and share data with each other in order to function properly. By using middleware, these components or layers can be isolated and decoupled from each other, making the system more modular and flexible, and easier to maintain and evolve over time.
Middleware can take many different forms, depending on the specific needs and requirements of the application or system. It can include components such as application servers, message brokers, data integration platforms, and other software that provides services and interfaces for enabling communication and integration between different parts of the system.
Artificial intelligence (AI) is a broad and diverse field, and it encompasses a wide range of technologies and applications. Similarly, middleware is a generalized concept that encompasses a variety of different software components and tools that provide services and interfaces for enabling communication and integration in complex systems.
Under the general rubric of “artificial intelligence middleware”, there are indeed four main categories: Multi-Agent System middleware, Game AI middleware, Dialog System middleware, and Robotics middleware. Each of these categories represents a specific type of middleware that is designed and used for specific applications and purposes within the field of AI.
- Multi-Agent System middleware is a type of middleware that is used in systems that are composed of multiple interacting intelligent agents. It provides services and interfaces that enable these agents to communicate and coordinate with each other in order to solve complex problems or achieve shared goals.
- Game AI middleware is a type of middleware that is used in the development of video games and other interactive applications. It provides a range of tools and libraries that can be used to create intelligent game characters and to simulate complex behaviors and interactions within the game environment.
- Dialog System middleware is a type of middleware that is used in natural language processing and dialog systems. It provides services and interfaces that enable these systems to understand and interpret spoken or written language inputs, and to generate appropriate responses or actions.
- Robotics middleware is a type of middleware that is used in the development of robotic systems. It provides services and interfaces that enable different components of the robot, such as sensors, actuators, and control algorithms, to communicate and coordinate with each other in order to achieve the desired behavior and functionality of the robot.
Dialog systems often involve the integration of multiple agents, and robotic systems may involve the integration of dialog systems. In these cases, the middleware layer can become quite complex, as different components and systems need to communicate and coordinate with each other in order to function properly.
Game AI may also include both “virtual robotics” and a dialog system layer, and in these cases the middleware layer can become even more complex, as the game AI needs to integrate with the game engine and other components of the game in order to provide intelligent and interactive behaviors.
In dialog systems, the middleware layer can sometimes become blurred, because the dialog system itself may perform some of the functions of middleware. For example, the dialog manager component of a dialog system may provide services and interfaces that enable different components of the system to communicate and coordinate with each other. Additionally, additional middleware may be used to interface with the dialog manager and/or the dialog system, in order to provide additional services or to integrate with other systems.
Wikipedia:
- Artificial intelligence systems integration
- Category:Message-oriented middleware
- Category:Middleware
- Common Object Request Broker Architecture (CORBA)
- Comparison of business integration software
- List of game AI middleware
- Message broker
- Message-oriented Middleware (MOM)
- Middleware
- Middleware (distributed applications)
- Open-source robotics / software
- Robotics middleware
References:
- MIRA – Middleware for Robotic Applications (2012) [PDF] .. by Erik Einhorn etc
- CIGA: A middleware for Intelligent Agents in Virtual Environments (2011) [PDF] .. by Frank Dignum etc
- Middleware for Incremental Processing in Conversational Agents (2010) [PDF] .. by Timo Baumann etc
- A review of middleware for networked robots (2009) [PDF] .. by Nader Mohamed, Jameela Al-Jaroodi, and Imad Jawhar
- A Survey of Agent-oriented Development Tools (2009) [PDF] .. Pokahr & Braubach
- Middleware for Network Eccentric and Mobile Applications (2009) [Book] .. edited by Luís Rodrigues etc
- Characteristics of Middleware for Networked Collaborative Robots (2008) [PDF] .. by Nader Mohamed and Jameela Al-Jarood
- Middleware for Robotics: A Survey (2008) [PDF] .. by Jameela Al-Jaroodi etc ..
- ASEBA, an event-based middleware for distributed robot control (2007) [PDF] .. by Stéphane Magnenat etc
- Design and Evaluation of Communication Middleware in a Distributed Humanoid Robot Architecture (2007) [PDF] .. by Victor Ng-Thow-Hing etc
- The PEIS Kernel: a Middleware for Ubiquitous Robotics (2007) [PDF] .. by Mathias Broxvall etc
- Middle Layer Incorporating Software Robot and Mobile Robot (2006) [PDF] .. by Jong-Hwan Kim etc
- Software Agent-Based Applications, Platforms and Development Kits (2005) [Book] .. edited by Matthias Klusch etc
- A Survey on Coordination Middleware for XML-centric Applications (2002) [PDF] .. by Franco Zambonelli etc
See also:
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:}
- ACT-R is a cognitive architecture: a theory for simulating and understanding human cognition. ( jACT-R | PythonACT-R ) {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:}
- Artifitial Intelligence Framework is designed to be extensible and personalizable to help AI developers to accelerate artificial neural network (ANN) projects. {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:}
- DHRA (Distributed Humanoid Robot Architecture) is a paper [PDF] and patent by Victor Ng-Thow-Hing (Honda Research Institute). {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:}
- FAUST (Formal Analysis Using Specification Tools) was developed to help reaching high quality in requirements document, especially for complex systems with critical aspects. {related:}
- FlowDesigner (RobotFlow) is a free data flow oriented development environment, similar to both Simulink and LabView. RobotFlow is a mobile robotics tookit based on the FlowDesigner. {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:}
- 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:}
- JADE (Java Agent DEvelopment Framework) is a software framework for multi-agent systems, in Java that has been in development since at least 2001. {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:}
- jCOLIBRI is a case-based reasoning (CBR) framework that can be used to build other custom user-defined CBR 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:}
- MRDS (Microsoft Robotics Developer Studio) is a Windows-based environment for robot control and simulation. {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:}
- Open Agent Architecture (OAA) is a framework for integrating a community of heterogeneous software agents in a distributed environment. {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:}
- ORiN (Open Robot/Resource interface for the Network) is a standard network interface for FA (factory automation) systems, proposed in 2002 by the Japan Robot Association. {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:}
- PDT (Prometheus Design Tool) is a tool that supports the Prometheus methodology for building agent based systems, developed by the RMIT Intelligent Agents Group. {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:}
- ROS (Robot Operating System) is a software framework for robot software development, providing operating system-like functionality. {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:}
- RT-Middleware (Robot/Robotics Technology Middleware) is a common platform standards for Robots based on the distributed object technology (see: OpenRTM). {related:}
- SAP NetWeaver is SAP’s integrated technology computing platform, and is marketed as a service-oriented application and integration platform (SOA middleware). {related:}
- SEMAINE API is the component integration middleware created for the SEMAINE project Sensitive Artificial Listener agent. {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:}
- 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:}
Dialog System Middleware
- COLLAGEN (COLLaborative AGENt) is Java middleware for collaborative agents from Mitsubishi Electric Research Laboratories (MERL). {related:}
- 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:}
- Psyclone AIOS by CMLabs provides a lightweight implementation of the OpenAIR specification, developed by Mindmakers. {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:}