Conceptual modelling is usually associated with the discipline of software engineering. But modelling is a useful technique for shaping, exploring, documenting, understanding, and communicating artefacts of many kinds, and not only software. In fact, and after having worked in the realm of cultural heritage for over 25 years, I can confidently state that people in the humanities and social sciences do a lot of conceptual modelling. They may not use the same terminology and degree of formalisation that engineers do, but they still find conceptual modelling useful [1].

Modeling is useful to everybody not only software engineers. People in social sciences and humanities do a lot of conceptual modeling Click To Tweet

This post describes how and why we decided to create ConML, a conceptual modelling language for non-experts in information technologies or software engineering. It also describes the major design criteria of ConML, our experiences with it so far in the field of cultural heritage, and the tooling environment we created for it. You can find more about ConML on or in [2].

Background and motivation on ConML

Humanities and social sciences are usually considered to be less technological than the natural sciences. Fields such as history, archaeology or anthropology are often perceived, at least superficially, to be “softer”, closer to people and further away from things, abstractions and machines. Supposedly, this makes them more complex, because:

  • They often incorporate vague and fuzzy temporality issues, which do not allow for total order relationships.
  • Both ontic vagueness (which causes imprecision) and epistemic vagueness (which causes uncertainty) are fundamental aspects that need to be considered. Other issues related to vagueness such as inaccuracy and error are also important.
  • The subjectivity of the observer (i.e. the person creating the model) cannot be discarded, because it is an important aspect of the information and needs to be considered.
  • Humanities and social sciences often avoid the usual hypothetic-deductive method that is common to the natural sciences, and do not necessarily follow the problem/solution approach on which engineering is based.

