Software Requirements Specification


Formed by a group of engineers passionate about the potential of Artificial Intelligence, the OpenAI project was struck to address the recognized need for standards in the community that would allow this potential to be realized. All Artificial Intelligence tools, by definition, aspire to emulate human intelligence in some fashion. In order to reach this common goal, however, all tools must at some level speak the same language or behave in the same manner. It is this level of communication and behavior that the OpenAI project aims to define and standardize.

The researchers of OpenAI realize that the objectives and goals of all AI software cannot be described by a simple external API or specification. To describe the field of AI appropriately we will divide AI into a set of disciplines. Each discipline will have a Level 2 or 3 specification that will describe that area better than the Level 1 specification. In this way we hope to cover the vast field of AI as best we can.


The OpenAI group has set out to create two things:

This document comprises the first item and will define the way in which a multitude of AI tools may be written so that a common API arises. This common API will allow applications which encapsulate the tools to share data between them and control them in the same manner.

The second item will be an Open Source reference implementation created by the developers involved in the OpenAI project to illustrate the effectiveness of the specification. Initially these libraries will consist of traditional AI tools. For example a Neural Network, Genetic Algorithm, Inference Engine and Mobile Agent System. However, as time progresses more advanced libraries, tools and algorithms will be developed.


This document will define the disciplines of AI and the different levels of specification. The first level will seek to capture common data and behavior objectives. The subsequent levels will deal with different realms of AI, each division addressing the goals and behavior assessed for that area.

Please keep in mind that this is an evolving document being developed in a distributed environment. As such it will have notes strewn about and conversational pieces interjected with specification pieces.

Your constructive feedback is welcome. Please email gleo with any suggestions or comments.

Level 1


Level 1 will provide a high level specification for all tools in AI. The goal is to create a set of descriptions that will allow a developer to provide an API that describes the tool he is developing to other AI tools aware of the specification. The specifications in this section will allow any piece of software to get basic information about the tool, it's version, the level of specification that it supports and a location to look for more information about the ontology and/or complete external API.