Geonetwork version 4

Présentation générale

Geonetwork a sorti sa version 4 en octobre 2020. La grande nouveauté technique est le changement du moteur de recherche permettant une plus grande lattitude dans les options de recherche de fiches. En parrallèle de cette nouvelle version, la version 3 continue à être maintenue car la totalité des fonctionnalités n'as pas encore été portée en version 4 bien que l'on en soit aujourd'hui très proche1 (dernière version : 4.2.4, mai 2023).

Évolutions GN3 -> GN4

Bilan des évolutions

La principale évolution est le passage de Lucene à Elasticsearch. En résulte une recherche et des performances améliorées, la possibilité d'utiliser Kibana2 et une simplification du code de Geonetwork. En revanche à ce jour, certaines fonctionnalités de Geonetwork v3 ne sont toujours pas disponible en v41. Le principal manque est l'API de recherche et les autres protocoles (ex: OAI-PMH, RDF, Z39.50/SRU, OpenSearch). Seules l'API d'Elasticsearch et le CSW 2.0.2 sont disponibles à l'heure actuelle.

Note

Ce changement de moteur de recherche impacte aussi l'installation de l'outil qui nécessite désormais de déployer (ou de se connecter à) une instance Elasticsearch.

Bilan des ajouts et pertes de fonctionnalités

Fonctionnalités ajoutées/améliorées

  • Découpage en sous-portails
  • Amélioration de la recherche
  • Amélioration de l'interface de certains menus (moissonnage)
  • Possibilité d'ajout de tableau de bord Kibana (visualisation de statistiques sur les recherches et les métadonnées)
  • Amélioration globale des performances de GN

Pertes de fonctionnalité

  • Les protocoles OAI-PMH, RDF, Z39.50/SRU et OpenSearch ne sont pour l'instant pas disponibles

En savoir plus

Sous-portails

Au niveau des fonctionnalités le principal ajout est le découpage possible d'un Geonetwork en plusieurs sous-portails. Cet ajout permet à l'aide d'un filtre de n'afficher qu'une partie des fiches du catalogue principal dans un sous portail comme s'il s'agissait d'un Geonetwork indépendant. Cela peut permettre dans certains cas de ne pas avoir à déployer plusieurs instances de Geonetwork et de n'en avoir qu'une seule avec plusieurs sous-portails affichant les fiches que l'on souhaite.

Figure 1 : Menu pour changer de portail sur GN4

Figure 1 : Menu pour changer de portail sur GN4

Note

Cette fonctionnalité a été portée plus tard sur GN3 à partir de la version 3.8

Recherche

Pour ce qui est de la recherche on trouve de nouveau filtres dans l'interface. Premièrement il est possible de filtrer sur les portail au niveau de la barre de recherche. Il est aussi désormais possible de faire des recherches négatives, c'est à dire selectionner toutes les fiches qui ne correspondent pas au critère selectionné (comme exemple dans la figure 2, on sélectionne les ressources de tout types sauf les jeux de données non géographique).

Figure 2 : Formulaire de recherche sur GN4

Figure 2 : Formulaire de recherche sur GN4

Note

Le formulaire de recherche ainsi que les facettes sont entiètement configurables dans les paramètres de GN. Voir la documentation pour en apprendre plus.

Installation

Pour installer Geonetwork en V4 le plus simple est d'utiliser docker et notamment docker-compose. Voici un exemple de fichier docker-compose pour faire tourner un Geonetwork en V4 avec un serveur elasticsearch et une base de données PostgreSQL.

version: '3.1'

volumes:
  geonetwork:
  esdata:
  pgdata:
  pglog:
  apachelog:


networks:
  gn-network:
    driver: bridge

