Código Natural/Identificação taxonômica: mudanças entre as edições

De Documentação
Linha 39: Linha 39:


==Taxonomias Base N==
==Taxonomias Base N==
Ver fig em https://github.com/osm-codes/NaturalCodes/wiki/Illustrating-the-order-as-taxonomy-blocks
[[Arquivo:KraEtAll2019-fig03-new-bitsBase4.png|thumb|220px|Reserving 2 bits for all taxon-prefixes, and later representation in Base4h.]]
<!--
fig em https://github.com/osm-codes/NaturalCodes/wiki/Illustrating-the-order-as-taxonomy-blocks
outra fig em [[Arquivo:KraEtAll2019-fig03-awns.png]]
-->


Necessário reservar 2 bits para a taxonomia. Aqui adotamos a estratégia de reserva de apenas um bit para a diferenciação das laranjas, e mais um bit para a diferenciação das maçãs.
O caso mais simples é a Base4, com dígitos de 2 bits. É necessário então reservar no mínimo 2 bits para a taxonomia.  
Aqui adotamos a estratégia de reserva de apenas um bit para a diferenciação das laranjas, e mais um bit para a diferenciação das maçãs.


A conversão para base4 resulta...
[[Arquivo:KraEtAll2019-fig15-GreenApples.png|thumb|220px|''Green apples'', IDs na Base4h.]]


[[Arquivo:KraEtAll2019-fig03-new-bitsBase4.png|centro|semmoldura|369x369px]]
A conversão para Base4h resulta na segunda coluna da tabela abaixo, com prefixos em negrito, e conjunto "Green apples" ilustrado.


 
:{| class="wikitable"
[[Arquivo:KraEtAll2019-fig15-GreenApples.png]]
|'''Base2h'''
 
|'''Base4h'''
[[Arquivo:KraEtAll2019-fig03-awns.png]]
|'''''Taxon'''''
|-
|00      || '''0'''    || Red Apple (illustrated)
|-
|000    || '''0'''G  || Red Apple (illustrated)
|-
|0000    || '''0'''0  || Red Apple (illustrated)
|-
|0001101 || '''0'''12Q || Red Apple
|-
|0010101 || '''0'''22Q || Red Apple
|-
|01      || '''1'''    || Green apple (illustrated)
|-
|0101    || '''1'''1  || Green apple
|-
|010    || '''1'''G  || Green apple (illustrated)
|-
|011    || '''1'''Q  || Green apple (illustrated)
|-
|10      || '''2'''    || Organge (illustrated)
|-
|10101  || '''2'''2Q  || Organge
|-
|1011    || '''2'''3  || Organge
|-
|101    || '''2'''Q  || Organge (illustrated)
|}


==Identificadores sem contador==
==Identificadores sem contador==

Edição das 19h23min de 16 de julho de 2023

Identificadores únicos, tais como contadores sequenciais em bases de dados, são fundamentais para a indexação e controle de registros. O ideal, todavia, é que esse identificador traga embutida alguma informação relativa à taxonomia da entidade identificada. Isso porque os identificadores de grupos taxonômicos também precisam ser únicos e padronizados.

A ilustração do conjunto de frutas nos ajuda

Taxonomias bit a bit

Códigos binários identificando frutas individuais e sua taxonomia: laranja, maçã vermelha e maçã verde.

A cada prefixo pode-se expressar uma regra. Por exemplo:

  • Primeiro bit do ID: define se é laranja (1) ou maçã (0).
    Os conjuntos L dos identificadores de laranjas e M das maçãs da ilustração ao lado são definidos por: e .
  • Primeiro bit do ID de maçã: define se é vermelha (0) ou verde (1). Portanto IDs com prefixos 00 e 01.
    Os conjuntos R dos identificadores de maçãs "red" e G das maçãs "green" da ilustração ao lado são definidos por: e . Ambos subconjuntos de M, estabelecendo portanto uma hierarquia taxonômica entre as maçãs.

Os identificadores de frutas são livres, podem ter qualquer quantidade de bits, podem ter tamanho fixo ou variável, e não precisam percorrer uma sequência especial. A taxonomia só impõe a existência de prefixos e regras de interpretação para esses prefixos.

A sintaxe geral da cadeia de bits é simples: "$prefixo$contador". Com as variáveis prefixo e contador, tendo apenas o prefixo um tamanho definido pelas regras taxonômicas.

Reserva de bits para o prefixo do contador

No exemplo acima as laranjas fizeram uso de um prefixo de apenas 1 bit e as maçãs uso de um prefixo de 2 bits.

Se a taxonomia é sujeita a modificações, podemos reservar mais bits para cada um dos grupos taxonômicos (taxons).

No exemplo poderíamos no futuro distinguir laranjas, entre comuns e avermelhadas. Todas elas com prefixo 1 mas reservando mais bits para futuras diferenciações: duas estratégias são possíveis:

  • Se as existentes são comuns, batizamos elas de 10 e reservamos 11 para as avermelhadas. Não fica nenhuma reserva de segurança.
  • Se as existentes são misturadas, batizamos a mistura de 100 e reservamos 101 para as identificadas como comuns e 110 para as avermelhadas; ficando ainda a reserva 111 para outra eventual variedade de laranja.

Quanto maior o risco de uma futura diferenciação, maior a demanda por reserva.

Contadores numéricos

Na sintaxe "$prefixo$contador", o contador pode ser representado como número. Computacionalmente o ID é um código, seu prefixo um código (fixo ou condicional), e por fim o contador, depois de isolado (ainda como código) pode sofrer cast para um número inteiro positivo.

Sendo um número, podemos calcular o sucessor succ($contador) através da aritmética usual, $contador+1.

Contadores lexicográficos

Na sintaxe "$prefixo$contador", o contador pode ser mantido como código.

Sendo um código, podemos calcular succ($contador) através da "aritmética lexicográfica"...

Taxonomias Base N

Reserving 2 bits for all taxon-prefixes, and later representation in Base4h.

O caso mais simples é a Base4, com dígitos de 2 bits. É necessário então reservar no mínimo 2 bits para a taxonomia. Aqui adotamos a estratégia de reserva de apenas um bit para a diferenciação das laranjas, e mais um bit para a diferenciação das maçãs.

Green apples, IDs na Base4h.

A conversão para Base4h resulta na segunda coluna da tabela abaixo, com prefixos em negrito, e conjunto "Green apples" ilustrado.

Base2h Base4h Taxon
00 0 Red Apple (illustrated)
000 0G Red Apple (illustrated)
0000 00 Red Apple (illustrated)
0001101 012Q Red Apple
0010101 022Q Red Apple
01 1 Green apple (illustrated)
0101 11 Green apple
010 1G Green apple (illustrated)
011 1Q Green apple (illustrated)
10 2 Organge (illustrated)
10101 22Q Organge
1011 23 Organge
101 2Q Organge (illustrated)

Identificadores sem contador

A sintaxe "$prefixo$contador" não deve ser confundida com a sintaxe interna do prefixo. Havendo necessidade de se identificar apenas os grupos taxonômicos, com sua hierarquia, podemos fazer uso do prefixo como identificador,

Modelagem dos níveis hierárquicos

Uniforme vs heterogêneo...

  • Por base N de referência: exemplo do geocódigo quadrilátero que precisa preserva compatibilidade com a base4
  • Por agregação: ... junta 2 ou mais níveis hierárquicos da base N para obter um nível...