2 544
edições
(8 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Estruturas taxonômicas consensuais, e que sejam estáveis dentro de certa escala de tempo, não são tão raras. Existe alias, com as técnicas modernas de estatística, IA e taxonomia numérica, aliadas a um maior potencial de se medir as características de um objeto (desde informações IoT até DNA anulando risco de ambiguidade na atribuição de uma classe), uma tendência ao crescimento das taxonomias estáveis. | Estruturas taxonômicas consensuais, e que sejam estáveis dentro de certa escala de tempo, não são tão raras. Existe alias, com as técnicas modernas de estatística, IA e taxonomia numérica, aliadas a um maior potencial de se medir as características de um objeto (desde informações IoT até DNA anulando risco de ambiguidade na atribuição de uma classe), uma tendência ao crescimento das taxonomias estáveis. | ||
== Códigos hierárquicos famosos == | |||
A seguir a adaptação de códigos, em sua maior parte decimais, a uma representação correspondente em código natural, binária e baseH. | |||
=== ISBN === | |||
[[file:ISBN_Details_PT.png|thumb|260px]] | |||
O código de barra dos livros, conhecido como International Standard Book Number ('''[[wikipedia:ISBN|ISBN]]''') tem uma estrutura de dígitos decimais que pode ser mapeada para para representação binária hierárquica. Vamos supor sua versão vigente, o ISBN13 de 13 dígitos. A separação correta de cada parte depende da anterior na hierarquia, ou seja, as partes não possuem um número fixo de dígito. A ilustração ao lado dá uma ideia. | |||
=== CDD === | |||
A Classificação Decimal de Dewey (CDD) ou [[wikipedia:Dewey_Decimal_Classification#Design|Dewey Decimal Classification]] (DDC) é o [https://bibliotecabauru.wordpress.com/2013/06/14/o-que-e-esse-codigo-colado-nos-livros/ código colado nos livros das bibliotecas]. Segue uma estrutura hierárquica de 3 dígitos seguida de ponto e mais dígitos opcionais. Exemplo: | |||
<pre> | |||
500 Natural sciences and mathematics | |||
510 Mathematics | |||
516 Geometry | |||
516.3 Analytic geometries | |||
516.37 Metric differential geometries | |||
516.375 Finsler geometry | |||
</pre> | |||
Variações através da introdução de uma [[wikipedia:Faceted classification|classificação facetada]] (com mais de uma "faceta" ou dimensão) são permitidas no CDD, mas não discutiremos aqui no exemplo de caso. | |||
Adaptação para código natural, supondo dígitos base 16, independentes do ponto na representação humana: | |||
<pre> | |||
5 Natural sciences and mathematics | |||
51 Mathematics | |||
516 Geometry | |||
516.3 Analytic geometries | |||
516.37 Metric differential geometries | |||
516.375 Finsler geometry | |||
</pre> | |||
A única mudança notada é a remoção dos zeros à direita, visto que o tamanho do código é proporcional à resolução. | |||
Comparando com o decimal representado como ''float'': | |||
{| class="wikitable" | |||
! Query | |||
! Decimal float | |||
! Natural Code | |||
|- | |||
| [por intervalo] Todos os livros de Geometria | |||
| id BETWEEN 510.0 AND ddc_max('510') <br/>-- 519.999999 | |||
| id BETWEEN natcod_ddc('510') <br/>AND natcod_ddc_max('510') | |||
|- | |||
| [por máscara do prefixo] Todos os livros de Matemática | |||
| id::text like '510%' | |||
| id & natcod_ddc_masc('51') | |||
|} | |||
Problemas com o decimal: ... | |||
=== Jurisdições ISO === | |||
[[file:Europe_ISO_3166-1.svg|thumb]] | |||
.. O mosaico de países e suas subdivisões de primeiro nível foram padronizados através da [[wikipedia:ISO 3166-2|ISO 3166-2]]. O mosaico de países da ISO 3166-2 é dado pela [[wikipedia:ISO 3166-1 alpha-2|ISO 3166-1 alpha-2]]. | |||
Cada país pode ser associado a um código de tamanho fixo, de 8 a 12 bits conforme o número de países que se considerar. Portanto podendo ser base16 de 2 a 3 dígitos, ou um mapeamento binário da própria sigla de 2 letras. Em seguida, nos dígitos seguintes, com tamanho variável conforme o número de subdivisões do país, o código de subdivisão. <br/>PS: na AddressForAll foi convencionado um terceiro subnível para se chegar ao município (ou mosaico similar relativo à jurisdição que controla os nome de rua e numeração predial). | |||
=== Jurisdições IBGE do Brasil === | |||
... Assim como EUA e outros países, além da representação por siglas, estilo ISO, existe a representação por código numérico hierárquico. | |||
... Ver amostras e algoritmo de conversão do IBGE .. discutir limitações do IBGE e vantagens do código natural equivalente (e compatível através de função de conversão simples). | |||
=== Jurisdições DANE da Colômbia === | |||
[[file:Mapa_de_Colombia_%28regiones_naturales%29.svg|thumb|Primeiro nivel hierárquico, para sumarizações.]] | |||
... | |||
=== Geohash === | |||
Ver [[Geohash]] ... Resumo: é um esquema de classificação facetada (bidimensional) baseada nas taxonimas de Latitude e Longitude. Classificam-se zonas retangulares do globo, com a resolução desejada, desde a mais grosseira (pedaço da superfície terrestre de centenas de km2) até a mais refinada (ex. retângulo de 1 metro quadrado). | |||
Se fosse apenas uma dimensão, por exemplo Latitude, teríamos o globo subdividido em 32 partes iguais no primeiro dígito, depois cada uma delas subdivididas em 32 novamente para o segundo dígito, e assim por diante. A estratégia de inclusão da longitude foi intercalando a mesma, mas pela representação normalizada binária de cada grandeza, intercalando bit a bit (depois representando em base32). | |||
== Biologia == | == Biologia == | ||
Linha 58: | Linha 131: | ||
[[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] | 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 <code>sch:Organization</code>]. | ||
Por ser um classificação dinâmica, podem surgir problemas ao amarrar classificação ao ID. As organizações são dinâmicas, uma escola do governo pode ser privatizada, o CNPJ de um colégio técnico pode ser expandido para ensino universitário, etc. Podemos supor ambos os casos: um atributo numérico de classificação com poucos bits, ou um ID com prefixo dado pela classificação. Se a instabilidade (na escala de anos) é um problema, pode-se restringir ao mais simples e estável: {PF, PJ/GOV, PJ/COM, PJ/ONG} com ou sem PJ/undef. O prefixo de ID nesse caso seria um controle relevante das heranças, que facilita nos JOINs de banco de dados. | |||
Quanto às classes <code>sch:Organization</code> pode-se expandir, reservando para o sistema interno, de RH por exemplo, a classe ''InternalOrganization'', para mapear subsidiárias e departamentos. | |||
Imaginando o caso de ID, onde 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]]: | |||
*<code>0</code> - InternalOrganization (classe para a gestão interna de departamentos e empresas controladas) | *<code>0</code> - InternalOrganization (classe para a gestão interna de departamentos e empresas controladas) | ||
Linha 70: | Linha 147: | ||
*<code>5</code> - [https://schema.org/EducationalOrganization EducationalOrganization] | *<code>5</code> - [https://schema.org/EducationalOrganization EducationalOrganization] | ||
**<code>50</code> - EducationalOrganization partner (subsidiary with participation but not control) | **<code>50</code> - EducationalOrganization partner (subsidiary with participation but not control) | ||
**<code>51</code> - [https://schema.org/CollegeOrUniversity CollegeOrUniversity] | **<code>51</code> - [https://schema.org/CollegeOrUniversity CollegeOrUniversity] (ensino profissionalizante: técnico ou universitário) | ||
**<code>52</code> - [https://schema.org/ElementarySchool ElementarySchool] | **<code>52</code> - [https://schema.org/ElementarySchool ElementarySchool] (estágio escolar) | ||
**<code>53</code> - [https://schema.org/HighSchool HighSchool] | **<code>53</code> - [https://schema.org/HighSchool HighSchool] (estágio escolar) | ||
**<code>54</code> - [https://schema.org/MiddleSchool MiddleSchool] | **<code>54</code> - [https://schema.org/MiddleSchool MiddleSchool] (estágio escolar) | ||
**<code>55</code> - [https://schema.org/Preschool Preschool] | **<code>55</code> - [https://schema.org/Preschool Preschool] (estágio escolar) | ||
**<code>56</code> - [https://schema.org/School School] | **<code>56</code> - [https://schema.org/School School] (genérico?) alinhar com [[wikipedia:Educational stage|estágios]] | ||
*<code>6</code> - [https://schema.org/FundingScheme FundingScheme] | *<code>6</code> - [https://schema.org/FundingScheme FundingScheme] | ||
Linha 81: | Linha 158: | ||
*<code>7</code> - [https://schema.org/GovernmentOrganization GovernmentOrganization] (and optional recurrent specializations) | *<code>7</code> - [https://schema.org/GovernmentOrganization GovernmentOrganization] (and optional recurrent specializations) | ||
**<code>72</code> - Gov. Airline. | **<code>72</code> - Gov. Airline. | ||
**<code>75</code> - Gov. EducationalOrganization | **<code>75</code> - Gov. EducationalOrganization, subtypes: | ||
***<code>751</code> - [https://schema.org/CollegeOrUniversity CollegeOrUniversity] | ***<code>751</code> - [https://schema.org/CollegeOrUniversity CollegeOrUniversity] | ||
***<code>752</code> - [https://schema.org/ElementarySchool ElementarySchool] | ***<code>752</code> - [https://schema.org/ElementarySchool ElementarySchool] | ||
Linha 184: | Linha 261: | ||
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>). | 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>). | ||
== Ver também == | |||
* [[Código Natural/Comparação com números]] | |||
[[Categoria:Código natural]] | [[Categoria:Código natural]] | ||
[[Categoria:Taxonomia]] | [[Categoria:Taxonomia]] |
edições