services:

  database:
    image: mdillon/postgis
    environment:
      POSTGRES_USER: geonetwork
      POSTGRES_PASSWORD: geonetwork
      POSTGRES_DB: geonetwork
    command: [ "postgres",
               "-c", "log_statement=all",
               "-c", "logging_collector=true",
               "-c", "log_file_mode=0644",
               "-c", "log_directory=/var/log/postgresql",
               "-c", "log_filename=postgresql.log" ]
    volumes:
      - pgdata:/var/lib/postgresql/data
      - pglog:/var/log/postgresql
    networks:
      - gn-network

  geonetwork:
    image: geonetwork:4.2.3
    restart: always
    environment:
      DATA_DIR: /catalogue-data
      JAVA_OPTS: >
        -Dorg.eclipse.jetty.annotations.AnnotationParser.LEVEL=OFF
        -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true
        -Xms512M -Xss512M -Xmx2G -XX:+UseConcMarkSweepGC
        -Dgeonetwork.resources.dir=/catalogue-data/resources
        -Dgeonetwork.data.dir=/catalogue-data
        -Dgeonetwork.codeList.dir=/var/lib/jetty/webapps/geonetwork/WEB-INF/data/config/codelist
        -Dgeonetwork.schema.dir=/var/lib/jetty/webapps/geonetwork/WEB-INF/data/config/schema_plugins

      ES_HOST: elasticsearch
      ES_PROTOCOL: http
      ES_PORT: 9200

      GEONETWORK_DB_TYPE: postgres
      GEONETWORK_DB_HOST: database
      GEONETWORK_DB_PORT: 5432
      GEONETWORK_DB_NAME: geonetwork
      GEONETWORK_DB_USERNAME: geonetwork
      GEONETWORK_DB_PASSWORD: geonetwork
    volumes:
      - geonetwork:/catalogue-data
      - /home/ubuntu/gn_tmp:/tmp/metadata
    ports:
      - 80:8080
    depends_on:
      - elasticsearch
      - database
    networks:
      - gn-network

  elasticsearch:
    image: elasticsearch:7.9.2
    ports:
      - 9200:9200
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    environment:
      ES_JAVA_OPTS: "-Xms1G -Xmx1G"
      discovery.type: single-node
    volumes:
      - esdata:/usr/share/elasticsearch/data
    networks:
      - gn-network

Pour voir les différentes méthodes d'installation, se référer à la documentation : https://geonetwork-opensource.org/manuals/4.0.x/en/install-guide/index.html

Migration V3->V4

Un des problème du changement de version est l'absence d'aide pour la migration. Pour les fiches, on peut faire un export d'un GN en V3 et les réimporter dans un GN en V4 mais pour tout ce qui est utilisateurs, groupes, thésaurus ou moissonnages il faut soit essayer de récupérer l'information depuis la base de données, soit refaire les paramétrages soi-même.

Note

Il est possible de rencontrer des problèmes pour exporter les fiches sur les V3 trop anciennes. Pour ces cas un script pour faire l'export des fiches existe ici : https://gitlab.in2p3.fr/mathieu.massaviol/geonetwork_exporter

Utilisation de GN4

Configuration

Utilisateurs / Groupes / Rôles

Pour créer des utilisateurs et des groupes il faut aller dans la partie Console d'admin > Utilisateurs et Groupes. Les groupes vont permettre de regrouper des utilisateurs mais aussi de regrouper des fiches de métadonnées.

Lors de la création d'un utilisateur on va choisir son rôle dans le GN (ou plus précisement son rôle par groupe). Il existe 5 rôles:

  • Utilisateur enregistré
    • Peut visualiser et télécharger les données privées de son/ses groupes
  • Editeur
    • Peut ajouter, modifier, supprimer des métadonnées de son/ses groupes
  • Relecteur
    • Modère les dépôts et valide leur mise en ligne (le passage en public de la fiche) de son/ses groupes
  • Administrateur d'utilisateurs
    • Peut créer et modifier les utilisateurs de son/ses groupes
  • Administrateur
    • A tous les droits sur l'ensemble du GN

