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

m
mSem resumo de edição
 
(23 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
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 estáveis também precisam ser únicos e padronizados'''. A governança de dados [[wikipedia:Data Mesh|Data Mesh]] apoia a estabilização e controle das taxonomias básicas de uma empresa.


Neste artigo trazemos a aprimoração e a Gestão de Registros e de Indexação com Identificadores Únicos! Imagine um mundo onde o gerenciamento eficaz de registros e a indexação em bases de dados se tornam simples e eficientes. Isso é possível através da utilização estratégica de identificadores únicos. Mas a chave real para o sucesso está na integração inteligente de informações relacionadas à taxonomia da entidade identificada, dentro desses identificadores.
Objetivos deste tutorial, para uso do código natural como [[osmc:Convenções/Identificadores inteligentes|identificador inteligente]], com classificação embutida:
* '''apresentar mais didaticamente as aplicações taxonômicas''' do hInt e hCount;
* descrever as '''técnicas inovadoras de indexação''' de banco de dados, por hInt e hCount;
* demonstrar que é possível '''unificar identificadores de diversas tabelas''' (classes) num banco de dados SQL;
* demonstrar que é possível resgatar '''ramos desejados de uma hierarquia com alta performance''' em Big Data.]
* demonstrar que a taxonomia embutida no ID '''acrescenta integridade semântica''', similar a [[wikipedia:Check digit|dígitos verificadores]].


Elucidamos a verdadeira vantagem dessa abordagem - especialmente quando aplicada aos identificadores ligados a grupos taxonômicos. Aqui, a singularidade e a padronização emergem como imperativos. Ao enriquecer esses identificadores com um contexto taxonômico rico, não apenas a precisão da indexação se eleva, mas também a coesão de toda a estrutura de dados
A chave para o sucesso está na integração inteligente de informações relacionadas à taxonomia da entidade identificada, dentro desses identificadores.<!-- Elucidamos a verdadeira vantagem dessa abordagem &mdash; especialmente quando aplicada aos identificadores ligados a grupos taxonômicos. Aqui, a singularidade e a padronização emergem como imperativos. Ao enriquecer esses identificadores com um contexto taxonômico rico, não apenas a precisão da indexação se eleva, mas também a coesão de toda a estrutura de dados. -->
 
== Taxonimias puras vs embutidas vs hCount ==
 
O código natural, como [[hInt]], pode ser utilizado como identificador e indexador de tabelas em bancos de dados relacionais (SQL). A utilização do código natural como ID de taxons, em [[wikipedia:Numerical taxonomy|taxonomia numérica]] e hierarquias estáveis, tem aplicações óbvias e apresenta alta eficiencia.
 
A utilização como "ID inteligente", ou seja, o análogo de um inteiro serial com informação de classificação embutida, requer cuidados e abordagem metodológica mais complexa. No restante do tutorial teremos sempre em vista essa aplicação.
 
... Uma solução para tornar a gestão dos contadores de classe mais simples, é o tipo de dado [[hCount]]...


==Taxonomias bit a bit==
==Taxonomias bit a bit==
Linha 26: Linha 39:
   
   
===Reserva de bits para o prefixo do contador===
===Reserva de bits para o prefixo do contador===
A noção realista de "taxonomia estável" requer um ''prazo de validade'': estimamos que ao final do prazo aumenta o risco de instabilidade, e, tipicamente, a necessidade de se incluir mais itens. Ao final do prazo já é prevista a revisão da taxonomia, mas o ideal é que possa haver uma transição suave da antiga para a nova (e novamente estável).
A solução é a reserva. Se a taxonomia é sujeita a modificações, podemos '''reservar mais bits para cada um dos grupos taxonômicos''' (''taxons'').
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.
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 para futuras diferenciações: duas estratégias são possíveis:  
No exemplo poderíamos no futuro '''distinguir laranjas''',  entre ''comuns'' e ''avermelhadas''. Todas elas com prefixo <code>1</code> mas reservando mais bits para futuras diferenciações: duas estratégias são possíveis:  
Linha 36: Linha 51:
*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.
*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.


Quanto maior o risco de uma futura diferenciação, maior a demanda por reserva.
Quanto maior o '''risco de uma futura diferenciação''', maior a demanda por '''reserva'''.  
 
<!-- A reserva não contradiz a noção de estabilidade, que requer ''prazo de validade''. Como nenhum prazo é infinito, o risco nunca será nulo, e a reserva, portanto, dá uma margem de segurança para a transição ou revisão de taxonomia no final do prazo de validade. -->


===Prefixos lexicográficos===
===Prefixos lexicográficos===
Linha 101: Linha 118:
|}
|}


===Atribuição dos IDs dentro de uma taxonomia ===
===Atribuição dos IDs lexicográficos dentro de uma taxonomia ===
A técnica descrita a seguir é similar ao tradicional "[[wikipedia:Nested set model|modelo de conjuntos aninhados]]", porém otimizada por utilizar apenas o ID, ao invés de duas colunas auxiliares.


Supor que a partir de ''k'' bits, digamos ''k''=4, seja possível destacar prefixos válidos para conjuntos e subconjuntos alinhados.
Supor que a partir de ''k'' bits, digamos ''k''=4, seja possível destacar prefixos válidos para conjuntos e subconjuntos alinhados.
Linha 114: Linha 132:


[[Arquivo:NatCod-taxon-produtos1.png|centro|miniaturadaimagem|680px|Códigos Naturais de 11 bits na base 4h: de <code>0</code> até <code>33333Q</code>, identificando produtos.<br />
[[Arquivo:NatCod-taxon-produtos1.png|centro|miniaturadaimagem|680px|Códigos Naturais de 11 bits na base 4h: de <code>0</code> até <code>33333Q</code>, identificando produtos.<br />
Futas: prefixo <code>0</code>. Roupas: prefixo <code>3</code>. Demais produtos: prefixos <code>1</code> e <code>2</code> disponíveis. Maçãs: prefixo <code>00</code>. Demais frutas: prefixos <code>01</code>, <code>02</code> <code>03</code> disponíveis.<br /> Maçãs vermelhas, prefixo <code>000</code>; maçãs verdes, prefixo <code>001</code>. Roupas de mulher, prefixo <code>30</code>: vestidos <code>300</code>; camisas femininas <code>302</code>. Demais roupas: camisetas, prefixo <code>31</code>; e jeans prefixo <code>32</code>. <br />Cada maçã vermelha recebe um ID no intervalo <code>000</code> até <code>00033Q</code>; cada maçã verde de <code>001</code> até <code>00133Q</code>; ...;  cada jeans de <code>32</code> até <code>32333Q</code>.]]
Futas: prefixo <code>0</code>. Roupas: prefixo <code>3</code>. Demais produtos: prefixos <code>1</code> e <code>2</code> disponíveis. <br/>Maçãs: prefixo <code>00</code>; maçãs vermelhas, prefixo <code>000</code>; maçãs verdes, prefixo <code>001</code>. Demais frutas: prefixos <code>01</code>, <code>02</code> <code>03</code>, sem especialização.<br />  Roupas de mulher, prefixo <code>30</code>: vestidos <code>300</code>; camisas femininas <code>302</code>. Demais roupas: camisetas, prefixo <code>31</code>; e jeans prefixo <code>32</code>. <br />O ID de cada produto é expresso pelo prefixo seguido de um ou mais dígitos, respeitando limite dos 11 bits. Por exemplo o ID <code>001.123</code> é relativo a maçã verde, todas elas estarão no intervalo <code>001.0</code> até <code>001.33Q</code>.]]
 
Neste cenário, no inventário inicial foram suficientes 11 bits para identificar todos os produtos com seus prefixos. Por exemplo os IDs das maçãs vermelhas ficaram no intervalo <code>000</code> até <code>00033Q</code>, e as maçãs verdes de <code>001</code> até <code>00133Q</code>.  Para facilitar a visualização do prefixo no valor do ID podemos usar o ponto, por exemplo <code>001.33Q</code>.


Neste cenário, no inventário inicial foram suficientes 11 bits para identificar todos os produtos com seus prefixos. Por exemplo os IDs das maçãs vermelhas ficaram no intervalo <code>000</code> até <code>00033Q</code>, e as maçãs verdes de <code>001</code> até <code>00133Q</code>.  Abaixo ilustrando ao invés das classes algumas instâncias de produtos, cada qual com seu ID, e a posição do ID na "régua base 4h". Para destacar classe e contador foi adotada a notação com ponto separador. Por exemplo a maçã verde com ID=<code>00133</code> pode ser destacada como <code>001.33</code>. Ela vem depois da maçã <code>001.0</code> e bem antes por exemplo do jeans <code>32.101</code>. Todos ficam  
Resumindo a definição da hierarquia apresentada pelo catálogo da loja:
[[Arquivo:NatCod-taxons-InstanceIntervals1.png|centro|semmoldura|580x580px]]
 
A ampliação do banco de dados, adotando o dobro, 22 bits, acarretou a ampliação do intervalo da mesma classe, seus IDs passaram a ser de <code>000</code> até <code>00033333333</code>. '''O aumento de bits não afeta os identificadores''', apenas amplia a possibilidade de incluir mais produtos dentro da mesma classe.
{| class="wikitable sortable"
! Item da árvore || Prefixo|| Bits/ID || Min ID || Max ID
|-
| Futas || <code>0</code>|| - || -|| -
|-
| &nbsp; Maçãs || <code>00</code>|| - || - || -
|-
| &nbsp;  &nbsp; Maçãs vermelhas || <code>000</code>|| 5 || <code>000.0</code> || <code>000.33Q</code>
|-
| &nbsp;  &nbsp; Maçãs verdes || <code>001</code>|| 5 || <code>001.0</code> || <code>001.33Q</code>
|-
| &nbsp; Demais frutas || <code>01</code>,<code>02</code>,<code>03</code>|| 6 || <code>01.0</code> || <code>03.333Q</code>
|-
| Roupas || <code>3</code>|| - ||  -|| -
|-
| &nbsp; Roupas de mulher || <code>30</code>|| - ||  -|| -
|-
| &nbsp;  &nbsp; Vestidos || <code>300</code>|| 5 || <code>300.0</code> || <code>300.33Q</code>
|-
| &nbsp; &nbsp; Camisas femininas || <code>302</code>|| 5 || <code>302.0</code> || <code>302.33Q</code>
|-
| &nbsp; Camisetas unisex || <code>31</code>|| 6 || <code>31.0</code> || <code>31.333Q</code>
|-
| &nbsp; Jean unisex || <code>32</code>|| 6 || <code>32.0</code> || <code>32.333Q</code>
|}
 
Abaixo ilustrando ao invés das classes algumas instâncias de produtos, cada qual com seu ID, e a posição do ID na "régua base 4h". Para destacar classe e contador foi adotada a notação com ponto separador. Por exemplo a maçã verde com ID=<code>00133</code> pode ser destacada como <code>001.33</code>. Ela vem depois da maçã <code>001.0</code> e bem antes por exemplo do jeans <code>32.101</code>. Todos ficam dentro do intervalo das respectivas classes.
 
Reparar que os códigos de instância não precisam ocupar todos os 4 dígitos, isso facilita a leitura humana dos códigos. Como eles vão sendo consumidos na ordem hierárquica, se um dia forem necessárias mais classes, podem ser alocados os ainda não utilizados.
 
[[Arquivo:NatCod-taxons-InstanceIntervals1.png|centro|semmoldura|582px]]
 
A mesma flexibilidade vale no acréscimo de mais bits. A ampliação do banco de dados, adotando o dobro, 22 bits, acarretou a ampliação do intervalo da mesma classe, seus IDs passaram a ser de <code>000</code> até <code>00033333333</code>. '''O aumento de bits não afeta os identificadores''', apenas amplia a possibilidade de incluir mais produtos dentro da mesma classe. Ao contrário da [[Código Natural/Comparação com números|estratégia similar adotada com números]], os '''prefixos de código são [[wikipedia:Scalability|escaláveis]]'''.
 
===Atribuição dos IDs hCount  ===
Em sistemas tradicionais, sempre que for possível o uso de IDs de até 32 bits, podemos usar a representação interna [[hCount]] e o recurso da base híbrida na representação textual.
No exemplo podemos usar a base32 para o contador e manter a base 4 para a classificação.


==Identificadores sem contador==
==Identificadores sem contador==
Linha 132: Linha 188:
[[File:Biological classification L Pengo vflip.svg|thumb|160px|upright|Classificação na Biologia. De reino até espécie são estáveis.]]
[[File:Biological classification L Pengo vflip.svg|thumb|160px|upright|Classificação na Biologia. De reino até espécie são estáveis.]]


O "[[wikipedia:Species problem|problema das espécies]]" na [[wikipedia:Taxonomy (biology)|taxonomia biológica]] descreve os diversos dilemas da classificação, assim como sua solução: dentro de uma perspectiva de médio prazo (no caso da Biologia da ordem de uma ou mais décadas) a macro-taxonomia, ou seja, os "ramos raiz" da árvore de classificação, podem ser supostos estáveis. Exemplo: as maçãs são variedades da espécie [[wikipedia:Malus domestica|''Malus domestica'']], portanto dentro da árvore biológica, partindo de reino, corresponde a Plantae/Tracheophytes/Angiosperms/Eudicots/Rosids/Rosales/Rosaceae/Malus/''M. domestica''.
O "[[wikipedia:Species problem|problema das espécies]]" na [[wikipedia:Taxonomy (biology)|taxonomia biológica]] descreve os diversos dilemas da classificação, assim como sua solução: dentro de uma perspectiva de médio prazo (no caso da Biologia da ordem de uma ou mais décadas) a macro-taxonomia, ou seja, os "ramos raiz" da árvore de classificação, podem ser supostos '''estáveis'''. Exemplo: as maçãs são variedades da espécie [[wikipedia:Malus domestica|''Malus domestica'']], portanto dentro da árvore biológica, partindo de reino, corresponde a Plantae/Tracheophytes/Angiosperms/Eudicots/Rosids/Rosales/Rosaceae/Malus/''M. domestica''.


A classificação dos dados de uma empresa não é muito diferente, exibe estabilidade dentro de certas condições. A disciplina que hoje garante a estabilidade dos chamados "domínios de dados" dentro de uma empresa é a [[wikipedia:Data mesh|governança orientada a '''Data Mesh''']]. Aqui também adotaremos as diretivas de Data Mesh.
A classificação dos dados de uma empresa não é muito diferente, exibe estabilidade dentro de certas condições. A disciplina que hoje garante a estabilidade dos chamados "domínios de dados" dentro de uma empresa é a [[wikipedia:Data mesh|governança orientada a '''Data Mesh''']]. Aqui também adotaremos as diretivas de Data Mesh.
Linha 140: Linha 196:
Por exemplo, as plantas cujos frutos recebem o nome vulgar de "laranja" são plantas da família [[wikipedia:Rutaceae|Rutaceae]]. Entre elas a espécie [[wikipedia:Citrus reticulata|''Citrus reticulata'']], que seria sinônimo de "laranja Mandarin". Todavia, a maior parte dos cultivares de laranja são híbridos (ex. [[wikipedia:Valencia orange|laranja Valência]]), usualmente das espécies [[wikipedia:Citrus maxima|''Citrus maxima'']] e ''Citrus reticulata''. Portanto numa classificação de produtos não é possível o uso rigoroso da classificação biológica, sendo mais sensato, abaixo de família, o uso de uma classificação estável de cultivares (agronômica), como neste [http://www.respostatecnica.org.br/dossie-tecnico/downloadsDT/MjA2 dossiê técnico sobre o cultivo de laranja].
Por exemplo, as plantas cujos frutos recebem o nome vulgar de "laranja" são plantas da família [[wikipedia:Rutaceae|Rutaceae]]. Entre elas a espécie [[wikipedia:Citrus reticulata|''Citrus reticulata'']], que seria sinônimo de "laranja Mandarin". Todavia, a maior parte dos cultivares de laranja são híbridos (ex. [[wikipedia:Valencia orange|laranja Valência]]), usualmente das espécies [[wikipedia:Citrus maxima|''Citrus maxima'']] e ''Citrus reticulata''. Portanto numa classificação de produtos não é possível o uso rigoroso da classificação biológica, sendo mais sensato, abaixo de família, o uso de uma classificação estável de cultivares (agronômica), como neste [http://www.respostatecnica.org.br/dossie-tecnico/downloadsDT/MjA2 dossiê técnico sobre o cultivo de laranja].


Outra boa prática, tanto para se verificar a estabilidade como para se automatizar a geração das árvores de classificação, é o uso de [[wikiepdia:Resource Description Framework|vocabulários RDF], a maior parte deles catalogados em [https://lov.linkeddata.es/dataset/lov/ lov.linkeddata.es]. Recomenda-se o uso de no máximo 3 vocabulários para gerar as classes RDF de cada domínio: [[wikipedia:Schema.org|SchemaOrg]], [[wikipedia:Wikidata|Wikidata]] e especializado (caso exista como no caso dos cultivares agronômicos).  
Outra boa prática, tanto para se verificar a estabilidade como para se automatizar a geração das árvores de classificação, é o uso de [[wikipedia:Resource Description Framework|'''vocabulários RDF''']], a maior parte deles catalogados em [https://lov.linkeddata.es/dataset/lov/ lov.linkeddata.es]. Recomenda-se o uso de no máximo 3 vocabulários para gerar as classes RDF de cada domínio: [[wikipedia:Schema.org|SchemaOrg]], [[wikipedia:Wikidata|Wikidata]] e especializado (caso exista como no caso dos cultivares agronômicos).  


Por fim, para organizar os metadados, relacionamento entre diferentes classificações, e a semântica da própria classificação, convêm submeter os conjuntos de dados à modelagem de dados usual:
Por fim, para organizar os metadados, relacionamento entre diferentes classificações, e a semântica da própria classificação, convêm submeter os conjuntos de dados à modelagem de dados usual:
Linha 155: Linha 211:


Por fim, importante notar que algumas classes, com previsão de maior quantidade de IDs, podem usar intervalos de prefixo, como artifício para tratar o maior volume.  Tanto o prefixo de classe como seu intervalo seriam concebidos necessariamente com a base convencionada pela empresa, não podendo mais alterar essa decisão inicial de adoção de base.
Por fim, importante notar que algumas classes, com previsão de maior quantidade de IDs, podem usar intervalos de prefixo, como artifício para tratar o maior volume.  Tanto o prefixo de classe como seu intervalo seriam concebidos necessariamente com a base convencionada pela empresa, não podendo mais alterar essa decisão inicial de adoção de base.
===Questão do uso dos intermediários ===
Se eu posso classificar a maçã como planta da espécie ''M. domestica'', não faz sentido ter uma outra maçã classificada apenas como Malus,  ou simplesmente Plantae. Isso causaria risco de duplicidade das entradas, com uma parte do sistema atribuindo IDs  de alta especificidade de outra parte atribuindo IDs com classe mais genérica. A boa prática neste caso seria de nunca utilizar os níveis intermediários.
:<small>PS: nesse caso há que se questionar se precisamos de um sistema tão sofisticado de ID, se na prática nunca vamos usar níveis intermediários. Sem esquecer, por outro lado, que os taxons intermediários podem ser (sem certas aplicações) importantes nas buscas e relatórios com agregação taxonômica.</small>
Por outro lado se apenas a ''M. domestica'' é popular e com classificação confiável, e existem dezenas de outras maçãs com classificação indefinida, melhor que se adote a convenção de usar Malus para as indefinidas.
O uso das classes intermediárias deve ser reservado a esse segundo caso, onde não queremos onerar o sistema de classificação, e onde a decisão estável.
===Estabilidade estatística ===
Árvores taxonômicas se alongam quando há demanda por especialização, mas o custo de ampliar a árvore requer relevância nessa especialização. No contexto da quitanda por exemplo, a relevância pode ser determinada pelo ponto de vista do volume de vendas ou volume de estoque. Do ponto de vista semântico, todavia, a preocupação é quanto à ambiguidade: é '''mais estável''' a taxonomia que garante menor grau de '''ambiguidade''' e menor '''risco de mudança'''. Essa análise precisa preceder a análise volumétrica.
O julgamento de quem classifica um produto depende de atributos objetivos do produto.
'''Métodos estatísticos''' ([[wikipedia:cluster analysis|''cluster analysis'']] e [[wikipedia:Numerical taxonomy|taxonomia numérica]]) permitem avaliar a través de atributos de cada candidato a classe a sua relação com os demais e sua posição dentro de uma "hierarquia de semelhança", conhecida como dendrograma.
[[Arquivo:Dendrograma-cluster.png|centro|semmoldura|680px]]
[[Arquivo:Taxonomia-frutas1.png|miniaturadaimagem]]
Na ilustração acima as cores indicam o nível hierárquico eleito como mais estável. No dendrograma o eixo Y foi representa o grau decrescente de semelhança, ou crescente de agrupamento.
Ao lado a classificação de frutas da quitanda, num dendrograma horizontal. Pelo corte eleito, as seguintes frutas estarão em classes diferentes: bananas, tomates, uvas, maçãs. Por ser uma análise pobre (poucos dados descritivos das frutas), deixou as laranjas no mesmo grupo que as maçãs. A taxonomia numérica em geral será utilizada como recurso complementar, não como principal.


===Caso de uso ilustrativo===
===Caso de uso ilustrativo===
É muito comum em Big Data a adoção de uma visão unificada dos dados de uma grande empresa, que pode conter, por exemplo, mais de um sistema de CRM para a gestão dos seus clientes.
:: <small>Resumo e amostras de [[Código Natural/Identificação taxonômica/Casos de uso]].</small>
É muito comum em Big Data a adoção de uma visão unificada dos dados de uma grande empresa, que pode conter, por exemplo, mais de um [[wikipedia:Customer relationship management|sistema de CRM]] para a gestão dos seus clientes.
 
[[Arquivo:NatCod-Taxon-UML-Customer.png|380px|miniaturadaimagem|A classificação dos clientes B2B de uma empresa, conforme SchemaOrg.]]


[[Arquivo:NatCod-Taxon-UML-Customer.png|380px|miniaturadaimagem|A classificação dos clientes B2B de uma empresa, conforme SchemaOrg.]]
O primeiro passo nesse caso é estabelecer em UML qual a estratégia semântica de unificação. Pode-se optar por exemplo por não misturar B2C com B2B, e optar por classificar os clientes B2B conforme o o primeiro e segundo níveis do padrão SchemaOrg, ou seja, conforme [https://schema.org/Organization sch:Organization]. Pode-se também reservar para o sistema interno, de RH por exemplo, a classe ''InternalOrganization'', para mapear subsidiárias e departamentos.
O primeiro passo nesse caso é estabelecer em UML qual a estratégia semântica de unificação. Pode-se optar por exemplo por não misturar B2C com B2B, e optar por classificar os clientes B2B conforme o o primeiro e segundo níveis do padrão SchemaOrg, ou seja, conforme [https://schema.org/Organization sch:Organization]. Optou-se também por adotar, como medida de apoio à transição do ID convencional (inteiro de 32 bits) para o [[Código_natural/Representação_interna#Cache-length_strategy|hInt de 64 bits]], a classe Other. Nela os clientes com cadastro indefinido ou onde caberiam outras classificações, ficam de "quarentena".


*[https://schema.org/Airline Airline]
Optou-se também por adotar, como medida de apoio à transição do ID convencional (inteiro de 32 bits) para o [[Código_natural/Representação_interna#Cache-length_strategy|hInt de 64 bits]], a classe Other. Nela os clientes com cadastro indefinido ou onde caberiam outras classificações, ficam de "quarentena". Na representação base16h  seria necessário mais de um dígito para o primeiro e segundo níveis, de modo que uma opção mais amigável (1 dígito por nível hierárquico) é a [[base32nvu]]:
*[https://schema.org/Consortium Consortium]
 
*[https://schema.org/Corporation Corporation]
*<code>0</code> - InternalOrganization (classe para a gestão interna de departamentos e empresas controladas)
*[https://schema.org/EducationalOrganization EducationalOrganization]
*<code>1</code> - (supor classe reservada)
*[https://schema.org/FundingScheme FundingScheme]
*<code>2</code> - [https://schema.org/Airline Airline]
* [https://schema.org/GovernmentOrganization GovernmentOrganization]
*<code>3</code> - [https://schema.org/Consortium Consortium]
*[https://schema.org/LibrarySystem LibrarySystem]
*<code>4</code> - [https://schema.org/Corporation Corporation]
*[https://schema.org/LocalBusiness LocalBusiness]
 
**[https://schema.org/AnimalShelter AnimalShelter]
*<code>5</code> - [https://schema.org/EducationalOrganization EducationalOrganization]
**[https://schema.org/ArchiveOrganization ArchiveOrganization]
**<code>50</code> - EducationalOrganization partner (subsidiary with participation but not control)
**[https://schema.org/AutomotiveBusiness AutomotiveBusiness]
**<code>51</code> - [https://schema.org/CollegeOrUniversity CollegeOrUniversity]
**[https://schema.org/ChildCare ChildCare]
**<code>52</code> - [https://schema.org/ElementarySchool ElementarySchool]
**[https://schema.org/DryCleaningOrLaundry DryCleaningOrLaundry]
**<code>53</code> - [https://schema.org/HighSchool HighSchool]
**[https://schema.org/EmergencyService EmergencyService]
**<code>54</code> - [https://schema.org/MiddleSchool MiddleSchool]
**[https://schema.org/EmploymentAgency EmploymentAgency]
**<code>55</code> - [https://schema.org/Preschool Preschool]
**[https://schema.org/EntertainmentBusiness EntertainmentBusiness]
**<code>56</code> - [https://schema.org/School School]
**[https://schema.org/FinancialService FinancialService]
 
**[https://schema.org/FoodEstablishment FoodEstablishment]
*<code>6</code> - [https://schema.org/FundingScheme FundingScheme]
**[https://schema.org/GovernmentOffice GovernmentOffice]
 
** [https://schema.org/HealthAndBeautyBusiness HealthAndBeautyBusiness]
*<code>7</code> - [https://schema.org/GovernmentOrganization GovernmentOrganization] (and optional recurrent specializations)
**[https://schema.org/HomeAndConstructionBusiness HomeAndConstructionBusiness]
**<code>72</code> - Gov. Airline.
**[https://schema.org/InternetCafe InternetCafe]
**<code>75</code> - Gov. EducationalOrganization
**[https://schema.org/LegalService LegalService]
***<code>751</code> - [https://schema.org/CollegeOrUniversity CollegeOrUniversity]
**[https://schema.org/Library Library]
***<code>752</code> - [https://schema.org/ElementarySchool ElementarySchool]
**[https://schema.org/LodgingBusiness LodgingBusiness]
***<code>753</code> - [https://schema.org/HighSchool HighSchool]
**[https://schema.org/MedicalBusiness MedicalBusiness]
***<code>754</code> - [https://schema.org/MiddleSchool MiddleSchool]
**[https://schema.org/ProfessionalService ProfessionalService]
***<code>755</code> - [https://schema.org/Preschool Preschool]
**[https://schema.org/RadioStation RadioStation]
 
**[https://schema.org/RealEstateAgent RealEstateAgent]
** ...
**[https://schema.org/RecyclingCenter RecyclingCenter]
**[https://schema.org/SelfStorage SelfStorage]
**[https://schema.org/ShoppingCenter ShoppingCenter]
**[https://schema.org/SportsActivityLocation SportsActivityLocation]
**[https://schema.org/Store Store]
**[https://schema.org/TelevisionStation TelevisionStation]
**[https://schema.org/TouristInformationCenter TouristInformationCenter]
**[https://schema.org/TravelAgency TravelAgency]
*[https://schema.org/MedicalOrganization MedicalOrganization]
**[https://schema.org/Dentist Dentist]
**[https://schema.org/DiagnosticLab DiagnosticLab]
**[https://schema.org/Hospital Hospital]
**[https://schema.org/MedicalClinic MedicalClinic]
**[https://schema.org/Pharmacy Pharmacy]
**[https://schema.org/Physician Physician]
**[https://schema.org/VeterinaryCare VeterinaryCare]
*[https://schema.org/NGO NGO]
*[https://schema.org/NewsMediaOrganization NewsMediaOrganization]
*[https://schema.org/OnlineBusiness OnlineBusiness]
**[https://schema.org/OnlineStore OnlineStore]
*[https://schema.org/PerformingGroup PerformingGroup]
**[https://schema.org/DanceGroup DanceGroup]
**[https://schema.org/MusicGroup MusicGroup]
**[https://schema.org/TheaterGroup TheaterGroup]
* [https://schema.org/PoliticalParty PoliticalParty]
*[https://schema.org/Project Project]
**[https://schema.org/FundingAgency FundingAgency]
**[https://schema.org/ResearchProject ResearchProject]
*[https://schema.org/ResearchOrganization ResearchOrganization]
*[https://schema.org/SearchRescueOrganization SearchRescueOrganization]
*[https://schema.org/SportsOrganization SportsOrganization]
**[https://schema.org/SportsTeam SportsTeam]
*[https://schema.org/WorkersUnion WorkersUnion]
*[https://schema.org/WorkersUnion WorkersUnion]
*... (outras classificações, ausentes no SchemaOrg, podem ser obtidas ou criadas na Wikidata)
*Other (classe '''temporária''' para a gestão de cadastros incompletos)


Devido à ambiguidade nos domínios, a empresa precisa definir qual a subclasse canônica, quando o SchemaOrg oferecer mais de uma alternativa. Por exemplo "Dentist" pode ser subclasse de "LocalBusiness" ou de "MedicalOrganization", no exemplo foi adotada a classe "MedicalOrganization".
Devido à ambiguidade nos domínios, a empresa precisa definir qual a subclasse canônica, quando o SchemaOrg oferecer mais de uma alternativa. Por exemplo "Dentist" pode ser subclasse de "LocalBusiness" ou de "MedicalOrganization", no exemplo foi adotada a classe "MedicalOrganization".
Foram consumidos até aqui 15 dos 25 bits reservados à classificação (cada dígito base32 consome 5 bits - caberiam mais 2 dígitos), totalizando 25+32=57 bits informativos no esquema [[hInt64]] de identificação das instâncias. Contador "por classe" de máximo 32 bits, pois, para usar o esquema [[hCount|hCount16_48]], com 48 bits no contador, a classificação não poderia passar de 11 bits &mdash; acima poderíamos eliminar o terceiro nível para ficar com 10 bits.
Para a expressão final do ID de cada instância pode ser utilizado o código híbrido base32-decimal (ex. <code>B5-123</code> seria a ''Pharmacy 123''), ou base32 com ponto para destacar dígitos do contador (<code>B5.3R</code>).


[[Categoria:Código natural]]
[[Categoria:Código natural]]
[[Categoria:Taxonomia]]
[[Categoria:Taxonomia]]
2 534

edições