Web Semântica na Globo.com (Novas Mídias UFRJ)

Post on 24-May-2015

2.051 views 2 download

description

Apresentação para o Curso de Novas Mídias na UFRJ sobre Web Semântica e como a tecnologia é usada na Globo.com. Apresentado em 24/10/2013.

Transcript of Web Semântica na Globo.com (Novas Mídias UFRJ)

Ícaro Medeirosicaro.medeiros@gmail.comTime de Semânticasemantica@corp.globo.com

globo.com

Web Semântica

Curso Novas MídiasUFRJ, 2013

Thursday, October 24, 13

Agenda

• Web atual: hipertexto

• Web semântica

• Ontologias

• RDF e SPARQL

• Linked Open Data

• Semântica na globo.com

Thursday, October 24, 13

WEB ATUAL E COMO MELHORÁ-LA?

Thursday, October 24, 13

Web Atual

• Apresentação dos conteúdos

• Formatação, não significado

• Pouca ou nenhuma estruturação

Thursday, October 24, 13

Conteúdo na Web

• Vários elementos na página

• Fotos, vídeos e animações

• Qual a relação entre eles?

• Quem é mencionado no texto?

• Quem, Quando, Onde...

Thursday, October 24, 13

COMO ISSO AFETA TAREFAS COMUNS?

Busca por Gols do Roberto Carlos no Maracanã

Thursday, October 24, 13

Na globo.com

Thursday, October 24, 13

E... No google

Thursday, October 24, 13

Problemas

• Busca feita por palavras

• Contexto indefinido (como fotos e vídeos se relacionam com o texto?)

• Ambiguidade (qual Roberto Carlos?)

Thursday, October 24, 13

Objetivos

• Registrar de forma precisa

• Organizar corretamente

• Transmitir significado

Thursday, October 24, 13

WEB SEMÂNTICA

Thursday, October 24, 13

Web Semântica

“I have a dream for the web in which computers become capable of analyzing all the data on the web - the content, links, and transactions between people and computers.”

Tim Berners-Lee

Thursday, October 24, 13

Registrar Informação

• Produtor do conteúdo

• Sabe o que, quem, quando, onde...

• Resolve ambiguidade

Thursday, October 24, 13

Gol do Roberto Carlos

Thursday, October 24, 13

ONTOLOGIAS

Thursday, October 24, 13

Conceitualização de um domínio

D

(Gruber, 1991)

Thursday, October 24, 13

Devedzic, 2004

Thursday, October 24, 13

Tópicos num domínio D,

Devedzic, 2004

Thursday, October 24, 13

Tópicos num domínio D,

Usando uma linguagem L,

Devedzic, 2004

Thursday, October 24, 13

Tópicos num domínio D,

Usando uma linguagem L,

Uma ontologia é um catálogo de tipos

de coisas em D

Devedzic, 2004

Thursday, October 24, 13

Tópicos num domínio D,

Usando uma linguagem L,

Uma ontologia é um catálogo de tipos

de coisas em D

Tipos são representados em termos de conceitos e relações em L.

Devedzic, 2004

Thursday, October 24, 13

Base de Pizza

Massa finatem base

Pizza

Comida

Pizza de Calabresa

Thursday, October 24, 13

:Pizza rdfs:subClassOf :Comida , [ rdf:type owl:Restriction ; owl:onProperty :base ; owl:someValuesFrom :BaseDePizza ] .

Thursday, October 24, 13

Por que Construir e usar Ontologias?

• Compartilhar conhecimento (interoperabilidade)

• Vocabulários padronizados (reuso)

• Informação processável por máquina

Thursday, October 24, 13

Engenharia de Ontologias

• Identificar os indivíduos

• Descrever seus atributos

• Agrupar os indivíduos em classes

• Enumerar as relações entre indivíduos

• Definir regras (restrições, axiomas) sobre classes, atributos e relações

Thursday, October 24, 13

RDF E SPARQL

Thursday, October 24, 13

Representação em Triplas

sujeito predicado objeto

Neymar é um jogador

Barcelona é um time

Neymar está no elenco Barcelona

Thursday, October 24, 13

<Neymar> <Barcelona> <Santos>

<Jogador> <Time>

<BarcelonaXSantos:02082013><Partida>

é umé umé um está no elenco

é uma

mandante visitante

<Camp Nou>

local

“02/08/2013”

data

Thursday, October 24, 13

Triplas e Grafos

• Bancos de triplas são bancos de grafo especializados que funcionam com a restrição <sujeito, predicado, objeto>

• Simplifica a entrada e consulta de dados

Thursday, October 24, 13

Contrução de Ontologias

• Linguagens

• OWL (Web Ontology Language)

• RDF (Resource Description Framework)

• SPARQL (SPARQL Protocol and RDF Query Language)

Thursday, October 24, 13

Triplas em RDF

Thursday, October 24, 13

Triplas em RDF

<Neymar>

Thursday, October 24, 13

Triplas em RDF

<Neymar>

é um

Thursday, October 24, 13

Triplas em RDF

<Neymar>

<Jogador>

é um

Thursday, October 24, 13

Triplas em RDF

<Neymar>

<Jogador>

é um

<http://semantica.globo.com/esportes/Jogador/Neymar>

Thursday, October 24, 13

Triplas em RDF

<Neymar>

<Jogador>

<http://semantica.globo.com/esportes/Jogador/Neymar>

Thursday, October 24, 13

Triplas em RDF

<Neymar>

<Jogador>

<http://semantica.globo.com/esportes/Jogador/Neymar>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

Thursday, October 24, 13

Triplas em RDF

<Neymar>

<Jogador>

<http://semantica.globo.com/esportes/Jogador/Neymar>

<http://semantica.globo.com/esportes/Jogador>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

Thursday, October 24, 13

Triplas em RDF

<Neymar>

<Jogador>

<http://semantica.globo.com/esportes/Jogador/Neymar>

<http://semantica.globo.com/esportes/Jogador>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

Thursday, October 24, 13

Triplas em RDF

<Neymar>

<Jogador>

<http://semantica.globo.com/esportes/Jogador/Neymar>

<http://semantica.globo.com/esportes/Jogador>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

URI

Thursday, October 24, 13

