2025/06/09 by Friedrich Steimann, Robert Clarisó, Martin Gogolla · 1 voice
Computer Science · #Model-Driven Software Engineering Techniques #Semantic Web and Ontologies #Advanced Database Systems and Queries
paper · pdf · doi:10.1007/s10270-025-01286-1
openalex publication_date 2025/06/09 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/23
Abstract At its core, OCL as currently defined is a first-order functional language: its expressions evaluate to single values, with collections accounting for multitudes of values, and special values and for partiality. By contrast, the data model providing the context of OCL expressions is inherently relational: the associations of UML class diagrams are essentially relations, with uniqueness and order designators extending expressiveness to ordered multirelations. As a result, OCL suffers from a functional/relational impedance mismatch, which is only superficially addressed by its navigation shorthands. At the same time, OCL is inherently unsafe: expressions containing subexpressions evaluating to may be invalid, translating to a runtime error in programming languages. We address this situation by turning OCL into a relational language that retains most of OCL’s original syntax and semantics, yet revises its fundamental design decisions that lead up to the noted problems. In particular, our version of OCL, which we call OCL ^\sharp <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mmultiscripts> <mml:mrow/> <mml:mrow/> <mml:mo>♯</mml:mo> </mml:mmultiscripts> </mml:math> , is type-safe.