palestra introdução a linked data

Download Palestra Introdução a Linked Data

If you can't read please download the document

Upload: amtera-semantic-systems

Post on 16-Apr-2017

572 views

Category:

Documents


2 download

TRANSCRIPT

Rio de Janeiro, 5 de julho de 2013

Leonardo [email protected]

Linked Data

Conjunto de princpios, tecnologias e padres da Web para publicao, compartilhamento e reuso dos dados em escala.

Motivao

Exploso de informaes. Nos dias de hoje encontramos facilmente na web dados sobre o best seller mais vendido, previso do tempo, ingressos para o show do fim de semana, gastos do governo, dados sobre pesquisas cientficas, etc.

Esses fatos nos remetem s seguintes questes:Como prover o reuso desses dados?

Como descubro novos dados ou novas fontes?

Como integrar essas fontes de dados distribudas?

Histrico

Habemus Web, Tim Berners-Lee criou a Web of DocumentsSistema de documentos hipertexto interligados e acessados atravs da internet. Esses documentos podem conter textos, imagens, vdeos, recursos multimdia em geral, nos quais os usurios podem navegar atravs 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 fcil se torna a construo de ferramentas para processamento automtico.

A linguagem HTML foi concebida para expressar a forma como o dado apresentado para o usurio. As aplicaes precisam de muito esforo para extrair o dado estruturado.

Muitos sites so construdos a partir de dados estruturados mas muito difcil reconstruir a estrutura original do dado atravs da pgina HTML.

Microformatos

Os microformatos aliviam um pouco esse problema. So metadados embutidos no HTML para dar significado as entidades como pessoas, organizaes, eventos, etc.

Exemplo de uso do microformato hCard

  • Leonardo Souza
  • Amtera Semantic Technologies
  • +552198777081
  • Site
  • Leonardo Souza
  • Amtera Semantic Technologies
  • +552198777081
  • Site

Microformatos

Exemplo de uso do microformato geo:

The birds roosted at 52.48, -1.89

Outros microformatos: adr, geo, hCalendar, hAtom, hMedia, hRecipe, hResume, etc;

Microformatos so limitados. Em geral o vocabulrio pequeno e no expressa bem as relaes entre as entidades descritas. No so adequados para a publicao de dados em geral.

Web API

Dados publicados atravs de servios web normalmente so bem estruturados. O uso do protocolo HTTP o padro utilizado;

Empresas como a Amazon e Facebook expem seus dados atravs de servios na web;

Os formatos estruturados mais comuns so XML e JSON que so suportados pela grande maioria das linguagens de programao;

Empresas como a Mashape facilitam a publicao e o acesso a uma variedade de Web APIs em um marketplace;

Com a exploso de APIs na web o nmero de aplicaes que integram vrias fontes de dados (mashups) cresceu rapidamente (ProgrammableWeb);

Web API

A estruturao e padronizao trazida pelas Web APIs so benficas mas demandam muito esforo de integrao.

Hyperlinks

As Web APIs trouxeram a estrutura necessria que facilita o consumo dos dados de diferentes fontes, mas como ligamos os dados de diferentes fontes?

Documentos HTML referenciam outros documentos atravs do elemento anchor que possui o atributo href. Esse um padro da linguagem reconhecido pelos navegadores e que viabilizou a web of documents;

As Web APIs no possuem padres equivalentes ncora HTML para ligar dados relacionados;

Os identificadores disponibilizados atravs das Web APIs so locais e no podem ser utilizados para ligar ou prover a descoberta dos dados de forma global.

Rationale

Documentos HTML no possuem a estrutura adequada para a representao dos dados e seus relacionamentos;

Os microformatos melhoram a representao dos dados embutidos nos documentos HTML atravs de anotaes semnticas;

Os microformatos possuem vocabulrio limitado e no representam adequadamente as relaes.

As Web APIs possuem estrutura adequada para a representao dos dados;

As Web APIs no possuem padres equivalentes ncora HTML para ligar os dados relacionados e portanto no so adequadas para a publicao e compartilhamento dos dados de forma global.

Princpios Linked Data

Proposto por Tim Berners-Lee [6]:

Use URIs para dar nomes as coisas;

Use HTTP URIs para que esses nomes possam ser acessados;

Quando uma URI acessada, responda com dados teis, utilizando padres da web;

Inclua links para outras URIs para facilitar a descoberta de novos dados;

Super Chave Primria

A arquitetura Linked Data reutiliza a infraestrutura da web of documents e os recursos identificados por uma HTTP URI podem ser pessoas, lugares, eventos, relaes, propriedades, documentos, etc;

Entidades reais e conceitos do mundo so identificados universalmente, temos uma super chave primria;

As HTTP URIs no servem apenas como identificadores universais mas tambm como o meio de acessar a informao que descreve o dado identificado (dereference);

http://dbpedia.org/resource/Tim_Berners-Lee

O uso de HTTP URIs satisfaz os princpios 1 e 2;

Rotulando o mundo

RDF

Dados publicados na Web devem seguir uma estrutura padro para permitir interoperabilidade entre as aplicaes;

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 recomendao W3C;

