Tutorial - Working with OEMetadata#
Learnings#
This tutorial will enable you to:
- know what OEMetadata are
- create and modify OEMetadata
- use the OEO-extended to create new units
Introduction#
This tutorial will always refer specifically to OEMetadata (the Metadata used on the Open Energy Platform (OEP)). For a more general overview please see the course on Metadata.
Important Information on OEMetadata#
- OEMetadata follows the specifications of one of the release versions of the standard. At the time v2.0.
- OEMetadata documents are always created as a JSON-file, which can contain links to other elements, e.g. websites, classes from the Open Energy Ontology (OEO) etc.. The OEMetadata in version v2.0 always describes one whole dataset to a table.
- OEMetadata is created in a specified yet flexible structure find the key descriptions for the newest version of the OEMetadata on GitHub.
- There can always only be one revision of a OEMetadata document on the OEP! Meaning that the lifecycle of OEMetadata is critical because otherwise there might be multiple metadata documents liked to one table. In order for that not to happen the OEMetadata for a table on the OEP will be overwritten one a new version of the OEMetadata is uploaded. (For more information on the publishing process see this course.)
- The minimal requirement to submit new OEMetadata is a filled out ID field. Here the URL of the table must be inserted. If you work with the OEMetadata on the OEP this field will be filled automatically for you. For all other fields please follow the key descriptions or see the information provided in the OEMetaBuilder.
How to create OEMetadata#
There are essentially two ways of creating OEMetadata. Both can be done with and without an already on the OEP existing table.
Manually creating OEMetadata using the OMI
You can manually create OEMetadata as a JSON-file using the blank template JSON file on your computer. This might be useful if you want to create multiple OEMetadata datasets for tables, where some fields will be filled out the same. Then it is much easier to copy and paste the entries. It is possible to manually create OEMetadata and later on modify them via the OEMetaBuilder. Note: Should only be done while using the OpenMetadataIntegration (OMI). This way of creating OEMetadata might result in faulty OEMetadata because the guidelines from the OEMetaBuilder are not provided while creating the dataset(s).
Creating OEMetadata using the OEMetaBuilder
On the OEP there is a tool to create your OEMetadata directly on the platform. It is called OEMetaBuilder and can be used when there already exists a table on the OEP for which you want to create the OEMetadata or as standalone version when no table, for which the OEMetadata dataset is for, exists on the OEP.
How to use the OEMetaBuilder#
You can find the OEMetaBuilder on the OEP under Database by clicking on OEMetaBuilder
in the upper right corner.
Then the OEMetaBuilder opens and you can see all the fields. Right next to the headline
Create new Metadata for your Dataset
there are two buttons; With the first one (the pen with JSON
) you can edit and/or copy the code on which this page is based on in a popup window. With the second (the menu with properties
) you can choose which fields will be shown or hidden by clicking on them in the list in the popup window. Whenever there is such a menu
button next to a headline it enables you to choose which fields will be shown or hidden in the section the headline belongs to. At the lower right corner three buttons appear to Submit
, Cancel
or Download
your OEMetadata. You can submit your OEMetadata if there already exists a table for your dataset. You can always download the dataset as a JSON-file or cancel the process. Beneath all fields is a description of what values and information may be filled in the field above. For more detailed information please see the key descriptions.
Under Dataset overview
you can provide general information over the resources in your metadata. You can give a Name, Title, Description and Identifier to your dataset.
In order for the metadata to exist a minimum of one
Resource
must be added by clicking on the +Resource
button. Then under Resources
different headlines will appear.
Under General
you can provide information to describe and identify the resource. If you create OEMetadata to an already existing table some fields will be filled automatically once you filled in the @ID
of the table. This makes it easier for you and minimizes the possible errors.
In the Name
-field please provide the human readable name of the subject, e.g. energy. In the Path
-field please provide the corresponding URL to the OEO, e.g. https://openenergy-platform.org/ontology/oeo/OEO_00000150.
With clicking on the
+Topic
under Topics
you can an array of predefined topics.
You can provide language tag(s) for all languages used in your data, including the table and the OEMetadata dataset. You can add multiple languages by clicking on the
+Language
right next to the headline Language
. Note: Please use the required standard (IETF (BCP47)).
Under
Subject
you can provide subjects which describe your data. You can add subjects by clicking on the +Subject
. In the Name-field please provide the human readable name of the subject, e.g. energy. In the Path-field please provide the corresponding URL to the OEO, e.g. https://openenergy-platform.org/ontology/oeo/OEO_00000150. Note: Subjects help other users to find your data and know what it is about.
Additionally to the Subjects you can also provide
Keywords
. These don't have to be defined in the OEO, but can help to describe the content of your data even more precisely. The Keywords make it also possible to filter the tables in the OEO Database.
You can give context to your data, e.g. a research project. This makes your data more comprehendible and traceable for others.
You can specify the
Spatial
context of your data, by giving a Location
and the Extent
.
You can also define the time of your data by giving a Reference Date. You can add
Timeseries
by clicking on the +Timeseries
next to the headline. There you can specify start, end and resolution of the series and information about how the data is implemented in the table. You can add multiple timeseries if necessary.
By clicking on
+Source
under the corresponding headline, under Basic
you can provide a human readable title, a description of the source and the path to the source as URL.
You can add the
Authors
with their full names.
And the License Information to the license under which the source is published. You can provide the SPDX identifier, a human readable name as well as a path to the license and further information.
You can add multiple sources and then multiple authors and licenses if needed.
You can also provide the License Information to the license under which the data described in this resource is provided. Again you can provide the SPDX identifier, a human readable name as well as a path to the license and further information.
You may provide information about the contributors of your data. In addition to their name you can also add a qualified link to an relevant online location (e.g) You can add multiple contributors and add details about their contribution.
You can also annotate the data in your table. This helps to make the data in your table comparable to others because it makes a connection between columns and/or fields to classes in the OEO. If you create OEMetadata for an already existing table, the names of the fields will be filled in automatically and make the process of annotating more convenient. Note: If you want to annotate without an already on the OEO existing table you must have a basic understanding to data-structure and databases and their relations. In order to do so you must click on
+Filed
under Data schema
.
For each field you can specify the Column by giving the name of the field and adding description, type, nullable and/or unit.
The important step of making the connection between the entries in your table and the classes of the ontology happens now by providing the human readable term and the path to the OEO.
Using the OEOextended
If you want to use an unit which is not in the OEO yet, meaning you can't find it via the implemented search, you can click on the button
Open OEO-extended
. This will open a popup window.
In the OEO-extended (OEOX) it is possible to create an additional unit using units already existing in the OEO. All created units will be reviewed and published on GitHub and uploaded to the OEO. For further information on the OEOX please see this paper. To create the new unit you can choose your
Numerator(s)
and Denominator(s)
. You can respectively choose the unit name from all units implemented in the OEO, e.g. hour, a Unit Type
according to the power you want to have (linear, squared or cubic) and, if necessary, a Unit Prefix
e.g. mega. Once you entered something in the Unit Name
-field a fraction will appear showing you the unit you are about to create. It is possible to choose multiple Numerator and Denominator, which will be each multiplied by each other. When you created the unit you want to use, click Save
. Then the URI to the new unit in the OEOX will appear. You have to copy and paste it to your browser in order to entry the Name
and Path
in the isAbout
-field. The OEOX is implemented on different fields in the OEMetaBuilder to make it easier to create new units.
You can provide a class of the OEO for entries of a whole column. By annotating the name of the column with the name and path of the OEO class. You only have to fill in the name field and select one option from the drop down menu and the path will be filled in automatically. The result would be for example: The column name is 'sc' for 'scenario'. So the annotation name is 'scenario' and the path would be 'http://openenergy-platform.org/ontology/oeo/OEO_00000364'.
To annotate a single value from a cell as part of the current column, you can annotate the specific value, e.g. column 'Gas' has the value 'co2eq' and should be annotated with 'Carbon Dioxide Equivalent Quantity Value'. The annotation can therefore only be made if values are already known. This value must be entered in the value field. The Name
& Path
fields are filled in in the same way as in the is About section. This type of annotation can be very time consuming. If you have many unique values in your column, we recommend creating an additional table that assigns the values and annotations, as this seems to make more sense. Meaning in some specific cases it might be better to manually create your annotations in the OEMetadata and the OEMetaBuilder is not the best option.
You can also give a Primary Key
which uniquely identifies each row of your table.
You can also refer to an other table by giving a
Foreign Key
.
If you want to reference another table you can provide the foreign table in the
Resource
-field and then specifying which column should be referenced in the Field
below.
Congratulations! You build your own Metadata to your dataset.
About this tutorial#
- Author: Vismaya Jochem
- Copyright: Reiner Lemoine Institut
- License: CC BY 4.0
- Attribution: Open Energy Academy - OEMetadata Tutorial © Reiner Lemoine Institut
- Last update: 2025-08-25