SlideShare uma empresa Scribd logo
1 de 49
Rio de Janeiro, 5 de julho de 2013
Leonardo Souza
lsouza@amtera.com.br
Linked Data
● Conjunto de princípios, tecnologias e padrões da Web
para publicação, compartilhamento e reuso dos dados
em escala.
Motivação
● Explosão de informações. Nos dias de hoje encontramos facilmente
na web dados sobre o best seller mais vendido, previsão do tempo,
ingressos para o show do fim de semana, gastos do governo, dados
sobre pesquisas científicas, etc.
● Esses fatos nos remetem às seguintes questões:
– Como prover o reuso desses dados?
– Como descubro novos dados ou novas fontes?
– Como integrar essas fontes de dados distribuídas?
Histórico
● “Habemus Web”, Tim Berners-Lee criou a Web of Documents
– Sistema de documentos hipertexto interligados e
acessados através da internet. Esses documentos
podem conter textos, imagens, vídeos, recursos
multimídia em geral, nos quais os usuários podem
navegar através de hiperlinks.
● Deu origem a tecnologias essenciais da Web:
– Uniform Resource Locator (URL)
– HyperText Markup Language (HTML)
– HyperText Transfer Protocol (HTTP)
Estrutura
● Estrutura facilita o reuso. Quanto mais regular e definido for o
dado, mais fácil se torna a construção de ferramentas para
processamento automático.
● A linguagem HTML foi concebida para expressar a forma como
o dado é apresentado para o usuário. As aplicações precisam
de muito esforço para extrair o dado estruturado.
● Muitos sites são construídos a partir de dados estruturados
mas é muito difícil reconstruir a estrutura original do dado
através da página HTML.
Microformatos
● Os microformatos aliviam um pouco esse problema. São
metadados embutidos no HTML para dar significado as
entidades como pessoas, organizações, eventos, etc.
● Exemplo de uso do microformato hCard
<ul>
<li>Leonardo Souza</li>
<li>Amtera Semantic Technologies</li>
<li>+552198777081</li>
<li><a href="http://www.amtera.com.br">Site</a></li>
</ul>
<ul class=”vcard”>
<li class=”fn”>Leonardo Souza</li>
<li class=”org”>Amtera Semantic Technologies</li>
<li class=”tel”>+552198777081</li>
<li><a class=”url” href="http://www.amtera.com.br">Site</a></li>
</ul>
Microformatos
● Exemplo de uso do microformato geo:
The birds roosted at
<span class="geo">
<span class="latitude">52.48</span>,
<span class="longitude">-1.89</span>
</span>
● Outros microformatos: adr, geo, hCalendar, hAtom, hMedia,
hRecipe, hResume, etc;
● Microformatos são limitados. Em geral o vocabulário é
pequeno e não expressa bem as relações entre as entidades
descritas. Não são adequados para a publicação de dados em
geral.
Web API
● Dados publicados através de serviços web normalmente são
bem estruturados. O uso do protocolo HTTP é o padrão
utilizado;
● Empresas como a Amazon e Facebook expõem seus dados
através de serviços na web;
● Os formatos estruturados mais comuns são XML e JSON que
são suportados pela grande maioria das linguagens de
programação;
● Empresas como a Mashape facilitam a publicação e o acesso a
uma variedade de Web APIs em um marketplace;
● Com a explosão de APIs na web o número de aplicações que
integram várias fontes de dados (mashups) cresceu
rapidamente (ProgrammableWeb);
Web API
● A estruturação e padronização trazida pelas Web APIs são
benéficas mas demandam muito esforço de integração.
Hyperlinks
● As Web APIs trouxeram a estrutura necessária que facilita o
consumo dos dados de diferentes fontes, mas como ligamos os
dados de diferentes fontes?
● Documentos HTML referenciam outros documentos através do
elemento anchor que possui o atributo href. Esse é um padrão
da linguagem reconhecido pelos navegadores e que viabilizou
a web of documents;
● As Web APIs não possuem padrões equivalentes à âncora
HTML para ligar dados relacionados;
● Os identificadores disponibilizados através das Web APIs são
locais e não podem ser utilizados para ligar ou prover a
descoberta dos dados de forma global.
Rationale
● Documentos HTML não possuem a estrutura adequada para a
representação dos dados e seus relacionamentos;
● Os microformatos melhoram a representação dos dados
embutidos nos documentos HTML através de anotações
semânticas;
● Os microformatos possuem vocabulário limitado e não
representam adequadamente as relações.
● As Web APIs possuem estrutura adequada para a
representação dos dados;
● As Web APIs não possuem padrões equivalentes à âncora
HTML para ligar os dados relacionados e portanto não são
adequadas para a publicação e compartilhamento dos dados
de forma global.
Princípios Linked Data
● Proposto por Tim Berners-Lee [6]:
(1) Use URIs para dar nomes as coisas;
(2) Use HTTP URIs para que esses nomes possam ser
acessados;
(3) Quando uma URI é acessada, responda com dados
úteis, utilizando padrões da web;
(4) Inclua links para outras URIs para facilitar a
descoberta de novos dados;
Super Chave Primária
● A arquitetura Linked Data reutiliza a infraestrutura da web of documents e
os recursos identificados por uma HTTP URI podem ser pessoas, lugares,
eventos, relações, propriedades, documentos, etc;
● Entidades reais e conceitos do mundo são identificados universalmente,
temos uma super chave primária;
● As HTTP URIs não servem apenas como identificadores universais mas
também como o meio de acessar a informação que descreve o dado
identificado (dereference);
● http://dbpedia.org/resource/Tim_Berners-Lee
● O uso de HTTP URIs satisfaz os princípios 1 e 2;
Rotulando o mundo
RDF
● Dados publicados na Web devem seguir uma estrutura
padrão para permitir interoperabilidade entre as aplicações;
● Linked Data utiliza o modelo RDF [9] (Resource Description
Framework);
● RDF é um modelo de dados simples feito sob medida para a
arquitetura Web;
● RDF é uma recomendação W3C;
Modelo de dados RDF
● O modelo RDF representa o dado como uma série de enunciados
(statements) que descrevem recursos, tipicamente da web, na forma de
sujeito-predicado-objeto;
● Esses statements são chamados de triplas RDF;
● Uma coleção de triplas RDF podem ser visualizadas como um multigrafo
direcionado nomeado;
● Sujeito e predicado são sempre identificados por URIs;
● Objetos podem ou não ser identificados por URIs.
● Os predicados são representados por vocabulários que pode ser visto
como o schema do dado;
Vocabulários RDF
● Os vocabulários definem os conceitos e relações usados para
descrever um domínio ou área de conhecimento;
● Caracterizam os predicados que são usados para descrever os
dados e relações no modelo RDF;
● Vocabulários podem ser complexos com milhares de termos
(definições) ou bem simples com apenas dois termos;
● Vocabulários são representados pela linguagem RDF Schema.
RDF Schema - RDFS
● Conjunto de classes e propriedades, são elementos básicos para
construção dos vocabulários;
● RDF Schema está para o RDF assim como XML Schema está para o XML;
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">
<rdfs:Class rdf:ID="animal" />
<rdfs:Class rdf:ID="horse">
<rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>
</rdf:RDF>
Tripla RDF
● Exemplo:
– Tim Berners-Lee inventou a World Wide Web
sujeito predicado objeto
http://dbpedia.org/resource/Tim_Berners-Lee
http://dbpedia.org/property/inventor
http://dbpedia.org/resource/World_Wide_Web
Grafo RDF
Linking Open Data - LOD
● Projeto W3C iniciado em 2007 com o objetivo de ligar dados de
fontes públicas e abertas;
– Wikipedia
– Wikibooks
– Geonames
– MusicBrainz
– Wordnet
– DBLP
● Interliga 295 datasets;
● 31 bilhões de triplas RDF
● 504 milhões de links RDF;
LOD Cloud - 2007
LOD Cloud - 2008
LOD Cloud - 2009
LOD Cloud - 2010
LOD Cloud - 2011
Serializações RDF
● XML
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://www.w3.org/">
<dc:title>World Wide Web Consortium</dc:title>
</rdf:Description>
</rdf:RDF>
@prefix dc: <http://purl.org/dc/elements/1.1/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
<http://www.w3.org/> dc:title "World Wide Web Consortium".
● Notation 3 (N3)
Tipos de triplas RDF
● Literal: Representa strings, inteiros, datas. Tipicamente usado para
descrever as propriedades de uma entidade (sujeito);
– dbpedia:Tim_Berners-Lee dbpedia-owl:birthDate "1955-06-08"^^xsd:date ;
– dbpprop:placeOfBirth "London, England"@en ;
● Links: Descrevem as relações entre duas entidades. Nesse caso três
URIs estão envolvidas.
Links
● Links de relacionamentos: Conectam fontes de dados distribuídas, podem
ligar com dados internos ou externos, equivalem às âncoras HTML na
arquitetura tradicional da web;
<http://richard.cyganiak.de/foaf.rdf#cygri>
foaf:based_near <http://ws.geonames.org/rdf?geonameId=2950159> .
● Links de identidade: Múltiplas HTTP URIs podem referenciar o mesmo
objeto, entidade ou pessoa, isso é permitido e incentivado na Web of Data,
assim podemos ter informações ou visões complementares sobre um
mesmo recurso da web, nessa arquitetura o ponto central de falha deixa de
existir;
dbpedia:Tim_Berners-Lee
owl:sameAs <http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007> .
Links
● Links de vocabulários [10]: Descrevem os tipos de relacionamentos. Auxiliam na
integração de diferentes fontes de dados. Em Linked Data o esquema é a fusão
da definição dos termos de diferentes vocabulários;
– A publicação de novos dados deve, sempre que possível, reusar
vocabulários consolidados (Foaf, Basic Geo, Gene Ontology, MeSH);
– O autor da publicação é livre para criar seu próprio vocabulário, para tal,
a URI do termo definido deve ser dereferenciável, e sempre que
possível mapeando para vocabulários externos equivalentes
(owl:sameAs, owl:equivalentProperty, owl:equivalentClass).
“Dereferenciando” URIs
● Qualquer HTTP URI deve ser “dereferenciável”;
● O usuário deve obter uma representação do dado ao acessar a URI através
do protocolo HTTP.
● Não importa se a URI identifica um documento HTML ou um conceito,
pessoa ou lugar do mundo;
● Content Negotiation [7]. Humanos obtêm documentos HTML e máquinas
documentos RDF;
– Accept: text/html
– Accept: application/rdf+xml
● Estratégias:
– 303 URI
– Hash URI
303 URIs
● Infelizmente objetos reais não podem ser enviados através do
protocolo HTTP :(
● Ao invés de responder com o objeto real representado pela URI
o servidor HTTP responde o código 303 (see other [8]) que
indica a URI do documento que melhor descreve o objeto;
● O cliente faz uma segunda requisição HTTP para obter a
descrição do objeto;
Exemplo - 303 URIs
● Humano acessando http://dbpedia.org/resource/Tim_Berners-Lee
$ curl --verbose -H "Accept: text/html" -X GET "http://dbpedia.org/resource/Tim_Berners-Lee"
* About to connect() to dbpedia.org port 80 (#0)
* Trying 194.109.129.58... connected
> GET /resource/Tim_Berners-Lee HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23
librtmp/2.3
> Host: dbpedia.org
> Accept: text/html
>
< HTTP/1.1 303 See Other
< Date: Thu, 04 Jul 2013 00:51:15 GMT
< Content-Type: text/html; charset=UTF-8
< Content-Length: 0
< Connection: keep-alive
< Server: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 VDB
< Accept-Ranges: bytes
< Location: http://dbpedia.org/page/Tim_Berners-Lee
<
Exemplo - 303 URIs
● Máquina/agente acessando http://dbpedia.org/resource/Tim_Berners-Lee
$ curl --verbose -H "Accept: application/rdf+xml" -X GET "http://dbpedia.org/resource/Tim_Berners-Lee"
* About to connect() to dbpedia.org port 80 (#0)
* Trying 194.109.129.58... connected
> GET /resource/Tim_Berners-Lee HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: dbpedia.org
> Accept: application/rdf+xml
>
< HTTP/1.1 303 See Other
< Date: Thu, 04 Jul 2013 00:56:35 GMT
< Content-Type: application/rdf+xml; qs=0.95
< Content-Length: 0
< Connection: keep-alive
< Server: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 VDB
< Accept-Ranges: bytes
< TCN: choice
< Vary: negotiate,accept
< Link: <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/resource/Tim_Berners-Lee>;
rel="timegate"
< Location: http://dbpedia.org/data/Tim_Berners-Lee.xml
Hash URI
$ curl --verbose -H "Accept: application/rdf+xml" -X GET "http://www.w3.org/2000/01/rdf-schema#type"
<rdf:RDF
xmlns:dc="http://purl.org/dc/elements/1.1/">
<owl:Ontology
rdf:about="http://www.w3.org/2000/01/rdf-schema#"
dc:title="The RDF Schema vocabulary (RDFS)"/>
<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Resource">
<rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
<rdfs:label>Resource</rdfs:label>
<rdfs:comment>The class resource, everything.</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Class">
<rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
<rdfs:label>Class</rdfs:label>
<rdfs:comment>The class of classes.</rdfs:comment>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdfs:Class>
…snip….
303 x Hash
● 303 URIs
– Requer 2 requisições HTTP;
– Pode retornar apenas o documento que descreve o recurso, na
verdade a URI retornada pode apontar para qualquer coisa.
– Ideal para grandes base de dados, onde uma única descrição
para todos os objetos se tornaria impeditivo;
● Hash URIs
– Somente 1 requisição HTTP.
– A descrição de todos os recursos que compartilham a mesma
URI base são retornadas na requisição;
– Ideal para bases pequenas, tipicamente descrição de
vocabulários e ontologias, onde o cliente precisa da base inteira;
Hash URI
● Também é possível usar content negotiation com hash URIs;
Cool URIs
● É importante diferenciar o recurso web sendo descrito do documento web
que o descreve;
● http://www.example.com/id/alice
● Identifica Alice, a pessoa
● http://www.example.com/people/alice
● Página web da Alice
● http://www.example.com/data/alice
● Documento RDF que descreve Alice
<http://www.example.com/id/alice>
foaf:page <http://www.example.com/people/alice>;
rdfs:isDefinedBy <http://www.example.com/data/alice>;
a foaf:Person;
foaf:name "Alice";
foaf:mbox <mailto:alice@example.com>;
...
<html xmlns="http://www.w3.org/1999/xhtml"
lang="en">
<head>
<title>Alice's Homepage</title>
<link rel="alternate" type="application/rdf+xml"
title="RDF Representation"
href="http://www.example.com/data/alice" />
</head> ...
D2RServer
● Solução opensource para publicação de dados armazenados
em banco de dados relacional ;
● Suporte para Oracle, MySQL, PostgreSQL, SQL Server,
HSQLDB, Interbase/Firebird;
SPARQL
● SPARQL Protocol and RDF Query Language;
● Linguagem de consulta para recuperação e manipulação dos
dados armazenados como RDF;
● É uma recomendação do W3C;
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
?person a foaf:Person.
?person foaf:name ?name.
?person foaf:mbox ?email.
}
SPARQL (Exemplo)
● Consultando total de poços por operadora:
PREFIX amtera-owl: <http://data.amtera.com.br/anp/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT ?operadora count(DISTINCT ?poco)
WHERE {
?poco amtera-owl:Operadora ?operadora .
?poco amtera-owl:Bacia dbpedia:Campos_Basin .
}
GROUP BY ?operadora
Resultado
operadora callret-1
http://dbpedia.org/resource/Petrobras 1006
http://dbpedia.org/resource/Shell 17
http://dbpedia.org/resource/BP 15
http://data.amtera.com.br/anp/ontology/Ogx 19
http://dbpedia.org/resource/Texaco 2
http://dbpedia.org/resource/Anadarko_Petroleum_Corporation 5
http://dbpedia.org/resource/Statoil 7
http://dbpedia.org/resource/Total_S.A. 6
http://dbpedia.org/resource/Chevron_Corporation 7
http://dbpedia.org/resource/Repsol_YPF 2
http://dbpedia.org/resource/Queiroz_Galv%C3%A3o 1
http://dbpedia.org/resource/Unocal_Corporation 2
http://dbpedia.org/resource/Hess_Corporation 1
SPARQL (Exemplo)
● Consultando reponsável pela operadora;
● O join está sendo feito com um dataset externo, a dbpedia;
PREFIX amtera-owl: <http://data.amtera.com.br/anp/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?operadora ?leader
WHERE {
GRAPH <http://data.amtera.com.br/anp#> {
?poco amtera-owl:Operadora ?operadora .
}
SERVICE <http://dbpedia.org/sparql> {
?operadora dbpedia-owl:keyPerson ?leader .
}
}
Resultados
operadora leader
http://dbpedia.org/resource/Koch_Industries http://dbpedia.org/resource/Charles_G._Koch
http://dbpedia.org/resource/Koch_Industries http://dbpedia.org/resource/David_H._Koch
http://dbpedia.org/resource/Unocal_Corporation http://dbpedia.org/resource/Chairman
http://dbpedia.org/resource/Unocal_Corporation http://dbpedia.org/resource/Charles_R._Williamson
http://dbpedia.org/resource/BP http://dbpedia.org/resource/Bob_Dudley
http://dbpedia.org/resource/BP http://dbpedia.org/resource/Carl-Henric_Svanberg
http://dbpedia.org/resource/Total_S.A. http://dbpedia.org/resource/Chief_executive_officer
http://dbpedia.org/resource/Total_S.A. http://dbpedia.org/resource/Chief_financial_officer
http://dbpedia.org/resource/Total_S.A. http://dbpedia.org/resource/Christophe_de_Margerie
http://dbpedia.org/resource/Repsol_YPF http://dbpedia.org/resource/Chief_executive_officer
http://dbpedia.org/resource/Repsol_YPF http://dbpedia.org/resource/Chairman
http://dbpedia.org/resource/Chevron_Corporation http://dbpedia.org/resource/John_S._Watson_(Chevron)
http://dbpedia.org/resource/Queiroz_Galv%C3%A3o http://dbpedia.org/resource/Chief_executive_officer
http://dbpedia.org/resource/Anadarko_Petroleum_Corporation http://dbpedia.org/resource/President
http://dbpedia.org/resource/Anadarko_Petroleum_Corporation http://dbpedia.org/resource/Chairman
http://dbpedia.org/resource/Eni http://dbpedia.org/resource/Paolo_Scaroni
http://dbpedia.org/resource/Eni http://dbpedia.org/resource/Chairman
http://dbpedia.org/resource/Petrobras http://dbpedia.org/resource/Chief_financial_officer
http://dbpedia.org/resource/Petrobras http://dbpedia.org/resource/Maria_das_Gra%C3%A7as_Foster
http://dbpedia.org/resource/Statoil http://dbpedia.org/resource/Helge_Lund
http://dbpedia.org/resource/Statoil http://dbpedia.org/resource/Svein_Rennemo
http://dbpedia.org/resource/Galp_Energia http://dbpedia.org/resource/Chief_executive_officer
http://dbpedia.org/resource/Galp_Energia http://dbpedia.org/resource/Chairman
SPARQL (Exemplo)
PREFIX amtera-owl: <http://data.amtera.com.br/anp/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?operadora ?num_funcionarios
WHERE {
GRAPH <http://data.amtera.com.br/anp#> {
?poco amtera-owl:Operadora ?operadora .
}
SERVICE <http://dbpedia.org/sparql> {
?operadora dbpprop:numEmployees ?num_funcionarios
}
}
● Consultando número de funcionários por operadora, join externo com a
dbpedia;
Resultados
operadora nfuncionarios
http://dbpedia.org/resource/Koch_Industries 70000
http://dbpedia.org/resource/Unocal_Corporation 6400
http://dbpedia.org/resource/BP 79700
http://dbpedia.org/resource/Total_S.A. 92855
http://dbpedia.org/resource/Repsol_YPF 43300
http://dbpedia.org/resource/Chevron_Corporation 62000
http://dbpedia.org/resource/Queiroz_Galv%C3%A3o 30
http://dbpedia.org/resource/Anadarko_Petroleum_Corpo
ration
4400
http://dbpedia.org/resource/Eni 79940
http://dbpedia.org/resource/Hess_Corporation 11610
http://dbpedia.org/resource/Petrobras 80497
http://dbpedia.org/resource/Statoil 30340
http://dbpedia.org/resource/Galp_Energia 7310
http://dbpedia.org/resource/Wintershall ~1.700
● Obrigado. Dúvidas?
Referências
● [1] http://en.wikipedia.org/wiki/Linked_data
● [2] http://microformats.org/
● [3] http://www.mashape.com
● [4] http://programmableweb.com
● [5] http://en.wikipedia.org/wiki/World_Wide_Web
● [6] http://www.w3.org/DesignIssues/LinkedData.html
● [7] https://en.wikipedia.org/wiki/Content_negotiation
● [8] http://en.wikipedia.org/wiki/HTTP_303
● [9] http://en.wikipedia.org/wiki/Resource_Description_Framework
● [10] http://www.w3.org/standards/semanticweb/ontology
● [11] http://www.w3.org/TR/cooluris/
● [12] http://en.wikipedia.org/wiki/SPARQL
Linked Data - Princípios e Tecnologias para Publicação e Reuso de Dados na Web

