ETL₄LOD+
Introdução
O objetivo do ETL4LOD é fornecer uma framework amigável ao usuário que permita a manutenção da etapa de publicação do ciclo de vida de dados do tipo LOD.
A figura 1 apresenta as principais etapas envolvidas nesse ciclo de vida:
Para garantir uma interface que seja amigável ao usuário e tirar proveito de funcionalidades já existentes, o ETL4LOD foi criado como uma extensão ao Pentaho Data Integration, também conhecido como Kettle.
Uma extensão do Kettle é um conjunto de plugins, ou steps, desenvolvidos em Java que são integrados a ferramenta e podem ser usados em conjunto com os outros steps já existentes. Portanto, o ELT4LOD é um conjunto de plugins voltados especificamente para o trabalho com Linked Data.
A mecânica drag&drop contida no Kettle garante uma ótima usabilidade para o usuário final, que precisa apenas selecionar entre uma lista de opções que se aplicam ao processo sendo criado, e arrastá-la para a área de trabalho do Kettle para uso. Já a existência de steps feitos especificamente para processos de ETL no Kettle permite que o processo de publicação do ciclo de vida de dados ligados seja feito todo dentro do Kettle.
Em sua versão inicial, o ETL4LOD foi criado para trabalhar com a versão 4.1 do Kettle. O objetivo deste trabalho é dualmente atualizar o ETL4LOD e suas dependências para trabalhar na versão mais recente do Kettle, e melhorar a usabilidade e funcionalidades já existentes na ferramenta.
Mais informações sobre o que foi atualizado podem ser encontradas em changelog.
Ciclo de Vida de LOD
O ciclo de vida para publicação de dados do tipo LOD na web é dividido em três etapas: pré-processamento, triplificação e ligação. Os steps criados para o ETL4LOD se encaixam em sua maioria na etapa de triplificação, enquanto que os steps já existentes no Kettle são usados na etapa de pré-processamento. Atualmente a única etapa sendo feita fora do Kettle é a ligação.
Pré-processamento
A etapa de pré-processamento é a que envolve o trabalho sobre um dado bruto, geralmente um arquivo csv ou excel, visando tirar as inconsistências desses dados e prepará-los para o processo de triplificação.
O pré-processamento de dados no Kettle pode ser subdivido em duas etapas: entrada de dados e trabalho sobre os dados. Abaixo segue uma lista de steps usados em cada uma dessas etapas.
Entrada de dados
A entrada de dados envolve steps que sejam usados para carregar os dados necessários para o Kettle, estejam eles em arquivos de texto, xml, csv ou em um banco de dados. Os steps mais usados para o trabalho com dados interligados são:
Step | Descrição |
Leitura de arquivos de quaisquer arquivos de texto | |
Leitura de arquivos de texto separados por vírgula | |
Leitura de uma tabela num banco de dados | |
Leitura de um arquivo xls ou xlst | |
Leitura de um arquivo json ou json-ld | |
Leitura de arquivos xml, incluindo owl ou rdf |
Os steps de entrada de dados geralmente possuem um step correspondente para a saída de dados que permite salvar os dados naquele formato. Como o processo de triplificação geralmente envolve salvar os dados num endpoint sparql ou em rdf não falaremos sobre todos esses steps de saída.
Trabalho sobre os dados
Nesta categoria entram os plugins mais usados para remover inconsistências de dados, separar o fluxo dos dados
Triplificação
Plugin | Manual | Descrição |
Mapeia triplas RDF, onde o objeto é um valor literal | ||
Mapeia triplas RDF, onde o objeto de saída é uma URI | ||
Converte sentenças RDF em NTriple | ||
Carrega triplas RDF em um banco de triplas como o Vituoso | ||
Extrai dados de um SPARQL Endpoint | ||
Executa uma query SPARQL | ||
Anota uma tripla com termos de vocabulários e ontologias |
Ligação
Plugins
Nome | Descrição | Versão do Kettle |
GraphSparqlEndpoint | Roda uma query sparql num endpoint e recupera um conjunto de triplas que representam um grafo RDF | 8.1 |
GraphSemanticLevelMarker | Lê um grafo RDF, avalia seu nível de expressividade semântica e marca o grafo com esse nível | 8.1 |
GraphTriplify | Lê um grafo RDF e gera suas triplas | 8.1 |
Changelog
2.0.0
Added
xmlpull 1.1.3.1 adicionado como dependência dos projetos que usam xstream 1.4.10
jena-shaded-guava e jena-base adicionados como dependências dos projetos que agora usam jena 3
javadocs
adicionado plugins R2RMLtoRDF, OAI Input
Removed
i18n removida dos plugins dando preferência ao uso de pt-BR
removida compatibilidade dos plugins com arquivos criados na versão 1.0 do ELT4LOD
removida versão dos plugins DataPropertyMapping e ObjectPropertyMapping
Changed
xstream 1.3.1 atualizado para 1.4.10
kettle atualizado de 4.0 para 9.0.0.0-SNAPSHOT
any23 1.0 atualizado para versão 2.2
apache httpclient 4.1.1 atualizado para versão 4.5.6
apache httpcore 4.1 atualizado para versão 4.4.10
jena 2.6 atualizado para versão 3.8.0
KettlePluginTools.jar maveninzado
Testes
OAI: https://escholarship.org/oai
Rodando o projeto
Mude a variável pdi.home
no pom.xml
do projeto pai e rode o comando mvn install
no projeto pai. Isso deveria ser o suficiente para gerar todos os plugins e colocá-los na pasta correta na sua instalação do kettle.
Last updated