Triplas em RDF (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 dbpedia: <http://dbpedia.org/ontology>

<http://semantica.globo.com/esportes/Jogador/Neymar> rdf:type dbpedia:SoccerPlayer ; rdfs:label "Neymar" ; foaf:name "Neymar da Silva Santos Júnior" ; dbpedia:birthDate "05/02/1992" .

Thursday, October 24, 13

SPARQL

• Linguagem definida pelo W3C para consultas em bases RDF

• Permite consultas federadas

• Sintaxe baseada em SQL

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consulta

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consulta

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

o que retornar

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

o que retornar

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

o que retornar

de que grafos

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

o que retornar

de que grafos

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

o que retornar

de que grafos

o que consultar(matching)

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

o que retornar

de que grafos

o que consultar(matching)

Thursday, October 24, 13

# declaração e prefixos

PREFIX esportes: <http://semantica.globo.com/esportes/># cláusula de resultado

SELECT ...# definição de datasets

FROM ...# padrão para consulta

WHERE { ...}# modificadores de consulta

ORDER BY ...

Estrutura da consultaabreviação de URIs

o que retornar

de que grafos

o que consultar(matching)

pós-processamento

Thursday, October 24, 13

dbpedia.org/sparql

Thursday, October 24, 13

Selecionar os 100 primeiros predicados e objetos da classe dbpedia:SoccerPlayer

PREFIX dbpedia: <http://dbpedia.org/ontology/> SELECT * FROM <http://dbpedia.org>WHERE { dbpedia:SoccerPlayer ?p ?o}LIMIT 100

Exemplo de Consulta

Thursday, October 24, 13

Resultado

Thursday, October 24, 13

Exemplo de Consulta

Selecionar todas as instâncias da classe dbpedia:SoccerPlayer e seus nomes

PREFIX dbpedia: <http://dbpedia.org/ontology/> SELECT ?soccerPlayer ?name FROM <http://dbpedia.org>WHERE { ?soccerPlayer a dbpedia:SoccerPlayer ; rdfs:label ?name .}

Thursday, October 24, 13

Resultado

Thursday, October 24, 13

LINKED DATA

Thursday, October 24, 13

• Rede de dados, co-refenciados

• Endpoints SPARQL abertos

• Identificadores únicos (URIs) para conceitos

• URIs derreferenciáveis

• Bases de dados de referência

Linked Data

Thursday, October 24, 13

• Repositório de uso geral

• DBPedia (conceitos extraídos da Wikipedia)

• Repositório sobre domínios específicos

• GeoNames

• MusicBrainz

• legislation.data.gov.uk

Linked Data

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Como padronizar seus dados?

• Vocabulários controlados

• Exemplo: Dublin Core Metadata Initiative (DCMI)

• termos com significado bem definido:

• title, creator, contributor, ...

Thursday, October 24, 13

Outros Vocabulários

• FOAF (Friend of a Friend)

• Informações sobre pessoas

• Originalmente usado para redes sociais

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

review

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

review

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

review

Thursday, October 24, 13

SCHEMA.ORG

• Iniciativa Google, Bing e Yahoo!

• Grande melhoria em SEO

• Gera Rich Snippets

reviewatores

Thursday, October 24, 13

Exemplo Schema.org

<div itemscope itemtype="http://schema.org/Movie"> <div itemtype="http://schema.org/AggregateRating" itemscope itemprop="aggregateRating"> Ratings: <span itemprop="ratingValue">7.0</span> <span>/<span itemprop="bestRating">10</span></span> from <span itemprop="ratingCount">174,328</span> users </div></div>

Thursday, October 24, 13

• Significado explícito

• Sem ambiguidades

• Entendido por máquinas de busca

Benefícios

Thursday, October 24, 13

Buscas Semânticas

• Encontram e analisam meta-informação

• HTML 5 microdata, RDFa

• Repositórios de triplas

• Relacionam informações em sites diferentes

• Dado que usem vocabulários padrão

Thursday, October 24, 13

COMOUSAMOS

globo.com

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

globoesporte.com

Thursday, October 24, 13

globoesporte.com

Thursday, October 24, 13

globoesporte.com

Thursday, October 24, 13

globoesporte.com

Thursday, October 24, 13

globoesporte.com

Thursday, October 24, 13

globoesporte.com

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Números

• 98% das matérias do GE e EGO são anotadas

• + 8 MIL páginas de tópico

Thursday, October 24, 13

Conhecimento Único

• Menos duplicidade dos dados

• Simplificação do uso e da manutenção dos dados

• Agilidade na recuperação dos dados

Thursday, October 24, 13

Materia Pessoacita a entidade

Matéria XYZ Romário

cita a entidade

Como? Ontologias

Thursday, October 24, 13

CMS

• Metadados com significado (diferente de tags)

• CMS se adapta a ontologia

• Extrator automático de indivíduos

• Suggest de anotação

• Menor esforço editorial

Thursday, October 24, 13

Thursday, October 24, 13

O Que Estamos Fazendo

• API hipermídia: simplificando uso de semântica

• Ontologias mais focadas: de produtos para domínios

• Modelagem com equivalências a ontologias como a DBPedia

Thursday, October 24, 13

API Hipermídia

• Diminuir complexidade da arquitetura

• Reduzir necessidade de queries SPARQL

• Gerenciamento de dados (deduplicação, validação, integração com dados externos)

• Ponto único de acesso ao banco de triplas

Thursday, October 24, 13

triple store

Arquitetura atual

process queue

suggest

annotation

entity extractor

search engineAPI

suggest

annotation

entity extractor

entity extractor

suggest

annotation

annotation

suggest entity extractor

CMS

CDA

Thursday, October 24, 13

Nova arquitetura

triple store

search engine

API

Thursday, October 24, 13

Hipermídia?

• Não lembre URLs. Navegue!

• Negociação de conteúdo

• Aplicação é tratada como uma Máquina de estados

Thursday, October 24, 13

self

/esportes/Time/Barcelona

/esports/Time

inCollection

item

createdeletereplace

Relações

Thursday, October 24, 13

/

Thursday, October 24, 13

/GET

Thursday, October 24, 13

/GET

Thursday, October 24, 13

/GET

{ "items": [ { "title": "Upper", "@id": "http://semantica.globo.com/upper/", "resource_id": "upper" }, { "title": "Esportes", "@id": "http://semantica.globo.com/esportes/", "resource_id": "esportes" } ]

Thursday, October 24, 13

/GET

Thursday, October 24, 13

/GET

Thursday, October 24, 13

/GETrel:item

Thursday, October 24, 13

/GETrel:item

resource_id:esportes

Thursday, October 24, 13

/GETrel:item

resource_id:esportes

Thursday, October 24, 13

/GETrel:item

resource_id:esportes

GET

Thursday, October 24, 13

/GET /esportesrel:item

resource_id:esportes

GET

Thursday, October 24, 13

/esportesGET

Thursday, October 24, 13

/esportesGETrel:item

Thursday, October 24, 13

/esportesGETrel:item

resource_id:Time

Thursday, October 24, 13

/esportesGETrel:item

resource_id:Time

Thursday, October 24, 13

/esportesGETrel:item

resource_id:Time

GET

Thursday, October 24, 13

/esportesGET /esportes/Timerel:item

resource_id:Time

GET

Thursday, October 24, 13

/esportes/TimeGET

Thursday, October 24, 13

/esportes/TimeGET

rel:item

Thursday, October 24, 13

/esportes/TimeGET

rel:item

resource_id:Barcelona

Thursday, October 24, 13

/esportes/TimeGET

rel:item

resource_id:Barcelona

Thursday, October 24, 13

/esportes/TimeGET

rel:item

resource_id:Barcelona

GET

Thursday, October 24, 13

/esportes/TimeGET /esportes/Time/

Barcelona

rel:item

resource_id:Barcelona

GET

Thursday, October 24, 13

GET

Thursday, October 24, 13

GET /esportes/Time/Barcelona

Thursday, October 24, 13

GET

rel:delete

/esportes/Time/Barcelona

Thursday, October 24, 13

GET

rel:delete

/esportes/Time/Barcelona

Thursday, October 24, 13

GET

rel:delete

DELETE

/esportes/Time/Barcelona

Thursday, October 24, 13

Futuro

• Navegação sugerida por inferência

• Potencialização de SEO (schema.org automático)

• Sugestão de anotação

• Conteúdo mais rico, com atualização frequente

• Conectado com dados abertos (DBPedia, dados.gov.br)

Thursday, October 24, 13

CASES RELEVANTESModelos de uso da

Web Semântica

Thursday, October 24, 13

Thursday, October 24, 13

Ações Realizadas

• Uso da ontologia GoodRelations

• Adição de metadados: RDFa

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Resultados

• Tráfego originado por motores de busca: + 30%

• Taxa de cliques no Yahoo!: + 15%

• Aumento significativo do Google PageRank

Thursday, October 24, 13

Thursday, October 24, 13

• Ontologias públicas

• Interligação com repositórios de dados externos

• Criação de categorias e agregadores úteis

Ações Realizadas

Thursday, October 24, 13

Domínios Representados

Thursday, October 24, 13

Domínios Representados

Thursday, October 24, 13

Domínios Representados

Thursday, October 24, 13

Ontologia De Programas

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

• Proliferação de links relevantes: potencialização de SEO

• Reuso das informações: menor desperdício de pessoal

• Navegação interligada e escalável para toda a BBC

Resultados

Thursday, October 24, 13

Thursday, October 24, 13

• Anotação e indexação do conteúdo baseado em indivíduos

• Ontologia pública

• Interligação com repositórios de dados externos

• Adição de metadados: Open Graph

Ações Realizadas

Thursday, October 24, 13

NYT Index Abstract

Jenny Brown, owner of Woodstock (NY) Farm Animal Sanctuary, forms special bond with Albie, goat that probably escaped from New York City slaughterhouse; Albie injured leg in escape and it had to be amputated; Brown had leg amputated as child; wears artificial leg and wants to also get one for Albie; photos (M)

✓Assuntos: Livestock; Goats; Amputation; Prosthesis; Legs

✓Organizações: Woodstock Farm Animal Sanctuary

✓Lugares: Woodstock (NY); New York City

✓Pessoas: Santos, Fernanda; Brown, Jenny

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

Thursday, October 24, 13

globo.com/talentos

Programa de estagiários

Thursday, October 24, 13