Inconsistency Management

When designing and developing complex engineering systems, one common practice of managing the often overwhelming complexity is to study the system from different viewpoints. Such viewpoints are defined by a variety of factors, including the concerns of interest, level of abstraction and context. Different stakeholders study the system from different viewpoints. However, each stakeholder relies on, or is influenced by the work and concerns addressed by other stakeholders. This leads to a number of semantic relations between views and models.

It is good practice to separate concerns as much as possible. However, a complete separation of concerns is impossible. This can lead to different modelers talking about (semantically) the same entity, but make contradicting assertions about it. For instance, one modeler may be using different dimensions for an object than specified by another (a classic synchronization problem).

Why Inconsistency Management?

Ensuring global consistency is impossible (see here why we think this is the case). Therefore, the focus must be on managing – that is, identifying and resolving – inconsistencies. In systems engineering, inconsistencies manifest in a variety of forms: violation of well-formedness rules, inconsistencies in redundant information, mismatches between model and test data, and not following heuristics or guidelines. In current practice, most of these inconsistencies are only identified during reviews that are part of the verification & validation activities. In between these reviews there is a possibility of decisions being made based on inconsistent information and knowledge, which can lead to poor outcomes and costly rework. Typically, the earlier an inconsistency is identified, the cheaper it is to resolve. A recent paradigm shift in systems engineering known as Model-Based Systems Engineering (MBSE) has the potential for the process of identifying inconsistencies to be performed in an automated fashion. This is made possible by the key principle of MBSE: the use of only formal, i.e., computer-interpretable models. Automated and computer-assisted methods are important enablers for more frequent inconsistency checks and therefore towards continuously verifying & validating systems.

How Do We Manage Inconsistencies?

Finding inconsistencies in a set of models requires symbol manipulation across potentially heterogeneous data. Therefore, a common, unifying formalism is required. For this purpose we use a graph model - more specifically: directed, attributed and typed multi-graphs. We hypothesize that such a model is sufficient to represent all of the knowledge and information that is meaningful in the context of inconsistency management.

To identify inconsistencies, we define inconsistency patterns. These patterns represent negative graph constraints. A match to an inconsistency pattern represents one particular manifestation of an inconsistency within the context of the models involved. Graph transformation rules (which are, from the perspective of logical reasoning, rules of inference and implications) act as a way of enriching the base graph with implicitly contained information. The formal basis for why we think this is valid is published in this conference paper (click).


As part of our research effort, we have developed a technology demonstrator that uses the Resource Description Framework (RDF) to represent models by graphs. RDF representations of models are automatically generated by making use of the Open Services for Lifecycle Collaboration (OSLC) framework. In the RDF representation, each model element is assigned a unique URL. A tool adapter is written for each modeling tool, which uses recommendations from the OSLC consortium to generate and, via a RESTful interface, provide and accept changes to parts of models by sending HTTP requests. A union graph of all models is stored in a central RDF database (a quad store). This union graph is constructed by a crawler, which visits each OSLC tool adapter and follows the links it finds in each RDF subgraph provided by the tool adapters. A reasoning engine then uses a pre-defined set of patterns and inference rules to identify any matches to inconsistency patterns and, hence, inconsistencies.

More information about the proof-of-concept implementation can be found in this publication (click).

Sponsor & Collaboration

This project is sponsored by Boeing Research & Technology and is part of a larger effort - Model-Based Systems Engineering for Aerospace Manufacturing - that is conducted together with the Keck Virtual Factory Lab (Dr. Leon McGinnis) and the Aerospace Systems Design Lab (ASDL) (Russell Peak).