Evolution of data models

The images below indicate the evolution of the data models for publishing qualifications and learning opportunities. ELM has been built on the Ploteus data model, progressively adding interoperability standards and extending to all Europass learning use cases. By adding application profiles and integrating them under one model, the European Learning Model (ELM) v3.0 was created.

Evolution of data models

 

Before ELM v3, each application profile was effectively a different data model. The model used more or less the same classes and properties but these were not formally related. This meant that changes were managed individually and manually, and were not always replicated across all application profiles, which resulted in inconsistencies between data models. With one data model to serve as foundation to all the application profiles, the Ontology provides a standardised vocabulary for the whole united model. This means that changes made in the ontology automatically propagate to all the application profiles. 

To make these model developments more transparent and understandable, the versioning strategy for ELM has also been enhanced. Each version is now published under standardised addresses and made accessible through the EU Publications Office. By default, the ELM Browser displays the latest version of both the Ontology and the Application Profiles, while also offering the option to explore earlier versions for reference. 

The introduction of the versioning strategy entails an update of namespace information in data published to the QDR.

From ELM 2 to ELM v3

As part of continuous improvements, a minor update has been introduced with the transition to ELM v3.3. To remain compliant, all datasets will require a small but necessary adjustment: the URI header in each dataset must be updated. From January 2026, countries publishing in the latest ELM format need to ensure that the URI header in their LOQ/AMS datasets reflects this change.

Header before the update:

xmlns:elm="http://data.europa.eu/snb/model/elm/"

xmlns:loq="http://data.europa.eu/snb/model/ap/loq-constraints/"

xmlns="http://data.europa.eu/snb/model/ap/loq-constraints/"

xsi:schemaLocation="http://data.europa.eu/snb/model/ap/loq-constraints/ loq.xsd"

 

Header after the update:

xmlns:elm="http://data.europa.eu/snb/model/ontology/"

xmlns:loq="http://data.europa.eu/snb/model/application-profile/loq-constraints/"

xmlns="http://data.europa.eu/snb/model/application-profile/loq-constraints/"

xsi:schemaLocation="http://data.europa.eu/snb/model/application-profile/loq-constraints/ loq.xsd"