BOAS PRÁTICAS PARA DADOS NA WEB
As Boas Práticas para Dados na Web (DWBP, do inglês Data on the Web Best Practices), descritas na Recomendação do W3C por Lóscio, Burle e Calegari (2017), foram desenvolvidas para incentivar e permitir a expansão continuada da Web como um meio para o intercâmbio de dados. Em termos gerais, os provedores de dados visam compartilhar dados abertamente ou com acesso controlado. Consumidores de dados buscam ser capazes de encontrar, usar e estabelecer conexões entre os dados, especialmente, se os dados forem precisos, atualizados e tiverem garantia de alta disponibilidade. Isso cria uma necessidade fundamental para um entendimento comum entre os provedores e os consumidores de dados. Sem esse acordo, os esforços dos provedores podem ser incompatíveis com os anseios dos consumidores.
Neste contexto, torna-se crucial fornecer orientações aos provedores, de maneira que possam contribuir para a melhoria da coerência na forma como os dados são gerenciados. Espera-se que essa orientação promova a reutilização de dados e fomente a confiança nos dados por parte dos desenvolvedores, qualquer que seja a tecnologia que eles utilizem, aumentando o potencial de inovação genuína. O conjunto de Boas Práticas propostas em Lóscio, Burle e Calegari (2017) foram desenvolvidas para oferecer orientação técnica para a publicação de dados na Web, contribuindo para melhorar a relação entre provedores e consumidores de dados.
As Boas Práticas propostas abrangem diferentes desafios e exigências relacionadas com a publicação e o consumo de dados, como formatos de dados, acesso a dados identificadores de dados, vocabulários e metadados. Por um lado, cada boa prática lida com pelo menos um dos requisitos identificados no documento de casos de uso de dados na Web (LEE; LÓSCIO; ARCHER, 2015), de tal forma que a relevância da boa prática é evidenciada por esses requisitos. Por outro lado, cada requisito é abordado por pelo menos uma boa prática.
Conforme descrito em Lóscio, Burle e Calegari (2017) e ilustrado no Quadro 1, cada boa prática tem um Resultado esperado, que descreve "O que deve ser possível fazer quando um provedor de dados segue a boa prática". Em geral, o resultado esperado é uma melhoria no modo que um consumidor de dados (humano ou software) pode manipular um conjunto de dados publicados na Web. Em alguns casos, o resultado esperado reflete uma melhoria no próprio conjunto de dados, o que também resultará em um ganho para o consumidor de dados.
As Boas Práticas propostas para publicação e utilização de dados na Web referem-se a conjuntos de dados, ou seja, "coleção de dados, publicados gerenciados por um único agente, e disponíveis para serem acessados ou baixados em um ou mais formatos" (MAALI; ERICKSON, 2014, tradução nossa). Por dados, “queremos dizer fatos conhecidos que podem ser gravados e que têm significado implícito" (ELMASRI; NAVATHE, 2010, tradução nossa). Conforme descrito na Figura 4, os dados são publicados em diferentes distribuições, que são uma forma física específica de um conjunto de dados. Essas distribuições facilitam o compartilhamento de dados em larga escala, o que permite que conjuntos de dados possam ser utilizados por vários grupos de consumidores de dados. Ou seja, "uma pessoa ou grupo acessa, utiliza, e potencialmente executa as fases de pós-tratamento dos dados" (STRONG; LEE; WANG, 1997, tradução nossa), sem levar em conta a finalidade, o público, interesse ou licença. Tendo em conta esta heterogeneidade e o fato de que os provedores de dados e os consumidores de dados podem não se conhecer, é necessário fornecer algumas informações sobre os conjuntos de dados e distribuições que também podem contribuir para a confiabilidade e reutilização, tais como: metadados estruturais, metadados descritivos, acesso à informação, informação sobre a qualidade de dados, informações sobre a procedência, informações sobre licença e informações sobre uso.
Por fim, uma questão importante sobre publicação e compartilhamento de dados na Web diz respeito à base arquitetônica da Web (JACOBS; WALSH, 2004). Um aspecto relevante desta é o princípio de identificação, o qual menciona que URIs devem ser utilizados para identificar recursos. Em nosso contexto, um recurso pode ser um conjunto de dados inteiro ou um item específico de determinado conjunto de dados. Todos os recursos devem ser publicados com URIs estáveis, de modo que possam ser referenciados e fazer conexões, via URIs, entre dois ou mais recursos.
Boas práticas para dados na Web com seus respectivos resultados esperados
BP1
Fornecer metadados
Os seres humanos serão capazes de compreender os metadados e agentes de software serão capaz de processá-los.
BP2
Fornecer metadados descritivos
Os seres humanos serão capazes de interpretar a natureza do conjunto de dados e suas distribuições, e agentes de software serão capazes de descobrir automaticamente conjuntos de dados e distribuições.
BP3
Fornecer metadados estruturais
Os seres humanos serão capazes de interpretar o esquema de um conjunto de dados e agentes de software serão capazes de processar automaticamente os dados das distribuições.
BP4
Fornecer informações sobre a licença de dados
Os seres humanos serão capazes de compreender a licença de dados, descrevendo eventuais restrições impostas à utilização de certos dados, agentes de software serão capazes de detectar automaticamente a licença de dados de uma distribuição.
BP5
Fornecer informações de proveniência dos dados
Os seres humanos vão saber a origem dos conjuntos de dados e agentes de software serão capazes de processar automaticamente informações de proveniência.
BP6
Fornecer informação de qualidade de dados
Os seres humanos e os agentes de software serão capazes de avaliar a qualidade e, portanto, a adequação de um conjunto de dados para a sua aplicação.
BP7
Fornecer indicador de versão
Os seres humanos e os agentes de software poderão facilmente determinar qual a versão de um conjunto de dados.
BP8
Fornecer o histórico de versões
Os seres humanos e os agentes de software serão capazes de entender como o conjunto de dados muda de versão para versão e como quaisquer duas versões específicas diferem.
BP9
Usar URIs persistentes como identificadores de conjuntos de dados
Os conjuntos de dados ou informações sobre conjuntos de dados poderão ser descobertas e citadas ao longo do tempo, independentemente da sua disponibilidade ou do formato dos dados.
BP10
Usar URIs persistentes como identificadores dentro de conjuntos de dados
Os itens de dados serão relacionados em toda a Web criando um espaço global de informação acessível a humanos e máquinas.
BP11
Atribuir URIs para as versões dos conjuntos de dados e séries
Os seres humanos e os agentes de software serão capazes de se referir a versões específicas de um conjunto de dados, séries de conjunto de dados, bem como a versão mais recente de um conjunto de dados.
BP12
Usar formatos de dados padronizados legíveis por máquina
Máquinas serão capazes de ler e processar dados publicados na Web e os seres humanos serão capazes de usar ferramentas computacionais para manipular os dados.
BP13
Usar representações de dados que sejam independentes de localidade (locale neutral)
Os seres humanos e os agentes de software serão capazes de interpretar o significado de caracteres que representam datas, horas, moedas e números com precisão.
BP14
Fornecer dados em vários formatos
Tantos usuários quanto possível serão capazes de utilizar os dados sem primeiro ter que transformá-los em seu formato preferido.
BP15
Reutilizar vocabulários, dando preferência ao padronizados
Interoperabilidade e consenso entre os provedores e consumidores de dados serão reforçados.
BP16
Escolher o nível de formalização adequado
Os casos de aplicação mais prováveis serão apoiados com não mais complexidade do que o necessário.
BP17
Fornecer ‘bulk download’
Transferências de arquivos grandes, ou seja, que exigem mais tempo do que um usuário típico consideraria razoável, serão possíveis por meio de protocolos de transferência de arquivos dedicados.
BP18
Fornecer subconjuntos para conjuntos de dados grandes
Os seres humanos e aplicações serão capazes de acessar subconjuntos de um conjunto de dados, em vez de todo o conjunto. Isso proporcionará aos consumidores o acesso aos dados com uma elevada proporção de dados que são realmente necessários em comparação aos dados desnecessários. Conjuntos de dados estáticos considerados muito grandes poderão ser recuperados em porções menores. APIs poderão ser usadas para filtrar os dados disponíveis. A granularidade de acesso aos dados poderá ser definida de acordo com as necessidades do domínio e as demandas de desempenho das aplicações.
BP19
Usar ‘negociação de conteúdo’ para servir os dados disponíveis em vários formatos
Negociação de conteúdo permitirá que diferentes recursos ou representações diferentes de um mesmo recurso possam ser servidas de acordo com a requisição feita pelo cliente.
BP20
Fornecer acesso em tempo real
Aplicações serão capazes de acessar os dados em tempo real ou quase em tempo real, onde em tempo real significa um intervalo de milissegundos até alguns segundos após a criação de dados.
BP21
Fornecer dados atualizados
Os dados na Web serão atualizados em tempo hábil para que os dados disponíveis on-line reflitam os dados mais recentes divulgados em qualquer outro canal. Quando novos dados estiverem disponíveis, logo que possível, serão publicados na Web.
BP22
Fornecer uma explicação para os dados que não estão disponíveis
Os consumidores saberão que os dados que são referenciados a partir do conjunto de dados não estão disponíveis ou se estão disponíveis sob diferentes condições.
BP23
Tornar os dados disponíveis por meio de de uma API
Os desenvolvedores terão acesso aos dados para uso em seus próprios aplicativos, com dados atualizados e sem a necessidade de esforço por parte dos consumidores. As aplicações serão capazes de obter dados específicos por meio de consultas à API.
BP24
Usar padrões Web como base para construção de APIs
Desenvolvedores que tenham alguma experiência com APIs baseadas em padrões Web, tais como o REST, já deverão ter um conhecimento inicial de como usar a API. Além disso, será mais fácil dar manutenção na API.
BP25
Fornecer documentação completa para as APIs
Os desenvolvedores serão capazes de obter informações detalhadas sobre cada chamada para a API, incluindo os parâmetros que leva e o que é esperado para retornar, isto é, todo o conjunto de informações relacionadas com a API. O conjunto de valores – como usá-lo, avisos de mudanças recentes, informações de contato, e assim por diante – devem ser descritos e facilmente navegável na Web. Também permitirá que as máquinas possam acessar a documentação da API para ajudar os desenvolvedores na criação de softwares clientes da API.
BP26
Evitar alterações que afetem o funcionamento de sua API
O código do desenvolvedor deve continuar válido após alterações na API. Os desenvolvedores devem ser notificados das melhorias feitas na API e devem ser capazes de fazer uso delas. Alterações que afetem o funcionamento da API devem ser raras. Porém, se ocorrerem,os desenvolvedores terão tempo e informações suficientes para adaptar o seu código, aumentando a confiança na API. Alterações na API deverão ser anunciadas no site da documentação da API.
BP27
Preservar identificadores
A URI de um conjunto de dados irá sempre fazer referência ao conjunto de dados ou redirecionar para informações sobre ele.
BP28
Avaliar a cobertura do conjunto de dados
Os usuários serão capazes de fazer uso de dados arquivados no futuro.
BP29
Coletar feedback dos consumidores de dados
O código do desenvolvedor deve continuar válido após alterações na API. Os desenvolvedores devem ser notificados das melhorias feitas na API e devem ser capazes de fazer uso delas. Alterações que afetem o funcionamento da API devem ser raras. Porém, se ocorrerem,os desenvolvedores terão tempo e informações suficientes para adaptar o seu código, aumentando a confiança na API. Alterações na API deverão ser anunciadas no site da documentação da API.
BP30
Compartilhar o feedback disponível
Os consumidores serão capazes de avaliar os tipos de erros que afetam o conjunto de dados, avaliar experiências de outros usuários, e ter a certeza de que o provedor trata os problemas de forma adequada. Os consumidores também serão capazes de determinar se outros usuários já fizeram comentários semelhantes, poupando-lhes a submissão de relatórios desnecessários e poupando os provedores de terem que lidar com duplicatas.
BP31
Enriquecer dados por meio da geração de novos dados
Os conjuntos de dados com valores nulos poderão ser “corrigidos” a partir do preenchimento de tais valores. Estrutura poderá ser conferida aos dados e sua utilidade poderá ser melhorada se forem adicionadas medidas ou atributos relevantes. Porém, tal adição só deverá ser feita se não alterar os resultados analíticos, o significado ou o poder estatístico dos dados.
BP32
Fornecer visualizações complementares
Complementar os conjuntos de dados com possíveis visualizações permitirá que os consumidores humanos tenham uma visão imediata sobre os dados, apresentando-os de formas que podem ser facilmente compreendidos.
BP33
Fornecer feedback para o provedor original
Uma melhor comunicação entre provedores e consumidores fará com que seja mais fácil para os provedores originais determinar como os dados que eles publicam estão sendo usados. Isso ajudará a justificar a publicação dos dados. Os provedores também serão informados de medidas que podem ser tomadas para melhorar os seus dados, contribuindo para a melhoria dos dados de uma maneira geral.
BP34
Obedecer os termos de licença
Os provedores serão capazes de confiar que seu trabalho está sendo reutilizado de acordo com os seus requisitos de licenciamento, tornando-os mais propensos a continuar com a publicação dos dados. Reutilizadores de dados vão ser capaz de licenciar adequadamente os trabalhos derivados a partir de dados previamente publicados.
BP35
Citar a publicação original do conjunto de dados
Os consumidores finais serão capazes de avaliar a confiabilidade dos dados que vêem e os esforços dos provedores originais serão reconhecidos. A cadeia de proveniência para os dados na Web será rastreável de volta ao seu provedor original.
A fim de incentivar os provedores a adotar as Boas Práticas para dados na Web, há uma série de benefícios que podem ser alcançados a partir da aplicação das Boas Práticas, são eles: compreensibilidade; facilidade de processamento; facilidade de descoberta; reúso; confiança; capacidade de conexão de dados; facilidade de acesso; e interoperabilidade. Os benefícios são importantes porque ajudam provedores de dados a ter uma melhor compreensão de "o que será possível" quando as Boas Práticas são adotadas. Cada benefício está associado a uma ou mais Boas Práticas. Por exemplo, a "compreensibilidade" está associada a dez Boas Práticas, que estão relacionadas a metadados, vocabulários de dados, feedback e enriquecimento de dados. Isto significa que se um provedor de dados adotar estas práticas, o nível de compreensibilidade aumentará, isto é, será possível para os seres humanos terem uma melhor compreensão sobre a estrutura e o significado dos dados, bem como a natureza do conjunto de dados. É importante notar que o benefício se torna mais forte a medida em que aumenta a adoção das Boas Práticas. Considerando que a publicação de dados na Web é um processo incremental, o nível de cada benefício poderá aumentar após algumas iterações do processo de publicação de dados.
- Compreensibilidade: Os seres humanos terão uma melhor compreensão sobre a estrutura e o significado dos dados, bem como dos metadados e da natureza do conjunto de dados.
- Facilidade de Processamento: Máquinas ou agentes de software serão capazes de processar e manipular automaticamente os dados.
- Reúso: As chances de reutilização do conjunto de dados por diferentes grupos de consumidores de dados tendem a aumentar.
- Facilidade de Descoberta: Os agentes de software serão capazes de descobrir automaticamente um conjunto de dados ou dados dentro de um conjunto de dados.
- Confiança: A confiança que os consumidores têm no conjunto de dados tende a melhorar.
- Capacidade de Conexão: Será possível criar ligações entre conjuntos de dados e itens de dados.
- Facilidade de Acesso: Os seres humanos e máquinas serão capazes de acessar dados atualizados em uma variedade de formas.
- Interoperabilidade: Será mais fácil chegar a um consenso entre os provedores e consumidores de dados.