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