Conceptual modelling is usually associated with the discipline of software engineering. But, actually, 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 20 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 [5].

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, and our experiences with it so far in the field of cultural heritage. You can find more about ConML on or in [1].

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 intricate and fuzzy temporality issues, which do not allow for total order relationships.
  • Both ontic vagueness (i.e. imprecision) and epistemic vagueness (i.e. inaccuracy or uncertainty) are fundamental aspects that need to be considered.
  • 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 similar 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.
  • 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 subjectivity modelling or clear semantics for null vs. unknown [4].

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. Its full specification, including a formal metamodel, a graphical notation and examples, is only 51 pages long.

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

The ConML language

The ConML 1.5.0 metamodel comprises 31 classes. The following figure (expressed in UML) shows many 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 called “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.

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.

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 versions of the 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. Every one 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 (or M1, in OMG parlance) models can be stored and managed in multiple languages. Model elements such as class or attribute names, for example, can be expressed in multiple languages and then visualized in any of them at any moment. Similarly, instance (or M0) models can be expressed in multiple languages. In particular, attributes of the text 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 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 [3], which can be found at This model has been extended and applied to a number of projects, ranging from personal research works to a few large international efforts.

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 occurred eight times now. 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.

Finally, a preliminary version of the toolset that is described in the next section has been used as part of a larger software development project for a family of web services that supporting a mobile app. For this project, textual and multimedia data was stored as ConML instance models, rather than a database, and queries on the data were performed by programmatically navigating the ConML metamodel as needed.

The future of ConML

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

In addition, a comprehensive toolset based on ConML has been developed, and will be released shortly. This toolset allows for the creation and management of type and instance models, and supports model extension, multilingualism, subjective and temporal qualifiers, and other ConML features. It also includes a scripting language to automate the manipulation of models.

If you are interested in ConML, the book Information Modelling for Archaeology and Anthropology [2], recently published, contains a detailed description of the language as well as dozens of examples. A Spanish-language version will be available very soon.

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


[1] Gonzalez-Perez, C., 2012. 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. 396-401.

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

[3] Gonzalez-Perez, C. and C. Parcero Oubiña, 2011. 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, et al. (eds.). Amsterdam University Press. 234-244.

[4] Henderson-Sellers, B., C. Gonzalez-Perez, O. Eriksson, P.J. Ågerfalk, and G. Walkerden, 2015. Software Modelling Languages: A Wish List, in IEEE/ACM 7th International Workshop on Modeling in Software Engineering (MiSE) 2015, J. Gray, et al. (eds.). IEEE Computer Society.

[5] Hug, C. and C. Gonzalez-Perez, 2012. Qualitative Evaluation of Cultural Heritage Information Modelling Techniques. ACM Journal on Computing and Cultural Heritage. 5(2).


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

Subscribe To Our Newsletter

Subscribe To Our Newsletter

Follow the latest news on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This