Table des matières

Catalogue Services for the Web (CSW)

Description d’un catalogue de ressources spatialisées

Le service CS (Catalogue Services) est un standard de l’OGC qui permet d’interagir avec un ou plusieurs catalogues de ressources spatialisées, généralement de manière distante via le Web (Catalogue Services for the Web, dite CSW).

La notion de ressources spatialisées peut correspondre à des données cartographiques et services web OGC mais aussi des référentiels spatiaux ou des capteurs (SensorML par exemple). Dans le cadre de ce document, la ressource est limitée à des données cartographiques et des services web définis par l’OGC (WMS, WFS, WMTS, WCS,…).

Le catalogue regroupe l’ensemble des descriptions des ressources que le gestionnaire du catalogue (qui peut être directement le producteur de données ou un acteur tiers) souhaite référencer. Cette description constitue une notice avec des champs obligatoires et facultatifs (un titre, un responsable,…), généralement normée sous forme de métadonnées. La spécification de l’OGC impose au minimum une interaction dans le standard international Dublin Core (toute notice devra être disponible en Dublin Core). Dans le cadre de ce document et en accord avec les exigences européennes de la Directive INSPIRE, la seconde famille de standards de description des notices est les normes de métadonnées de l’ISO/TC 211 (ISO EN 19115, ISO 19119 et ISO19139).

Fonctionnement

Les types d'usages du CSW

Le service CSW s’inscrit dans deux grandes familles d’usages :

Usage : recherche dans une zone (spatio-temporelle), suivant une thématique (océano, géo, météo) ou par rapport à un besoin de livraison d’un flux de données (timeliness de la réponse, cohérence de la série temporelle, pérennité de la donnée).

Usage : le profil de présentation de la fiche peut être adapté au monde utilisateur, à la thématique de l’application.

Usage : la synchronisation peut se faire suivant différents points de vue : thématique données, types de services d’accès réseau, flux temps réel (façon broadcast), flux historique ….

Usage : mise à jour d’une métadonnée suite à la mise à jour de la ressource spatialisée décrite.

Usage : envoi d’une adresse WMS qui permet au catalogue de récupérer les informations décrites dans l’opération GetCapabilities du service WMS et de générer une notice.

Il est à noter que la deuxième famille doit être généralement mise en œuvre selon des protocoles Internet sécurisés afin d’éviter une corruption du catalogue. Non décrits actuellement dans le standard de l’OGC, il existe plusieurs modalités d’implémentation complexifiant l’interopérabilité du CSW-T.

Les principales opérations du CSW

Dans ce document, nous nous limitons à une description des opérations pour le web (CSW).

GetCapabilities (obligatoire)

Permet de retourner les métadonnées du service CSW en décomposant les informations suivantes :

Exemple :
http://www.geocatalogue.fr/api-public/servicesRest?service=CSW&request=GetCapabilities&AcceptVersion=2.0.2

GetRecords (obligatoire)

Permet de réaliser une recherche de métadonnées dans le catalogue et de récupérer les informations de métadonnées répondant aux critères.
Les différents paramètres de l’opération GetRecords permettent au client de « définir » différents types d’informations :

La réponse de l’opération est souvent un flux XML dont le contenu dépend des éléments attendus. Au minimum est toujours indiqué le nombre de résultats total, le nombre de résultats retournés et la position du prochain enregistrement disponible (pour la pagination).

Exemple d’une recherche sur le critère Type=dataset (uniquement des données) dans l’ensemble du catalogue avec un retour en Dublin Core « summary » :

http://geosourcedemo.brgm.fr/geonetwork/srv/fr/csw?REQUEST=GetRecords&SERVICE=CSW&VERSION=2.0.2&ELEMENTSETNAME=summary&OUTPUTSCHEMA=http://www.opengis.net/cat/csw/2.0.2&CONSTRAINTLANGUAGE=FILTER&CONSTRAINT_LANGUAGE_VERSION=1.1.0&RESULTTYPE=results&TYPENAMES=csw:Record&CONSTRAINT=%3Cogc:Filter%20xmlns:ogc=%22http://www.opengis.net/ogc%22%3E%3Cogc:PropertyIsEqualTo%3E%3Cogc:PropertyName%3Edc:type%3C/ogc:PropertyName%3E%3Cogc:Literal%3Edataset%3C/ogc:Literal%3E%3C/ogc:PropertyIsEqualTo%3E%3C/ogc:Filter%3E