Mais conteúdo relacionado

Mais procurados

Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Leandro Borges
 
Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)
Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)
Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)Marcos Santos
 
Interoperabilidade, metadados e outras coisitas mais
Interoperabilidade, metadados e outras coisitas maisInteroperabilidade, metadados e outras coisitas mais
Interoperabilidade, metadados e outras coisitas maisMarcos Luis Mori
 
Apresentacao kadu
Apresentacao kaduApresentacao kadu
Apresentacao kadukadu neves
 
Metadados
MetadadosMetadados
Metadadoslulinha
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dadossamlobo
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de DadosDaniel Brandão
 
Banco de Dados, Integração e Qualidade de Dados
Banco de Dados, Integração e Qualidade de DadosBanco de Dados, Integração e Qualidade de Dados
Banco de Dados, Integração e Qualidade de DadosCeça Moraes
 
Aula 01 introdução e conceitos
Aula 01   introdução e conceitosAula 01   introdução e conceitos
Aula 01 introdução e conceitosRoitier Gonçalves
 
Aula metadados 2012
Aula metadados 2012Aula metadados 2012
Aula metadados 2012rachelvesu
 

Mais procurados (14)

Integração de dados
Integração de dadosIntegração de dados
Integração de dados
 
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
 
Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)
Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)
Big, Open e Linked Data no caminho para a Web 3.0 (Web Semântica)
 
