Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.

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 :

  • la découverte des ressources (exemples : données cartographiques et services web) disponibles dans le catalogue :
  • la recherche de données cartographiques ou services via un critère ouvert “à la google” (« tout texte ») ou de critères avancées (sur le titre, le système de coordonnées, le type de données,…) ;

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).

  • l’accès à la fiche descriptive détaillée d’une donnée/service sous forme de contenu XML, par exemple conforme aux normes ISO 19115/19139 ;

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

  • le moissonnage du catalogue (à ne pas confondre avec le moissonnage par le catalogue) consistant généralement à synchroniser le contenu du catalogue avec un autre catalogue.

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 ….

  • la gestion des métadonnées du catalogue via le service web, dénommé dans ce cas CSW-T (Transactionnel) :
  • l’ajout, la modification et la suppression de tout ou partie d’une métadonnée par un utilisateur ou un logiciel à distance ;

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

  • l’envoi d’un ordre de moissonnage par le catalogue afin que ce dernier récupère ou génère un nouveau référencement.

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 :

  • la description générale du service (titre, résumé, responsable, limitations d’usages,…),
  • les opérations mises en œuvre par le service et leurs paramètres d’appel,
  • les critères de recherche auxquels le service peut répondre (par exemple requête sur l’intersection d’un polygone,…),
  • les profils disponibles dans le catalogue.

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 :

  • les critères de recherche en précisant le langage, la version de requêtes utilisées, les paramètres de recherche (cf. le chapitre sur les notions importantes) et les éventuels tris des résultats (SORTBY),
  • le contenu de la réponse attendue configuré par plusieurs paramètres (RESULTTYPE, ELEMENTSETNAME, OUTPUTFORMAT, OUTPUTSCHEMA). Quelques exemples de type de réponses attendues :
    • uniquement le nombre de résultats (RESULTTYPE=hits),
    • retour « court» décrit en Dublin Core avec l’identifiant, le titre, l’emprise géographique et le type de ressource (RESULTTYPE=results, OUTPUTSCHEMA=http://www.opengis.net/cat/csw/2.0.2, ELEMENTSETNAME=brief)
    • ou au contraire fourniture de l’ensemble des descripteurs de métadonnées sous forme ISO 19115/19139 (RESULTTYPE=results, OUTPUTSCHEMA=http://www.isotc211.org/2005/gmd, ELEMENTSETNAME=full)
  • la pagination, le CSW retournant rarement l’ensemble des réponses dans un seul appel par le client. Cette pagination est gérée via le nombre de résultats retournés dans l’appel (maxrecords) et la position en cours (startposition),
  • les paramètres dans le cas d’une requête distribuée vers d’autres serveurs CSW (cf. notions importantes),
  • les paramètres pour la gestion d’un appel en asynchrone (non supporté par le profil ISO AP).

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 :

  • l’identifiant de la ressource recherchée (ID),
  • le contenu de la réponse attendue (RESULTTYPE, ELEMENTSETNAME, OUTPUTFORMAT, OUTPUTSCHEMA).

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 autre service CSW, le catalogue permettant ainsi de moissonner un autre catalogue. La notion de moissonnage correspond à la récupération de l’ensemble des métadonnées du catalogue distant. A noter néanmoins que l’un des défauts du service CSW en tant que technique de moissonnage est son incapacité à gérer la suppression d’une métadonnée#.
  • une adresse d’un service Web OGC (WMS, WFS, WCS,…), le catalogue peut alors utiliser le contenu du GetCapabilities pour produire sa notice.

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 :

  • un appel GetRecords avec la liste des critères de recherche fournie par l’utilisateur en limitant à une réponse « courte » sous forme de Dublin Core : Le tableau de résultats « Titre, résumé, emprise » de la recherche est affiché à l’utilisateur ;
  • des appels GetRecords successifs pour gérer la pagination des résultats ;
  • un appel GetRecordById lorsque l’utilisateur sélectionne une fiche spécifique avec les paramètres permettant de récupérer l’ensemble de la métadonnée sous forme XML ISO.

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 :

  • un appel GetRecords (limité aux données seules - Type=dataset) avec la liste des critères de recherche fournie par l’utilisateur en limitant à une réponse « courte » sous forme de Dublin Core : Le tableau de résultats « Titre, résumé, emprise » de la recherche est affiché à l’utilisateur ;
  • à l’affichage de chaque page, pour chaque métadonnée de donnée remontée, un appel GetRecords visant à trouver les services portant sur la donnée en question (critère ‘operatesOnIdentifier’ en passant l’identifiant de la donnée) : ici, le résultat doit être le plus complet possible afin de pouvoir récupérer les paramètres nécessaires à l’appel du service (RESULTTYPE=results, OUTPUTSCHEMA=http://www.isotc211.org/2005/gmd, ELEMENTSETNAME=full) ;

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 :

  • le profil ISO 19115/19119 Application Profile (ISO AP) répond spécifiquement aux référencements de données et services géospatiaux. Dans ce cas, les normes ISO 19* sont utilisées. Ce dernier est proposé par les guides techniques de la Directive INSPIRE ;
  • le profil ebRIM permet le référencement de n’importe quel type de ressources grâce à un modèle de données modulaire et ouvert. Ce dernier est organisé autour d’un modèle générique défini par l’OASIS (ebXML Registry Information Model).

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 :

  • selon le protocole SOAP du W3C,
  • sous forme de requêtes HTTP GET avec les paramètres organisés en paires clé=valeur (HTTP/GET / Keywords-Value Pairs protocol) ;
  • sous forme de requêtes HTTP POST avec les paramètres transmis sous forme d’un document XML (HTTP/POST/XML encoding).

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 :

  • Catalogue Query Language Description (CQL)
  • OGC Filter Encoding (FE) basé sur un fichier XML contenant les différents critères de recherche et leurs « emboitements » (ET, OU, INTERSECTS,…). OGC FE est utilisé par la plupart des services Web de l’OGC dès qu’une requête doit être effectuée (par exemple pour le WFS).

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

  • Dublin Core Metadata Element Set, Version 1.0 : http://dublincore.org/documents/1998/09/dces/
  • ISO 19115 : ISO 19115 : 2003, Geographic information – Metadata
  • ISO 19115/Cor.1:2006, Geographic information – Metadata, Technical Corrigendum 1
  • ISO/TS 19139:2006, Geographic information - Metadata - Implementation specification
  • ISO 19119:2005, Geographic information – Services
  • ISO 19119:2005 PDAM 1, Geographic information – Services
  • OGC 04-095, OpenGIS® Filter Encoding Implementation Specification (Version 1.1)
  • OGC 05-008 - OpenGIS® Web Services Common Specification - Version: 1.0.0
  • OASIS/ebXML Registry Service Specifications V3.0

Versions

Profils d’application disponibles :

  • OGC 07-045, CSW ISO AP, OGC™ Catalogue Services Specification 2.0.2 - ISO Metadata Application Profile for CSW 2.0, version 1.0.0 (2007) :

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

  • OGC 07-110r4, CSW EbRIM Profile of the CSW (1.0.1) :

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

  • OGC Cataloguing of ISO Metadata (CIM) using the ebRIM profile of CS-W (0.1.7) :

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

  • OGC® Catalogue Services – OWL Application Profile of CSW (0.3.0) :

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

  • OGC – 06-131r6, Extension Package for ebRIM Application Profile: Earth Observation Products

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

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).

 
main/standards/csw.txt · Dernière modification: 2011/05/30 11:45 par BIGTeam
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki
Partagez  |