Publicação de dados na Web Semântica

(Aula baseada em curso de Antoine Zimmerman)

Esta aula é sobre a publicação de dados estruturados em RDF seguindo os princípios de Linked Data e as melhores práticas. Começa com a observação de dados existentes na Web e segue com a modelagem dos seus próprios dados, reutilizando vocabulários conhecidos e vinculando seus dados a outras fontes de dados.

Objetivos

  1. Familiarizar-se com os conjuntos de dados ligados existentes
  2. Gerar dados RDF para ver como o RDF pode ser escrito
  3. Aprender a ler e escrever RDF no formato Turtle
  4. Usar algumas das ferramentas úteis que ajudam a lidar com RDF

Entrega das respostas

Abra um arquivo de texto em branco que você salvará como <nome>-<sobrenome>.txt. Você colocará as respostas (sucintas) às perguntas abaixo. As perguntas estão numeradas (P1, P2,...). No final da aula envie uma mensagem para: carmemhara@gmail.com com o Assunto: "CI087: Aula 1 de laboratorio"

Anexe a esta mensagem os arquivos: <nome>-<sobrenome>.txt e <nome>-<sobrenome>.ttl (com o conteúdo explicado abaixo).

Observando os dados existentes

Nesta parte, examinaremos dados de um conhecido fornecedor de dados ligados, o DBpedia. Usaremos um navegador da Web (Firefox) para observar como as pessoas podem acessar dados estruturados fornecidos na Web.

  1. Inicie o Firefox. Se você não usa o Firefox, você terá dificuldades em fazer parte desse trabalho.
  2. Usando a barra de endereços, vá para a página no DBPedia de Tim Berners-Leee. (P1) O que esta página descreve? Escreva a sua resposta em português.
  3. Observe os dados disponíveis. A página da Web é um documento HTML que mostra triplas de forma quase legível por humanos. Explore as triplas que são mostradas. (P2) Dê 3 exemplos de triplas RDF (cada um em uma linha diferente no seu arquivo de texto) observados neste arquivo.
  4. A página Web mostra uma tabela com duas colunas. A primeira coluna (com property de cabeçalho) tem valores que são hiperlinks. Clique em um desses links, por exemplo, dbo:birthDate e veja o que é mostrado lá. (P3) Que tipo de informação esta propriedade fornece? Escreva a sua resposta em português no arquivo de texto.
  5. Volte para a página anterior. (P4) Você pode encontrar a descrição da entidade em inglês? Qual é a propriedade usada para fornecer a descrição? Copie a descrição, juntamente com o nome da propriedade em seu arquivo de texto.
  6. Olhe para a segunda coluna na tabela. Alguns valores são hiperlinks e outros contem valores textuais. (P5) O que significa quando o valor é um hiperlink? Tente explicar de forma tão concisa quanto possível no seu arquivo de texto.
  7. Considere a linha onde a propriedade é dbo:birthPlace. Mova o mouse no segundo link na coluna Valor. Na parte inferior esquerda da janela do navegador, você deve ver o URL ao qual este link está apontando. Escreva este URL no seu arquivo de texto. Clique no link e, em seguida, veja a barra de endereço no Firefox. Compare-o com o link que você viu antes de anotá-lo no seu arquivo de texto. (P6) Por que eles são diferentes? O que o endereço no link representa no que diz respeito ao endereço para o qual você é redirecionado? Explique de forma concisa em seu arquivo de texto.
  8. Nessa página, considere a Propriedade dbp:areaKm. (P7) Qual é o número em preto na coluna Valor? O que o texto entre parênteses representa? Dê uma olhada em dbpprop: gdpNominalPerCapita. O que o valor representa formalmente? Qual é o seu tipo? Escreva suas respostas curtas no arquivo de texto.
  9. (P8) As informações desta página estão disponíveis em português? Enumere os passos que você seguiu (quais as propriedades seguidas) para você chegar a esta conclusão?
  10. Na barra de endereço no Firefox, digite about:config e aperte Enter. Clique no botão, apesar do aviso. Então, na barra de pesquisa, escreva accept.default. Deve haver apenas uma linha. Clique com o botão da direita sobre a linha e substitua a string com: application/rdf+xml Digite na barra de endereços: http://dbpedia.org/resource/England. (P9) O que acontece?
  11. Agora, altere a configuração accept.default para: text/turtle e volte para http://dbpedia.org/resource/England. (P10) O que acontece?
  12. Reinicie a configuração accept.default ao seu valor padrão, clicando com o botão direito do mouse sobre ele e escolhendo "Reset" e volte para http://dbpedia.org/resource/England. (P11) O que acontece? Explique por que você recebeu os dados em diferentes formatos nos itens 10, 11 e 12.

Dados de criação no RDF

Agora que você viu como funciona um site de Linked Data, você estará editando e publicando seus próprios arquivos RDF. Queremos que você aprenda uma sintaxe para RDF e saiba como modelar o conhecimento neste modelo de dados. Você descreverá seu perfil pessoal para construir uma rede social distribuída.

