Linked Data:
Construindo um Espaço
de Dados Global na Web


Regis Pires Magalhães
José Antônio F. de Macêdo
Vânia Maria Ponte Vidal

{regispires, jose.macedo, vvidal}@lia.ufc.br
Agenda
• Introdução
• Fundamentos de Linked Data
• Publicação de Linked Data
• Melhores práticas para publicação de
  Linked Data
• Consumo de Linked Data
• Limitações e Desafios
• Conclusão
• Referências
Introdução
Web de Documentos
• Internet, Documentos e Links
Problemas
• As pessoas não estão interessadas em
  documentos, mas em coisas que estão neles.
• As pessoas podem analisar os documentos para
  extrair significado.
 ▫ As máquinas ainda não fazem isso de forma viável.
 ▫ HTML define a estrutura de um documento, mas
   não explica o seu significado.
• Como permitir que máquinas compreendam os
  dados publicados na Web?
 ▫ Precisamos de mecanismos para descrição
   semantica dos dados
Como os dados estão publicados na
Web?
• Diversos modelos/formatos:
 ▫ HTML, Bancos de dados relacionais, XML, CSV,
   XLS, PDF, ...
• Problemas:
 ▫   Diferentes formatos
 ▫   Diferentes modelos de dados
 ▫   Nomes diferentes com o mesmo significado
 ▫   Ausência de vínculos entre fontes de dados
     diferentes
• Conclusão:
 ▫ Dificuldade para consumir e integrar os dados
APIs proprietárias isolando os dados




Imagem: Bob Jagensdorf, http://flickr.com/photos/darwinbell/, CC-BY
Web Atual
“A Web atual deixou de ser apenas um espaço
global de documentos interligados e está se
tornando um enorme espaço global de dados
vinculados constituído de bilhões de triplas RDF
que cobrem os mais variados domínios.”

 Heath, T. and Bizer, C. (2011). Linked Data: Evolving the Web into a
                 Global Data Space. Morgan & Claypool, 1st edition.
Linked Data
“O termo Linked Data se refere a um conjunto
das melhores praticas para publicação e conexão
de dados estruturados na Web.”

               Bizer, C., Heath, T., and Berners-Lee, T. (2009).
                               Linked Data - The Story So Far.
Projeto Linking Open Data

• Esforço espontâneo e voluntário da comunidade
  iniciado em janeiro de 2007.
• Objetivo principal:
 ▫ Desenvolver Linked Data a partir da identificação
   de dados existentes sob licença livre e convertê-los
   para RDF de acordo com os princípios do Linked
   Data.
Crescimento da Web de Dados




http://richard.cyganiak.de/2007/10/lod/
Linked Open Data Cloud – Set/2010




http://richard.cyganiak.de/2007/10/lod/
LOD – Outubro de 2010
•   207 conjuntos de dados
•   Mais de 28 bilhões de triplas RDF
•   Aproximadamente 395 milhões de links RDF
•   Vários domínios
Workshop Linked Data on the Web
(LDOW)
• Importante iniciativa dentro da programação da
  International World Wide Web Conference
  (WWW) a partir de 2008.
Número de Triplas




4th Linked Data on the Web Workshop (LDOW 2011).
Crescimento por domínio




4th Linked Data on the Web Workshop (LDOW 2011).
Fundamentos de Linked Data
Linked Data
“Linked Data é um conjunto de melhores práticas
para publicação e conexão de dados estruturados
na Web, permitindo estabelecer links entre itens
de diferentes fontes de dados para formar um
único espaço de dados global.”

 Heath, T. and Bizer, C. (2011). Linked Data: Evolving the Web into a
                 Global Data Space. Morgan & Claypool, 1st edition.
Início
• O pontapé inicial para essas melhores práticas
  foram os princípios de Linked Data
  estabelecidos por Tim Berners Lee em 2006.


     Tim Berners-Lee 2006
     http://www.w3.org/DesignIssues/LinkedData.html
Princípios de Linked Data
1. Usar URIs como nomes para coisas.
2. URIs HTTP para que as pessoas possam
   procurar (dereferenciar) esses nomes.
3. Quando alguém procurar uma URI, prover
   informação útil, usando os padrões (RDF,
   SPARQL).
4. Incluir links para outras URIs, de modo que
   possam permitir a descoberta de mais
   informação.
Tim Berners-Lee 2006
http://www.w3.org/DesignIssues/LinkedData.html
Boas práticas
• Os princípios foram estendidos por documentos
  originados a partir das experiências da
  comunidade de Linked Data, resultando em boas
  práticas de publicação e consumo de Linked
  Data.
• Documentos importantes:
 ▫ Bizer, C., Cyganiak, R., and Heath, T. (2007). How to
   Publish Linked Data on the Web.
   http://www4.wiwiss.fu-
   berlin.de/bizer/pub/LinkedDataTutorial/.
 ▫ Sauermann, L. and Cyganiak, R. (2008). Cool URIs for
   the Semantic Web. http://www.w3.org/TR/cooluris/.
Web de Dados
• Linked Data torna a Web um enorme banco de
  dados global:
 ▫ O Espaço de Dados Global é chamado de Web de
   Dados.
• A Web de Dados forma um imenso grafo global
  constituído de bilhões de triplas RDF de várias
  fontes cobrindo os mais variados domínios.
Web de Dados: características
• Genérica e pode conter qualquer tipo de dado;
• Qualquer pessoa pode publicar dados;
• Não há restrições para seleção de vocabulários;
• Dados são auto-descritos;
• Mecanismo padrão de acesso aos dados (HTTP) e
  modelo de dados padrão (RDF) simplificam o acesso aos
  dados;
• Aplicações que usam a Web de dados não se limitam a
  um conjunto fixo de fontes de dados, podendo inclusive
  descobrir novas fontes em tempo de execução.
Web de Documentos x Web de Dados

       Web de Documentos                      Web de Dados
Navegadores HTML                    Navegadores RDF
Links HTML conectando               Links RDF interligando dados
documentos
Mecanismo de identificação - URIs   Mecanismo de identificação – URIs
Mecanismo de acesso – HTTP          Mecanismo de acesso – HTTP
Formato de conteúdo – HTML          Modelo de dados – RDF
               –                    Linguagem de consulta – SPARQL
Padrões usados em Linked Data
• URIs – identificam objetos e conceitos,
  permitindo que eles sejam dereferenciados
  para obtenção de informações a seu respeito.

• HTTP – Mecanismo de acesso universal

• RDF – Modelo de dados descentralizado
  comum baseado em grafo

• SPARQL – Linguagem e protocolo para
  consulta sobre grafos RDF
Negociação de Conteúdo




 http://www4.wiwiss.fu-berlin.de/factbook/resource/Russia
A(URI identifying the non-information resource Russia)
   complete example of a HTTP session for dereferencing a URI identifying a non-information
  http://www4.wiwiss.fu-berlin.de/factbook/data/Russia
resource is given in Appendix A.
  (information resource with an RDF/XML representation describing Russia)
 http://www4.wiwiss.fu-berlin.de/factbook/page/Russia
