"A pattern language is a powerful tool for creating a coherent and integrated design, but it is also a way of thinking and a way of communicating."

Kent Beck

“The Timeless Way of Building” was the term that Christopher Alexander, the inventor of the design patterns concept, chose to refer to a design philosophy that emphasizes the importance of creating designs that are not just technically advanced, but are rather in harmony with the context in which they are used. The main idea behind this philosophy is that “enduring designs” should meet the needs of those who are using them as well as being rooted in the traditions and culture of the environment that originated them. Alexander’s philosophy was conceived in the field of architecture before it was adopted in the field of software engineering to power the extensively utilized “design patterns”. In OOBN PL (Object-Oriented Bayesian Networks Pattern Language), we embrace the same philosophy as a “Timeless Way of Building…Models”.

Models are increasingly used to help us tackle many of humanity’s greatest challenges arising from complex social, economic, and environmental interactions. Such models are used for a multitude of purposes ranging from helping their users to understand the behavior of complex systems, informing decision makers and assisting them in devising effective policies, capturing the perspective of stakeholders and promoting their participation in the decision-making process, and fostering learning and education about different aspects of the complex systems. However, in order for these models to truly play the role expected from them, they need to demonstrate a high level of reliability and credibility, and their development process needs to be rigorous and transparent.

This work is motivated by recognizing the modeling workflow’s importance and role as a premise for the models’ success. The modeling process, in its entirety, must be considered a fundamental component of the model itself. Therefore, having a clear workflow that delineates the design choices made by the model developer is key in understanding the model development process, reflecting on the design choices that guided it, and evaluating their impacts on the resulting model. Based on this view, we propose OOBN PL, a pattern language that defines a modeling workflow for building Object-oriented Bayesian networks. The building blocks of OOBN PL are patterns utilized as structured, reusable, transferable containers of knowledge, where each pattern describes the core of a proven solution to a recurring design problem. However, the full power of patterns is achieved by coherently organizing them in a pattern language that describes the relationships and dependencies among them so they can be used to develop complex designs. OOBN PL explains how an assembly of patterns, compiled from different knowledge domains, can work together to enable modelers to produce effective probabilistic component-based models. OOBN PL does not focus solely on the modeling technique, i.e. OOBNs; however, it integrates knowledge from multiple domains to embed the technique in a holistic modeling process.

Use cases

Typical use cases for OOBN PL will be one of the following scenarios (or a combination of them):

  • A modeler who attempts to build an OOBN model without much experience with OOBNs; in this case, OOBN PL can be used as a guide for model building that walks the modeler through the steps that need to be followed in order to finish the model as well as providing her/him with solutions for the main problems that are usually encountered at each step.

  • A PL developer who attempts to develop similar languages, for instance, developing a pattern language for building System Dynamics models; in this case, the developer can reuse the theory and the steps behind OOBN PL to develop their modeling language.

  • A PL developer or user who seeks to validate the PL that she/he is developing/using; in this case, the PL validation framework that was used to validate OOBN PL can be utilized (visit the publications section for more details on the validation framework).

  • OOBN PL can also be used in an educational context as a teaching tool for building models using OOBN.

Finally, we believe that an impactful PL is a one that motivates and provides common basis for interdisciplinary communication between the different parties involved in model development. Therefore, we highly encourage OOBN PL users to share their experience of using the language, raise any issus that they faced during using it, and help in further developing it. More details about contributing to OOBN PL can be found in the contribute page.