2 583
edições
(Criou página com 'Identificadores únicos, tais como [https://www.postgresql.org/docs/current/functions-sequence.html 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 aj...') |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
Identificadores únicos, tais como [https://www.postgresql.org/docs/current/functions-sequence.html 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. | Identificadores únicos, tais como [https://www.postgresql.org/docs/current/functions-sequence.html 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 | A ilustração do conjunto de frutas nos ajuda | ||
== Taxonomias bit a bit == | ==Taxonomias bit a bit== | ||
... | [[arquivo:KraEtAll2019-fig01-apples.png|thumb|280px|Códigos binários identificando frutas individuais e sua taxonomia: laranja, maçã vermelha e maçã verde.]] | ||
=== Reserva de bits para o prefixo do contador === | A cada prefixo pode-se expressar uma regra. Por exemplo: | ||
... | |||
=== Contadores numéricos === | * Primeiro bit do ID: define se é laranja (1) ou maçã (0). <br/>Os conjuntos ''L'' dos identificadores de laranjas e ''M'' das maçãs da ilustração ao lado são definidos por: <math>L=\{1, 10\}</math> e <math>M=\{0, 00, 000, 01, 010, 011\}</math>. | ||
* Primeiro bit do ID de maçã: define se é vermelha (0) ou verde (1). Portanto IDs com prefixos 00 e 01.<br/>Os conjuntos ''R'' dos identificadores de maçãs "red" e ''G'' das maçãs "green" da ilustração ao lado são definidos por: <math>R=\{0, 00, 000\} \subset M</math> e <math>G=\{01, 010, 011\} \subset M</math>. 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: "<code>$prefixo$contador</code>". 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 <code>1</code> mas reservando mais bits bit para futuras diferenciações: duas estratégias são possíveis: | |||
* Se as existentes são comuns, batizamos elas de <code>10</code> e reservamos <code>11</code> para as avermelhadas. Não fica nenhuma reserva de segurança. | |||
* Se as existentes são misturadas, batizamos a mistura de <code>100</code> e reservamos <code>101</code> para as identificadas como comuns e <code>110</code> para as avermelhadas; ficando ainda a reserva <code>111</code> para outra eventual variedade de laranja. | |||
===Contadores numéricos=== | |||
... | ... | ||
=== Contadores lexicográficos === | ===Contadores lexicográficos=== | ||
... | ... | ||
== Taxonomias Base N == | ==Taxonomias Base N== | ||
Ver fig em https://github.com/osm-codes/NaturalCodes/wiki/Illustrating-the-order-as-taxonomy-blocks | Ver fig em https://github.com/osm-codes/NaturalCodes/wiki/Illustrating-the-order-as-taxonomy-blocks | ||
[[Arquivo:KraEtAll2019-fig15-GreenApples.png]] | |||
[[Arquivo:KraEtAll2019-fig03-awns.png]] |
edições