In order to develop a concrete understanding of what we are attempting to achieve with the Architected Futures™ tool suite, and to develop a perspective on the best approach to get there, it is important to understand the similarities and differences between the conceptual model for AIR (the Architecture Information Repository) and the conceptual models for object-oriented programming versus the model for semantic processing as expressed in languages like OWL and RDF. An informative primer on the distinctions between RDF/OWL and OO can be found at reference [Knublauch 2006] 1. The RDF/OWL and OO content in the following discussion was largely derived from that document.
All three frameworks define domain modeling schemes that use similar vocabularies to discuss what are similar but not necessarily congruent concepts. All three frameworks provide a scheme for defining specific instance elements that are, or represent, real world objects. All three frameworks also provide a scheme for defining and dealing with metadata about the real world objects in the form of classification systems and assigned attributes (properties). Objects are organized by assignment to classes and classes can be arranged into hierarchies where sub-classes inherit characteristics from super-classes. In all three frameworks the attributes assigned to objects can take the form of relationships with other objects or the attributes can be assigned as primitive (literal) values specifically assigned to the related object.
Object-oriented specifications are designed to specify structural and behavioral characteristics of elements for purposes of construction and operation of the element. Class hierarchies are used to propagate or specialize common features in a consistent manner across tightly-coupled families of similar elements. Instances of elements are members of a unique implementation class, and only by implication members of that class' parent classes.
Ontological specifications are designed to specify logical relationships. Originally they were directed towards specifying classification schemes and recently have been utilized to support deductive reasoning and knowledge systems. Classes are used to define loosely-coupled sets of elements with one or more similar characteristics which might play a role in a reasoned conclusion. Elements may simultaneously belong to many classes based on the same or different feature characteristics of the element at any point in time. Class hierarchies are used to define logical sets and super-sets that imply nothing more than that the membership of the set shares some distinguishing characteristic.
The Architected Futures™ Architecture Information Repository (AIR) is designed to operate as a knowledgebase supporting content management for the AF tool suite. The schema for that knowledgebase needs to support specifications that are descriptive of the architecture of the modeled system(s). This includes the structure and behavior of the system as well as, optionally, its physical dimensions, spatial position, motivations and other characteristics. The specification of these characteristics tends to fit within the general capabilities of an OO specifications set. In addition AIR is intended to support subjective measurement, analysis of implications, verification and validation of specifications, designs and related models with respect to efficiency, effectiveness, sufficiency and completeness. These characteristics tend to better fit the capabilities of an ontological framework. Because of this dualistic nature, AIR needs to support both an OO and an ontological view of the knowledgebase.
A key difference between object-oriented and ontological classes is that object-oriented classes are used to define a structural hierarchy (usually in the form of a taxonomy) while ontological classes are used to define sets (arbitrary collections of things with some similar characteristic). In OO a class is a type. In ontology a class is a collection. In the OO realm the structure of an instance object (the class hierarchy, an object's properties and its behavior as defined by its methods) is fixed throughout its life cycle as defined by its type. In the ontological realm an object's class membership may change dynamically as a function of time or a function of the value set of its properties and it may simultaneously be a member of multiple overlapping sets (classes). OO classes are defined by the consistency of the property specification, ontological classes can be defined by the data value of the property.
The set of ontological classes are able to be defined as a superset of OO classes. The OO classes form a subset of the ontological classes that might be termed structural or static classes, plus an additional set of non-structural or dynamic classes. AIR benefits from this view by allowing the ontological classes to specify logical relationships and reasoning involving both types of specifications.
In the OO realm properties are specifications of the characteristics of a type of element, and they are interpreted in the context of the element within which they are defined. They define characteristics of entities of the defined type or derived from that type. The properties define value sets that can be ascribed to the entities or they may define operations that can be performed by those entities. The OO realm operates using a closed world model, value sets are specific and definitive. Logic statements all resolve to either true or false.
In the ontological realm properties are entities in their own right with a consistent definition wherever they are used. Properties and classes are each defined independently. Classes are associated with properties only in terms of explicit statements that assert the consistent specification characteristics of the property definition with regard to a relationship between two resources. The ontology realm operates using an open world model, values sets can be vague and ambiguous. Logic statements do not have to resolve to true or false, but can resolve to unknown or undefined.
AIR benefits from this difference in approach by using an ontological framework as a control system in the specification and measurement of elements defined using an OO framework.
Role in the Tool Suite
The OO framework is used within the tool suite to specify the structure and behavior of the architecture and its elements. The ontological framework is used to specify the policies imposed on the architecture including the policies imposed on the OO framework. AIR provides the repository for both sets of specifications. AIR maintains the OO hierarchy for EATS Elements, and it maintains a Sowa Ontological view of the elements as per their EATS Element Type as specified in the EATS Metamodel. Applications are free to maintain, using EATS tooling, OO parent-child relationships according to any containment formulation the application may desire, and the application is free to use any formal ontological mapping scheme to describe relationships between elements.
- 1. Citekey Knublauch 2006 not found