Il est possible d'activer une option pour que tout visiteur puisse se créer un compte, dans ce cas là il est admis comme Utilisateur enregistré mais ne fait partie d'aucun groupe. Ce sera à un Administrateur ou un Administrateur d'utilisateurs de lui attribuer les bons rôles.

En savoir plus

Portails

Pour créer et paramétrer des sous-portails il faut aller dans la partie Console d'admin > Paramètres > Catalogue sources. Un sous-portail est un sous-ensemble de fiches du portail principal. Lors de sa création on lui attribue un nom, un logo et le plus important : un filtre de recherche. Ce filtre s'applique sur toutes les fiches du portail principal et permet de n'afficher que celles qui le passent dans le sous-portail. On peut filtrer sur le groupe des fiches (groupPublished:(ohm-bmp)), sur un mot-clé (tag.default:"OHM Bassin Minier de Provence"), ...

En savoir plus

Thésaurus

Les thésaurus sont des listes de concepts. Il existe des thésaurus généraux et des thésaurus qui sont spécifiques à un domaine. Ils sont utilisés dans GN pour décrire avec des mots clés les données. Importer des thésaurus dans GN va permettre de faciliter le remplissage des fiches de métadonnées avec les concepts issus des thésaurus, ainsi que la recherche des fiches de métadonnées. Pour configurer les thésaurus dans GN il faut se rendre dans Console d'admin > Thésaurus. On peut depuis là facilement en ajouter depuis un registre (INSPIRE et BRGM) ou tout autre thésaurus depuis une URL ou un fichier. Le thésaurus doit être au format SKOS avec une extension XML ou RDF.

Une fois le thésaurus ajouté ces concepts seront sélectionnables lors du remplissage d'une fiche de métadonnées.

En savoir plus

Modèles de métadonnées

Dans un GN vide il faut tout d'abord ajouter des modèles de métadonnées. Pour configurer les modèles de métadonnées il faut se rendre dans Console d'admin > Métadonnées et modèles. Il faut ensuite selectionner les standards que l'on souhaite utiliser (ISO19139, ISO19115-3, Dublin-Core, ...) pour en importer le modèle. Cela permet d'obtenir des fiches de type template qui vont servir de base pour le remplissage de nouvelles fiches. Il est aussi possible de créer ses propres templates et les importer (même méthode que pour l'import d'une fiche).

En savoir plus

Paramètres importants

