Horizontal interoperability is about interoperability between different types of models and codes for a single material (i.e., one use case, multiple models).
The key here is to show how to map between EMMO (or an EMMO-based ontology) and another ontology (possible EMMO-based).
In this example we use a data-driven approach based on a C-implementation of SOFT1,2.
This is done in four steps:
-
Generate metadata from the EMMO-based user case ontology.
Implemented in the script step1_generate_metadata.py.
-
Define metadata for an application developed independently of EMMO.
In this case a metadata description of the ASE Atoms class 3 is created in
atoms.json
.Implemented in the script step2_define_metadata.py.
-
Instantiate the metadata defined defined in step 2 with an atomistic structure interface structure.
Implemented in the script step3_instantiate.py.
-
Map the atomistic interface structure from the application representation to the common EMMO-based representation.
Implemented in the script step4_map_instance.py.
Essentially, this demonstration shows how EMMO can be extended and how external data can be mapped into our extended ontology (serving as a common representational system).
In addition to emmo, this demo also requires: