# Gaining Insights into Conceptual Models: A Graph-Theoretic Querying Approach
## 3 Queries and Databases  
### Conceptual Model Querying  
Conceptual modeling generates a representation of a system in some domain. A detailed model can help improve, develop, identify gaps, and optimize the represented system [6]. The goal of conceptual modeling is to establish a framework that facilitates understanding of the problem space, synthesis of possible solutions, and analysis of modeled solutions. Model querying is important, as it provides for information aggregating and filtering, enabling better model understanding and detection of flaws. Effective querying is required not only for humans but also for automated analysis systems.  
Object-oriented modeling is supported by the Unified Modelling Language (UML) {XE \"UML:Unified Modelling Language\"}. A single kind of UML diagram, such as a class diagram, is not enough to define all the aspects of a specification. Therefore, it has 14 kinds of diagrams. UML includes a textual Object Constraint Language (OCL) {XE \"OCL:Object Constraint Language\"} [7], which can express detailed aspects about the modelled system. OCL was originally designed specifically for expressing constraints about a UML model. However, its ability to navigate the model and form collections of objects has led to  
Figure 1: An Object-Process Methodology (OPM) model with a procedural (agent) link.  
Figure 2: An OPM model with a structural (aggregation-participation) link.  
attempts to use it as a query language. OCL can be used as a basis for several different languages, and it has indeed served as a basis for the Query/Views/Transformations (QVT1) {XE \"QVT:Query Views Transformations\"} standard [8].  
The Structured Query Language (SQL) has become synonymous for database querying that serves relational database management systems (RDBMSs), and it has many implementations. Object Query Language (OQL) XE (\"OQL:Object Query Language\") [9] has been too complex, hindering full implementation of its semantics. Although there are many OQL variations, a fully accepted OQL equivalent to SQL for querying an object-oriented data model does not exist.  
Prolog [10] is a declarative programming language based on the logic programming paradigm. Due to its rule-based approach, it has been successfully applied to implement query engines for query languages based on various data models, e.g., for querying RDF [11] data with SPARQL [12]. Prolog provides metamodel-independent facilities to implement query engines for many different modeling languages, such as UML and Event Driven Process (EPC) chains {XE \"EPC:Event driven Process Chains\"}.  
OMG Systems Modeling Language (SysML) {XE \"SysML:Systems Modeling Language\"} [13] is used to build comprehensible models of engineering systems, but it lacks a formal basis, so compatibility checks cannot be performed on it directly. An approach that enables explicit knowledge representation and application of inference mechanisms is the Web Ontology Language (OWL). {XE \"OWL:Web Ontology Language\"} However, OWL targets formal knowledge representation and lacks modeling abilities. Therefore, [PERSON] et al. [14] have proposed to combine systems modeling with semantic technologies, specifically OWL, in order to enhance the capability to analyze change influences. In their proposal, SysML enables creating an interdisciplinary system model with the required information, while OWL can be utilized for the formal compatibility check.