Certains paramètres (Console d'admin > Paramètres) sont important pour le bon fonctionnement du GeoNetwork.

Serveur

Il est important de bien renseigner l'adresse, le protocole et le port du GeoNetwork pour que lors de la création de fiche de bonnes URL soient créées.

Proxy

A bien renseigner dans le cas de l'utilisation d'un proxy.

CSW

Activer le CSW permet de rendre son catalogue moissonnable par des tiers.

Directive INSPIRE

Permet d'activer le support de la directive INSPIRE et l'indexation des thématiques. Permet aussi d'avoir accès à la validation INSPIRE des fiches.

Paramétrages divers

Il exsite de nombreux paramètres de GeoNetwork qui peuvent se trouver utiles/intéressants :

  • Paramétrer l'esthétique du site (styles, logos, ...)
  • Choisir les facettes de la page d'accueil et celles du formulaire de recherche
  • Lier un compte DataCite pour créer des DOI pour les fiches
  • Lier un serveur cartographique (GeoServer)
  • Gérer le multilinguisme
  • ...

Alimentation

Pour alimenter en fiches de métadonnées un GN il existe plusieurs solutions que nous allons voir une par une.

Remplir une fiche

Pour créer une nouvelle fiche il faut se rendre dans Contribuer > Ajouter une fiche. Il faut ensuite choisir le type de données que nous allons décrire (Carte, Jeu de données, Service, Catalogue d'attributs, Autre). Pour chaque type on retrouve des modèles de métadonnées. On choisit le groupe dans lequel on souhaite importer la fiche puis on clique sur Créer, ce qui nous ouvre le formulaire de remplissage de la fiche.

En savoir plus

Importer une fiche

Pour importer une ou plusieurs fiches il faut se rendre dans Contribuer > Importer des fiches. Au moment de l'import on peut choisir : - le type de fiche (fiche, modèle, annuaire, gabarit d'annuaire) - le groupe auquel affecter la fiche - de publier la fiche - de valider la fiche - d'autoriser l'édition par les membre du groupe

Warning

Il est important de faire attention au paramètre Action sur l'identifiant de la fiche. Par défaut l'import d'une fiche qui possède un identifiant identique à une fiche déjà présente n'est pas importée. On peut choisir avec ce paramètre d'écraser la fiche déjà présente ou de générer un nouvel identifiant pour la fiche que l'on ajoute.

En savoir plus

Moissonner un catalogue

Pour moissonner un catalogue externe il faut se rendre dans Console d'admin > Moissonnage puis créer un nouveau moissonneur. Il existe plusieurs types de moissonneurs mais le plus utile reste le moissonneur CSW reposant sur le standard CSW.

Les paramètres du moissonneur sont :

  • Nom et logo du noeud (le catalogue externe que l'on moissonne)
  • Groupe (le groupe auquel seront associé les fiches moissonnées)
  • Utilisateur (l'utilisateur qui sera indiqué comme propriétaire des fiches moissonnées)
  • Fréquence (la fréquence de mise à jour du moissonnage)
  • L'URL sur service (l'adresse CSW du catalogue externe)
  • Des informations de connexion (optionnel : permet de récupérer des fiches non publiées)
  • Filtre de recherche (permet de filtrer les fiches à moissonner, par exemple sur un mot clé)
  • Filtre sur l'emprise (filtrer les fiches selon leur emprise géographique)
  • La gestion des collision d'UUID (gestion des identifiants de fiches pour éviter les doublons)

Warning

Comme pour l'import classique il est important de gérer les possibles problèmes de collision d'identifiants à l'aide du paramètre Que faire en cas de collision d'UUID ?

Être moissonné

Pour pouvoir être moissonné il faut avoir activé le CSW dans Console d'admin > Paramètres > CSW. Il est possible de visualiser le résultat de différentes requêtes CSW dans Console d'admin > Paramètres > Test CSW.

Validation

Il est possible de faire valider une fiche selon la directive INSPIRE. Cela permet de vérifier que la fiche contient bien certains champs imposés par la directive INSPIRE et donc qu'elle soit bien standardisée. On y retrouve notamment les 6 champs nécessaires à DataCite pour l'attribution d'un DOI (titre, identifiant, créateur, éditeur, date de parution et type de ressource).

Figure 3 : Validation INSPIRE

Figure 3 : Validation INSPIRE

Attention

Cette validation n'est pas obligatoire mais certains catalogues peuvent choisir de ne moissonner que des fiches validées.

API

GeoNetwork possède une API qui permet d'effectuer la grande majorité des actions faisable avec l'interface web à travers de requettes http. Cela permet donc de pouvoir réaliser des scripts/programmes permettant de manipuler ou d'ajouter des informations (que se soit des fiches, des utilisateurs, ...) d'un GeoNetwork. Cette API respecte le standard OpenAPI et est visible à l'URL suivante https://geonetwork-sist23.univ-nantes.fr/geonetwork/doc/api/index.html

Lier un GeoServer

Connecter le GeoServer

Pour connecter un GeoServer il faut se rendre dans Console d'admin > Paramètres > Serveurs cartographiques. Après avoir cliqué sur nouveau serveur il faut remplir les paramètres suivants.

Exemple d'un geoserver à l'adresse http://localhost:8080/geoserver et d'un espace de travail nommé sist23 avec pour url de nommage http://sist.cnrs.fr/sist23

Paramètre Valeur
Nom geoserverLocal
Description Mon serveur cartographique local
URL du service REST de configuration http://localhost:8080/geoserver/rest
Espace de travail sist23:http://sist.cnrs.fr/sist23
URL du service WMS http://localhost:8080/geoserver/sist23/wms
URL du service WFS http://localhost:8080/geoserver/sist23/wfs
URL du service WCS http://localhost:8080/geoserver/sist23/wcs


Géopublication

L’idée est de pouvoir déposer et publier la donnée sur un GeoServer directement depuis l’interface de gestion de la métadonnée. Pour faire cela il faut éditer une fiche et suivre les étapes suivantes :

  1. Dans Ressources associées cliquer sur Ajouter, Créer un lien vers une ressource en ligne
  2. Cliquer sur Sélectionner ou déposer un fichier
  3. Cliquer sur le nom du ficher ajouté pour remplir les métadonnées à gauche puis sur Ajouter une ressource en ligne Figure 4: Etapes 1,2,3
  4. Un bouton orange Publier en WMS, WFS, WCS doit apparaitre, cliquer dessus et sélectionner la ressource
  5. Cliquez sur vérifier puis publier Figure 5: Etape 4
  6. La ressource est publiée et vous pouvez apercevoir la couche Figure 6: Etape 6
  7. Cliquer lier le service à la fiche pour ajouter le ou les liens WMS/WFS/WCS à la fiche Figure 7: Etape 7

TP réalisé lors de l'atelier

Importer une fiche
  1. Cliquer sur Importer des fiches dans le menu Contribuer (il faut être connecté)
    Menu importer des fiches

  2. Sélectionner le fichier que vous souhaitez importer (une fiche xml ou un dossier compréssé avec plusieurs fiches). Il faut ensuite choisir l'action sur l'identifiant de la fiche (Par défaut l'import d'une fiche qui possède un identifiant identique à une fiche déjà présente n'est pas importée. On peut choisir avec ce paramètre d'écraser la fiche déjà présente ou de générer un nouvel identifiant pour la fiche que l'on ajoute). On peut aussi choisir si la ficher sera directement publiée, dans quel groupe elle sera affecté, ...
    Import d'une fiche

  3. Une fois la fiche importée on peut la visualiser.
    Visualisation de la fiche

  4. En cliquant sur éditer on se retrouve un formulaire d'édition des métadonnées.
    Edition d'une fiche

  5. Pour ajouter une vignette il faut cliquer sur Sélectionner ou déposer une image dans la partie Vue d'ensemble (colonne de droite).
    Ajout d'une vignette

  6. Pour lancer la validation INSPIRE de la ficher il faut cliquer sur le bouton valider en haut de la fiche.
    Valider une fiche INSPIRE

  7. Le résultat de la validation s'affiche dans la colonne de droite. On peut y trouver plusieurs catégories et le score obtenu par la fiche.
    Résultat d'une validation INSPIRE

  8. En parcourant les résultats on peut voir les retours du validateur INSPIRE qui indique si des champs sont manquants ou mal remplis.
    Détail dans le résultat d'une validation INSPIRE

Créer une fiche
  1. Dans le menu Contribuer il faut cliquer sur Ajouter une fiche
    Menu ajouter une fiche

  2. Il faut ensuite choisir selon notre type de donnée un modèle de métadonnée (ici nous prenons un modèle ISO19139 pour données vectorielles)
    Choix du modèle de métadonnées

  3. En cliquant sur créer, on se retrouve ensuite sur le formulaire permettant de renseigner les métadonnées?
    Formulaire d'une fiche

  4. Après avoir enregistré la fiche, elle est visible dans la liste des fiches (Menu Contribuer > Accueil Edition). Elle n'est pour l'instant visible que par les personnes connectés ayant un droit de lecture dessus (groupe de la fiche et droits spécifiques si ajoutés). Pour rendre la fiche publique il faut cliquer sur le cadenas fermé à côté de la fiche.
    Visibilité de la fiche


  1. Voir ticket à ce sujet sur le GitHub de l'outil 

  2. Outil de visualisation de données pour Elasticsearch permettant d'avoir un tableau de bord des données du Geonetwork