URI Aliases resource with an HTML representation describing Russia)
  (information
URI Alias – owl:sameAs

prefix owl: <http://www.w3.org/2002/07/owl#>

Sujeito: http://www.w3.org/People/Berners-Lee/card#i
Predicado: http://www.w3.org/2002/07/owl#sameAs
Obj: http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007

Sujeito: http://dbpedia.org/resource/Tim_Berners-Lee
Predicado: http://www.w3.org/2002/07/owl#sameAs
Obj: http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007
Padrões usados em Linked Data
▫ Modelo RDF
  A utilização um modelo de dados comum torna
   possível a implementação de aplicações genéricas
   capazes de operar sobre o espaço de dados global
   [Heath and Bizer 2011] .
  Descentralizado, baseado em grafo e extensível,
   com alto nível de expressividade e permitindo a
   interligação entre conjuntos de dados através de
   Links RDF.
  Armazenamento através de grafo em memória,
   arquivo texto ou RDF Triple Store.
Tripla RDF
browser dereferences this URI over the Web, asking for con
       displays the retrieved information (click here to have Disco
       that he is based near Berlin, using the DBpedia URI http://d
RDF for the non-information resource Berlin. As the surfer is inte
     Link
       dereference this URI by clicking on it. The browser now der
       application/rdf+xml .
RDF Link (cont.)
RDF Link (cont.)
RDF: Formatos de Serialização
• RDF/XML
  ▫ Mais antigo e mais amplamente usado.
  ▫ Prolixo e pouco legível para o ser humano.
• N3 (Notation 3) [Berners-Lee 1998]
  ▫ Mais expressivo que RDF/XML.
• Turtle [Beckett 2007]
  ▫ Subconjunto de N3.
• N-Triples
  ▫ Subconjunto de N3 e Turtle
  ▫ Não possui alguns atalhos dos outros formatos como
    recursos aninhados e URIs compactas
     Termina ficando prolixo, mas simples para fazer parse.
• RDFa
  ▫ RDF embutido em HTML
• JSON
Grafo RDF e sua representação em
 Turtle




  @prefix foaf: <http://xmlns.com/foaf/0.1/> .
  @prefix ex: <http://example.org#> .

  <http://scott.com/> dc:creator             <http://scott.com/foaf.rdf#me> .
  <http://scott.com/foaf.rdf#me>             foaf:homepage <http://scott.com/> .
  <http://scott.com/foaf.rdf#me>             foaf:name "John Scott" .
  <http://scott.com/foaf.rdf#me>             foaf:mbox <mailto:js@gmx.com> .

Fonte: Langegger, A. (2010). A Flexible Architecture for Virtual Information Integration
based on Semantic Web Concepts. PhD thesis, J. Kepler University Linz.
RDFa
• Marcações semânticas adicionadas ao HTML:

<p xmlns:dc="http://purl.org/dc/elements/1.1/"
     about="http://www.example.com/books/wikinomics">
    No seu último livro
    <i property="dc:title">Wikinomics</i>,
    <span property="dc:author">Don Tapscott</span>
    explica as mudanças profundas tecnológicas,
    demográficas e de negócios.
    Este livro será publicado em
    <span property="dc:date" content="2006-10-01">October 2006</span>.
</p>
Documento na Web




Fonte: Consuming Linked Data Tutorial – WWW Conference 2010
Dados do documento provenientes do
 banco de dados relacional




Fonte: Consuming Linked Data Tutorial – WWW Conference 2010
Representando em RDF...




Fonte: Consuming Linked Data Tutorial – WWW Conference 2010
Vinculando com Revyu.com




Fonte: Consuming Linked Data Tutorial – WWW Conference 2010
Grafo RDF usando vocabulario FOAF




Imagem: Langegger, A. (2010). A Flexible Architecture for Virtual Information Integration
based on Semantic Web Concepts. PhD thesis, J. Kepler University Linz.
Padrões usados em Linked Data
• Protocolo e Linguagem SPARQL
 ▫ Linguagem de consulta de alto nível
   [Prud’hommeaux and Seaborne 2008] para
   recuperação de informações contidas em grafos
   RDF.
 ▫ Protocolo [Clark et al. 2008] usado para enviar
   consultas e recuperar resultados através do
   protocolo HTTP.
 ▫ Fontes Linked Data tipicamente fornecem um
   SPARQL Endpoint que é um serviço Web com
   suporte ao protocolo SPARQL.
Armazenamento de dados no
Modelo RDF
Estratégias de Armazenamento
• In-memory
 ▫ Armazenamento do grafo RDF na memória principal.
 ▫ Exemplos: Jena, Sesame
• Native (RDF Store)
 ▫ Solução própria para armazenamento de grafos RDF.
 ▫ Exemplos: Jena TDB , Sesame RDF Repository,
   Virtuoso RDF Triple Store, OWLIM
• Non-native
 ▫ Usam bancos de dados de terceiros.
 ▫ Exemplos: Jena SDB, Sesame PgSQL/MySQL
   Repository, Virtuoso, ARQ
Jena: Arquitetura de Armazenamento
Triple ou Quad Store?
• Normalmente Triple Stores são de fato Quad
  Stores pois suportam Named Graphs.
• Named Graph é simplesmente uma coleção de
  triplas RDF nomeada por uma URI que
  identifica o grafo.
 ▫ Usado para manter a proveniência dos dados
   RDF.
OpenLink Virtuoso RDF Triple Store
• Native RDF Store.
• Licença: Open source e proprietária.
• Servidor web e endpoint SPARQL.
• Suporta bilhões de triplas.
• Usado para armazenamento de DBpedia,
  data.gov, etc.
AllegroGraph
• Alto desempenho
    ▫ Suporte a bilhões de triplas com bom
      desempenho.
•   Uso eficiente de memória.
•   Suporta SPARQL, RDFS++ e Prolog reasoning.
•   Tipos geo-espaciais e temporais nativos.
•   Reasoning Geospatial e Temporal eficientes.
•   Suporte a análise de redes sociais.
•   Gerenciador de armazenamento em nuvem
    (Amazon EC2)
OWLIM           (http://www.ontotext.com/owlim)

• RDF Store (Native) proprietária.
• Implementado em Java.
• Compatível com Sesame e Jena.
• Suporte a reasoning robusto e transparente (RDFS, OWL Horst
  and OWL 2 RL).
• Alta escalabilidade e excelente desempenho comparado a outras
  alternativas.
• Extensões geo-espaciais eficientes.
• Versões:
    ▫ OWLIM-Lite – gratuito para qualquer uso.
       Suporta dezenas de milhões de triplas.
    ▫ OWLIM-SE – gratuito para pesquisa e avaliação.
       Suporta dezenas de bilhões de triplas.
    ▫ OWLIM-Enterprise – comercial.
       Replication Cluster com balanceamento de carga e recuperação de
        falhas.
RDF Benchmarks
http://www.w3.org/wiki/RdfStoreBenchmarking

• Comparam a performance de sistemas de
  armazenamento que expõem SPARQL Endpoints,
  sejam RDF Stores ou não.

• Berlin SPARQL Benchmark (BSBM)
 ▫ http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/
• Lehigh University Benchmark (LUBM)
 ▫ http://swat.cse.lehigh.edu/projects/lubm/
• SP²Bench SPARQL Performance Benchmark
  (SP2B)
 ▫ http://dbis.informatik.uni-freiburg.de/index.php?project=SP2B
Publicação de Linked Data
Publicação de Linked Data
• Publicar Linked Data: usar os princípios e
  melhores práticas de Linked Data para
  disponibilizar os dados na Web.
• Requisitos mínimos:
 ▫ Fornecer URIs dereferenciáveis para cada
   entidade.
 ▫ Criar links RDF para outras fontes de dados.
• Desejável:
 ▫ Disponibilização de SPARQL Endpoints e dumps
   dos dados.
Interface Linked Data
• Tratar requisições de URIs.
• Dereferenciar URIs.
• Tratar dos redirecionamentos 303 requeridos
  pela arquitetura Web.
• Negociação de conteúdo entre descrições de um
  mesmo recurso em diferentes formatos.

http://dblp.l3s.de/d2r/resource/authors/Marco_A._Casanova
http://dblp.l3s.de/d2r/page/authors/Marco_A._Casanova
http://dblp.l3s.de/d2r/data/authors/Marco_A._Casanova
Publicação de dados de fontes RDF
como Linked Data
• Fontes de dados que adotam o modelo RDF são
  normalmente armazenadas em arquivo RDF ou
  RDF Store.
Publicação de arquivos RDF como
Linked Data
• Simples
• Usado para arquivos pequenos
• RDF/XML
 ▫ Formato de serialização mais antigo e usado para
   publicação de Linked Data.
Arquivo RDF no formato Turtle
@prefix   rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix   rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix   foaf:   <http://xmlns.com/foaf/0.1/> .
@prefix   dc:     <http://purl.org/dc/elements/1.1/> .
@prefix   :       <http://lia.ufc.br/~regispires/researchers.rdf#> .

# The <> (the empty URI) means "this document".
<> a                   foaf:Document ;
  dc:title           "Researchers file" .

:ufc
  a                     foaf:Organization ;
  foaf:name             "Universidade Federal do Ceará" .

:vania
  a                     foaf:Person ;
  foaf:name             "Vânia Maria Ponte Vidal" ;
  foaf:Organization     :ufc ;
  rdfs:sameAs           <http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal>
Conversão de Turtle para RDF/XML
• Conversores on-line:
 ▫ Babel
    http://simile.mit.edu/babel
 ▫ RDFConverter
    http://www.mindswap.org/2002/rdfconvert/
Arquivo RDF no formato RDF/XML
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
  xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
  xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema#
  xmlns:foaf=http://xmlns.com/foaf/0.1/
  xmlns:dc=http://purl.org/dc/elements/1.1/
  xmlns="http://lia.ufc.br/~regispires/researchers.rdf#">

<rdf:Description rdf:about="">
  <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
  <dc:title>Researchers file</dc:title>
</rdf:Description>

<rdf:Description rdf:about="http://lia.ufc.br/~regispires/researchers.rdf#ufc">
  <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Organization"/>
  <foaf:name>Universidade Federal do Ceará</foaf:name>
</rdf:Description>

<rdf:Description rdf:about="http://lia.ufc.br/~regispires/researchers.rdf#vania">
  <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
  <foaf:name>Vânia Maria Ponte Vidal</foaf:name>
  <foaf:Organization rdf:resource="http://lia.ufc.br/~regispires/researchers.rdf#ufc"/>
  <rdfs:sameAs rdf:resource="http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal"/>
</rdf:Description>
</rdf:RDF>
Interface Linked Data
• Disponibilização de um arquivo RDF/XML:
 ▫ Possibilita o dereferenciamento de URIs
 ▫ Uso de RDF Links
• Não resolve:
 ▫ Redirecionamentos 303 e a negociação de
   conteúdo.
• Fornecimento de interface Linked Data através
  do serviço Pubby (http://www4.wiwiss.fu-
  berlin.de/pubby/)
RDFa: RDF embutido em documento Web
 • Textos e links legíveis ao ser humano
   coexistindo com dados que poderão ser
   processados pelas máquinas.
 • Alterações centralizadas em um único
   documento.
<?xml version="1.0" encoding="UTF-8"?>


                                                                                                         RDFa
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
 "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html
   xml:lang="en"
   version="XHTML+RDFa 1.0"
   xmlns="http://www.w3.org/1999/xhtml"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
   xmlns:foaf="http://xmlns.com/foaf/0.1/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:rs="http://lia.ufc.br/~regispires/researchers.rdf#"
>
   <head>
     <title>Researchers</title>
     <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
     <meta property="dc:title" content="Researchers file" />
     <link rel="rdf:type" href="http://xmlns.com/foaf/0.1/Document" />
   </head>
   <body>
     <h1>Organizations</h1>
     <ul>
       <li>
         <div about="http://lia.ufc.br/~regispires/researchers.rdf#ufc" typeof="foaf:Organization">
           <span property="foaf:name">Universidade Federal do Ceará</span>
         </div>
       </li>
     </ul>
     <h1>Researchers</h1>
     <ul>
       <li>
         <div about="http://lia.ufc.br/~regispires/researchers.rdf#vania" typeof="foaf:Person">
           <span property="foaf:name">Vânia Maria Ponte Vidal</span>
           <span rel="foaf:Organization" resource="http://lia.ufc.br/~regispires/researchers.rdf#ufc"></span>
           <span rel="rdfs:sameAs" resource="http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal"></span>
         </div>
       </li>
     </ul>
   </body>
</html>
Publicação de dados de RDF Store
como Linked Data
• Tipicamente envolve:
 ▫ Disponibilização de interface Linked Data
 ▫ SPARQL Endpoint
• Servidor Joseki ou Fuseki pode ser usado como
  SPARQL Endpoint de uma RDF Store.
• Pubby pode prover a interface Linked Data.
 ▫ Realiza consulta SPARQL usando o comando
   DESCRIBE para obtenção do resultado em
   formato RDF.
Publicação de dados de fontes não RDF
como Linked Data
• Dados publicados devem estar no modelo RDF ou
  ser convertidos para ele.
• Abordagens para lidar com dados não RDF:
 ▫ Processo de Conversão (abordagem materializada)
    Gerar RDF através de algum conversor
 ▫ Fornecer uma visão RDF (abordagem
   virtualizada)
    Acesso a dados que não estão no modelo RDF através
     de um RDF Wrapper
    Conversão dinâmica baseada em mapeamentos
     estabelecidos entre o modelo nativo e o modelo RDF.
RDB-to-RDF Wrappers
• Criam visões RDF a partir de
  mapeamentos entre as estruturas
  relacionais e os grafos RDF.
 ▫ Triplify
 ▫ Plataforma D2RQ
 ▫ Virtuoso RDF Views
RDB-to-RDF Wrappers
• Triplify
  ▫ Converte os resultados de consultas SQL em RDF,
    JSON e Linked Data.
  ▫ 3 bilhões de triplas do dataset LinkedGeoData
    foram geradas pelo Triplify.
RDB-to-RDF Wrappers
• Triplify
  ▫ Simples. Menos de 500 linhas de código.
  ▫ Na maioria das aplicações Web apenas um pequeno
    número de consultas (3 a 7) é suficiente para extrair as
    informações relevantes.
  ▫ Já possui configurações prontas para triplificar dados
    de várias aplicações Web populares (WordPress,
    Drupal, Joomla!, OSCommerce, phpBB, Gallery, etc.).




   Figura: http://triplify.org/About
RDB-to-RDF Wrappers
• Triplify – Arquivo de configuração
 ▫ Definição de consultas SQL com seleção dos dados que
   serão publicados.
    A primeira coluna deve conter identificador para gerar
     URIs das instâncias.
    Nomes de colunas serão usados para gerar URIs dos
     predicados.
      Ex: SELECT id,name AS 'foaf:name' FROM users

    Os resultados da consulta contêm valores ou
     referências para outras instâncias que serão usados
     para gerar as triplas resultantes.
RDB-to-RDF Wrappers
• Plataforma D2RQ
 ▫ Fornece a infra-estrutura necessária para acessar
   bancos de dados relacionais como grafos RDF
   virtuais.
• Componentes
 ▫ Linguagem de mapeamento D2RQ
 ▫ Mecanismo D2RQ
 ▫ Servidor D2R
RDB-to-RDF Wrappers
• Plataforma D2RQ - Arquitetura
RDB-to-RDF Wrappers
• Virtuoso RDF Views
 ▫ Mapeia dados relacionais em RDF de forma
   dinâmica.
 ▫ Os mapeamentos são escritos em uma linguagem
   declarativa.
Visão Comparativa
                      Triplify       D2R Server       Virtuoso RDF
                                                          Views

Tecnologia              PHP              Java          Middleware
                                                        Solution

SPARQL                   -                Sim             Sim
Endpoint

Linguagem de            SQL           RDF based        RDF based
Mapeamento

Geração de            Manual        Semi-automático      Manual
mapeamento



Escalabilidade      Media – Alta         Media            Alta
                   (Não SPARQL)

Fonte: http://esw.w3.org/Rdb2RdfXG/StateOfTheArt
RDB2RDF
• Grupo de trabalho do W3C criado em 2009.
• Definição da linguagem R2RML
 ▫ R2RML: RDB to RDF Mapping Language
 ▫ Mapeamento de dados e esquemas relacionais para RDF
 ▫ Tende a substituir as soluções de mapeamento já
   existentes.
• Direct Mapping of Relational Data to RDF
 ▫ http://www.w3.org/TR/rdb-direct-mapping/
 ▫ A partir de um banco de dados relacional, ele gera um
   grafo RDF (direct graph).
 ▫ Define uma transformação simples, servindo de base
   para transformações mais complexas.
 ▫ Provê um comportamento padrão para R2RML.
Direct Mapping
                         @base <http://foo.example/DB/>
                         @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

                         <People/ID-7>   rdf:type <People> .
                         <People/ID-7>   <People#ID> 7 .
                         <People/ID-7>   <People#fname> "Bob" .
                         <People/ID-7>   <People#addr> 18 .
                         <People/ID-7>   <People#ref-addr> <Addresses/ID-18> .
                         <People/ID-8>   rdf:type <People> .
                         <People/ID-8>   <People#ID> 8 .
                         <People/ID-8>   <People#fname> "Sue" .

                         <Addresses/ID-18>   rdf:type <Addresses> .
                         <Addresses/ID-18>   <Addresses#ID> 18 .
                         <Addresses/ID-18>   <Addresses#city> "Cambridge" .
                         <Addresses/ID-18>   <Addresses#state> "MA" .




Fonte: http://www.w3.org/TR/rdb-direct-mapping/
Processo StdTrip
• Guia usuários durante os estágios de modelagem
  conceitual do processo RDB para RDF.
• Busca identificar possíveis correspondências
  com vocabulários padrões existentes.
Processo StdTrip



• Conversão – transformação da estrutura do banco de
  dados relacional em uma ontologia RDF.
• Alinhamento – obtenção de correspondências entre a
  ontologia obtida na conversão e um conjunto de
  vocabulários padrões.
• Seleção - listas de possíveis correspondências são
  apresentadas para que o usuário selecione.
• Inclusão – para elementos que o processo não obteve
  resultado, uma lista de possíveis correspondências de
  outros vocabulários é apresentada.
Processo StdTrip



• Complementação – Se nada funciona, usuários são
  direcionados às melhores práticas de publicação de
  vocabulários RDF.
• Saída
  ▫ um arquivo de configuração que serve como a
    parametrização de uma ferramenta RDB para
    RDF.
  ▫ uma ontologia com os mapeamentos do esquema
    do banco de dados original para vocabulários RDF
    padrões.
Melhores práticas para publicação de
Linked Data
• Selecionar URIs adequadas
 ▫ Evitar URIs contendo algum detalhe de
   implementação ou do ambiente em que estão
   publicadas
 ▫ URIs relacionadas a um mesmo recurso
    http://dblp.l3s.de/d2r/resource/V%C3%A2nia_Maria_Ponte_Vidal
    http://dblp.l3s.de/d2r/page/V%C3%A2nia_Maria_Ponte_Vidal
    http://dblp.l3s.de/d2r/data/V%C3%A2nia_Maria_Ponte_Vidal
Melhores práticas para publicação de
Linked Data
• Usar URIs dereferenciáveis.
• Utilizar URIs estáveis.
• Criar links para outras fontes de dados
RDF Links entre Datasets




4th Linked Data on the Web Workshop (LDOW 2011).
Melhores práticas para publicação de
Linked Data
• Publicação de Metadados
 ▫ Facilita a seleção dos dados relevantes.
 ▫ Devem ser fornecidos metadados sobre
   proveniência e licenciamento dos dados.
 ▫ Também é recomendável a disponibilização de
   metadados sobre a fonte de dados.
Suporte a Metadados
                      Visualização de dados
                      sobre um gene
                      providos pelo Pubby.
                      Inclui metadados de
                      proveniência.

                      Triplify, Pubby e D2R
                      Server possuem
                      suporte para
                      metadados.


                       Fonte:
                       Integrating Provenance into the
                       Web of Data
                       Olaf Hartig and Jun Zhao
Metadados de Licenciamento e
Proveniência
• Somente 18 (9,05 %) das 207 fontes de dados
  fornecem informação de licença machine-
  readable.
• Somente 50 (25.25 %) das fontes de dados
  fornecem informação de proveniência
  machine-readable.
Melhores práticas para publicação de
Linked Data
• Usar termos de vocabulários amplamente
  usados.
 ▫ Objetivo: facilitar o processamento de Linked
   Data pelas aplicações clientes
• Novos termos só devem ser definidos se não
  forem encontrados em vocabulários já existentes
Uso de vocabulários comuns




4th Linked Data on the Web Workshop (LDOW 2011).
Melhores práticas para publicação de
Linked Data
• Estabelecer relações entre os termos de
  vocabulários proprietários para termos de outros
  vocabulários.
 ▫ Uso das propriedades owl:equivalentClass,
   owl:equivalentProperty, rdfs:subClassOf,
   rdfs:subPropertyOf.
Mapeamentos de Vocabulários
• Somente 9 (7,32%) de 123 fontes de dados que
  usam termos proprietários fornecem
  mapeamentos de termos para outros
  vocabulários.
• Exemplo:
   <http://xmlns.com/foaf/0.1/Person>
   owl:equivalentClass
   <http://dbpedia.org/ontology/Person> .
Melhores práticas para publicação de
Linked Data
• Explicitar formas de acesso adicional aos dados
 ▫ SPARQL endpoints e RDF dumps.
Melhores práticas para publicação de
Linked Data
• Estabelecer relações entre os termos de
  vocabulários proprietários para termos de outros
  vocabulários.
 ▫ Uso das propriedades owl:equivalentClass,
   owl:equivalentProperty, rdfs:subClassOf,
   rdfs:subPropertyOf.
Validação dos dados publicados como
Linked Data
• É necessário garantir que os dados realmente
  estão de acordo com os princípios e melhores
  práticas de Linked Data.
• Ferramentas
 ▫   W3C Validation Service
 ▫   Eyeball
 ▫   cURL
 ▫   Vapour
 ▫   Sindice Web Data Inspector
 ▫   Navegadores RDF
Consumo de Linked Data
Consumo de Linked Data
• Ponto de partida
 ▫ URIs
 ▫ Palavras-chave
 ▫ Consultas SPARQL
• Tipos de Aplicações que consomem Linked Data
 ▫ Aplicações genéricas
 ▫ Aplicações de domínio específico
Aplicações genéricas para consumo de
Linked Data
• Navegadores RDF
• Mecanismos de Busca Linked Data
• Outras aplicações genéricas
Navegadores Linked Data
   Permitem a navegação entre fontes de dados
    seguindo links expressos como triplas RDF.
        LOD Browser Switch
        Explorator
        Disco Hiperdata Browser
        Marbles
        Tabulator
        LinkSailor
        Graphite RDF Browser
Disco
Tabulator
Marbles
   Pontos coloridos correlacionam a origem dos
    dados com uma lista de fontes de dados.
Graphite
Link Sailor
Mecanismos de busca
• Rastreiam a Web seguindo links RDF e possibilitam
  consultas sobre dados agregados.
      Orientados a humanos – criados para usuários
       humanos.
      Orientados a aplicações – fornecem APIs para
       descoberta de RDFs que referenciam certa URI o que
       possuem determinada palavra chave.
Mecanismos de busca
•   Sindice
•   Sig.ma
•   VisiNav
•   Watson
100
Outras aplicações genéricas
• sameAs
 ▫ Serviço online de coreferenciamento
 ▫ Encontrar URIs de diferentes fontes de dados que
   representam um mesmo conceito
• LDSpider
 ▫ Segue links para obter dados e os armazena em
   arquivo RDF ou em RDF Store através de SPARQL
   Update.
Aplicações de domínio específico para
consumo de Linked Data
• Linked Data Mashups

Linked Data - Minicurso - SBBD 2011

  • 1.
    Linked Data: Construindo umEspaço de Dados Global na Web Regis Pires Magalhães José Antônio F. de Macêdo Vânia Maria Ponte Vidal {regispires, jose.macedo, vvidal}@lia.ufc.br
  • 2.
    Agenda • Introdução • Fundamentosde Linked Data • Publicação de Linked Data • Melhores práticas para publicação de Linked Data • Consumo de Linked Data • Limitações e Desafios • Conclusão • Referências
  • 3.
  • 4.
    Web de Documentos •Internet, Documentos e Links
  • 5.
    Problemas • As pessoasnão estão interessadas em documentos, mas em coisas que estão neles. • As pessoas podem analisar os documentos para extrair significado. ▫ As máquinas ainda não fazem isso de forma viável. ▫ HTML define a estrutura de um documento, mas não explica o seu significado. • Como permitir que máquinas compreendam os dados publicados na Web? ▫ Precisamos de mecanismos para descrição semantica dos dados
  • 6.
    Como os dadosestão publicados na Web? • Diversos modelos/formatos: ▫ HTML, Bancos de dados relacionais, XML, CSV, XLS, PDF, ... • Problemas: ▫ Diferentes formatos ▫ Diferentes modelos de dados ▫ Nomes diferentes com o mesmo significado ▫ Ausência de vínculos entre fontes de dados diferentes • Conclusão: ▫ Dificuldade para consumir e integrar os dados
  • 7.
    APIs proprietárias isolandoos dados Imagem: Bob Jagensdorf, http://flickr.com/photos/darwinbell/, CC-BY
  • 8.
    Web Atual “A Webatual deixou de ser apenas um espaço global de documentos interligados e está se tornando um enorme espaço global de dados vinculados constituído de bilhões de triplas RDF que cobrem os mais variados domínios.” Heath, T. and Bizer, C. (2011). Linked Data: Evolving the Web into a Global Data Space. Morgan & Claypool, 1st edition.
  • 9.
    Linked Data “O termoLinked Data se refere a um conjunto das melhores praticas para publicação e conexão de dados estruturados na Web.” Bizer, C., Heath, T., and Berners-Lee, T. (2009). Linked Data - The Story So Far.
  • 10.
    Projeto Linking OpenData • Esforço espontâneo e voluntário da comunidade iniciado em janeiro de 2007. • Objetivo principal: ▫ Desenvolver Linked Data a partir da identificação de dados existentes sob licença livre e convertê-los para RDF de acordo com os princípios do Linked Data.
  • 11.
    Crescimento da Webde Dados http://richard.cyganiak.de/2007/10/lod/
  • 12.
    Linked Open DataCloud – Set/2010 http://richard.cyganiak.de/2007/10/lod/
  • 13.
    LOD – Outubrode 2010 • 207 conjuntos de dados • Mais de 28 bilhões de triplas RDF • Aproximadamente 395 milhões de links RDF • Vários domínios
  • 14.
    Workshop Linked Dataon the Web (LDOW) • Importante iniciativa dentro da programação da International World Wide Web Conference (WWW) a partir de 2008.
  • 15.
    Número de Triplas 4thLinked Data on the Web Workshop (LDOW 2011).
  • 16.
    Crescimento por domínio 4thLinked Data on the Web Workshop (LDOW 2011).
  • 17.
  • 18.
    Linked Data “Linked Dataé um conjunto de melhores práticas para publicação e conexão de dados estruturados na Web, permitindo estabelecer links entre itens de diferentes fontes de dados para formar um único espaço de dados global.” Heath, T. and Bizer, C. (2011). Linked Data: Evolving the Web into a Global Data Space. Morgan & Claypool, 1st edition.
  • 19.
    Início • O pontapéinicial para essas melhores práticas foram os princípios de Linked Data estabelecidos por Tim Berners Lee em 2006. Tim Berners-Lee 2006 http://www.w3.org/DesignIssues/LinkedData.html
  • 20.
    Princípios de LinkedData 1. Usar URIs como nomes para coisas. 2. URIs HTTP para que as pessoas possam procurar (dereferenciar) esses nomes. 3. Quando alguém procurar uma URI, prover informação útil, usando os padrões (RDF, SPARQL). 4. Incluir links para outras URIs, de modo que possam permitir a descoberta de mais informação. Tim Berners-Lee 2006 http://www.w3.org/DesignIssues/LinkedData.html
  • 21.
    Boas práticas • Osprincípios foram estendidos por documentos originados a partir das experiências da comunidade de Linked Data, resultando em boas práticas de publicação e consumo de Linked Data. • Documentos importantes: ▫ Bizer, C., Cyganiak, R., and Heath, T. (2007). How to Publish Linked Data on the Web. http://www4.wiwiss.fu- berlin.de/bizer/pub/LinkedDataTutorial/. ▫ Sauermann, L. and Cyganiak, R. (2008). Cool URIs for the Semantic Web. http://www.w3.org/TR/cooluris/.
  • 22.
    Web de Dados •Linked Data torna a Web um enorme banco de dados global: ▫ O Espaço de Dados Global é chamado de Web de Dados. • A Web de Dados forma um imenso grafo global constituído de bilhões de triplas RDF de várias fontes cobrindo os mais variados domínios.
  • 23.
    Web de Dados:características • Genérica e pode conter qualquer tipo de dado; • Qualquer pessoa pode publicar dados; • Não há restrições para seleção de vocabulários; • Dados são auto-descritos; • Mecanismo padrão de acesso aos dados (HTTP) e modelo de dados padrão (RDF) simplificam o acesso aos dados; • Aplicações que usam a Web de dados não se limitam a um conjunto fixo de fontes de dados, podendo inclusive descobrir novas fontes em tempo de execução.
  • 24.
    Web de Documentosx Web de Dados Web de Documentos Web de Dados Navegadores HTML Navegadores RDF Links HTML conectando Links RDF interligando dados documentos Mecanismo de identificação - URIs Mecanismo de identificação – URIs Mecanismo de acesso – HTTP Mecanismo de acesso – HTTP Formato de conteúdo – HTML Modelo de dados – RDF – Linguagem de consulta – SPARQL
  • 25.
    Padrões usados emLinked Data • URIs – identificam objetos e conceitos, permitindo que eles sejam dereferenciados para obtenção de informações a seu respeito. • HTTP – Mecanismo de acesso universal • RDF – Modelo de dados descentralizado comum baseado em grafo • SPARQL – Linguagem e protocolo para consulta sobre grafos RDF
  • 26.
    Negociação de Conteúdo http://www4.wiwiss.fu-berlin.de/factbook/resource/Russia A(URI identifying the non-information resource Russia) complete example of a HTTP session for dereferencing a URI identifying a non-information http://www4.wiwiss.fu-berlin.de/factbook/data/Russia resource is given in Appendix A. (information resource with an RDF/XML representation describing Russia) http://www4.wiwiss.fu-berlin.de/factbook/page/Russia URI Aliases resource with an HTML representation describing Russia) (information
  • 27.
    URI Alias –owl:sameAs prefix owl: <http://www.w3.org/2002/07/owl#> Sujeito: http://www.w3.org/People/Berners-Lee/card#i Predicado: http://www.w3.org/2002/07/owl#sameAs Obj: http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007 Sujeito: http://dbpedia.org/resource/Tim_Berners-Lee Predicado: http://www.w3.org/2002/07/owl#sameAs Obj: http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007
  • 28.
    Padrões usados emLinked Data ▫ Modelo RDF  A utilização um modelo de dados comum torna possível a implementação de aplicações genéricas capazes de operar sobre o espaço de dados global [Heath and Bizer 2011] .  Descentralizado, baseado em grafo e extensível, com alto nível de expressividade e permitindo a interligação entre conjuntos de dados através de Links RDF.  Armazenamento através de grafo em memória, arquivo texto ou RDF Triple Store.
  • 29.
  • 30.
    browser dereferences thisURI over the Web, asking for con displays the retrieved information (click here to have Disco that he is based near Berlin, using the DBpedia URI http://d RDF for the non-information resource Berlin. As the surfer is inte Link dereference this URI by clicking on it. The browser now der application/rdf+xml .
  • 31.
  • 32.
  • 33.
    RDF: Formatos deSerialização • RDF/XML ▫ Mais antigo e mais amplamente usado. ▫ Prolixo e pouco legível para o ser humano. • N3 (Notation 3) [Berners-Lee 1998] ▫ Mais expressivo que RDF/XML. • Turtle [Beckett 2007] ▫ Subconjunto de N3. • N-Triples ▫ Subconjunto de N3 e Turtle ▫ Não possui alguns atalhos dos outros formatos como recursos aninhados e URIs compactas  Termina ficando prolixo, mas simples para fazer parse. • RDFa ▫ RDF embutido em HTML • JSON
  • 34.
    Grafo RDF esua representação em Turtle @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.org#> . <http://scott.com/> dc:creator <http://scott.com/foaf.rdf#me> . <http://scott.com/foaf.rdf#me> foaf:homepage <http://scott.com/> . <http://scott.com/foaf.rdf#me> foaf:name "John Scott" . <http://scott.com/foaf.rdf#me> foaf:mbox <mailto:js@gmx.com> . Fonte: Langegger, A. (2010). A Flexible Architecture for Virtual Information Integration based on Semantic Web Concepts. PhD thesis, J. Kepler University Linz.
  • 35.
    RDFa • Marcações semânticasadicionadas ao HTML: <p xmlns:dc="http://purl.org/dc/elements/1.1/" about="http://www.example.com/books/wikinomics"> No seu último livro <i property="dc:title">Wikinomics</i>, <span property="dc:author">Don Tapscott</span> explica as mudanças profundas tecnológicas, demográficas e de negócios. Este livro será publicado em <span property="dc:date" content="2006-10-01">October 2006</span>. </p>
  • 36.
    Documento na Web Fonte:Consuming Linked Data Tutorial – WWW Conference 2010
  • 37.
    Dados do documentoprovenientes do banco de dados relacional Fonte: Consuming Linked Data Tutorial – WWW Conference 2010
  • 38.
    Representando em RDF... Fonte:Consuming Linked Data Tutorial – WWW Conference 2010
  • 39.
    Vinculando com Revyu.com Fonte:Consuming Linked Data Tutorial – WWW Conference 2010
  • 40.
    Grafo RDF usandovocabulario FOAF Imagem: Langegger, A. (2010). A Flexible Architecture for Virtual Information Integration based on Semantic Web Concepts. PhD thesis, J. Kepler University Linz.
  • 41.
    Padrões usados emLinked Data • Protocolo e Linguagem SPARQL ▫ Linguagem de consulta de alto nível [Prud’hommeaux and Seaborne 2008] para recuperação de informações contidas em grafos RDF. ▫ Protocolo [Clark et al. 2008] usado para enviar consultas e recuperar resultados através do protocolo HTTP. ▫ Fontes Linked Data tipicamente fornecem um SPARQL Endpoint que é um serviço Web com suporte ao protocolo SPARQL.
  • 42.
  • 43.
    Estratégias de Armazenamento •In-memory ▫ Armazenamento do grafo RDF na memória principal. ▫ Exemplos: Jena, Sesame • Native (RDF Store) ▫ Solução própria para armazenamento de grafos RDF. ▫ Exemplos: Jena TDB , Sesame RDF Repository, Virtuoso RDF Triple Store, OWLIM • Non-native ▫ Usam bancos de dados de terceiros. ▫ Exemplos: Jena SDB, Sesame PgSQL/MySQL Repository, Virtuoso, ARQ
  • 44.
    Jena: Arquitetura deArmazenamento
  • 45.
    Triple ou QuadStore? • Normalmente Triple Stores são de fato Quad Stores pois suportam Named Graphs. • Named Graph é simplesmente uma coleção de triplas RDF nomeada por uma URI que identifica o grafo. ▫ Usado para manter a proveniência dos dados RDF.
  • 46.
    OpenLink Virtuoso RDFTriple Store • Native RDF Store. • Licença: Open source e proprietária. • Servidor web e endpoint SPARQL. • Suporta bilhões de triplas. • Usado para armazenamento de DBpedia, data.gov, etc.
  • 47.
    AllegroGraph • Alto desempenho ▫ Suporte a bilhões de triplas com bom desempenho. • Uso eficiente de memória. • Suporta SPARQL, RDFS++ e Prolog reasoning. • Tipos geo-espaciais e temporais nativos. • Reasoning Geospatial e Temporal eficientes. • Suporte a análise de redes sociais. • Gerenciador de armazenamento em nuvem (Amazon EC2)
  • 48.
    OWLIM (http://www.ontotext.com/owlim) • RDF Store (Native) proprietária. • Implementado em Java. • Compatível com Sesame e Jena. • Suporte a reasoning robusto e transparente (RDFS, OWL Horst and OWL 2 RL). • Alta escalabilidade e excelente desempenho comparado a outras alternativas. • Extensões geo-espaciais eficientes. • Versões: ▫ OWLIM-Lite – gratuito para qualquer uso.  Suporta dezenas de milhões de triplas. ▫ OWLIM-SE – gratuito para pesquisa e avaliação.  Suporta dezenas de bilhões de triplas. ▫ OWLIM-Enterprise – comercial.  Replication Cluster com balanceamento de carga e recuperação de falhas.
  • 49.
    RDF Benchmarks http://www.w3.org/wiki/RdfStoreBenchmarking • Comparama performance de sistemas de armazenamento que expõem SPARQL Endpoints, sejam RDF Stores ou não. • Berlin SPARQL Benchmark (BSBM) ▫ http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/ • Lehigh University Benchmark (LUBM) ▫ http://swat.cse.lehigh.edu/projects/lubm/ • SP²Bench SPARQL Performance Benchmark (SP2B) ▫ http://dbis.informatik.uni-freiburg.de/index.php?project=SP2B
  • 50.
  • 51.
    Publicação de LinkedData • Publicar Linked Data: usar os princípios e melhores práticas de Linked Data para disponibilizar os dados na Web. • Requisitos mínimos: ▫ Fornecer URIs dereferenciáveis para cada entidade. ▫ Criar links RDF para outras fontes de dados. • Desejável: ▫ Disponibilização de SPARQL Endpoints e dumps dos dados.
  • 52.
    Interface Linked Data •Tratar requisições de URIs. • Dereferenciar URIs. • Tratar dos redirecionamentos 303 requeridos pela arquitetura Web. • Negociação de conteúdo entre descrições de um mesmo recurso em diferentes formatos. http://dblp.l3s.de/d2r/resource/authors/Marco_A._Casanova http://dblp.l3s.de/d2r/page/authors/Marco_A._Casanova http://dblp.l3s.de/d2r/data/authors/Marco_A._Casanova
  • 53.
    Publicação de dadosde fontes RDF como Linked Data • Fontes de dados que adotam o modelo RDF são normalmente armazenadas em arquivo RDF ou RDF Store.
  • 54.
    Publicação de arquivosRDF como Linked Data • Simples • Usado para arquivos pequenos • RDF/XML ▫ Formato de serialização mais antigo e usado para publicação de Linked Data.
  • 55.
    Arquivo RDF noformato Turtle @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix : <http://lia.ufc.br/~regispires/researchers.rdf#> . # The <> (the empty URI) means "this document". <> a foaf:Document ; dc:title "Researchers file" . :ufc a foaf:Organization ; foaf:name "Universidade Federal do Ceará" . :vania a foaf:Person ; foaf:name "Vânia Maria Ponte Vidal" ; foaf:Organization :ufc ; rdfs:sameAs <http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal>
  • 56.
    Conversão de Turtlepara RDF/XML • Conversores on-line: ▫ Babel  http://simile.mit.edu/babel ▫ RDFConverter  http://www.mindswap.org/2002/rdfconvert/
  • 57.
    Arquivo RDF noformato RDF/XML <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema# xmlns:foaf=http://xmlns.com/foaf/0.1/ xmlns:dc=http://purl.org/dc/elements/1.1/ xmlns="http://lia.ufc.br/~regispires/researchers.rdf#"> <rdf:Description rdf:about=""> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Document"/> <dc:title>Researchers file</dc:title> </rdf:Description> <rdf:Description rdf:about="http://lia.ufc.br/~regispires/researchers.rdf#ufc"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Organization"/> <foaf:name>Universidade Federal do Ceará</foaf:name> </rdf:Description> <rdf:Description rdf:about="http://lia.ufc.br/~regispires/researchers.rdf#vania"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/> <foaf:name>Vânia Maria Ponte Vidal</foaf:name> <foaf:Organization rdf:resource="http://lia.ufc.br/~regispires/researchers.rdf#ufc"/> <rdfs:sameAs rdf:resource="http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal"/> </rdf:Description> </rdf:RDF>
  • 58.
    Interface Linked Data •Disponibilização de um arquivo RDF/XML: ▫ Possibilita o dereferenciamento de URIs ▫ Uso de RDF Links • Não resolve: ▫ Redirecionamentos 303 e a negociação de conteúdo. • Fornecimento de interface Linked Data através do serviço Pubby (http://www4.wiwiss.fu- berlin.de/pubby/)
  • 59.
    RDFa: RDF embutidoem documento Web • Textos e links legíveis ao ser humano coexistindo com dados que poderão ser processados pelas máquinas. • Alterações centralizadas em um único documento.
  • 60.
    <?xml version="1.0" encoding="UTF-8"?> RDFa <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> <html xml:lang="en" version="XHTML+RDFa 1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rs="http://lia.ufc.br/~regispires/researchers.rdf#" > <head> <title>Researchers</title> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <meta property="dc:title" content="Researchers file" /> <link rel="rdf:type" href="http://xmlns.com/foaf/0.1/Document" /> </head> <body> <h1>Organizations</h1> <ul> <li> <div about="http://lia.ufc.br/~regispires/researchers.rdf#ufc" typeof="foaf:Organization"> <span property="foaf:name">Universidade Federal do Ceará</span> </div> </li> </ul> <h1>Researchers</h1> <ul> <li> <div about="http://lia.ufc.br/~regispires/researchers.rdf#vania" typeof="foaf:Person"> <span property="foaf:name">Vânia Maria Ponte Vidal</span> <span rel="foaf:Organization" resource="http://lia.ufc.br/~regispires/researchers.rdf#ufc"></span> <span rel="rdfs:sameAs" resource="http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal"></span> </div> </li> </ul> </body> </html>
  • 61.
    Publicação de dadosde RDF Store como Linked Data • Tipicamente envolve: ▫ Disponibilização de interface Linked Data ▫ SPARQL Endpoint • Servidor Joseki ou Fuseki pode ser usado como SPARQL Endpoint de uma RDF Store. • Pubby pode prover a interface Linked Data. ▫ Realiza consulta SPARQL usando o comando DESCRIBE para obtenção do resultado em formato RDF.
  • 62.
    Publicação de dadosde fontes não RDF como Linked Data • Dados publicados devem estar no modelo RDF ou ser convertidos para ele. • Abordagens para lidar com dados não RDF: ▫ Processo de Conversão (abordagem materializada)  Gerar RDF através de algum conversor ▫ Fornecer uma visão RDF (abordagem virtualizada)  Acesso a dados que não estão no modelo RDF através de um RDF Wrapper  Conversão dinâmica baseada em mapeamentos estabelecidos entre o modelo nativo e o modelo RDF.
  • 63.
    RDB-to-RDF Wrappers • Criamvisões RDF a partir de mapeamentos entre as estruturas relacionais e os grafos RDF. ▫ Triplify ▫ Plataforma D2RQ ▫ Virtuoso RDF Views
  • 64.
    RDB-to-RDF Wrappers • Triplify ▫ Converte os resultados de consultas SQL em RDF, JSON e Linked Data. ▫ 3 bilhões de triplas do dataset LinkedGeoData foram geradas pelo Triplify.
  • 65.
    RDB-to-RDF Wrappers • Triplify ▫ Simples. Menos de 500 linhas de código. ▫ Na maioria das aplicações Web apenas um pequeno número de consultas (3 a 7) é suficiente para extrair as informações relevantes. ▫ Já possui configurações prontas para triplificar dados de várias aplicações Web populares (WordPress, Drupal, Joomla!, OSCommerce, phpBB, Gallery, etc.). Figura: http://triplify.org/About
  • 66.
    RDB-to-RDF Wrappers • Triplify– Arquivo de configuração ▫ Definição de consultas SQL com seleção dos dados que serão publicados.  A primeira coluna deve conter identificador para gerar URIs das instâncias.  Nomes de colunas serão usados para gerar URIs dos predicados.  Ex: SELECT id,name AS 'foaf:name' FROM users  Os resultados da consulta contêm valores ou referências para outras instâncias que serão usados para gerar as triplas resultantes.
  • 67.
    RDB-to-RDF Wrappers • PlataformaD2RQ ▫ Fornece a infra-estrutura necessária para acessar bancos de dados relacionais como grafos RDF virtuais. • Componentes ▫ Linguagem de mapeamento D2RQ ▫ Mecanismo D2RQ ▫ Servidor D2R
  • 68.
  • 69.
    RDB-to-RDF Wrappers • VirtuosoRDF Views ▫ Mapeia dados relacionais em RDF de forma dinâmica. ▫ Os mapeamentos são escritos em uma linguagem declarativa.
  • 70.
    Visão Comparativa Triplify D2R Server Virtuoso RDF Views Tecnologia PHP Java Middleware Solution SPARQL - Sim Sim Endpoint Linguagem de SQL RDF based RDF based Mapeamento Geração de Manual Semi-automático Manual mapeamento Escalabilidade Media – Alta Media Alta (Não SPARQL) Fonte: http://esw.w3.org/Rdb2RdfXG/StateOfTheArt
  • 71.
    RDB2RDF • Grupo detrabalho do W3C criado em 2009. • Definição da linguagem R2RML ▫ R2RML: RDB to RDF Mapping Language ▫ Mapeamento de dados e esquemas relacionais para RDF ▫ Tende a substituir as soluções de mapeamento já existentes. • Direct Mapping of Relational Data to RDF ▫ http://www.w3.org/TR/rdb-direct-mapping/ ▫ A partir de um banco de dados relacional, ele gera um grafo RDF (direct graph). ▫ Define uma transformação simples, servindo de base para transformações mais complexas. ▫ Provê um comportamento padrão para R2RML.
  • 72.
    Direct Mapping @base <http://foo.example/DB/> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <People/ID-7> rdf:type <People> . <People/ID-7> <People#ID> 7 . <People/ID-7> <People#fname> "Bob" . <People/ID-7> <People#addr> 18 . <People/ID-7> <People#ref-addr> <Addresses/ID-18> . <People/ID-8> rdf:type <People> . <People/ID-8> <People#ID> 8 . <People/ID-8> <People#fname> "Sue" . <Addresses/ID-18> rdf:type <Addresses> . <Addresses/ID-18> <Addresses#ID> 18 . <Addresses/ID-18> <Addresses#city> "Cambridge" . <Addresses/ID-18> <Addresses#state> "MA" . Fonte: http://www.w3.org/TR/rdb-direct-mapping/
  • 73.
    Processo StdTrip • Guiausuários durante os estágios de modelagem conceitual do processo RDB para RDF. • Busca identificar possíveis correspondências com vocabulários padrões existentes.
  • 74.
    Processo StdTrip • Conversão– transformação da estrutura do banco de dados relacional em uma ontologia RDF. • Alinhamento – obtenção de correspondências entre a ontologia obtida na conversão e um conjunto de vocabulários padrões. • Seleção - listas de possíveis correspondências são apresentadas para que o usuário selecione. • Inclusão – para elementos que o processo não obteve resultado, uma lista de possíveis correspondências de outros vocabulários é apresentada.
  • 75.
    Processo StdTrip • Complementação– Se nada funciona, usuários são direcionados às melhores práticas de publicação de vocabulários RDF. • Saída ▫ um arquivo de configuração que serve como a parametrização de uma ferramenta RDB para RDF. ▫ uma ontologia com os mapeamentos do esquema do banco de dados original para vocabulários RDF padrões.
  • 76.
    Melhores práticas parapublicação de Linked Data • Selecionar URIs adequadas ▫ Evitar URIs contendo algum detalhe de implementação ou do ambiente em que estão publicadas ▫ URIs relacionadas a um mesmo recurso  http://dblp.l3s.de/d2r/resource/V%C3%A2nia_Maria_Ponte_Vidal  http://dblp.l3s.de/d2r/page/V%C3%A2nia_Maria_Ponte_Vidal  http://dblp.l3s.de/d2r/data/V%C3%A2nia_Maria_Ponte_Vidal
  • 77.
    Melhores práticas parapublicação de Linked Data • Usar URIs dereferenciáveis. • Utilizar URIs estáveis. • Criar links para outras fontes de dados
  • 78.
    RDF Links entreDatasets 4th Linked Data on the Web Workshop (LDOW 2011).
  • 79.
    Melhores práticas parapublicação de Linked Data • Publicação de Metadados ▫ Facilita a seleção dos dados relevantes. ▫ Devem ser fornecidos metadados sobre proveniência e licenciamento dos dados. ▫ Também é recomendável a disponibilização de metadados sobre a fonte de dados.
  • 80.
    Suporte a Metadados Visualização de dados sobre um gene providos pelo Pubby. Inclui metadados de proveniência. Triplify, Pubby e D2R Server possuem suporte para metadados. Fonte: Integrating Provenance into the Web of Data Olaf Hartig and Jun Zhao
  • 81.
    Metadados de Licenciamentoe Proveniência • Somente 18 (9,05 %) das 207 fontes de dados fornecem informação de licença machine- readable. • Somente 50 (25.25 %) das fontes de dados fornecem informação de proveniência machine-readable.
  • 82.
    Melhores práticas parapublicação de Linked Data • Usar termos de vocabulários amplamente usados. ▫ Objetivo: facilitar o processamento de Linked Data pelas aplicações clientes • Novos termos só devem ser definidos se não forem encontrados em vocabulários já existentes
  • 83.
    Uso de vocabulárioscomuns 4th Linked Data on the Web Workshop (LDOW 2011).
  • 84.
    Melhores práticas parapublicação de Linked Data • Estabelecer relações entre os termos de vocabulários proprietários para termos de outros vocabulários. ▫ Uso das propriedades owl:equivalentClass, owl:equivalentProperty, rdfs:subClassOf, rdfs:subPropertyOf.
  • 85.
    Mapeamentos de Vocabulários •Somente 9 (7,32%) de 123 fontes de dados que usam termos proprietários fornecem mapeamentos de termos para outros vocabulários. • Exemplo: <http://xmlns.com/foaf/0.1/Person> owl:equivalentClass <http://dbpedia.org/ontology/Person> .
  • 86.
    Melhores práticas parapublicação de Linked Data • Explicitar formas de acesso adicional aos dados ▫ SPARQL endpoints e RDF dumps.
  • 87.
    Melhores práticas parapublicação de Linked Data • Estabelecer relações entre os termos de vocabulários proprietários para termos de outros vocabulários. ▫ Uso das propriedades owl:equivalentClass, owl:equivalentProperty, rdfs:subClassOf, rdfs:subPropertyOf.
  • 88.
    Validação dos dadospublicados como Linked Data • É necessário garantir que os dados realmente estão de acordo com os princípios e melhores práticas de Linked Data. • Ferramentas ▫ W3C Validation Service ▫ Eyeball ▫ cURL ▫ Vapour ▫ Sindice Web Data Inspector ▫ Navegadores RDF
  • 89.
  • 90.
    Consumo de LinkedData • Ponto de partida ▫ URIs ▫ Palavras-chave ▫ Consultas SPARQL • Tipos de Aplicações que consomem Linked Data ▫ Aplicações genéricas ▫ Aplicações de domínio específico
  • 91.
    Aplicações genéricas paraconsumo de Linked Data • Navegadores RDF • Mecanismos de Busca Linked Data • Outras aplicações genéricas
  • 92.
    Navegadores Linked Data  Permitem a navegação entre fontes de dados seguindo links expressos como triplas RDF.  LOD Browser Switch  Explorator  Disco Hiperdata Browser  Marbles  Tabulator  LinkSailor  Graphite RDF Browser
  • 93.
  • 94.
  • 95.
    Marbles  Pontos coloridos correlacionam a origem dos dados com uma lista de fontes de dados.
  • 96.
  • 97.
  • 98.
    Mecanismos de busca •Rastreiam a Web seguindo links RDF e possibilitam consultas sobre dados agregados.  Orientados a humanos – criados para usuários humanos.  Orientados a aplicações – fornecem APIs para descoberta de RDFs que referenciam certa URI o que possuem determinada palavra chave.
  • 99.
    Mecanismos de busca • Sindice • Sig.ma • VisiNav • Watson
  • 100.
  • 102.
    Outras aplicações genéricas •sameAs ▫ Serviço online de coreferenciamento ▫ Encontrar URIs de diferentes fontes de dados que representam um mesmo conceito • LDSpider ▫ Segue links para obter dados e os armazena em arquivo RDF ou em RDF Store através de SPARQL Update.
  • 103.
    Aplicações de domínioespecífico para consumo de Linked Data • Linked Data Mashups
  • 104.
    Aplicações de domínioespecífico  BBC Programmes e BBC Music
  • 105.
  • 106.
    Talis Aspire • Aplicaçãode gerenciamento de lista de recursos voltada para professores e estudantes.  Quando o usuário cria listas, a aplicação produz triplas RDF que são persistidas em um Linked Data store.  Itens de uma lista são transparentemente ligados (linked) a itens correspondentes de outras intituições.
  • 107.
    Semantic Web Pipes(SWP) Integração de dados sobre Tim Berners-Lee a partir de 3 fontes de dados
  • 110.
    Revyu  Avaliação / Classificação
  • 111.
    DBPedia Mobile • Exibe informações de diversas fontes (DBPedia, Revyu, Flickr), baseado na localização do usuário obtida por GPS.
  • 112.
    APIs para manipulaçãode Linked Data • Sesame • Jena • Named Graphs API for Jena (NG4J) • Semantic Web Client Library (SWClLib) • ARQ2
  • 113.
    Abordagens para execuçãode consultas sobre múltiplas fontes de dados • Abordagens Tradicionais ▫ Data warehousing ▫ Federação de consultas • Abordagens Inovadoras ▫ Descoberta ativa baseada em federação de consultas ▫ Consultas exploratórias (link traversal)
  • 114.
  • 115.
    Limitações e Desafios •Interfaces com o usuário precárias • Desempenho insatisfatório nas consultas sobre múltiplas fontes de dados. • Tornar mais transparente a integração de dados entre múltiplas fontes. • Instabilidade no acesso a fontes. • RDF Links quebrados. • Descoberta de fontes de dados relevantes. • Privacidade dos dados e restrições sobre eles. • Explicitar os direitos de cópia e reprodução sobre os dados.
  • 116.
    Limitações e Desafios •Mapeamento dos diversos vocabulários existentes. • Criação, edição e manutenção de Linked Data por vários usuários. • Manutenção de dados para evitar acesso a informações que não estejam mais disponíveis. • Detecção de inconsistências. • Determinar as informações mais relevantes, assim como detectar sua validade para melhorar a qualidade da informação.
  • 117.
  • 118.
    Conclusão  Potencial de revolucionar como os dados são acessados e usados.  Sucesso de mashups, mas dificuldade para usar muitas fontes de dados heterogêneas.  Linked Data permitem que aplicações usem fontes de dados sem limites através de mecanismos de acesso padronizados.  A intenção é aproveitar todo o potencial da Web
  • 119.
    Conclusão Slide from Tim Berners-Lee's TED talk in Feb 09
  • 120.
    Referências • Berners-Lee, T.(2006). Linked Data – Design Issues. http://www.w3.org/DesignIssues/LinkedData.html. • Bizer, C., Heath, T., and Berners-Lee, T. (2009). Linked Data - The Story So Far. Int. J. Semantic Web Inf. Syst., 5(3):1–22. Disponível em: http://tomheath.com/papers/bizer-heath-berners-lee- ijswis-linked-data.pdf • Bizer, C., Cyganiak, R., and Heath, T. (2007). How to Publish Linked Data on the Web. http://www4.wiwiss.fuberlin.de/bizer/pub/LinkedDataTutorial/. • Heath, T. and Bizer, C. (2011). Linked Data: Evolving the Web into a Global Data Space. Morgan & Claypool. • Langegger, A. (2010). A Flexible Architecture for Virtual Information Integration based on Semantic Web Concepts. PhD thesis, J. Kepler University Linz. • Linking Open Data Project Wiki. Disponível em: http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData • Intro Slides. 4th Linked Data on the Web Workshop (LDOW 2011). • Introduction to Linked Data Slides. Consuming Linked Data Tutorial. (LDOW 2010) • Prud’hommeaux, E. and Seaborne, A. (2008). SPARQL Query Language for RDF. http://www.w3.org/TR/rdf-sparql-query/. • Clark, K. G., Feigenbaum, L., and Torres, E. (2008). SPARQL Protocol for RDF. http://www.w3.org/TR/rdf-sparql-protocol/.
  • 121.
    Obrigado! Dúvidas, sugestões, comentários? https://groups.google.com/group/linked-data