mdicgovbr / portal-nbs Goto Github PK
View Code? Open in Web Editor NEWThis project forked from innoq/iqvoc
Plataforma de busca e visualização da Nomenclatura Brasileira de Serviços
Home Page: http://nbs.economia.gov.br/
License: Other
This project forked from innoq/iqvoc
Plataforma de busca e visualização da Nomenclatura Brasileira de Serviços
Home Page: http://nbs.economia.gov.br/
License: Other
A lista resultante da busca nas Notas Explicativas apresenta os itens com uma descrição redundante. O objetivo dessa tarefa é remover parte do texto (como destacado na imagem abaixo).
A tela inicial possibilita navegar pela árvore da NBS, além de interativamente apresentar detalhes do item quando clicado.
Esta funcionalidade cria a possibilidade de compartilhamento de link para tela inicial e que automaticamente seleciona um item da árvore, a exemplo deste: http://vocab.e.gov.br/2011/03/vcge#agua
Subtarefas:
Priorizar a simpificação no desenvolvimento, utilizando componentes prontos para esse propósito
O objetivo é que tudo seja resolvido no build da imagem docker para que o Docker-Compose possa simplesmente compile as customizações feitas para a NBS durante o "up".
Isso também simplificará o ambiente de desenvolvimento.
comando rodado manualmente: rake assets:precompile
O iQvoc cria uma URI exclusiva para cada Termo NBS. A tarefa compreende a customização do iQvoc para gerar uma URI diferente do padrão.
A URI do conceito está disponível na view do Conceito numa caixinha à direita, como pode ser visto no print abaixo:
Esta funcionalidade segue as premissas da Web Semântica que prima pela perenidade dos recursos web e o uso de identificadores unívocos.
Para isso, e considerando as peculiaridades da NBS, da forma como ela foi criada e evoluída, precisamos definir um template da URI que considere a versão da NBS para que asssim tenhamos identificadores exclusivos para cada termo de cada versão da NBS. Dessa maneira os identificadores se manterão exclusivos mesmo que as próximas versões da NBS mantiverem o mesmo código e a mesma descrição daquele termo.
Uma proposta é a que já está sendo utilizada no script gerador do SKOS:
http://vocab.mdic.gov.br/NBS/v2.0/servicos-de-coleta-de-residuos-reciclaveis-nao-perigosos
Na view de cada conceito (serviço).
Ex.: http://cgse.des.mdic.gov.br/pt/concepts/servicos-de-hospedagem-e-de-disponibilizacao-de-infraestrutura-em-tecnologia-da-informacao-ti.html
Algumas Notas Explicativas possui referências (#16) à Códigos NBS inexistentes. Ou seja, são erros humanos na redação das NEBS. Considerando que este erro pode ter acontecido com diversas NEBS, precisamos listar as NEBS, e os respectivos códigos incorretos, de forma automática.
Para isso sugiro reutilizar parte do script do gerador de Links, uma vez que aquele já realiza parte das etapas necessárias.
Praticamente toda Nota Explicativa faz referências à outros serviços como forma de desambiguar cada conceito.
A ideia desta tarefa é criar links para as páginas dos Serviços referenciados nas Notas de Escopo. Dessa maneira o usuário pode navegar facilmente entre os serviços relacionados.
A imagem abaixo, por exemplo, faz referêcia à outros 3 tipos de serviços:
Esta tarefa se propõe a simplificar a navegação nas buscas pelas Nomenclaturas e nas Notas Explicativas.
Após várias reflexões definimos que teremos 2 telas de busca, e para isso deverá ser definida nova rota. Uma para as NBSs e outra para as NEBSs.
A primeira será utilizada para apresentar o resultado das buscas na página inicial, que é feita apenas nas prefLabels (NBSs). A segunda será utilizada para buscar e apresentar a busca nas NEBs. Dessa forma, seguem as tarefas:
Este dicionário será útil para produzir o link a ser inserido no HTML da Nota Explicativa
Essas duas buscas retornam resultados diferentes:
Remover Escheme, Coleções, Entrar e Idiomas.
Remover também o submenu Ajuda e no lugar incluir um item Sobre com o conteúdo do Ajuda ("/pt/help.html").
Texto:
REGRAS GERAIS PARA INTERPRETAÇÃO DA NOMENCLATURA BRASILEIRA DE SERVIÇOS, INTANGÍVEIS E OUTRAS OPERAÇÕES QUE PRODUZAM VARIAÇÕES NO PATRIMÔNIO (RGS)
A classificação dos serviços na Nomenclatura Brasileira de Serviços, Intangíveis e Outras Operações que Produzam Variações no Patrimônio (NBS) rege-se pelas seguintes Regras:
Regra 1. Os títulos das Seções e Capítulos têm apenas valor indicativo. Para os efeitos legais, a classificação é determinada pelos textos das posições e das Notas de Seção e de Capítulo e, desde que não sejam contrárias aos textos das referidas posições e Notas, pelas Regras seguintes.
Regra 2. Quando pareça que o serviço, intangível ou outra operação que produza variações no patrimônio possa ser classificado em duas ou mais posições, a classificação deve efetuar-se da seguinte forma:
a) A posição mais específica prevalece sobre a mais genérica. Todavia, quando duas ou mais posições se referirem, cada uma delas, a apenas um dos serviços, intangíveis e outras operações que produzam variações no patrimônio que constituem o objeto a ser classificado, tais posições devem ser consideradas como igualmente específicas, ainda que uma dessas posições apresente uma descrição mais precisa ou completa desse objeto.
b) Quando a Regra 2a) não permitir efetuar a classificação, o serviço, intangível ou outra operação que produza variações no patrimônio classificar-se-á na posição situada em último lugar na ordem numérica, dentre as suscetíveis de serem consideradas válidas.
Regra 3. A classificação do serviço, intangível ou outra operação que produza variações no patrimônio nas subposições de uma mesma posição é determinada, para efeitos legais, pelos textos dessas subposições e das Notas de Subposição respectivas, assim como, mutatis mutandis, pelas Regras precedentes, entendendo-se que apenas são comparáveis subposições do mesmo nível. Para os fins da presente Regra, as Notas de Seção e de Capítulo são também aplicáveis, salvo disposições em contrário.
Regra 4. As regras anteriores serão aplicáveis, mutatis mutandis, para determinar dentro de cada subposição, o item aplicável e, dentro deste último, o subitem correspondente, entendendo-se que apenas são comparáveis desdobramentos (itens e subitens) do mesmo nível.
Alterar o conteúdo da página "/help" para servir o texto da página sobre.
Conteúdo da página Sobre:
Sobre esta ferramenta de busca
Este Portal NBS tem por finalidade facilitar o acesso e navegabilidade dos usuários à Nomenclatura Brasileira de Serviços, Intangíveis e Outras Operações que Produzam Variações no Patrimônio (NBS) e suas Notas Explicativas (NEBS). Por meio de uma ferramenta de busca, o usuário pode digitar termos (palavras, expressões ou dígitos) e ter acesso a uma lista completa de códigos NBS, com as respectivas descrições, e/ou trechos das NEBS, em que o termo buscado se apresenta na Nomenclatura e nas Notas Explicativas. Os resultados são apresentados em ordem hierárquica (conforme nível dos códigos NBS – Seção, Capítulos, Posições, Subposições, Itens e Subitens).
Sobre a classificação dos serviços
A classificação dos serviços na NBS rege-se pelas Regras Gerais para Interpretação da Nomenclatura Brasileiras de Serviços, Intangíveis e Outras Operações que Produzam Variações no Patrimônio (RGS), disponíveis nesta página. Destacamos que as NEBS constituem-se em elemento subsidiário para a interpretação da NBS, e não podem ser utilizadas como instrumento orientador de classificação de serviços.
Dúvidas sobre classificação devem ser dirimidas por meio de “Solução de Consulta” junto à Secretaria da Receita Federal do Brasil (RFB). Trata-se de processo administrativo de consulta à RFB, nos termos do art. 48 da Lei nº 9.430, de 27 de dezembro de 1996, e do Decreto nº 7.708, de 02 de abril de 2012, que instituiu a NBS. A consulta é o instrumento que o contribuinte possui para esclarecer dúvidas quanto a determinado dispositivo da legislação tributária relacionado com sua atividade.
As consultas podem ser feitas por meio do plantão fiscal de sua região. Existe ainda a possibilidade de formular consulta por escrito.
Mais informações sobre a consulta no âmbito da Secretaria da Receita Federal do Brasil em: http://idg.receita.fazenda.gov.br/acesso-rapido/legislacao/consulta-sobre-interpretacaodalegislacao-tributaria.
Para maiores informações sobre a NBS e as NEBS, incluindo normas legais pertinentes, acesse http://www.mdic.gov.br/comercio-servicos/a-secretaria-de-comercio-e-servicos-scs-13
Para reduzir o risco dos usuários incorrerem em interpretações preciptadas sobre cada tipo de serviço na NBS, é necessário destacar o conteúdo da página Regras Gerais #50.
Para isso esta tarefa se propõe a incluir um tooltip ao lado do texto "Notas Explicativas" que deve aparecer ao clicar no ícone Ⓘ. O ícone pode ser criado com o FontAwesome.
Para esta implementação recomendo pesquisar por uma biblioteca JavaScript pronta. Um detalhe importante é que o Tooltip deve suportar incluir texto com Link. Fiz uma rápida pesquisa e encontrei um tooltip que tem um comportamento de aparecer no hover, o que pode ser um problema caso o usuário pretenda clicar no conteúdo.
Texto:
A classificação dos serviços na NBS rege-se pelas Regras Gerais para Interpretação da Nomenclatura Brasileiras de Serviços, Intangíveis e Outras Operações que Produzam Variações no Patrimônio (RGS), disponíveis nesta página.
Incluir na cor preta mesmo. Documentação em http://barra.brasil.gov.br/
Esta é a principal view. É a que apresenta todos os metadados de um Conceito (um tipo de Serviço da NBS).
Apesar do padrão SKOS permitir uma grande quantidade de metadados, nós estamos utilizando apenas 3: Título, o código da NBS e a Nota Explicativa. Dessa maneira as customizações deverão simplificar a tela removendo o HTML execessivo.
Os campos que serão mantidos são o prefLabel, o altLabel e o scopeNote.
Além destes, também manteremos visíveis os elementos HTML que apresentam a hierarquia superior (Termos Gerais) e a inferior (Termos específicos) da árvore de conceitos que estão relacionados com o conceito em evidência.
Acredito que seja necessária uma atividade de planejamento específico para definirmos de forma exaustiva quais elementos devem permanecer.
Atualmente ao clicar no link de um nó da árvore, a aplicação apresenta os detalhes daquele nó em uma caixa do lado direito.
Adicionalmente este evento, do clique, deverá expandir a subárvore daquele nó. Esta ação já acontece ao clicar no ícone [+]. Ou seja, um caminho de implementação pode ser reutilizando est evento já existente no outro componente.
A NBS é dividida incialmente em 5 Seções. Cada seção por sua vez se subdivide em Capítulos, e assim por diante.
A tarefa se resume em criar artificialmente 5 novos nós na árvore SKOS. Esta alteração deve ser feita no script gerador do SKOS, refletindo automaticamente no iQvoc. Provavelmente será necessário customizar a visualização deste nó artificial, já que ele nao possui Código NBS nem Nota Explicativa. Por outro lado as Seções possuem Considerações Gerais.
É necessário diferenciar o conteúdo da Nota Explicativa sempre que o nó apresentado for um Capítulo. O fato é que estas não são Notas Explicativas de fato, e por isso precisamos adaptar a tela. Nesses casos o tratamento é de trocar o texto "Notas Explicativas" por "Notas" e destacar o texto "Considerações Gerais" que aparece dentro do deste texto.
Abaixo segue print da tela principal. Além desta é necessário também adaptar a view Concept (detalhe de um Serviço).
Dessa forma as tarefas são:
Gerar os links concatenando o slug derivado dos códigos NBS extraídos do conteúdo das Notas Explicativas, e incluí-los no HTML na tela de detalhamento do Serviço(Concept).
A página de busca possui botões de compartilhamento. O link gerado está incompleto no compartilhamento por email, pelo WhatsApp e pelo Twitter. Não pude testar o compartilhamento com o LinkedIn pois não tenho conta lá, mas acredito que também esteja com problemas. Apenas o compartilhamento por email que funciona corretamente. Acredito que o problema está sendo causado pelo caracter especial "✓". Percebam que tudo após ele é perdido.
Uma solução pode ser a conversão dos caracteres para estar de acordo com a RFC 3986. Mais sobre isso: https://www.url-encode-decode.com/. A solução pode ser esta: https://stackoverflow.com/questions/332872/encode-url-in-javascript#332888
A tela de busca ao apresentar o resultado não apresenta qualquer informação que esclareça qual das 2 opções de busca foi utilizada. Por exemplo, ao abrir este link o usuário não tem certeza qual das 2 opções foi selecionada.
Uma solução possível é utilizar algum estilo "tornando" o botão selecionado.
Nas situações onde a árvore já foi expandida em vários níveis, o que acaba por alongar muito verticalmente a tela, caso o usuário clique num item do final da árvore, o efeito tem comportamento estranho. Apesar de a página corretamente detalhar aquele item, tudo acontece numa região não visível, deixando o usuário sem a sensação de ação e resultado.
Esta tarefa propõe incluir um scrowling slow motion para o início da caixa, como imagem abaixo.
A nova tela tem o objetivo de juntar a árvore hierárquica (Tree View) com a ficha que detalha cada "Concept". O objetivo é simplificar a navegação, aumentando a interatividade.
Esquema sugerido: vocab.mdic.gov.br/NBS/v2.0/xxxxxxxxxxxxxxx
Atualmente rodamos manualmente o seguinte comando:
$ rake iqvoc:import:url URL=data/hobbies.nt NAMESPACE='http://hobbies.com/
Retirado da página https://github.com/innoq/iqvoc/wiki/Importing
Incluir botões (similares aos da tela Concept #37) para compartilhamento do link da busca. Posicioná-los no canto superior direito da caixa de resultados, onde se lê "Buscar resultados (18)".
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.