Metadados
MetadadosMetadados
Metadados
 
Interoperabilidade, metadados e outras coisitas mais
Interoperabilidade, metadados e outras coisitas maisInteroperabilidade, metadados e outras coisitas mais
Interoperabilidade, metadados e outras coisitas mais
 
Metadados
MetadadosMetadados
Metadados
 
Apresentacao kadu
Apresentacao kaduApresentacao kadu
Apresentacao kadu
 
Metadados
MetadadosMetadados
Metadados
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
Banco de Dados, Integração e Qualidade de Dados
Banco de Dados, Integração e Qualidade de DadosBanco de Dados, Integração e Qualidade de Dados
Banco de Dados, Integração e Qualidade de Dados
 
Aula 01 introdução e conceitos
Aula 01   introdução e conceitosAula 01   introdução e conceitos
Aula 01 introdução e conceitos
 
Aula metadados 2012
Aula metadados 2012Aula metadados 2012
Aula metadados 2012
 
Banco de dados aula1
Banco de dados aula1Banco de dados aula1
Banco de dados aula1
 

Destaque

Crise Subprime 171008
Crise Subprime 171008Crise Subprime 171008
Crise Subprime 171008guest55f91d
 
Trust Industry Report - Serviços Financeiros
Trust Industry Report - Serviços FinanceirosTrust Industry Report - Serviços Financeiros
Trust Industry Report - Serviços FinanceirosGCI
 
Acoi Expert Network Quarterly Q1 2013
Acoi Expert Network Quarterly Q1 2013Acoi Expert Network Quarterly Q1 2013
Acoi Expert Network Quarterly Q1 2013Fernando Moura
 
Relatório anual 2008_port
Relatório anual 2008_portRelatório anual 2008_port
Relatório anual 2008_portPetrobras
 
Crimes digitais -_prof._wilfredo_1
Crimes digitais -_prof._wilfredo_1Crimes digitais -_prof._wilfredo_1
Crimes digitais -_prof._wilfredo_1paulovtrombetta
 

Destaque (8)

Crise Subprime 171008
Crise Subprime 171008Crise Subprime 171008
Crise Subprime 171008
 
Trust Industry Report - Serviços Financeiros
Trust Industry Report - Serviços FinanceirosTrust Industry Report - Serviços Financeiros
Trust Industry Report - Serviços Financeiros
 
Acoi Expert Network Quarterly Q1 2013
Acoi Expert Network Quarterly Q1 2013Acoi Expert Network Quarterly Q1 2013
Acoi Expert Network Quarterly Q1 2013
 
Relatório anual 2008_port
Relatório anual 2008_portRelatório anual 2008_port
Relatório anual 2008_port
 
Estudo de caso wal mart
Estudo de caso wal martEstudo de caso wal mart
Estudo de caso wal mart
 
Crimes digitais -_prof._wilfredo_1
Crimes digitais -_prof._wilfredo_1Crimes digitais -_prof._wilfredo_1
Crimes digitais -_prof._wilfredo_1
 
Empresas
EmpresasEmpresas
Empresas
 
Informe misión comercial bric a china
Informe misión comercial bric a chinaInforme misión comercial bric a china
Informe misión comercial bric a china
 

Semelhante a Linked Data - Princípios e Tecnologias para Publicação e Reuso de Dados na Web

Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Regis Magalhães
 
Web 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na RedeWeb 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na RedeElvis Fusco
 
Descrição de recursos em wikis semânticos
Descrição de recursos em wikis semânticosDescrição de recursos em wikis semânticos
Descrição de recursos em wikis semânticosJaider Andrade Ferreira
 
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...Renato Bongiorno Bonfanti
 
Interoperabilidade dados abertos
Interoperabilidade dados abertosInteroperabilidade dados abertos
Interoperabilidade dados abertosLeonardo Cezar
 
Introdução a modelagem de dados parte II - Banco de Dados
Introdução a modelagem de dados parte II - Banco de DadosIntrodução a modelagem de dados parte II - Banco de Dados
Introdução a modelagem de dados parte II - Banco de Dadosinfo_cimol
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoDaniel Brandão
 
Anotacao Semântica em Documentos Não Estruturados
Anotacao Semântica em Documentos Não EstruturadosAnotacao Semântica em Documentos Não Estruturados
Anotacao Semântica em Documentos Não EstruturadosCelso Fontes
 
Web Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPWeb Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPTalita Pagani
 
Web Semântica e Ontologias
Web Semântica e OntologiasWeb Semântica e Ontologias
Web Semântica e OntologiasDaniela Brauner
 
Anotação Semântica de Conteúdo Web Utilizando Microformatos e RDFa
Anotação Semântica de Conteúdo Web Utilizando Microformatos e RDFaAnotação Semântica de Conteúdo Web Utilizando Microformatos e RDFa
Anotação Semântica de Conteúdo Web Utilizando Microformatos e RDFaLuiz Matos
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Apresentação linked data
Apresentação linked dataApresentação linked data
Apresentação linked dataUmberto Diniz
 

Semelhante a Linked Data - Princípios e Tecnologias para Publicação e Reuso de Dados na Web (20)

Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 
Web 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na RedeWeb 3.0 - A Semântica na Rede
Web 3.0 - A Semântica na Rede
 
Descrição de recursos em wikis semânticos
Descrição de recursos em wikis semânticosDescrição de recursos em wikis semânticos
Descrição de recursos em wikis semânticos
 
Web 3 - A Web de Dados
Web 3 - A Web de DadosWeb 3 - A Web de Dados
Web 3 - A Web de Dados
 
WEB 3.0
WEB 3.0WEB 3.0
WEB 3.0
 
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
Microformats e Web Semântica, transformando seu site para web 3.0 - Road Show...
 
Web Semântica
Web SemânticaWeb Semântica
Web Semântica
 
Interoperabilidade dados abertos
Interoperabilidade dados abertosInteroperabilidade dados abertos
Interoperabilidade dados abertos
 
Web x.0 rdf
Web x.0 rdfWeb x.0 rdf
Web x.0 rdf
 
Metadados com XML
Metadados com XMLMetadados com XML
Metadados com XML
 
Cliente Servidor
Cliente ServidorCliente Servidor
Cliente Servidor
 
Introdução a modelagem de dados parte II - Banco de Dados
Introdução a modelagem de dados parte II - Banco de DadosIntrodução a modelagem de dados parte II - Banco de Dados
Introdução a modelagem de dados parte II - Banco de Dados
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel Brandão
 
Anotacao Semântica em Documentos Não Estruturados
Anotacao Semântica em Documentos Não EstruturadosAnotacao Semântica em Documentos Não Estruturados
Anotacao Semântica em Documentos Não Estruturados
 
Web Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPWeb Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SP
 
Web Semântica e Ontologias
Web Semântica e OntologiasWeb Semântica e Ontologias
Web Semântica e Ontologias
 
Sobre o HTML
Sobre o HTMLSobre o HTML
Sobre o HTML
 
Anotação Semântica de Conteúdo Web Utilizando Microformatos e RDFa
Anotação Semântica de Conteúdo Web Utilizando Microformatos e RDFaAnotação Semântica de Conteúdo Web Utilizando Microformatos e RDFa
Anotação Semântica de Conteúdo Web Utilizando Microformatos e RDFa
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Apresentação linked data
Apresentação linked dataApresentação linked data
Apresentação linked data
 

Linked Data - Princípios e Tecnologias para Publicação e Reuso de Dados na Web

  • 1. Rio de Janeiro, 5 de julho de 2013 Leonardo Souza lsouza@amtera.com.br
  • 2. Linked Data ● Conjunto de princípios, tecnologias e padrões da Web para publicação, compartilhamento e reuso dos dados em escala.
  • 3. Motivação ● Explosão de informações. Nos dias de hoje encontramos facilmente na web dados sobre o best seller mais vendido, previsão do tempo, ingressos para o show do fim de semana, gastos do governo, dados sobre pesquisas científicas, etc. ● Esses fatos nos remetem às seguintes questões: – Como prover o reuso desses dados? – Como descubro novos dados ou novas fontes? – Como integrar essas fontes de dados distribuídas?
  • 4. Histórico ● “Habemus Web”, Tim Berners-Lee criou a Web of Documents – Sistema de documentos hipertexto interligados e acessados através da internet. Esses documentos podem conter textos, imagens, vídeos, recursos multimídia em geral, nos quais os usuários podem navegar através de hiperlinks. ● Deu origem a tecnologias essenciais da Web: – Uniform Resource Locator (URL) – HyperText Markup Language (HTML) – HyperText Transfer Protocol (HTTP)
  • 5. Estrutura ● Estrutura facilita o reuso. Quanto mais regular e definido for o dado, mais fácil se torna a construção de ferramentas para processamento automático. ● A linguagem HTML foi concebida para expressar a forma como o dado é apresentado para o usuário. As aplicações precisam de muito esforço para extrair o dado estruturado. ● Muitos sites são construídos a partir de dados estruturados mas é muito difícil reconstruir a estrutura original do dado através da página HTML.
  • 6. Microformatos ● Os microformatos aliviam um pouco esse problema. São metadados embutidos no HTML para dar significado as entidades como pessoas, organizações, eventos, etc. ● Exemplo de uso do microformato hCard <ul> <li>Leonardo Souza</li> <li>Amtera Semantic Technologies</li> <li>+552198777081</li> <li><a href="http://www.amtera.com.br">Site</a></li> </ul> <ul class=”vcard”> <li class=”fn”>Leonardo Souza</li> <li class=”org”>Amtera Semantic Technologies</li> <li class=”tel”>+552198777081</li> <li><a class=”url” href="http://www.amtera.com.br">Site</a></li> </ul>
  • 7. Microformatos ● Exemplo de uso do microformato geo: The birds roosted at <span class="geo"> <span class="latitude">52.48</span>, <span class="longitude">-1.89</span> </span> ● Outros microformatos: adr, geo, hCalendar, hAtom, hMedia, hRecipe, hResume, etc; ● Microformatos são limitados. Em geral o vocabulário é pequeno e não expressa bem as relações entre as entidades descritas. Não são adequados para a publicação de dados em geral.
  • 8. Web API ● Dados publicados através de serviços web normalmente são bem estruturados. O uso do protocolo HTTP é o padrão utilizado; ● Empresas como a Amazon e Facebook expõem seus dados através de serviços na web; ● Os formatos estruturados mais comuns são XML e JSON que são suportados pela grande maioria das linguagens de programação; ● Empresas como a Mashape facilitam a publicação e o acesso a uma variedade de Web APIs em um marketplace; ● Com a explosão de APIs na web o número de aplicações que integram várias fontes de dados (mashups) cresceu rapidamente (ProgrammableWeb);
  • 9. Web API ● A estruturação e padronização trazida pelas Web APIs são benéficas mas demandam muito esforço de integração.
  • 10. Hyperlinks ● As Web APIs trouxeram a estrutura necessária que facilita o consumo dos dados de diferentes fontes, mas como ligamos os dados de diferentes fontes? ● Documentos HTML referenciam outros documentos através do elemento anchor que possui o atributo href. Esse é um padrão da linguagem reconhecido pelos navegadores e que viabilizou a web of documents; ● As Web APIs não possuem padrões equivalentes à âncora HTML para ligar dados relacionados; ● Os identificadores disponibilizados através das Web APIs são locais e não podem ser utilizados para ligar ou prover a descoberta dos dados de forma global.
  • 11. Rationale ● Documentos HTML não possuem a estrutura adequada para a representação dos dados e seus relacionamentos; ● Os microformatos melhoram a representação dos dados embutidos nos documentos HTML através de anotações semânticas; ● Os microformatos possuem vocabulário limitado e não representam adequadamente as relações. ● As Web APIs possuem estrutura adequada para a representação dos dados; ● As Web APIs não possuem padrões equivalentes à âncora HTML para ligar os dados relacionados e portanto não são adequadas para a publicação e compartilhamento dos dados de forma global.
  • 12. Princípios Linked Data ● Proposto por Tim Berners-Lee [6]: (1) Use URIs para dar nomes as coisas; (2) Use HTTP URIs para que esses nomes possam ser acessados; (3) Quando uma URI é acessada, responda com dados úteis, utilizando padrões da web; (4) Inclua links para outras URIs para facilitar a descoberta de novos dados;
  • 13. Super Chave Primária ● A arquitetura Linked Data reutiliza a infraestrutura da web of documents e os recursos identificados por uma HTTP URI podem ser pessoas, lugares, eventos, relações, propriedades, documentos, etc; ● Entidades reais e conceitos do mundo são identificados universalmente, temos uma super chave primária; ● As HTTP URIs não servem apenas como identificadores universais mas também como o meio de acessar a informação que descreve o dado identificado (dereference); ● http://dbpedia.org/resource/Tim_Berners-Lee ● O uso de HTTP URIs satisfaz os princípios 1 e 2;
  • 15. RDF ● Dados publicados na Web devem seguir uma estrutura padrão para permitir interoperabilidade entre as aplicações; ● Linked Data utiliza o modelo RDF [9] (Resource Description Framework); ● RDF é um modelo de dados simples feito sob medida para a arquitetura Web; ● RDF é uma recomendação W3C;
  • 16. Modelo de dados RDF ● O modelo RDF representa o dado como uma série de enunciados (statements) que descrevem recursos, tipicamente da web, na forma de sujeito-predicado-objeto; ● Esses statements são chamados de triplas RDF; ● Uma coleção de triplas RDF podem ser visualizadas como um multigrafo direcionado nomeado; ● Sujeito e predicado são sempre identificados por URIs; ● Objetos podem ou não ser identificados por URIs. ● Os predicados são representados por vocabulários que pode ser visto como o schema do dado;
  • 17. Vocabulários RDF ● Os vocabulários definem os conceitos e relações usados para descrever um domínio ou área de conhecimento; ● Caracterizam os predicados que são usados para descrever os dados e relações no modelo RDF; ● Vocabulários podem ser complexos com milhares de termos (definições) ou bem simples com apenas dois termos; ● Vocabulários são representados pela linguagem RDF Schema.
  • 18. RDF Schema - RDFS ● Conjunto de classes e propriedades, são elementos básicos para construção dos vocabulários; ● RDF Schema está para o RDF assim como XML Schema está para o XML; <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.animals.fake/animals#"> <rdfs:Class rdf:ID="animal" /> <rdfs:Class rdf:ID="horse"> <rdfs:subClassOf rdf:resource="#animal"/> </rdfs:Class> </rdf:RDF>
  • 19. Tripla RDF ● Exemplo: – Tim Berners-Lee inventou a World Wide Web sujeito predicado objeto http://dbpedia.org/resource/Tim_Berners-Lee http://dbpedia.org/property/inventor http://dbpedia.org/resource/World_Wide_Web
  • 21. Linking Open Data - LOD ● Projeto W3C iniciado em 2007 com o objetivo de ligar dados de fontes públicas e abertas; – Wikipedia – Wikibooks – Geonames – MusicBrainz – Wordnet – DBLP ● Interliga 295 datasets; ● 31 bilhões de triplas RDF ● 504 milhões de links RDF;
  • 22. LOD Cloud - 2007
  • 23. LOD Cloud - 2008
  • 24. LOD Cloud - 2009
  • 25. LOD Cloud - 2010
  • 26. LOD Cloud - 2011
  • 27. Serializações RDF ● XML <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.w3.org/"> <dc:title>World Wide Web Consortium</dc:title> </rdf:Description> </rdf:RDF> @prefix dc: <http://purl.org/dc/elements/1.1/>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. <http://www.w3.org/> dc:title "World Wide Web Consortium". ● Notation 3 (N3)
  • 28. Tipos de triplas RDF ● Literal: Representa strings, inteiros, datas. Tipicamente usado para descrever as propriedades de uma entidade (sujeito); – dbpedia:Tim_Berners-Lee dbpedia-owl:birthDate "1955-06-08"^^xsd:date ; – dbpprop:placeOfBirth "London, England"@en ; ● Links: Descrevem as relações entre duas entidades. Nesse caso três URIs estão envolvidas.
  • 29. Links ● Links de relacionamentos: Conectam fontes de dados distribuídas, podem ligar com dados internos ou externos, equivalem às âncoras HTML na arquitetura tradicional da web; <http://richard.cyganiak.de/foaf.rdf#cygri> foaf:based_near <http://ws.geonames.org/rdf?geonameId=2950159> . ● Links de identidade: Múltiplas HTTP URIs podem referenciar o mesmo objeto, entidade ou pessoa, isso é permitido e incentivado na Web of Data, assim podemos ter informações ou visões complementares sobre um mesmo recurso da web, nessa arquitetura o ponto central de falha deixa de existir; dbpedia:Tim_Berners-Lee owl:sameAs <http://www4.wiwiss.fu-berlin.de/dblp/resource/person/100007> .
  • 30. Links ● Links de vocabulários [10]: Descrevem os tipos de relacionamentos. Auxiliam na integração de diferentes fontes de dados. Em Linked Data o esquema é a fusão da definição dos termos de diferentes vocabulários; – A publicação de novos dados deve, sempre que possível, reusar vocabulários consolidados (Foaf, Basic Geo, Gene Ontology, MeSH); – O autor da publicação é livre para criar seu próprio vocabulário, para tal, a URI do termo definido deve ser dereferenciável, e sempre que possível mapeando para vocabulários externos equivalentes (owl:sameAs, owl:equivalentProperty, owl:equivalentClass).
  • 31. “Dereferenciando” URIs ● Qualquer HTTP URI deve ser “dereferenciável”; ● O usuário deve obter uma representação do dado ao acessar a URI através do protocolo HTTP. ● Não importa se a URI identifica um documento HTML ou um conceito, pessoa ou lugar do mundo; ● Content Negotiation [7]. Humanos obtêm documentos HTML e máquinas documentos RDF; – Accept: text/html – Accept: application/rdf+xml ● Estratégias: – 303 URI – Hash URI
  • 32. 303 URIs ● Infelizmente objetos reais não podem ser enviados através do protocolo HTTP :( ● Ao invés de responder com o objeto real representado pela URI o servidor HTTP responde o código 303 (see other [8]) que indica a URI do documento que melhor descreve o objeto; ● O cliente faz uma segunda requisição HTTP para obter a descrição do objeto;
  • 33. Exemplo - 303 URIs ● Humano acessando http://dbpedia.org/resource/Tim_Berners-Lee $ curl --verbose -H "Accept: text/html" -X GET "http://dbpedia.org/resource/Tim_Berners-Lee" * About to connect() to dbpedia.org port 80 (#0) * Trying 194.109.129.58... connected > GET /resource/Tim_Berners-Lee HTTP/1.1 > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 > Host: dbpedia.org > Accept: text/html > < HTTP/1.1 303 See Other < Date: Thu, 04 Jul 2013 00:51:15 GMT < Content-Type: text/html; charset=UTF-8 < Content-Length: 0 < Connection: keep-alive < Server: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 VDB < Accept-Ranges: bytes < Location: http://dbpedia.org/page/Tim_Berners-Lee <
  • 34. Exemplo - 303 URIs ● Máquina/agente acessando http://dbpedia.org/resource/Tim_Berners-Lee $ curl --verbose -H "Accept: application/rdf+xml" -X GET "http://dbpedia.org/resource/Tim_Berners-Lee" * About to connect() to dbpedia.org port 80 (#0) * Trying 194.109.129.58... connected > GET /resource/Tim_Berners-Lee HTTP/1.1 > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 > Host: dbpedia.org > Accept: application/rdf+xml > < HTTP/1.1 303 See Other < Date: Thu, 04 Jul 2013 00:56:35 GMT < Content-Type: application/rdf+xml; qs=0.95 < Content-Length: 0 < Connection: keep-alive < Server: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 VDB < Accept-Ranges: bytes < TCN: choice < Vary: negotiate,accept < Link: <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/resource/Tim_Berners-Lee>; rel="timegate" < Location: http://dbpedia.org/data/Tim_Berners-Lee.xml
  • 35. Hash URI $ curl --verbose -H "Accept: application/rdf+xml" -X GET "http://www.w3.org/2000/01/rdf-schema#type" <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"> <owl:Ontology rdf:about="http://www.w3.org/2000/01/rdf-schema#" dc:title="The RDF Schema vocabulary (RDFS)"/> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Resource"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>Resource</rdfs:label> <rdfs:comment>The class resource, everything.</rdfs:comment> </rdfs:Class> <rdfs:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Class"> <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> <rdfs:label>Class</rdfs:label> <rdfs:comment>The class of classes.</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdfs:Class> …snip….
  • 36. 303 x Hash ● 303 URIs – Requer 2 requisições HTTP; – Pode retornar apenas o documento que descreve o recurso, na verdade a URI retornada pode apontar para qualquer coisa. – Ideal para grandes base de dados, onde uma única descrição para todos os objetos se tornaria impeditivo; ● Hash URIs – Somente 1 requisição HTTP. – A descrição de todos os recursos que compartilham a mesma URI base são retornadas na requisição; – Ideal para bases pequenas, tipicamente descrição de vocabulários e ontologias, onde o cliente precisa da base inteira;
  • 37. Hash URI ● Também é possível usar content negotiation com hash URIs;
  • 38. Cool URIs ● É importante diferenciar o recurso web sendo descrito do documento web que o descreve; ● http://www.example.com/id/alice ● Identifica Alice, a pessoa ● http://www.example.com/people/alice ● Página web da Alice ● http://www.example.com/data/alice ● Documento RDF que descreve Alice <http://www.example.com/id/alice> foaf:page <http://www.example.com/people/alice>; rdfs:isDefinedBy <http://www.example.com/data/alice>; a foaf:Person; foaf:name "Alice"; foaf:mbox <mailto:alice@example.com>; ... <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <title>Alice's Homepage</title> <link rel="alternate" type="application/rdf+xml" title="RDF Representation" href="http://www.example.com/data/alice" /> </head> ...
  • 39. D2RServer ● Solução opensource para publicação de dados armazenados em banco de dados relacional ; ● Suporte para Oracle, MySQL, PostgreSQL, SQL Server, HSQLDB, Interbase/Firebird;
  • 40. SPARQL ● SPARQL Protocol and RDF Query Language; ● Linguagem de consulta para recuperação e manipulação dos dados armazenados como RDF; ● É uma recomendação do W3C; PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?email WHERE { ?person a foaf:Person. ?person foaf:name ?name. ?person foaf:mbox ?email. }
  • 41. SPARQL (Exemplo) ● Consultando total de poços por operadora: PREFIX amtera-owl: <http://data.amtera.com.br/anp/ontology/> PREFIX dbpprop: <http://dbpedia.org/property/> PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX dbpedia: <http://dbpedia.org/resource/> SELECT ?operadora count(DISTINCT ?poco) WHERE { ?poco amtera-owl:Operadora ?operadora . ?poco amtera-owl:Bacia dbpedia:Campos_Basin . } GROUP BY ?operadora
  • 42. Resultado operadora callret-1 http://dbpedia.org/resource/Petrobras 1006 http://dbpedia.org/resource/Shell 17 http://dbpedia.org/resource/BP 15 http://data.amtera.com.br/anp/ontology/Ogx 19 http://dbpedia.org/resource/Texaco 2 http://dbpedia.org/resource/Anadarko_Petroleum_Corporation 5 http://dbpedia.org/resource/Statoil 7 http://dbpedia.org/resource/Total_S.A. 6 http://dbpedia.org/resource/Chevron_Corporation 7 http://dbpedia.org/resource/Repsol_YPF 2 http://dbpedia.org/resource/Queiroz_Galv%C3%A3o 1 http://dbpedia.org/resource/Unocal_Corporation 2 http://dbpedia.org/resource/Hess_Corporation 1
  • 43. SPARQL (Exemplo) ● Consultando reponsável pela operadora; ● O join está sendo feito com um dataset externo, a dbpedia; PREFIX amtera-owl: <http://data.amtera.com.br/anp/ontology/> PREFIX dbpprop: <http://dbpedia.org/property/> PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> SELECT DISTINCT ?operadora ?leader WHERE { GRAPH <http://data.amtera.com.br/anp#> { ?poco amtera-owl:Operadora ?operadora . } SERVICE <http://dbpedia.org/sparql> { ?operadora dbpedia-owl:keyPerson ?leader . } }
  • 44. Resultados operadora leader http://dbpedia.org/resource/Koch_Industries http://dbpedia.org/resource/Charles_G._Koch http://dbpedia.org/resource/Koch_Industries http://dbpedia.org/resource/David_H._Koch http://dbpedia.org/resource/Unocal_Corporation http://dbpedia.org/resource/Chairman http://dbpedia.org/resource/Unocal_Corporation http://dbpedia.org/resource/Charles_R._Williamson http://dbpedia.org/resource/BP http://dbpedia.org/resource/Bob_Dudley http://dbpedia.org/resource/BP http://dbpedia.org/resource/Carl-Henric_Svanberg http://dbpedia.org/resource/Total_S.A. http://dbpedia.org/resource/Chief_executive_officer http://dbpedia.org/resource/Total_S.A. http://dbpedia.org/resource/Chief_financial_officer http://dbpedia.org/resource/Total_S.A. http://dbpedia.org/resource/Christophe_de_Margerie http://dbpedia.org/resource/Repsol_YPF http://dbpedia.org/resource/Chief_executive_officer http://dbpedia.org/resource/Repsol_YPF http://dbpedia.org/resource/Chairman http://dbpedia.org/resource/Chevron_Corporation http://dbpedia.org/resource/John_S._Watson_(Chevron) http://dbpedia.org/resource/Queiroz_Galv%C3%A3o http://dbpedia.org/resource/Chief_executive_officer http://dbpedia.org/resource/Anadarko_Petroleum_Corporation http://dbpedia.org/resource/President http://dbpedia.org/resource/Anadarko_Petroleum_Corporation http://dbpedia.org/resource/Chairman http://dbpedia.org/resource/Eni http://dbpedia.org/resource/Paolo_Scaroni http://dbpedia.org/resource/Eni http://dbpedia.org/resource/Chairman http://dbpedia.org/resource/Petrobras http://dbpedia.org/resource/Chief_financial_officer http://dbpedia.org/resource/Petrobras http://dbpedia.org/resource/Maria_das_Gra%C3%A7as_Foster http://dbpedia.org/resource/Statoil http://dbpedia.org/resource/Helge_Lund http://dbpedia.org/resource/Statoil http://dbpedia.org/resource/Svein_Rennemo http://dbpedia.org/resource/Galp_Energia http://dbpedia.org/resource/Chief_executive_officer http://dbpedia.org/resource/Galp_Energia http://dbpedia.org/resource/Chairman
  • 45. SPARQL (Exemplo) PREFIX amtera-owl: <http://data.amtera.com.br/anp/ontology/> PREFIX dbpprop: <http://dbpedia.org/property/> PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> SELECT DISTINCT ?operadora ?num_funcionarios WHERE { GRAPH <http://data.amtera.com.br/anp#> { ?poco amtera-owl:Operadora ?operadora . } SERVICE <http://dbpedia.org/sparql> { ?operadora dbpprop:numEmployees ?num_funcionarios } } ● Consultando número de funcionários por operadora, join externo com a dbpedia;
  • 46. Resultados operadora nfuncionarios http://dbpedia.org/resource/Koch_Industries 70000 http://dbpedia.org/resource/Unocal_Corporation 6400 http://dbpedia.org/resource/BP 79700 http://dbpedia.org/resource/Total_S.A. 92855 http://dbpedia.org/resource/Repsol_YPF 43300 http://dbpedia.org/resource/Chevron_Corporation 62000 http://dbpedia.org/resource/Queiroz_Galv%C3%A3o 30 http://dbpedia.org/resource/Anadarko_Petroleum_Corpo ration 4400 http://dbpedia.org/resource/Eni 79940 http://dbpedia.org/resource/Hess_Corporation 11610 http://dbpedia.org/resource/Petrobras 80497 http://dbpedia.org/resource/Statoil 30340 http://dbpedia.org/resource/Galp_Energia 7310 http://dbpedia.org/resource/Wintershall ~1.700
  • 48. Referências ● [1] http://en.wikipedia.org/wiki/Linked_data ● [2] http://microformats.org/ ● [3] http://www.mashape.com ● [4] http://programmableweb.com ● [5] http://en.wikipedia.org/wiki/World_Wide_Web ● [6] http://www.w3.org/DesignIssues/LinkedData.html ● [7] https://en.wikipedia.org/wiki/Content_negotiation ● [8] http://en.wikipedia.org/wiki/HTTP_303 ● [9] http://en.wikipedia.org/wiki/Resource_Description_Framework ● [10] http://www.w3.org/standards/semanticweb/ontology ● [11] http://www.w3.org/TR/cooluris/ ● [12] http://en.wikipedia.org/wiki/SPARQL