Open Autonomous Intelligence Initiative

Open. Standard. Object-oriented. Ethical.

Understanding Object-Oriented Models for Interoperability

Many AI organizations promote openness, but it extends to a different degree than we envision – complete openness, a comprehensive set of open-source standards and models, including interoperability and ethical guidelines allowing anyone to build on and use AI technology.

Claims to promote openness are primarily through open-source initiatives, collaborations, and transparency in research and tools. Openness often varies in scope and intent, ranging from open-source software and research publications to participation in open standards and collaborations.  We can assess a company’s ‘openness’ by examining its philosophy and goals, how it provides access and participation, and the degree and nature of its transparency and support for interoperability.

Current approaches to openness typically involve releasing certain tools, models, or research findings to the public. However, the core technologies and data often remain proprietary.  While access to some of their technologies is provided, access to the latest and most advanced models is often restricted or monetized. The community can use and contribute to parts of these systems, but control over the direction and development of the core technologies typically remains proprietary.  Transparency is limited to the extent of disclosure. Interoperability is not a primary focus, as each company often develops its ecosystem, which may not seamlessly integrate with others.

The Open Autonomous Intelligence Initiative envisions a comprehensive standardization, but is openness inherent in standardized systems?  The degree of openness in standardized systems varies significantly based on the design choices, governance models, and standards’ goals.  Standards developed by open standards bodies are more open, as they generally encourage participation from a wide range of stakeholders and make the standards available to the public.  Standards developed with broad community engagement from industry, academia, and public interest groups are typically more open as diverse interests shape them and, thus, more likely to support broad interoperability and adoption.  A key aspect of openness in standards is the extent to which they promote interoperability between different systems and technologies. Object-oriented application models significantly enhance interoperability across different systems and platforms. Here are several ways through which object-oriented models support interoperability:

Encapsulation

Encapsulation allows objects to hide their internal state and only expose behavior through methods. This means that other parts of a program interact with an object through its public interface, not its internal representation. This encapsulation of data serves as a form of contractual programming that other systems can interact with without needing to understand the underlying complexities, facilitating interaction between different software components or systems.

Interfaces and Abstract Classes

Interfaces and abstract classes in object-oriented programming define methods that must be implemented by any class that signs up to the interface or extends the abstract class. This ensures a consistent interface while allowing for different implementations. This consistency is crucial for interoperability, as it means that different programs can rely on the same interface while the underlying implementation details can vary independently.

Polymorphism

Polymorphism allows methods to do different things based on the object it is acting on, even though the interface remains consistent. This feature is particularly useful in maintaining interoperability in systems where the exact type of objects is not known in advance but can be interacted with in a uniform manner. For example, a function designed to display information can work with any object that implements a specific display method.

Inheritance

Inheritance lets new objects acquire the properties and methods of existing objects. This is beneficial for interoperability because it allows different teams to create new classes that are automatically compatible with existing frameworks and libraries, provided they inherit from the same base or parent class. It streamlines the process of integrating new functionalities into existing systems.

Component-Based Development

Object-oriented development encourages component-based approaches where software components encapsulate certain functionalities. These components can be easily plugged into or integrated with other software systems, improving interoperability. Components often come with defined interfaces for communication, making them interchangeable parts of different systems without requiring changes to the components themselves.

Modularity

The modularity provided by object-oriented design means that systems can be divided into distinct features and services, each encapsulated in its own object. This separation allows for the easy integration of different modules developed in disparate systems or even by different teams. Modularity is a key to achieving system flexibility and enhancing interoperability among various software applications.

Standardized Object Management

Many object-oriented systems utilize object request brokers like CORBA (Common Object Request Broker Architecture) which standardize how objects across different systems communicate. Such brokers manage the communication between objects across heterogeneous systems, enhancing interoperability.

Serialization

Objects often need to be serialized to facilitate interoperability, especially over a network. Serialization is the process of converting an object into a format that can be easily sent over a network and then reconstructed back into a copy of the original object. This process allows objects from one system to be used by another, supporting distributed applications.

By leveraging these features, object-oriented models provide robust support for developing systems that can work seamlessly with other applications and services, a fundamental requirement for modern software ecosystems.

The NIST AISIC member organizations are uniquely positioned to advocate for a wide-scale collaboration to develop a comprehensive national standardization, including interoperability, ethical guidelines, and universal access, similar to public infrastructure—an AI infrastructure. Such standards would achieve complete AI openness, similar to how HTML, HTTP, and other web standards work, allowing anyone to build on and use AI technology. Fostering this collaboration and the broad adoption of standardized object-oriented models will require regulatory frameworks and significant shifts in organizational policies, with a greater emphasis on collaboration over competition.