GetRecordById (Obligatoire)

Permet d’accéder à une métadonnée précise à partir de son identifiant. Les paramètres d’appel de l’opération sont très similaires à ceux de GetRecords :

La réponse de l’opération est souvent un flux XML dont le contenu dépend des éléments attendus. Au minimum, une réponse vide si la métadonnée n’est pas trouvée ; sinon, la métadonnée dans le format demandé.

DescribeRecord (Obligatoire)

Permet au client de découvrir les informations relatives aux standards utilisés par le catalogue. L’opération retourne généralement le schéma de métadonnée utilisé par le catalogue.
Dans le cas du profil ISO AP, l’opération retourne le schéma XML de l’ISO 19139 pour les métadonnées de données (ISO 19115) et les métadonnées de services (ISO 19119).

GetDomain (Facultatif)

Retourne des informations sur les valeurs possibles /disponibles d’un ou plusieurs descripteurs d’une notice. Par exemple, elle indique que le paramètre ‘Type’ (PROPERTYNAME=’type’) peut retourner ‘service’, ’dataset’ ou ‘series’ dans un catalogue INSPIRE.
Cette opération offre la possibilité au client d’adapter son interface utilisateur en fonction du service CSW recherché. Par exemple elle pré-remplit une liste de sélection possible sur une page Web à partir des informations fournies par le service CSW ou indique que la plage de saisie du critère échelle est limitée entre 1/5000 et 1/1000000 selon le contenu du catalogue.

Transaction (CSW-T, facultatif)

Permet d’ajouter, modifier, supprimer une ou plusieurs métadonnées du catalogue à partir du client. La méthode est dite de type ‘PUSH’ (le client « pousse » des notices vers le serveur).
Le paramètre TRANSACTIONTYPE permet de préciser si le client réalise un ajout, une mise à jour ou une suppression de métadonnées.
L’ajout est opéré en fournissant la métadonnée dans le standard attendu par le catalogue (MD_Metadata). La mise à jour s’effectue par une recherche de métadonnées puis une mise à jour de tout ou partie des notices trouvées. La suppression se réalise par une recherche de métadonnées puis suppression des notices identifiées.

Harvest (CSW-T, facultatif)

Permet d’ajouter une ou plusieurs métadonnées dans le catalogue en fournissant une adresse URL qui sera « moissonnée » (récupérée) par le catalogue. La méthode est dite de type ‘PULL’ (le serveur « va chercher » des notices fournies par le client).
Les paramètres d’appel permettent de préciser l’adresse de la ressource (SOURCE) et le type de document (RESOURCETYPE) que le catalogue doit moissonner. Au minimum dans le profil ISO AP, le document doit être un fichier de métadonnées XML ISO 19139 (par exemple, disponible sur un serveur FTP).
Cette opération permet théoriquement aussi de spécifier :

Un cas d'usage classique du CSW

L’un des cas d’utilisation les plus usuels du CSW consiste à réaliser les opérations suivantes :

Une déclinaison de ce cas d’utilisation est souvent réalisée lorsqu’un catalogue est utilisé pour rechercher des données affichables ou téléchargeables (recherche de services OGC de type WMS ou WFS portant sur les données qui intéressent l’utilisateur). Pour cela, le cas d’utilisation précédent devient :

Cet enchaînement permet de proposer un éventuel service WMS portant sur les données qui intéressent l’utilisateur. L’appel au GetCapabilities du WMS est une étape supplémentaire utile avant d’afficher les données.

Les profils d'application indispensables du standard CSW

