HXL-CPLP / forum

Fórum do Grupo de Usuários do Padrão HXL da Comunidade dos Países de Língua Portuguesa, "HXL-CPLP"
https://github.com/HXL-CPLP/forum/issues
The Unlicense
2 stars 0 forks source link

(meta-)Vocabulário controlado em HXL: `+v_zz_hxl` (ex.: `#meta+id+v_zz_hxl`) quando a coluna usada for uma HXL hashtag + atributos #33

Open fititnt opened 3 years ago

fititnt commented 3 years ago

Contexto do problema

No tópico Padrões/convenções mínimos do HXL-CPLP de como uma planilha HXL deveria ter #26 um dos pontos chaves era que, em especial por nós não termos um local como HDX para publicar o resultado final com uma URL que não mudaria, nós definitivamente precisaríamos ter alguma outra estratégia para armazenar a informação. E no fim das contas, o próprio Google Drive pode ser um caminho em especial quando a informação pode ficar completamente publica.

A planilha "README" / Leia-me / "Meta" (atualmente: #meta)

Conforme o #26, um dos mínimos ideias seria que a planilha que explicaria as demais planilhas no mínimo deveria ser um documento HXL válido. Isso na verdade não é difícil fazer (e até poderíamos ocultar alguns campos.

Como o numero campos da planilha Meta (atualmente #meta) poderia ser completamente variável, no fim a ideia de por #meta+id | #description+label poderia servir para por qualquer informação arbitrária. Aqui um exemplo curto

Tabela sem +v_zz_hxl`

Informação Conteúdo da informação
#meta +id #description+label
TITLE Titulo da planilha aqui
DESCRIPTION Descrição lonca da planilha aqui
LICENSE Open Database License (ODbL)
DISCLAIMER HXL-CPLP, as an volunteer user group of the HXL (the technology), is NOT affiliated with or endorsed by (...)

Essa abordagem, embora melhor do que nada, tinha alguns problemas

Potencial nova abordagem

Nessa nova abordagem, (embora tecnicamente o cabeçalho poderia continuar sendo #meta +id), com uso de #meta +id +v_zz_hxl deixamos mais explicito que a coluna inteira teria um significado de uma HXL hashtag + atributo que estaria definida por https://hxlstandard.org/standard/1-1final/dictionary/. O exemplo anterior poderia ser re-escrito como isto

Tabela com +v_zz_hxl`

Informação Conteúdo da informação
#meta +id +v_zz_hxl #description+label
#meta +name +i_pt Titulo da planilha aqui
#meta +description +i_pt Descrição lonca da planilha aqui
#meta +license +name Open Database License (ODbL)
#meta +disclaimer +i_en HXL-CPLP, as an volunteer user group of the HXL (the technology), is NOT affiliated with or endorsed by (...)

Por que de usar +v_zz_hxl (e não +v_hxl ou +hxl)

Em primeiro lugar, não use +hxl (como em #meta +id +hxl) porque mesmo se você não se importasse de criar atributos customizados, caso não tenha lido o padrão, vocabulários em que quer relacional precisam iniciar com +v_.

O uso de +v_hxl (como em #meta +id +v_hxl) estaria valido pela especificação. Mas nem mesmo para uso interno vamos manter nas nossas planilhas do HXL-CPLP: primeiro porque, do ponto de vista de grupo de usuários de uma tecnologia, isso poderia gerar confusão. Segundo porque conteúdo antigo poderia ficar na internet e confundir pessoas. Terceiro porque, se vamos começar usar isso, a gente necessariamente teria que documentar em algum lugar, logo algum termo vocabulário teria que ser usado.

O prefixo +v_zz_

A escolha de "ZZ" como prefixo é baseada no fato de que "ZZ" (assim como alguns outros exemplos, como "XX"), já é usado internacionalmente como um código para elementos definidos por usuário e que estão garantidos que não serão usados para definir um país. Talvez a gente possa usar esse prefixo para outros vocabulários que nem mesmo acreditamos que haveria concordância ou que seria interessante ter nome curto.

Prefixo +v_xx_

O prefixo +v_xx_ ("XX") também é listado no ISO_3166-1alpha-2. Esse seria uma alternativa (e que de certa forma faria sentido com a especificação 1.1final, que sugere (quando não é para atributos +termo, mas para#hastags) iniciar hashtags reservadas com `#x. **A escolha de+v_zz_hxlem vez de+v_xx_hxlé meramente opinativa.** Outro ponto é que faria sentido ter mais prefixos no caso de vocabulários definidos por usuários e, se fossemos seguir a lógica dessa página da wikipedia _The following alpha-2 codes can be user-assigned: AA, QM to QZ, XA to XZ, and ZZ._ até mesmo+vaa` poderia ser um prefixo pela logica do ISO_3166-1_alpha-2.

Note que a especificação não fala muito sobre como criar os próprios vocabulários, então tudo que é citado neste issue aqui é mais uma padronização interna.

fititnt commented 3 years ago

Eu tô super orgulhoso da gambiarra decisão técnica que essa escolha traz. ❤️

Se usar atributos hxl como indicação do que a informação seria já não ajuda na questão de não precisar criar um dicionário separado como TITLE, LICENSE... ele ao menos permite coisas como isto aqui:


Captura de tela de 2020-12-11 02-47-36

SIIIIM! Mesmo sem ter alguma API que traduzisse para português o que '#meta+name' significativa em uma planilha #meta, na própria planilha da para usar regex simples para apenas traduzir para Inglês o que já não está em inglês. Ou seja usar essa abordagem não apenas permitiu ter respostas em diferentes idiomas para mesma informação como permite processamento rápido na própria planilha.

=IF(REGEXMATCH(A3, "i_pt"), GOOGLETRANSLATE(B3, "pt", "en"),B3)

Captura de tela de 2020-12-11 01-16-13


Captura de tela de 2020-12-11 01-17-01


fititnt commented 3 years ago

Potencialmente pertinente: HXLStandard/libhxl-python: Function to return type given HXL tag #95.

A ideia que o David mencionou em 2017 (que no caso era mais focada em tipo de dados):

I like this. It implies that we create a new tab in the core schema for hashtag+attribute datatypes.

talvez mesmo que não usemos "tipos de dados" podemos criar uma planilha informal que explique que, por exemplo, "#meta +name +i_pt" quando usado significa numa planilha que representa metadados de toda planilha, seria "Nome da planilha".

Humm....

fititnt commented 3 years ago

=CONCATENATE(C6, " ", D6, E6, F6)

Ok. O local onde podemos documentar o que seriam as hashtags pode passar a ser informalmente a planilha v_zz_hxl. Se no futuro houver interesse da até mesmo para gerar planilhas com versões em outros idiomas em vez de dar acesso a planilha de fato.

Captura de tela de 2020-12-11 22-03-25 Captura de tela de 2020-12-11 22-01-07