OGC API - Records¶
Público-alvo
Estudantes familiarizados com serviços web e APIs, que desejam ter uma visão geral da norma OGC API - Records
Objetivos de Aprendizagem
Ao concluir o módulo, os estudantes serão capazes de:
- Explicar o que é a norma OGC API - Records
- Descrever o que pode ser feito com implementações da OGC API - Records
- Compreender os principais recursos oferecidos por implementações da OGC API - Records
- Compreender como obter uma descrição das capacidades de uma implementação da OGC API - Records
- Compreender como fazer pedidos a uma implementação do OGC API - Records
- Conseguir encontrar um endpoint do OGC API - Records e utilizá-lo através de um cliente
Introdução¶
A OGC API - Records é uma norma multi-parte que oferece a capacidade de criar, modificar e consultar metadados na Web. A norma permite a descoberta de recursos geoespaciais ao padronizar a forma como as coleções de informação descritiva sobre os recursos (metadados) são expostas. A norma também permite a descoberta e partilha de recursos relacionados que possam ser referenciados a partir de recursos geoespaciais ou dos respetivos metadados, padronizando a forma como todos os tipos de registos são expostos e geridos. A Parte 1 cobre o acesso apenas-leitura a registos e capacidades simples de consulta. Capacidades adicionais que abordam necessidades específicas serão especificadas em partes adicionais. Capacidades para consultas mais ricas ou para criar, atualizar ou eliminar registos serão especificadas em partes adicionais.
Note
A OGC API - Records aproveita a OGC API - Features como base, com endpoints de URL semelhantes e fluxo de trabalho de pedido/resposta, para o Catálogo Pesquisável e Local.
Note
Este módulo tutorial não tem a intenção de substituir a própria norma OGC API - Records - Parte 1: Core. O tutorial concentra-se intencionalmente num subconjunto de capacidades com o propósito de ser uma iniciação à utilização da norma. Consulte a norma da OGC API - Records - Parte 1: Core para mais detalhes.
Antecedentes¶
Histórico
O trabalho do standard OGC API - Records foi iniciado em 2018 e foi originalmente designado por OGC CAT4.0. Desde então, seguiu o desenvolvimento do OGC API - Features como base.
Versões
OGC API - Records - Parte 1: Core versão 1.0.0 é a versão mais recente
Suite de testes
Atualmente não existem suites de testes implementadas; uma vez implementadas elas estarão disponíveis no OGC Validator.
Implementações
As implementações podem ser encontradas na página de implementações.
Utilização¶
O OGC API - Records suporta 3 padrões principais de implementação:
- Catálogo navegável: navegação e pesquisa de um conjunto de registos de metadados através de ligações
- Catálogo pesquisável: capacidade da API para pesquisar e filtrar uma coleção de registos de metadados com base em critérios de pesquisa (bbox, datetime, q, etc.)
- Catálogo de recursos locais: funcionalidade de catálogo pesquisável aplicada ao nível da coleção de uma API
A OGC API - Records suporta também um modelo de pesquisa central. Ou seja, um conjunto de propriedades comuns de pesquisa que podem ser utilizadas contra qualquer servidor OGC API - Records, independentemente do formato/standard de metadados e/ou do design do repositório de metadados subjacente.
Note
Para fins deste aprofundamento, vamos focar-nos na norma de implementação de catálogo pesquisável.
Relação com outras normas¶
OGC Catalogue Service for the Web (CSW): A norma CSW é mais apropriada quando se trabalha com aplicações cliente que suportam apenas serviços web clássicos da OGC. Note também que o CSW adota um modelo central de metadados baseado no Dublin Core por predefinição. Em contraste, a OGC API - Records inclui recomendações para suportar HTML e GeoJSON como codificações, quando aplicável. As implementações da OGC API - Records podem também opcionalmente suportar formatos de metadados XML, como ISO 19115/19139.
Visão geral dos recursos¶
A OGC API - Records - Parte 1: Core define os recursos listados na tabela seguinte.
| Recurso | Método | Caminho | Propósito |
|---|---|---|---|
| Página de aterragem | GET | / | Este é o recurso de nível superior, que serve como ponto de entrada. |
| Declaração de conformidade | GET | /conformance | Este recurso apresenta informação sobre a funcionalidade que é implementada pelo servidor. |
| Definição da API | GET | /api | Este recurso fornece metadados sobre a API propriamente dita. Note que a utilização de /api no servidor é opcional e a definição da API pode estar alojada num servidor completamente separado. |
| Coleções de registos | GET | /collections | Este recurso lista as coleções de registos oferecidas através da API. |
| Coleção de registos | GET | /collections/{collectionId} | Este recurso descreve a coleção de registos identificada no caminho. |
| Acesso a registos | GET | /collections/{collectionId}/items | Este recurso apresenta os registos contidos na coleção. |
| Recurso central do registo | GET | /collections/{collectionId}/items/{recordId} | Este recurso apresenta o registo identificado no caminho. |
Como mencionado anteriormente, a OGC API - Records utiliza intensivamente o\a OGC API - Features como bloco de construção base. Embora a OGC API - Records permita qualquer modelo de metadados, uma diferença e valor acrescentado chave é a capacidade de descrever um modelo central de registo e elementos consultáveis. Isto permite interoperabilidade e integração entre catálogos para descrever recursos geoespaciais de forma consistente.
Por exemplo, um repositório de metadados pode ser modelado seguindo a norma ISO 19115 e ser exposto através da OGC API - Records através de «mapeamento» dos elementos ISO para o modelo central de registo e elementos consultáveis.
O registo central é a unidade atómica de informação num catálogo. Uma descrição completa das propriedades centrais de um registo pode
encontrar-se em https://docs.ogc.org/is/20-004r1/20-004r1.html#core-properties. O registo central é uma representação compatível com GeoJSON
com elementos fixos no objeto/bloco properties.
Exemplo¶
O servidor de demonstração publica metadados de dados geoespaciais através de uma interface que está em conformidade com a OGC API - Records.
Um exemplo de pedido que pode ser utilizado para recuperar dados da coleção de registos de metadados amostrais do Dutch Nationaal georegister é https://demo.pygeoapi.io/master/collections/dutch-metadata?f=html
Note que a resposta ao pedido é HTML neste caso.
Alternativamente, os mesmos dados podem ser recuperados no formato GeoJSON, através do pedido https://demo.pygeoapi.io/master/collections/dutch-metadata?f=json
Uma aplicação cliente pode, em seguida, recuperar o documento GeoJSON e exibi-lo ou processá-lo.
Recursos¶
Página de Aterragem¶
Dado que a OGC API - Records utiliza o OGC API - Common e a OGC API - Features como blocos de construção, consulte a OGC API - Features para uma explicação detalhada.
Declarações de conformidade¶
Dado que o OGC API - Records utiliza a OGC API - Common e a OGC API - Features como blocos de construção, consulte a OGC API - Features para uma explicação detalhada.
Definição da API¶
Dado que a OGC API - Records utiliza o OGC API - Common como bloco de construção, consulte a OGC API - Features para uma explicação detalhada de uma implementação de exemplo.
Coleções de registos¶
Dado que a OGC API - Records utiliza a OGC API - Common e a OGC API - Features como blocos de construção, consulte a OGC API - Features para uma explicação inicial detalhada.
As descrições de coleções da OGC API - Records fornecem as seguintes propriedades adicionais:
- Um título obrigatório para a coleção
- Um tipo obrigatório para a coleção
- Um indicador obrigatório sobre o tipo dos itens na coleção (
record)
Abaixo segue um excerto da resposta ao pedido https://demo.pygeoapi.io/master/collections?f=json, ilustrando um registo de coleção:
{
"id": "dutch-metadata",
"type": "Catalog",
"itemType": "record",
"title": "Sample metadata records from Dutch Nationaal georegister",
"description": "Sample metadata records from Dutch Nationaal georegister",
"keywords":[
"netherlands",
"open data",
"georegister"
],
"links":[
{
"type": "application/json",
"rel": "self",
"title": "This document as JSON",
"href": "https://demo.pygeoapi.io/master/collections/dutch-metadata?f=json"
},
{
"type": "application/geo+json",
"rel": "items",
"title": "items as GeoJSON",
"href": "https://demo.pygeoapi.io/master/collections/dutch-metadata/items?f=json"
}
]
}
Coleção de registos¶
Dado que o OGC API - Records utiliza o OGC API - Common e o OGC API - Features como blocos de construção, consulte a OGC API - Features para uma explicação inicial detalhada, bem como a descrição das Coleções de registos.
Acesso a registos¶
Dado que a OGC API - Records utiliza o OGC API - Common e a OGC API - Features como blocos de construção, consulte a OGC API - Features para uma explicação detalhada.
Abaixo segue um excerto da resposta ao pedido https://demo.pygeoapi.io/master/collections/dutch-metadata/items?f=json
{
"type": "FeatureCollection",
"numberMatched": 308,
"numberReturned": 10,
"features": [
{
"id": "35149dfb-31d3-431c-a8bc-12a4034dac48",
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
4.690751953125,
52.358740234375
],
[
4.690751953125,
52.6333984375
],
[
5.020341796875,
52.6333984375
],
[
5.020341796875,
52.358740234375
],
[
4.690751953125,
52.358740234375
]
]
]
},
"properties": {
"created": "2021-12-08",
"updated": "2022-06-10T01:27:47Z",
"type": "dataset",
"title": "Kaartboeck 1635",
"description": "Data uit kaartboeken van de periode 1635 tot 1775. De kaartboeken werden door het waterschap gebruikt om er op toe te zien dat de eigenaren geen water in beslag namen door demping.\nDe percelen op de kaart zijn naar de huidige maatstaven vrij nauwkeurig gemeten en voorzien van een administratie met de eigenaren. bijzondere locaties van molens werven en beroepen worden in de boeken vermeld. Alle 97 kaarten aan een geven een zeer gedetailleerd beeld van de Voorzaan, Nieuwe Haven en de Achterzaan. De bladen Oost en West van de zaan zijn vrij nauwkeurig. De bladen aan de Voorzaan zijn een schetsmatige weergave van de situatie. De kaart van de Nieuwe Haven si weer nauwkeurig te noemen.",
"providers": [
"Team Geo, geo-informatie@zaanstad.nl, Gemeente Zaanstad"
],
"externalIds": [
{
"scheme": "default",
"value": "35149dfb-31d3-431c-a8bc-12a4034dac48"
}
],
"themes": [
{
"concepts": [
"ARGEOLOGIE",
"MONUMENTEN",
"KADASTER",
"KAARTBOEK",
"KAARTBOECK",
"HISTORIE"
]
}
],
"extent": {
"spatial": {
"bbox": [
[
4.690751953125,
52.358740234375,
5.020341796875,
52.6333984375
]
],
"crs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
},
"temporal": {
"interval": [
null,
null
],
"trs": "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian"
}
}
},
"links": [
{
"href": "https://maps-intern.zaanstad.gem.local/geoserver/wms?SERVICE=WMS",
"rel": "item",
"title": "geo:kaartboeck",
"type": "OGC:WMS"
},
{
"href": "https://maps-intern.zaanstad.gem.local/geoserver/wfs?SERVICE=WFS",
"rel": "item",
"title": "geo:kaartboeck",
"type": "OGC:WFS"
},
{
"href": "https://maps-intern.zaanstad.gem.local/geoserver/wfs?SERVICE=WFS&version=1.0.0&request=GetFeature&typeName=geo:kaartboeck&outputFormat=csv",
"rel": "item",
"type": "download"
},
{
"href": "https://maps-intern.zaanstad.gem.local/geoserver/wfs?SERVICE=WFS&version=1.0.0&request=GetFeature&typeName=geo:kaartboeck&outputFormat=shape-zip",
"rel": "item",
"type": "download"
}
]
}
Note que este documento é um documento GeoJSON válido.
O OGC API - Records suporta os mesmos parâmetros de consulta especificados na OGC API - Features. Além disso, o OGC API - Records adiciona um conjunto central de elementos consultáveis fixos. Um exemplo de consulta com base numa pesquisa estilo «motor de pesquisa» utilizando o parâmetro q é https://demo.pygeoapi.io/master/collections/dutch-metadata/items?f=json&q=biomassa
Note
Consulte a norma OGC API - Records - Parte 1: Core para mais informação sobre elementos consultáveis centrais.
Recurso central do registo¶
Dado que o OGC API - Records utiliza a OGC API - Common e o OGC API - Features como blocos de construção, consulte a OGC API - Features para uma explicação detalhada.
GeoJSON¶
A Classe de Requisitos GeoJSON da OGC API - Records especifica uma codificação baseada em GeoJSON para o registo central, com base no RFC7946. Dada a onipresença do GeoJSON, existem inúmeras ferramentas para validar, processar e decodificar/codificar GeoJSON, tornando o GeoJSON da OGC API - Records fácil de incluir em pipelines de processamento de metadados. A OGC API - Records inclui o JSON Schema para a representação GeoJSON e, por conseguinte, pode ser utilizada para validação em tempo de execução ou offline de payloads de metadados. Aplicações baseadas no GeoJSON do OGC API - Records podem estender e restringir o esquema de acordo para fluxos de trabalho específicos do domínio.
Resumo¶
A OGC API - Records fornece funcionalidade para trabalhar com metadados na Web. Este aprofundamento proporcionou uma visão geral da norma e dos vários recursos e endpoints suportados.