Melhorar a qualidade dos metadados no DSPACE

Esse foi o meu primeiro post no Grupo DSPACE-Brasil, mas também vai inaugurar alguns posts sobre algumas questões de gerenciamento do DSPACE que normalmente não são abordadas em cursos. O primeiro é sobre como melhorar a qualidade dos metadados no DSPACE.

Há metadados que podem ser considerados “autoridades”, mas o DSPACE não possui uma boa ferramenta de controle de autoridade ou esses dados podem ser resultado de importações que usavam padrões diferentes de preenchimento. Esta é uma forma de corrigir essas distorções:

A tabela da base de dados que armazena os metadados é a metadatavalue

Esta tabela é composta pelas seguintes colunas:

metadata_value_id
item_id
metadata_field_id
text_value
text_lang
place
authority
confidence

A coluna metadata_field_id é a coluna que armazena o valor atribuído na tabela de metadados que editamos no http://localhost/admin/metadata-registry

A consulta a seguir nos dá como resposta todos os registros de um único tipo de metadados:

SELECT “metadata_value_id”,”item_id”,”metadata_field_id”,”text_value”,”text_lang”,”place”,”authority”,”confidence” FROM “public”.”metadatavalue” WHERE “metadata_field_id” = ‘X’

Por exemplo: Utilizamos o título da revista no metadado dc.relation.ispartof que tem como id 42. Substituo o “metadata_field_id” = ‘X’ no final da consulta por “metadata_field_id” = ’42’

O resultado é uma lista de todos os títulos de revistas, da forma que foram catalogados.

O Postgresql pelo phppgadmin dá a opção de fazer o download desta lista em texto tabulado (.tsv).

O próximo passo é baixar e rodar o Google Refine: https://code.google.com/p/google-refine/

Ele é um webservice que permite a edição em lote e com ótimos algorítimos semânticos de grandes quantidades de dados.

Use o tsv para criar um novo projeto (não esquecer de escolher UTF-8 na codificação de caracteres)

O Google Refine tem duas funcionalidades que pode ajudar bastante na edição dos registros. Facet Text e Cluster and Edit. O primeiro faceta todos os resultados da coluna e o segundo possui algorítimos que criam clusters de informações que ele calcula serem equivalentes.

Use o Google Refine até corrigir todos os registros da base e depois exporte o resultado em tsv novamente.

Edite este arquivo usando o Notepad++ e na função replace utilize o seguinte expressão regular:

Em find what, selecione expressão regular:

^([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)$

e em replace with:

update metadatavalue set text_value = ‘\4’, text_lang = ‘\5’ where metadata_value_id = \1;

O resultado é que todos as linhas serão transformadas em um UPDATE em SQL, alterando os valores de text_lang e text_value quando achar o metadata_value_id correspondente.

Salve o arquivo como SQL

Aplique o update em sua base.

Falarei um pouco mais do Google Refine nos próximos posts.

Deixe uma resposta