Introduction
The AI4EO Knowledge Management Tool (KMT) provides a web portal (https://ai4eo.esa.int/) that aims to collect all the AI4EO projects included in the activities of the ESA-PhiLab, preserving and making them available from a unique access point. The platform is structured as a catalogue where the list of projects can be explored by filtering them according to a predefined set of categories or choosing among the available tags.

Each project in the catalogue is represented by a Jupyter Notebook, identified by a title, that also contain the name of the project, and a short description.
A configuration step is required in order to properly include the project in the catalogue,so that it can be accessed from the portal and handled according to the user needs.
Configuration
This catalogue service is based on the metadata stored on each of the Jupyter Notebooks (* **.ipynb** files) that are associated to the projects included in the catalogue. The notebook selected for the catalogue could be a demo or one among those (if available) already belonging to the project. For projects that don't include any jupyter notebook, a simple descriptive notebook should be anyway deployed, in order to set the metadata that are needed for the catalogue service. This approach allows to standardize the behaviour of the catalogue in different scenarios. The type of project (jupyter notebook, library, source files,dataset, ...) will be highlighted and exposed in the catalogue service.
Notebooks Metadata
The metadata of a Jupyter notebook can be edited with a common text editor or inside a Jupyter environment (JupyterLab) (right click --> Open With --> Editor).

The metadata section to extend can be found at the end of the file and is prepopulated by Jupyter.
The following table describes the metadata that have to be defined. If any of the mandatory metadata fields will miss, the notebook can not be catalogued and made visible in the platform.
Mandatory | Name | Type | Purpose |
---|---|---|---|
V | title | string | The notebook title |
V | description | string | The notebook description |
V | author | string | Username or work group or a point of contact for the target notebook |
V | tags.category | string | The notebook category. This value has to be put in the tags object. |
V | tags.type | string | The resource type ( e.g notebook, library, dataset, ...). This value has to be put in the tags object |
image | string | path of an image to use as preview (related to the git root) |
example:
"metadata": {
....
"description": "This notebook shows the procedure for Data Fusion Paradigm Selection applied to Land-Cover Classification of SAR and Multispectral Sentinel Data",
"title": "S1-S2 Data Fusion",
"image": "./S1-S2 Data Fusion/notebooks/joint_fusion.jpg",
"author": "someone@eo.esa.int",
"tags": {
"category": "land use",
"type": "Notebook"
}
....
Tags
In addition to the category tag other free tags can be added. The only constraint for these attributes is related to the data type that must be of type string or array of strings.
example:
"tags": {
"category": "land use",
"type": "Notebook",
"satellite": ["Sentinel-1", "Sentinel-2"]
},
When the required notebook is available, it should be uploaded in the ESA Gitlab repository of the related project, creating a subdirectory named "notebooks", if not already prsent, that must be the destination of the notebook.
Search criteria
The Search operator is case insensitive.
Free text search is performed on the "description" and "title" metadata.