Modelo de dados RDF

O modelo RDF representa o dado como uma srie de enunciados (statements) que descrevem recursos, tipicamente da web, na forma de sujeito-predicado-objeto;

Esses statements so chamados de triplas RDF;

Uma coleo de triplas RDF podem ser visualizadas como um multigrafo direcionado nomeado;

Sujeito e predicado so sempre identificados por URIs;

Objetos podem ou no ser identificados por URIs.

Os predicados so representados por vocabulrios que pode ser visto como o schema do dado;

Vocabulrios RDF

Os vocabulrios definem os conceitos e relaes usados para descrever um domnio ou rea de conhecimento;

Caracterizam os predicados que so usados para descrever os dados e relaes no modelo RDF;

Vocabulrios podem ser complexos com milhares de termos (definies) ou bem simples com apenas dois termos;

Vocabulrios so representados pela linguagem RDF Schema.

RDF Schema - RDFS

Conjunto de classes e propriedades, so elementos bsicos para construo dos vocabulrios;

RDF Schema est para o RDF assim como XML Schema est para o XML;

Tripla RDF

Exemplo:Tim Berners-Lee inventou a World Wide Web

sujeito

predicado

objeto

http://dbpedia.org/resource/Tim_Berners-Leehttp://dbpedia.org/property/inventorhttp://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 pblicas e abertas;Wikipedia

Wikibooks

Geonames

MusicBrainz

Wordnet

DBLP

Interliga 295 datasets;

31 bilhes de triplas RDF

504 milhes de links RDF;

LOD Cloud - 2007

LOD Cloud - 2008

LOD Cloud - 2009

LOD Cloud - 2010

LOD Cloud - 2011

Serializaes RDF

XML

World Wide Web Consortium

@prefix dc: .@prefix rdf: . 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 relaes entre duas entidades. Nesse caso trs URIs esto envolvidas.

Links

Links de relacionamentos: Conectam fontes de dados distribudas, podem ligar com dados internos ou externos, equivalem s ncoras HTML na arquitetura tradicional da web;

foaf:based_near .

Links de identidade: Mltiplas HTTP URIs podem referenciar o mesmo objeto, entidade ou pessoa, isso permitido e incentivado na Web of Data, assim podemos ter informaes ou vises complementares sobre um mesmo recurso da web, nessa arquitetura o ponto central de falha deixa de existir;

dbpedia:Tim_Berners-Leeowl:sameAs .

Links

Links de vocabulrios [10]: Descrevem os tipos de relacionamentos. Auxiliam na integrao de diferentes fontes de dados. Em Linked Data o esquema a fuso da definio dos termos de diferentes vocabulrios;A publicao de novos dados deve, sempre que possvel, reusar vocabulrios consolidados (Foaf, Basic Geo, Gene Ontology, MeSH);

O autor da publicao livre para criar seu prprio vocabulrio, para tal, a URI do termo definido deve ser dereferencivel, e sempre que possvel mapeando para vocabulrios externos equivalentes (owl:sameAs, owl:equivalentProperty, owl:equivalentClass).

Dereferenciando URIs

Qualquer HTTP URI deve ser dereferencivel;

O usurio deve obter uma representao do dado ao acessar a URI atravs do protocolo HTTP.

No importa se a URI identifica um documento HTML ou um conceito, pessoa ou lugar do mundo;

Content Negotiation [7]. Humanos obtm documentos HTML e mquinas documentos RDF;Accept: text/html

Accept: application/rdf+xml

Estratgias:303 URI

Hash URI

303 URIs

Infelizmente objetos reais no podem ser enviados atravs do protocolo HTTP :(

Ao invs de responder com o objeto real representado pela URI o servidor HTTP responde o cdigo 303 (see other [8]) que indica a URI do documento que melhor descreve o objeto;

O cliente faz uma segunda requisio HTTP para obter a descrio 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

Mquina/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: ; 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"

Resource The class resource, everything.

Class The class of classes.

snip.

303 x Hash

303 URIsRequer 2 requisies 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 descrio para todos os objetos se tornaria impeditivo;

Hash URIsSomente 1 requisio HTTP.

A descrio de todos os recursos que compartilham a mesma URI base so retornadas na requisio;

Ideal para bases pequenas, tipicamente descrio de vocabulrios e ontologias, onde o cliente precisa da base inteira;

Hash URI

Tambm possvel 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/aliceIdentifica Alice, a pessoa

http://www.example.com/people/alicePgina web da Alice

http://www.example.com/data/aliceDocumento RDF que descreve Alice

foaf:page ; rdfs:isDefinedBy ;

a foaf:Person; foaf:name "Alice"; foaf:mbox ; ...

Alice's Homepage ...

D2RServer

Soluo opensource para publicao 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 recuperao e manipulao dos dados armazenados como RDF;

uma recomendao do W3C;

PREFIX foaf: SELECT ?name ?emailWHERE { ?person a foaf:Person. ?person foaf:name ?name. ?person foaf:mbox ?email.}

SPARQL (Exemplo)

Consultando total de poos por operadora:

PREFIX amtera-owl: PREFIX dbpprop: PREFIX dbpedia-owl: PREFIX dbpedia:

SELECT ?operadora count(DISTINCT ?poco)WHERE { ?poco amtera-owl:Operadora ?operadora . ?poco amtera-owl:Bacia dbpedia:Campos_Basin .}GROUP BY ?operadora

Resultado

operadoracallret-1

http://dbpedia.org/resource/Petrobras1006

http://dbpedia.org/resource/Shell17

http://dbpedia.org/resource/BP15

http://data.amtera.com.br/anp/ontology/Ogx19

http://dbpedia.org/resource/Texaco2

http://dbpedia.org/resource/Anadarko_Petroleum_Corporation5

http://dbpedia.org/resource/Statoil7

http://dbpedia.org/resource/Total_S.A.6

http://dbpedia.org/resource/Chevron_Corporation7

http://dbpedia.org/resource/Repsol_YPF2

http://dbpedia.org/resource/Queiroz_Galv%C3%A3o1

http://dbpedia.org/resource/Unocal_Corporation2

http://dbpedia.org/resource/Hess_Corporation1

SPARQL (Exemplo)

Consultando reponsvel pela operadora;

O join est sendo feito com um dataset externo, a dbpedia;

PREFIX amtera-owl: PREFIX dbpprop: PREFIX dbpedia-owl:

SELECT DISTINCT ?operadora ?leaderWHERE { GRAPH { ?poco amtera-owl:Operadora ?operadora . } SERVICE { ?operadora dbpedia-owl:keyPerson ?leader . }}

Resultados

operadoraleader

http://dbpedia.org/resource/Koch_Industrieshttp://dbpedia.org/resource/Charles_G._Koch

http://dbpedia.org/resource/Koch_Industrieshttp://dbpedia.org/resource/David_H._Koch

http://dbpedia.org/resource/Unocal_Corporationhttp://dbpedia.org/resource/Chairman

http://dbpedia.org/resource/Unocal_Corporationhttp://dbpedia.org/resource/Charles_R._Williamson

http://dbpedia.org/resource/BPhttp://dbpedia.org/resource/Bob_Dudley

http://dbpedia.org/resource/BPhttp://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_YPFhttp://dbpedia.org/resource/Chief_executive_officer

http://dbpedia.org/resource/Repsol_YPFhttp://dbpedia.org/resource/Chairman

http://dbpedia.org/resource/Chevron_Corporationhttp://dbpedia.org/resource/John_S._Watson_(Chevron)

http://dbpedia.org/resource/Queiroz_Galv%C3%A3ohttp://dbpedia.org/resource/Chief_executive_officer

http://dbpedia.org/resource/Anadarko_Petroleum_Corporationhttp://dbpedia.org/resource/President

http://dbpedia.org/resource/Anadarko_Petroleum_Corporationhttp://dbpedia.org/resource/Chairman

http://dbpedia.org/resource/Enihttp://dbpedia.org/resource/Paolo_Scaroni

http://dbpedia.org/resource/Enihttp://dbpedia.org/resource/Chairman

http://dbpedia.org/resource/Petrobrashttp://dbpedia.org/resource/Chief_financial_officer

http://dbpedia.org/resource/Petrobrashttp://dbpedia.org/resource/Maria_das_Gra%C3%A7as_Foster

http://dbpedia.org/resource/Statoilhttp://dbpedia.org/resource/Helge_Lund

http://dbpedia.org/resource/Statoilhttp://dbpedia.org/resource/Svein_Rennemo

http://dbpedia.org/resource/Galp_Energiahttp://dbpedia.org/resource/Chief_executive_officer

http://dbpedia.org/resource/Galp_Energiahttp://dbpedia.org/resource/Chairman

SPARQL (Exemplo)

PREFIX amtera-owl: PREFIX dbpprop: PREFIX dbpedia-owl: SELECT DISTINCT ?operadora ?num_funcionariosWHERE { GRAPH { ?poco amtera-owl:Operadora ?operadora . } SERVICE { ?operadora dbpprop:numEmployees ?num_funcionarios }}

Consultando nmero de funcionrios por operadora, join externo com a dbpedia;

Resultados

operadoranfuncionarios

http://dbpedia.org/resource/Koch_Industries70000

http://dbpedia.org/resource/Unocal_Corporation6400

http://dbpedia.org/resource/BP79700

http://dbpedia.org/resource/Total_S.A.92855

http://dbpedia.org/resource/Repsol_YPF43300

http://dbpedia.org/resource/Chevron_Corporation62000

http://dbpedia.org/resource/Queiroz_Galv%C3%A3o30

http://dbpedia.org/resource/Anadarko_Petroleum_Corporation4400

http://dbpedia.org/resource/Eni79940

http://dbpedia.org/resource/Hess_Corporation11610

http://dbpedia.org/resource/Petrobras80497

http://dbpedia.org/resource/Statoil30340

http://dbpedia.org/resource/Galp_Energia7310

http://dbpedia.org/resource/Wintershall~1.700

Obrigado. Dvidas?

Referncias

[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