Web Semântica na Globo.com (Novas Mídias UFRJ)
-
Upload
icaro-medeiros -
Category
Technology
-
view
2.051 -
download
2
description
Transcript of Web Semântica na Globo.com (Novas Mídias UFRJ)
Ícaro [email protected] de Semâ[email protected]
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
"links": [ { "href": "http://api.semantica.dev.globoi.com/", "rel": "self" }, { "href": "http://api.semantica.dev.globoi.com/{resource_id}", "rel": "item" }, { "href": "http://api.semantica.dev.globoi.com/", "method": "POST", "rel": "create" }, { "href": "http://api.semantica.dev.globoi.com/{resource_id}", "method": "DELETE", "rel": "delete" }, { "href": "http://api.semantica.dev.globoi.com/?page=2", "method": "GET", "rel": "next" }]
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
Ícaro [email protected] de Semâ[email protected]
globo.com
slideshttp://www.slideshare.net/icaromedeiros
Thursday, October 24, 13