Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use case: Semantic transformations #3

Open
jesper-friis opened this issue Nov 8, 2024 · 0 comments
Open

Use case: Semantic transformations #3

jesper-friis opened this issue Nov 8, 2024 · 0 comments

Comments

@jesper-friis
Copy link

jesper-friis commented Nov 8, 2024

By combining the the use case of Semantic mappings of datamodels with mappings of input and output of mapping functions to ontological concepts, it is possible to obtain semantically driven data transformations.

The figure below shows three datamodels and three mapping functions that are all mapped to ontological concepts.

mappings
Figure 1. Example of semantic transformations.

Lets assume that we have instances of the Structure and CalcResults datamodels (named C3H6 and C3H6_result in the figure). Given that it is possible to ask a semantic system to instantiate an instance of the Molecule datamodel. If the system can find a route from the properties of the Molecule datamodel, via the mappings and mapping functions, to existing data, it will be able to return a Molecule instance.

This is a very powerful use of semantic mappings that enables seamless data integration. It allows independent data providers document their datasets by creating datamodels for them and map them to ontologies. An data consumer can then document what data he/she needs by creating a datamodel for that and map it to the ontologies. With support from an ontologist that may provide generic mapping functions enabling generic transformations between individuals of different ontological concepts, the data consumer is then able to get a selection of the available data represented in the form he/she needs it in. Note that the data consumer does not need to know anything about the structure of the existing datasets.

An implementation of semantic transformations is available on https://github.com/SINTEF/dlite/tree/master/examples/mappings
Note that the mappings does not necessary have to be complete in order to be useful. In this example the mappings are entered progammaticrally in Python, but under the hood are they stored in the knowledge base as a set of RDF triples of the form:

<source IRI> map:mapsTo <target IRI> .

Hence, it is easy to enter the mappings in a declarative way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant