In general the Interoperability of Metadata should be achieved by the use of Ontologies. The Problem is among heterogeneous Metadata there is a Semantic Gap. This Semantic Gap can be bridged with the Help of Ontologies. The Problem of the Semantic Gap means the different Ontologies can be applied to represent identical Knowledge. The Problem is how can one find out that these different Ontologies really mean the same Thing or describe the same Thing.
Even considering a small World with three Bricks in an initial State and one wants to bring this Bricks into a final State in the same World, where all of these Bricks stand one of Top of each other.
One can model this with some Objects (Block A, B and C as well as a Table and a hand that is able to grab these Objects). Then one has several Relations, for example there is the on Relation that says a Block stands on top of another block. There is a clear Relation that means if we have a Block in the hand we clear it. The Block is hold with the holding Relation. Lastly one can ask whether the Hand is empty or not. With this modeling one is able to bring the World from its initial State to the final State of the World.
This is however not the only way to model this. Another Approach is with less Objects, namely one Block A, B and C. So here we do not need the Table nor the Hand, but therefore we have other kind of Relations. In addition to the on, clear, holding and handEmpty Relation there is instead of defining a Table a Relation that a Block X stands on a Table (which is other true or not true).
To model this in kind of a representational Tree one has Entity and Relation Classes. There one has Entity Table, Block and Hand. Belonging to them there is a Table T, Blocks A, B and C as well as Hand H. The Relations can be binary, unary or even have no Arguments like handEmpy which gives back a Boolean (True or False). The World can also be described with the help of Axioms where one says if X stands on Y and Y stands on Z than X is above Z for Example.
In the other model one has only one Type of Entity, namely Block which contains Block A, B and C. There are also Relations with an additional unary Relation onTable.
The problem is that one has two different Models, but from the Tree Representation they are quite similar. We can identify in these trees which has the same Meaning or does represent the same as in the other tree. So one can define Mappings. One has to do this because one wants to find out whether this two Models really denote the same. To bridge this we need an Ontology Representation that is able to map one Model into another Model. One has to understand this Model.
Problem of the Semantic Gap:
Let's Model a World:
Axiom: on(X,Y) ⋀ on(Y,Z) → above(X,Y)