Encodage de filtres
Aperçu
La norme internationale d’encodage de filtres permet le codage XML et KVP d’une syntaxe neutre du point de vue des systèmes pour exprimer des clauses de projection, de sélection et de tri, collectivement appelées une expression de recherche (ou filtre). L’encodage de filtres permet le traitement des aspects spatiaux et non spatiaux d’une recherche et restreint les enregistrements trouvés à la suite d’une recherche.
Cette norme mixte de l’OGC et de l’ISO a été conçue pour fonctionner avec le service d’entités géographiques Web (WFS), mais convient à une vaste gamme de services qui nécessitent la capacité d’exprimer les prédicats en langage XML. Un prédicat en langage XML est analogue à un énoncé « SI-ALORS » : si le prédicat est VRAI, alors l’objet est choisi; si le prédicat est FAUX, il est exclu. Le prédicat donne aux développeurs une méthode de trier ou de filtrer les objets trouvés à la suite d’une recherche.
De nombreux services Web nécessitent la capacité de reconnaître les fonctions de filtrage XML. La présente norme définit un tel mécanisme d’encodage de filtres que peuvent utiliser les services Web pour choisir un sous-ensemble des instances objets, comme le service d' entités géographiques Web (WFS), le service de couverture Web (WCS) et le descripteur des couches stylisées (SLD). Par exemple, un service d’entités géographiques Web (WFS) peut utiliser l’encodage de filtres dans une opération GetFeature pour préciser les contraintes de la recherche.
Norme
OpenGIS® Filter Encoding 2.0 Encoding Standard*
Renseignements connexes
Service de répertoires toponymiques
Service d'entités géographiques Web (WFS)
Service de couverture Web (WCS)
Descripteur des couches stylisées (SLD)
Services de catalogues Web (CSW)
Note
L’encodage de filtres est une norme internationale élaborée conjointement par l’Open Geospatial Consortium (OGC) et l’Organisation internationale de normalisation (ISO/TC 211) et publiée sous la norme ISO 19143, Information géographique – Codage de filtres*.
Information supplémentaire - Encodage de filtres
Encodage de filtres pour obtenir des sous-ensembles de recherche
Bien que la norme OpenGIS® Filter Encoding Standard (FES) originale fît partie du service des entités géographiques Web (WFS), il a été décidé que le contenu de cette spécification devait faire l’objet d’un document distinct. L’encodage de filtres peut servir à une vaste gamme de services qui nécessitent la capacité d’exprimer les prédicats en langage XML, y compris le service d' entités géographiques Web (WFS), le service de cartes Web (WMS), le service de couverture Web (WCS), les services de répertoires toponymiques et les registres Web (services de catalogues Web (CSW)).
Le présent document donne une description détaillée de la norme internationale d’encodage de filtres. Toutefois, le développeur qui souhaite utiliser l’encodage de filtres devrait consulter la OpenGIS® Filter Encoding Standard (FES) pour obtenir les renseignements techniques.
Encodage de filtres pour obtenir des sous-ensembles de recherche
La recherche est une opération fondamentale exécutée sur un ensemble de données ou de ressources visant à obtenir un sous-ensemble d’instances de données qui contiennent certains renseignements recherchés respectant les critères de la recherche. La présente norme internationale définit les encodages XML et KVP utilisés pour les expressions de recherche et de filtrage.
Expressions de recherche et de filtrage
La norme internationale élaborée conjointement par l’OGC et l’ISO est considérée comme étant neutre du point de vue des systèmes. Au moyen des nombreux outils XML offerts de nos jours, il est facile de valider, d’analyser et de transformer les clauses de projection, de sélection et de tri codées en langage XML en tout langage de recherche cible afin de récupérer ou de modifier les ressources stockées dans un dépôt accessible sur le Web. Ces éléments, collectivement appelés une expression de recherche, sont modulaires; les autres normes, qui font référence à la norme de l’OGC et de l’ISO les utilisent ensemble ou individuellement.
Une expression de recherche est une action qui exécute une recherche dans certains ensembles de ressources et retourne un sous-ensemble de ces ressources. Une expression de recherche vise à restreindre les valeurs des propriétés d’un type d’objet dans le but de trouver un sous-ensemble des instances objet qui feront l’objet d’un traitement quelconque.
Une expression de recherche résumée peut servir à attribuer un identificateur défini par l’utilisateur à une expression de recherche pour traiter les erreurs ou corréler la réponse à même une série de recherches. Un autre type fondamental d’expression de recherche est l’expression de recherche ponctuelle, c.-à-d., que la recherche n’est pas connue avant son exécution, contrairement à une interrogation enregistrée, par exemple. Une expression de recherche ponctuelle contient le nom d’un ou de plusieurs types de ressources à rechercher, une clause de projection optionnelle qui énumère les propriétés que doit posséder la ressource, une clause de sélection optionnelle qui restreint les propriétés de ces types de ressources afin de définir un ensemble de résultats et une clause de tri optionnelle qui précise l’ordre de présentation de l’ensemble de résultats.
La norme d’encodage de filtres définit l’encodage en langages XML ou KVP des expressions de recherche. Par exemple, un sous-ensemble d’entités géographiques peut être désigné pour apparaître sous une couleur particulière ou les convertir dans un format précisé par l’utilisateur.
Chaque instance de données incluse dans l’ensemble source est évaluée au moyen de l’expression de recherche. Les prédicats de l’expression de recherche évaluent toujours si la condition est vraie ou fausse. Si l’expression recherche une condition VRAIE, l’instance de données qui respecte l’expression est marquée pour être incluse dans le résultat. Si l’expression de recherche donne lieu à une condition FAUSSE, l’instance de données qui respecte l’expression est exclue du résultat. Ainsi, l’évaluation d’une expression de recherche donne un ensemble d’identificateurs de données ou de ressources qui respecte les prédicats de l’expression.
Un service qui nécessite la capacité de rechercher des objets contenus dans un dépôt Web peut utiliser l’encodage XML d’une expression de recherche décrit dans la norme internationale. Par exemple, une recherche encodée en langage XML formée de clauses de projection, de sélection et de tri peut être transformée en énoncé SQL « SELECT … FROM … WHERE … ORDER BY … » pour récupérer des données enregistrées dans une base de données relationnelles SQL. De même, la même expression de recherche encodée en langage XML peut être tout aussi facilement transformée en expression XQuery pour récupérer des données d’un dépôt de document en langage XML.
Encodage des prédicats en langages XML et KVP
La norme internationale définit l’encodage en langage XML pour les prédicats suivants :
a. un jeu uniforme de prédicats logiques : and, or et not;
b. un jeu uniforme de prédicats comparatifs : equal to, not equal to, less than, less than or equal to, greater than, greater than or equal to, like, is null et between;
c. un jeu uniforme de prédicats spatiaux : equal, disjoint, touches, within, overlaps, crosses, intersects, contains, within a specified distance, beyond a specified distance et BBOX;
d. un jeu uniforme de prédicats temporels : after, before, begins, begun by, contains, during, ends, equals, meets, met by, overlaps et overlapped by;
e. un prédicat pour tester si l’identificateur d’un objet concorde à une valeur précise.
Plusieurs paramètres d’encodage en langage KVP des prédicats prennent la forme de listes de valeurs, et probablement de listes de listes de valeurs. Pour obtenir de plus amples renseignements, se reporter à la norme d’encodage de filtres de l’OGC®.
Clause de projection
Une clause de projection encode une liste de propriétés optionnelles d’une ressource qui devraient être disponibles dans la réponse à la recherche. Dans le cas des recherches en langage XML, les spécifications qui prennent en compte la clause de projection d’une expression de recherche ponctuelle définissent un élément concret dérivé de fes:AbstractAdhocProjectionClause. Dans le cas d’une recherche en langage KVP, le mot-clé PROPERTYNAME sert à encoder la clause de projection. Le nom de la propriété doit être un nom d’élément ou d’attribut XML valable et peut être qualifié par un préfixe d’espace de noms.
Une propriété simple peut être désignée de son nom. Toutefois, étant donné que les objets peuvent aussi inclure des propriétés non géométriques complexes ou agrégées, l’encodage de filtres reconnaît un mécanisme de référencement de ces propriétés. Un sous-ensemble des expressions Xpath sert en ce sens pour appuyer les chemins relatifs agrégés. L’encodage de filtres n’est pas nécessaire pour reconnaître tout le langage Xpath, et permet de minimiser le coût de saisie de la mise en œuvre. Pour obtenir des renseignements détaillés sur la conformité nécessaire aux expressions XPath, se reporter à la norme d’encodage de filtres de l’OGC®.
Clause de filtrage ou de sélection
Une clause de filtrage, ou une clause de sélection, décrit l’encodage d’un ou de plusieurs prédicats qui servent en général, dans les opérations de recherche, à préciser la méthode de filtrage des instances de données dans un ensemble source afin de produire un jeu de résultats. Il est possible d’utiliser les types de sélection suivants :
- Les opérateurs comparatifs évaluent la comparaison mathématique entre deux arguments. Si les arguments satisfont les exigences de la comparaison, l’expression est VRAIE; autrement, l’expression est FAUSSE.
- Les opérateurs spatiaux déterminent si les arguments géométriques respectent le lien spatial énoncé. Si les arguments satisfont les exigences du lien spatial, l’expression est VRAIE; autrement, l’expression est FAUSSE.
- Les opérateurs temporels déterminent si les arguments temporels respectent le lien temporel énoncé. Si les arguments satisfont les exigences du lien temporel, l’expression est VRAIE; autrement, l’expression est FAUSSE.
- Les opérateurs logiques combinent une ou plusieurs expressions conditionnelles. L’opérateur logique AND évalue si toutes les expressions satisfont les exigences de la condition. L’opérateur OR évalue si l’une des expressions satisfait les exigences de la condition. L’opérateur NOT inverse la valeur logique d’une expression.
- Les identificateurs des objets représentent un code d’identification distinct attribué à une instance d’une ressource dans le contexte du service Web qui offre la ressource.
Un service Web qui reconnaît l’encodage de filtres devrait publier les fonctions de filtrage soutenues dans son document des métadonnées des fonctions. Les fonctions de filtrage se divisent en cinq catégories :
- Fonctions d’identification : Élément générique de référencement des ressources au moyen d’un identificateur. Toutefois, les services Web peuvent définir leurs propres éléments pour identifier les ressources. La section des identificateurs des ressources du document des fonctions de filtrage permet à de telles mises en œuvre de déclarer le nom des éléments utilisés en guise d’identificateurs des ressources.
- Fonctions scalaires : Élément utilisé par un service pour indiquer les opérateurs logiques, de comparaison et arithmétiques reconnus. Si l’élément n’est pas précisé, le client doit présumer que le service ne reconnaît pas les opérateurs logiques ou comparatifs et n’offre aucune autre fonction.
- Fonctions spatiales : Élément utilisé par un service pour indiquer les opérateurs spatiaux et les opérandes géométriques reconnus. Si l’élément n’est pas précisé, le client doit présumer que le service ne reconnaît pas les opérateurs spatiaux.
- Fonctions temporelles : Élément utilisé par un service pour indiquer les opérateurs temporels et les opérandes temporels reconnus. Si l’élément n’est pas précisé, le client doit présumer que le service ne reconnaît pas les opérateurs temporels.
- Fonction d’essai du schémad’une ressource pour déceler la présence ou l’absence d’une propriété nommée.
Un service Web devrait indiquer les autres opérateurs ajoutés à la syntaxe du filtre dans la section des fonctions étendues de son document des métadonnées des fonctions de filtrage.
Clause de tri
Le terme clause de tri est une partie optionnelle d’une recherche propre à un service, incluse dans l’ensemble normatif des fichiers du schéma de filtrage. Cet élément précise le nom des propriétés dont les valeurs servent à trier ou à ordonner l’ensemble des ressources qui respectent l’expression de filtrage, avant leur présentation. Il tient lieu de point d’entrée pour appeler le mécanisme de tri du processeur de l’expression de filtrage. La norme internationale ne précise pas un mécanisme de tri; la seule exigence tient au fait que la séquence de tri doit être cohérente, pour le même ensemble de données et la même requête de tri, au fil des appels de tri.
Conformité
Quelques scénarios d’utilisation nécessitent une mise en œuvre complète de la norme internationale. En conséquence, les fournisseurs de service peuvent préciser les exigences seulement du sous-ensemble nécessaire à leurs besoins. Ou les développeurs peuvent documenter le sous-ensemble de la norme internationale qu’ils ont mis en œuvre et auquel ils se conforment. Ces catégories de conformité aident à préciser les sous-ensembles, en fonction des opérations et du comportement que le service d’encodage de filtres prétend mettre en œuvre, conformément au tableau 1 ci-dessous.
Catégorie de conformité | Opération ou comportement |
---|---|
Recherche | Service qui fait référence à la norme internationale et qui matérialise un élément concret de la recherche en remplacement de FES:AbstractQueryElement. |
Recherche ponctuelle | Service qui fait référence à la norme internationale et qui matérialise un élément concret de la recherche en remplacement de FES:AbstractAdhocQueryElement, une clause de sélection concrète en remplacement de FES:AbstractSelectionClause, une clause de projection concrète en remplacement de FES:AbstractProjectionClause, une clause de tri concrète en remplacement de FES:AbstractSortingClause. |
Fonctions | Met en œuvre des fonctions qui s’ajoutent aux opérateurs définis dans la norme internationale. |
Identification de la ressource | Implements the ResourceId operator with the rid parameter to allow predicates to be written that allow a specific resource to be queried. |
Filtre minimal standard | Met en œuvre les opérateurs comparatifs PropertyIsEqualTo, PropertyIsNotEqualTo, PropertyIsLessThan, PropertyIsGreaterThan, PropertyIsLessThanOrEqualTo et PropertyIsGreaterThanOrEqualTo. Met en œuvre les opérateurs logiques. Ne met en œuvre aucune autre fonction. |
Filtre standard | Met en œuvre tous les opérateurs comparatifs et logiques et peut mettre en œuvre au moins une autre fonction. |
Filtre spatial minimal | Met en œuvre seulement l’opérateur spatial BBOX. |
Filtre spatial | Met en œuvre l’opérateur spatial BBOX et au moins un autre opérateur spatial. |
Filtre temporel minimal | Met en œuvre seulement l’opérateur temporel During. |
Filtre temporel | Met en œuvre l’opérateur temporel During et au moins un autre opérateur temporel. |
Navigation dans les versions | Met en œuvre l’opérateur ResourceId avec les paramètres qui permettent la recherche des versions des ressources (version, startTime, endTime). |
Tri | Trie les ressources dans une réponse. |
Opérateurs étendus | Met en œuvre d’autres opérateurs non définis dans la norme internationale. |
Fonction XPath minimale | Met en œuvre l’ensemble nécessaire minimal de la fonction XPath. |
Fonction de l’élément du schéma | Met en œuvre la fonction XPath des éléments du schéma. |
Tableau 1 — Catégories de conformité d’encodage de filtres
Les autres normes qui appliquent la norme internationale d’encodage de filtres doivent préciser le contenu d’un filtre « minimal » en déclarant l’ensemble minimal des catégories de conformité du tableau 1 qui doivent être mis en œuvre.
* © ISO – Tous droits réservés.
Détails de la page
- Date de modification :