La spécification de l’OGC CSW décrit les interfaces afin de découvrir, accéder, maintenir et organiser un catalogue de ressources spatialisées. Mais, elle ne décrit ni le contenu du catalogue (quels standards de métadonnées), ni les critères détaillés de recherche, ni les formats de réponse du service. Or, ces points sont essentiels pour garantir l’interopérabilité entre les différents catalogues.

Les profils (ISO 19106) répondent à cet objectif. Aujourd’hui deux profils dominent en Europe :

Notions importantes

L’encodage du service web

Comme l’ensemble des services OGC, l’implémentation et l’encodage technique du CSW peut s’effectuer selon différents protocoles du web :

Les différents protocoles ne sont pas interopérables entre eux. Le client doit s’adapter aux capacités techniques de chaque catalogue.

Les critères de recherche

La spécification permet de saisir les critères de recherche selon deux langages :

Ces différents langages permettent de gérer aussi bien des recherches textuelles, numériques et dates (=, like,…) que des recherches spatiales (intersection, inclusion, emprise rectangulaire,…).
Le standard CSW définit une quinzaine de critères de recherche (titre, identifiant, tout texte, date, emprise rectangulaire,…). Le profil ISO AP en ajoute encore une quinzaine supplémentaire dédiée aux métadonnées ISO (point de contact, généalogie,…). Il est de plus possible d’en ajouter de nouveaux, comme le propose le guide technique d’INSPIRE.

Le moissonage de catalogue

Le moissonnage et un mécanisme permettant de collecter des métadonnées sur un catalogue distant et de les rappatrier dans un catalogue local pour un accès plus rapide. Cette action de moissonnage est une action périodique, par exemple, une fois par semaine. Le moissonnage n'est pas un import simple : les métadonnées locale et celle du catalogue distant sont synchronisées.
Ce mécanisme permet d'optimiser les temps d'accès par rapport à la recherche distribuée. Il est en effet possible de ne moissonner qu'une partie d'un autre catalogue (selon certains critères) et non pas sa totalité.

La recherche distribuée

Le standard permet d’effectuer des recherches distribuées, dites avec rebond. Concrètement, le client interroge un service CSW qui lui-même interroge un ou plusieurs services CSW sous-jacents en passant les mêmes critères de recherche. Le client reçoit ensuite une unique réponse issue de la somme des réponses des services sous-jacents. Evidemment, cette approche pose des questions ergonomiques et fonctionnelles (peut-on, voire doit-on, fusionner des résultats de recherche avec des systèmes de tri différents ?)
Ce mécanisme peut être récursif (les services CSW sous-jacents appelant eux-même des services CSW), voire circulaire. Pour éviter ce risque, le paramètre HOPCOUNT permet de limiter le nombre de rebonds autorisés.
La recherche distribuée peut s'avérer lente et résulter de réponses “vides” lorsqu'un serveur de répond pas ou dans le cas d'un problème sur le réseau.

Normes / Standards liés

Versions

Profils d’application disponibles :

http://portal.opengeospatial.org/files/?artifact_id=21460

http://portal.opengeospatial.org/files/?artifact_id=31137

http://portal.opengeospatial.org/files/?artifact_id=20596

http://portal.opengeospatial.org/files/?artifact_id=32620

http://portal.opengeospatial.org/files/?artifact_id=35528
Exemples d'implémentation du CSW
Pour trouver des applications (serveurs et clients) supportant le CSW :

Pour trouver un serveur CSW actif :

Bibliographie

http://www.opengeospatial.org/standards/cat

http://geosource.nordpasdecalais.fr/geonetwork/docs/fra/ch10.html

http://www.ird.fr/informatique-scientifique/methodo/standards/normes_iso_ogc/web_services/

Sources et contributeurs

Catalogue Services for the Web (CSW)
Contributeurs : Annina Hirschi Wyss, Anthony Mauclerc, Etienne Taffureau, Benjamin Chartier, Frédérique Blanc, Jérome Gasperi, Nicolas Klein, Pierre Lagarde (contributeur initial).