Você usará o vocabulário "Friend of a Friend" (FOAF) e, portanto, o documento RDF que você criará será seu perfil FOAF.

  1. Gere uma descrição de si mesmo em RDF usando uma ferramenta que simplifica seu trabalho: FOAF-a-Matic. Preencha o formulário lá e tente ser o mais completo possível. Então clique no botão "Foaf me!". O resultado aparece na área de texto abaixo do botão. Copie o resultado no seu arquivo de texto.
  2. Você pode verificar se o resultado é sintaticamente válido usando o validador RDF do W3C: Validator.
  3. O RDF que você gerou é formatado como RDF/XML. Não é muito legível e difícil ver as triplas. Vamos convertê-lo em um formato diferente antes de observar os dados. Vá para o RDF Translator e escolha a guia "Input Field". Copie-cole seu código RDF/XML na área de texto. Nas caixas abaixo do botão "Submit", escolha "RDF/XML" para "Input" e "N3" para "Output". Pressione "Submit". Copie o resultado em um arquivo separado e salve como <primeiro nome>-<sobrenome>.ttl.

    Observe os dados. <#me> é um IRI relativo. Corresponde a um IRI completo obtido pela concatenação do URL do documento que o contém o #me. Este IRI identifica que todos os predicados usados com ele estão descrevendo seus atributos, como o seu nome e sobrenome. (P12) Quais outros IRI relativos existem? Escreva sua resposta no seu arquivo de texto.

    Este documento diz que <#me> é um foaf:Person. foaf:Person representa de fato o IRI http://xmlns.com/foaf/0.1/Person porque definimos o prefixo foaf: no início do documento. A propriedade a é uma abreviatura para o IRI http://www.w3.org/1999/02/22-rdf-syntax-ns#type que também poderia ser escrito rdf:type dado o prefixo rdf: no início. Todos os IRIs que são usados na posição do objeto de uma tripla rdf:type (ou seja, após a palavra a) são classes. (P13) Identifique as outras classes e escreva-as no seu arquivo de texto.

  4. O Dbpedia também contém classes, por exemplo dbpedia-owl:Scientist. Adicione um prefixo apropriado no início do seu documento RDF e expresse o fato de que você é um cientista no arquivo .ttl.
  5. No seu documento Turtle (.ttl), há uma tripla "<> a foaf:PersonalProfileDocument". O <> é um IRI relativo que representa a URL do próprio documento. Agora você vai adicionar metadados sobre este documento, adicionando triplas com o sujeito <>. Queremos dizer que o documento Turtle é intitulado "Meu perfil FOAF" e que foi criado por você, ou seja, pelo que é identificado por <#me>. Desta vez, usaremos as propriedades definidas pela Dublin Core Metadata Initiative. Dublin Core é um padrão que define IRIs para propriedades genéricas de metadados, como título, descrição, data de criação e criador. Normalmente, esses IRIs são abreviados com dc:title, dc:creator, etc. Precisamos definir o prefixo dc: mas talvez não nos lembremos do IRI completo. Para isso, acesse a página prefix.cc. Adicione o prefixo apropriado e adicione os triplas que definem o título e o criador do documento Turtle.
  6. Para enriquecer seu perfil FOAF, você pode dizer quais são seus tópicos de interesse, seus projetos anteriores, etc. Para fazer isso, navegue na especificação do vocabulário FOAF(http://xmlns.com/foaf/spec). Ele fornece IRI de propriedades úteis que você pode usar para se descrever. Adicione triplas ao seu documento de perfil FOAF para indicar que um de seus interesses é a Web semântica. Para isso, você pode usar o IRI http://dbpedia.org/resource/Semantic_Web que DBpedia define para identificar a Web Semântica. Você pode adicionar mais tópicos de interesse.
  7. Com FOAF, você pode indicar que você conhece alguém (ou vice-versa). Adicione uma tripla que indique que você conhece Tim Berners-Lee. Você pode ver o perfil FOAF da Tim em RDF/XML.

    Se você não sabe o que o IRI deve usar para uma determinada propriedade, você pode procurá-la entre os vocabulários existentes utilizando um serviço de busca. Por exemplo, use o "Linked Open Vocabularies" para encontrar uma propriedade IRI que indique que você possui uma coisa particular. Adicione uma tripla que diz que você possui algo, como um laptop. Você precisa definir uma IRI para o seu laptop (por exemplo <#meuLaptop> ).

    Se você ainda não consegue encontrar um IRI on-line para o que deseja dizer, você ainda pode criar seus próprios IRIs. Você pode até criar um vocabulário para o que você precisa e publicá-lo on-line para que outras pessoas possam usá-lo. Se você ainda tiver tempo, seja criativo com a descrição de si mesmo em seu perfil FOAF.