osmc:Convenções/Identificadores inteligentes: mudanças entre as edições

m
→‎ID de via: centroide como opcao default
m (→‎ID de via: centroide como opcao default)
 
(8 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
Identificadores inteligentes (AFA-tokens compativel com [https://www.iso.org/standard/51206.html LADM]), de vias, lotes, etc. possuem as seguintes características:
'''Identificadores geográficos inteligentes''' ('''ID''' inteligente), de vias, lotes, etc. possuem as seguintes características:


* '''Auto-confirmável''': dado o ID o usuário consegue confirmar no mapa a sua veracidade.
* do ''ID público'', na sua representação para humanos, em expressão textual:
* '''Independentes de autoridade central''': qualquer um, conhecendo o algoritmo e o objeto, pode gerar o identificador do objeto.
** '''Legível''' ao humano,  otimizada para ser '''o mais curto possível'''.  
* Oferece '''expressões interna e humana otimizadas''': no banco de dados, como inteiro de 64 bits, otimizado para buscas e demais operações; e na tela ou interface, como texto legível ao humano; otimizado para ser curto e hierárquico.
** '''Preservando hierarquia''', permitindo a contextualização e encurtamento por prefixo.  
** '''Compatível''' com formatos [https://www.w3.org/TR/did-core/ W3C '''DID'''] e/ou [[wikipedia:URN|URN]].


A metodologia AFA está intimamente ligada ao protocolo [[Geo URI estendida]]. Outros elementos da metodologia:
* do ID na sua ''representação interna'' em bancos de dados:
** '''Auto-confirmável''': dado apenas o ID, consegue-se confirmar ''offline'', no mapa, a sua localização geográfica.
** '''Inteiro positivo de 64 bits''', preservando hierarquia e otimizado para buscas e demais operações.


* deslocamentos (de posicionamento do vetor no OSM ou concretos da via real) requerem o uso de "''alias''" da antiga posição para a nova posição, na API de resolução da via.
* da resolução do ID:
** '''Atualidade e rastreabilidade''': a resolução ''online'' do ID permite que seu histórico seja conhecido em tempo de consulta, idealmente com devidas atualizações.
** ID '''compatível''' com as diretivas básicas de interoperabilidade do [https://www.w3.org/TR/did-core/ W3C '''DID'''].
*** '''Gerador independente de autoridade central''': qualquer um, conhecendo o algoritmo e o objeto geográfico a ser identificado, pode gerar um ID do objeto.
** Metadados públicos '''em conformidade com a legislação local do escopo LADM''', ou seja, vigente na jurisdição georeferenciada pelo ID, no escopo caracterizado pela [https://www.iso.org/standard/51206.html ISO LADM].
** '''Transparente''': o banco de dados mais atual é também disponível ao público em formato aberto e estruturado, por exemplo em repositório ''git'' aberto, com licença da família CC0.


* os ID público oficial e nomes (oficial e praticado) são associados depois.
Na '''metodologia AFA''' (orientada a ''[[#Geo-tokens]]'') a tecnologia do ID inteligente está intimamente ligado ao protocolo [[Geo URI estendida]]. Outros elementos da metodologia:


* a primeira associação é do ID inteligente com o ID OSM do objeto, depois a partir do OSM obtém-se o ID público oficial e nomes. <!-- A correspondência entre Wikidata e OSM em caso de via relevante (ex. [http://wikidata.org/entity/Q41068 Q41068 para avenida Paulista] ou [http://wikidata.org/entity/Q2739838 Q2739838 para BR-116]). -->
* Deslocamentos (de posicionamento do vetor no OSM ou concretos da via real) requerem o uso de "''alias''" da antiga posição para a nova posição, na API de resolução da via.


* Tecnologia para representação interna dos identificadores conforme [[Código natural/Representação interna]]. <!-- (que habilita a [[Código natural/Identificação taxonômica|identificação taxonômica otimizada]]. -->
* Os ID público oficial e nomes (oficial e praticado) são associados depois.
 
* A primeira associação é do ID inteligente com o ID OSM do objeto, depois a partir do OSM obtém-se o ID público oficial e nomes. <!-- A correspondência entre Wikidata e OSM em caso de via relevante (ex. [http://wikidata.org/entity/Q41068 Q41068 para avenida Paulista] ou [http://wikidata.org/entity/Q2739838 Q2739838 para BR-116]). -->
 
* Tecnologia para representação interna dos identificadores conforme ''[[Código natural/Representação interna]] com reserva de indicador de contagem''.<br/>PS: a reserva existe para o caso de ID sem significado espacial, ele inicia sempre com mesmo valor de célula-mãe e sufixo é um contador global. <!-- (que habilita a [[Código natural/Identificação taxonômica|identificação taxonômica otimizada]]. -->


== Protocolo de resolução de IDs de objetos ==
== Protocolo de resolução de IDs de objetos ==


Internamente, no banco de dados, os identificadores são inteiros de 64 bits conforme [[Código natural/Representação interna]].
Internamente, no banco de dados, os identificadores são inteiros de 64 bits conforme descritos em [[Código natural/Representação interna]].


A [[Geo URI estendida]] (e a  [[wikipedia:URN|URN]]) pode ser estendida para incorporar IDs inteligentes na resolução do servidor AFA:  
A [[Geo URI estendida]] (e a  [[wikipedia:URN|URN]]) pode ser estendida para incorporar IDs inteligentes na resolução do servidor AFA, todos em escopo LADM:  


* <code><nowiki>geo:id_via:{ID}</nowiki></code> Resolve o identificador público de ''via'' (estrada, rua, etc.)
* <code><nowiki>geo:id_via:{ID}</nowiki></code> Resolve o identificador público de ''via'' (estrada, rua, etc.)
Linha 28: Linha 40:
* <code><nowiki>geo:id_water:{ID}</nowiki></code> Resolve o identificador público de ''corpo d'água'' (lago, rio, riacho,  etc.)
* <code><nowiki>geo:id_water:{ID}</nowiki></code> Resolve o identificador público de ''corpo d'água'' (lago, rio, riacho,  etc.)


Nos ''URI templates'' o valor de ID é um AFAcode. Por exemplo <code><nowiki>geo:id_via:BR-SP-PIR-42BKG</nowiki></code> identifica uma estrada que contém o ponto [https://afa.codes/BR-SP-Piracicaba~42BKG8 geo:BR-SP-Piracicaba~42BKG8]. <br>Exceção é o PoA-contador, que faz uso internamente do [[Código_natural/Representação_interna#hCount|tipo <code>hCount56_8</code>]], que requer a representação diferenciada. São duas partes, a localização geográfica e o contador de 8 bits. Por exemplo o "endereço  5 do lote <code>BR-SP-Piracicaba~42B4Y</code>" será representado como <code>BR-SP-Piracicaba~42B4Y_5</code>. <br/>PS: PoA e PoI são equivalentes quando o PoA não faz uso de contador.
Nos ''URI templates'' acima o valor de ID é um AFAcode. Por exemplo <code><nowiki>geo:id_via:BR-SP-PIR-42BKG</nowiki></code> identifica uma estrada que contém o ponto [https://afa.codes/BR-SP-Piracicaba~42BKG8 geo:BR-SP-Piracicaba~42BKG8]. <br>Exceção é o PoA-contador, que faz uso internamente do [[Código_natural/Representação_interna#hCount|tipo <code>hCount56_8</code>]], que requer a representação diferenciada. São duas partes, a localização geográfica e o contador de 8 bits. Por exemplo o "endereço  5 do lote <code>BR-SP-Piracicaba~42B4Y</code>" será representado como <code>BR-SP-Piracicaba~42B4Y_5</code>. <br/>PS: PoA e PoI são equivalentes quando o PoA não faz uso de contador.


Se a via sofrer um deslocamento de 5 metros para a direita, resultando em novo código 42BKGB, o identificador público 42BKG será mantido, mas um ''alias'' será gerado do  42BKG8 para o 42BKGB.
Se a via sofrer um deslocamento de 5 metros para a direita, resultando em novo código 42BKGB, o identificador público 42BKG será mantido, mas um ''alias'' será gerado do  42BKG8 para o 42BKGB.
Linha 37: Linha 49:


==ID de via==
==ID de via==
O ID de via pode ser apenas interno ao banco de dados, para controle de segmentos sem compromisso com o controle OSM.
O ID de via pode ser público ou apenas interno ao banco de dados &mdash; para controle de segmentos sem compromisso com o controle OSM.


No caso de '''vias rurais''', entretanto, é importante que seja legível ao humano, pois vias carecem de identificação pública consensual. Seria uma forma "oficial temporária" para se identificar as vias em seu contexto".
No caso de '''vias rurais''', entretanto, é importante que seja legível ao humano, pois vias carecem de identificação pública consensual. Seria uma forma "oficial temporária" para se identificar as vias em seu contexto".
Linha 44: Linha 56:


# Confirmar por algoritmo topologico e rótulos OSM quais os segmentos que compõe a via. Se for descontínua (ex. rua quebrada por uma praça) pode receber dois IDs, um para cada parte contínua. <br/>PS: avaliar se vale criar ''relations'' para unir segmentos dispersos no OSM. As rotas (ex. BR-116) não devem ser confundidas com vias e seu nome/administração dentro do município.  
# Confirmar por algoritmo topologico e rótulos OSM quais os segmentos que compõe a via. Se for descontínua (ex. rua quebrada por uma praça) pode receber dois IDs, um para cada parte contínua. <br/>PS: avaliar se vale criar ''relations'' para unir segmentos dispersos no OSM. As rotas (ex. BR-116) não devem ser confundidas com vias e seu nome/administração dentro do município.  
# Escolher um ponto sobre a via como referência de ponto único, mais central e livre de cruzamentos. De preferência com alguma referência geográfica.
# Escolher um ponto sobre a via como referência de ponto único, mais central e livre de cruzamentos. <br/> Pode ser o centroide em determinada data ([https://postgis.net/docs/ST_PointOnSurface.html ST_PointOnSurface]) ou, de preferência, ponto com alguma referência geográfica (ex. Igreja).
# Obter o AFAcode desse ponto
# Obter o AFAcode desse ponto
# Entre as diversas vias assim identificadas, estabelecer o número de dígitos mínimos para que sejam distintas no escopo do município.
# Entre as diversas vias assim identificadas, estabelecer o número de dígitos mínimos para que sejam distintas no escopo do município.
Linha 112: Linha 124:


* [[osmc:Convenções/Identificadores inteligentes/de lote no Brasil|Brasil]]
* [[osmc:Convenções/Identificadores inteligentes/de lote no Brasil|Brasil]]
* [[osmc:Convenções/Identificadores inteligentes/de lote na Colômbia|Colômbia]]
* ...
* ...


Linha 131: Linha 144:
* ...
* ...


== Identifcadores AFA-token pre-espacialização ==
== Geo-tokens ==
IDs podem ser resolvidos através de "aliases", apontando para ID espacializado, tipicamente um  [[GGeohash]].
 
=== Solução para pre-espacialização ===
 
NFTs tradicionalmente são hashes, mas no caso de [[GGeohash|GGeohashes]], que não é um hash criptográfico nem de encapsulamento de metadados genéricos, surge a dicotomia entre usar ou não a espacialização, ou usar ou não um ID espacial ainda não oficialmente legitimado.
 
Questão ténica. Para evitar necessidade de mudança na representação interna usual do AFAcodes, são eleitos "quadrantes impossíveis" (por exemplo fora do território nacional) para serem referência de zero na contagem hierárquica ou classificador de referência para uso dos demais bits como contadores.


... ver "alias" para o espacializado
Ver também requisitos gerais dos IDs e seus protocolos em https://www.w3.org/TR/did-use-cases/#authenticate


== Ligações externas ==
== Ligações externas ==


* ...
* ...
2 434

edições