Within a context like this, our colleagues at the Institute of Heritage Sciences ( and other organisations working in cultural heritage often create and use conceptual models to explore, conceptualise and communicate information. We have informally observed two facts about this over the years. Firstly, there is an ongoing struggle to find a good enough way to perform this modelling task, one that is capable to address the peculiarities outlined above. Since there are no mainstream or “accepted” modelling approaches (as UML might be in the software world, for example), every author, project and organisation have their own personal approach. Secondly, modelling techniques “imported” straight from the engineering world, such as UML, fail catastrophically. They fail because:

  • They are designed with engineering in mind, under a problem/solution paradigm, and focusing on the creation of precise solutions to documented problems. People in the humanities and social sciences, conversely, want to explore, document and reason about situations, incorporating vagueness and subjectivity as much as necessary.
  • They are geared towards the creation of software systems, whereas people in the humanities and social sciences, most of the time, are interested in creating conceptual models for documentation and communication purposes. To them, software is a minor reason for modelling, if at all.
  • They are often too complex. It would be naïve to aim for an archaeologist or anthropologist to get a decent grasp on the latest UML specification. Even a UML profile that hides most of UML’s complexity would be a leaky abstraction.
  • They are difficult to learn incrementally. For example, with UML, you need to understand the very complex idea of what a stereotype is before you can use something as basic as an instance-of relationship.
  • They lack some features that are needed by people in the humanities and social sciences, such as explicit support for vagueness or subjectivity modelling, or clear semantics for null unknown [3].

For these reasons, we decided to create ConML, a conceptual modelling language constructed from the ground up with the humanities and social sciences in mind, but which can be used to model anything, in any domain. It is extremely simple, affordable, and can be easily and incrementally understood by people without previous exposure to information technologies [4]. Its full specification, including a formal metamodel, a graphical notation and examples, is only 58 pages long.

ConML, a conceptual modelling language for non-experts in information technologies. Its full specification is only 58 pages long (the UML one is over 700!) Click To Tweet

The ConML language

The ConML 1.5.2 metamodel comprises 31 classes. The following figure (expressed in UML) shows some of them.


They key elements are Class, Attribute and Association, which have their usual meaning in object-oriented modelling languages. ConML implements multiple generalisation, but not multiple specialisation. This is equivalent to what is often termed “multiple inheritance” in programming, but the explicit presence of discriminants add clarity and avoid ambiguous situations. Repeated inheritance is managed through well-defined inheritance rules.

In addition to type-related classes such as these, the ConML metamodel also includes classes to describe objects, values, references and other instance-related concerns. This is especially important in relation to object versioning, as described below. As opposed to UML, which emphasises type-level (or M1, in OMG parlance) constructs over instance-level (M0) ones, ConML tackles both levels with the same degree of detail. In this regard, ConML can express type as well as instance models, and manage the relationships between them.

Another major feature of ConML is the inclusion of deferred features, named properties. In addition to attributes and semi-associations (which convey the expected meaning), properties are intended to model characteristics of classes and leave the concrete details unspecified until the model is refined and properties are fleshed out into either attributes or semi-associations. This helps when constructing a model in an exploratory way.

All features, in addition, are intrinsically multi-valued, and there is built-in support for null and unknown semantics; null means absence of information, whereas unknown means presence of information but absence of knowledge about it. For example p.Name = unknown means that p has a name, but we don’t know what it is. This is very different from p.Name = null, which means that p does not have a name.

Also, features in ConML may be marked as temporal, subjective or both. A temporal feature is one that, on change, allows for the creation of a new phase of the owner object; similarly, a subjective feature is one that, on change, allows for the creation of a new perspective of the object. Phases and perspectives are “slices” of the associated object along different and independent dimensions; the following figure shows an example.

Note that attribute Building.Use is marked as temporal, and attribute Building.Assessment is marked as subjective. Under the thick grey line, four versions of object b: Building are shown. Each of them shows predication qualifiers, that is, expressions that “slice” the object over a given dimension (time or subjectivity) and return a particular version of the object. Time-related qualifiers (also called phase qualifiers) consist of an @ sign followed by a time expression (years, in this example). Similarly, subjectivity-related qualifiers (also called perspective qualifiers) consist of a $ sign followed by a subject expression (people names in this example). You can see how the value of Assessment is different at the same point in time depending on who expresses the information; this is allowed by the class model since the attribute has been marked as “(S)”. Similarly, you can see how the value of Use changes over time regardless of who expresses it.

The ConML metamodel also supports multilingualism at the type and instance levels. This means that type (M1) models can be stored and managed in multiple languages. Model elements such as class or attribute names, for example, can be stored in multiple languages and then visualized in any of them at any moment. Similarly, instance (M0) models can be expressed in multiple languages. To achieve this, attributes of the Text base type can be marked as multilingual in a class model; when the class is instantiated, the objects can have different value sets for each multilingual attribute, one per language. This means that instance models can be easily stored and managed as multilingual artefacts and displayed or queried in any language at any point.

ConML also supports model extension. This means that a type model can be extended by adding new elements (such as classes, attributes, etc.) or altering or deleting existing ones. Despite almost total freedom to add, change and delete elements during extension, an extended model is guaranteed to be Liskov-compatible with its base model. This is achieved through the application of reinterpretation rules, which recast an instance model conforming to an extended type model as conformant to the base model at any point. Using this approach, heterogeneous models can be made to interoperate type-safely and with minimal loss of information.

Experiences with ConML so far

ConML has been used so far for various goals. One the major efforts has been the development of a large abstract reference model of cultural heritage, CHARM [5], which can be found at This model has been extended and applied to several projects such as KaleidoScapes (

Also, ConML has been used as the core of the master’s level course “Conceptual Modelling for Cultural Heritage”, aimed at archaeologists, architects, and related professionals, and which has had ten editions so far. Feedback obtained has been very positive, especially with regard to being able to explicitly model temporal and subjective issues, to the extreme simplicity of the language, and to the added level of formality that a semi-formal modelling language brings to the humanities and social sciences.

In addition, a complete toolset, named Bundt, has been developed for ConML ( Bundt can be used interactively to create and manipulate models on screen via a graphical UI, or programmatically through a set of libraries to integrate Bundt functionality into other software systems. Either way, you can create type and instance models, work with temporal, subjective, vague and multilingual information, import and export model data from/to tabular text files, compute statistics about your models, find connection routes and perform selective full-text searches in models, compare models either lexically or semantically, seal and unseal models to control versioning, and write, compile and execute scripts against models to process them automatically, using a custom scripting language. Bundt pays especial attention to instance models, treating them as datasets that can be queried and mass processed.

Bundt model designer for ConML

Bundt has been experimentally used as a modelling infrastructure in projects such as KaleidoScapes (, Cabila ( or Heritage 2.0 ( Now it is freely and publicly available, together with comprehensive documentation, at

The future of ConML

Previous versions of ConML included the notion of model views [6], but this was removed as it demonstrated to be of little use. A new approach to model views is being developed and will be included in the specification soon. A model view is a metamodel-supported artefact that allows a model user to superimpose a layer of customisation over a model, regarding how its elements are organised. This can be useful to adjust models for purposes such as database implementation or user interface design.

We are working on the implementation of better model extension and management features. We are also developing a repository-oriented model persistence layer that will allow models to be stored and shared by multiple users, and queried remotely.

If you are interested in ConML, the book Information Modelling for Archaeology and Anthropology [7] contains a detailed description of the language as well as dozens of examples. A Spanish-language version is also available [8].

You can also contact us on [email protected], or visit our web site on Thank you.

You can also contact us on [email protected], or visit our web site on Thank you.


[1]        C. Hug and C. Gonzalez-Perez, “Qualitative Evaluation of Cultural Heritage Information Modelling Techniques,” ACM J. Comput. Cult. Herit., vol. 5, no. 2, 2012.

[2]        C. Gonzalez-Perez, “A Conceptual Modelling Language for the Humanities and Social Sciences,” in Sixth International Conference on Research Challenges in Information Science (RCIS), 2012, C. Rolland, J. Castro, and O. Pastor, Eds. IEEE Computer Society, 2012, pp. 396–401.

[3]        B. Henderson-Sellers, O. Eriksson, C. Gonzalez-Perez, P. J. Ågerfalk, and G. Walkerden, “Software modelling languages: A wish list,” in Proceedings – 7th International Workshop on Modeling in Software Engineering, MiSE 2015, 2015, pp. 72–77, doi: 10.1109/MiSE.2015.20.

[4]        C. Gonzalez-Perez and P. Martín-Rodilla, “Teaching Conceptual Modelling in Humanities and Social Sciences,” Rev. Humanidades Digit., vol. 1, pp. 408–416, 2017, doi: 10.5944/rhd.vol.1.2017.16128.

[5]        C. Gonzalez-Perez and C. Parcero Oubiña, “A Conceptual Model for Cultural Heritage Definition and Motivation,” in Revive the Past: Proceeding of the 39th Conference on Computer Applications and Quantitative Methods in Archaeology, M. Zhou, I. Romanowska, Z. Wu, P. Xu, and P. Verhagen, Eds. Amsterdam University Press, 2011, pp. 234–244.

[6]        C. Gonzalez-Perez and P. Martín-Rodilla, “Using model views to assist with model conformance and extension,” in Proceedings – International Conference on Research Challenges in Information Science, 2016, vol. 2016-Augus, doi: 10.1109/RCIS.2016.7549349.

[7]        C. Gonzalez-Perez, Information Modelling for Archaeology and Anthropology. Springer, 2018.

[8]        C. Gonzalez-Perez, Modelado de Información para Arqueología y Antropología: Principios de Ingeniería de Software para Patrimonio Cultural, 1st ed. CreateSpace, 2018.


(this post was initially published in 2012 and updated several times to reflect the new versions and evolutions of the ConML language)

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This