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

2.663 visualizações

Publicada em

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.

Publicada em: Tecnologia
0 comentários
8 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.663
No SlideShare
0
A partir de incorporações
0
Número de incorporações
186
Ações
Compartilhamentos
0
Downloads
53
Comentários
0
Gostaram
8
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Web Semântica globo.com Ícaro Medeiros icaro.medeiros@gmail.com Time de Semântica semantica@corp.globo.com Thursday, October 24, 13 Curso Novas Mídias UFRJ, 2013
  2. 2. Agenda • Web atual: hipertexto • Web semântica • Ontologias • RDF e SPARQL • Linked Open Data • Semântica na globo.com Thursday, October 24, 13
  3. 3. WEB ATUAL E COMO MELHORÁ-LA? Thursday, October 24, 13
  4. 4. Web Atual • Apresentação dos conteúdos • Formatação, não significado • Pouca ou nenhuma estruturação Thursday, October 24, 13
  5. 5. 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
  6. 6. COMO ISSO AFETA TAREFAS COMUNS? Busca por Gols do Roberto Carlos no Maracanã Thursday, October 24, 13
  7. 7. Na globo.com Thursday, October 24, 13
  8. 8. E... No google Thursday, October 24, 13
  9. 9. 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
  10. 10. Objetivos • Registrar de forma precisa • Organizar corretamente • Transmitir significado Thursday, October 24, 13
  11. 11. WEB SEMÂNTICA Thursday, October 24, 13
  12. 12. 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
  13. 13. Registrar Informação • Produtor do conteúdo • Sabe o que, quem, quando, onde... • Resolve ambiguidade Thursday, October 24, 13
  14. 14. Gol do Roberto Carlos Thursday, October 24, 13
  15. 15. ONTOLOGIAS Thursday, October 24, 13
  16. 16. Conceitualização de um domínio (Gruber, 1991) D Thursday, October 24, 13
  17. 17. Devedzic, 2004 Thursday, October 24, 13
  18. 18. Tópicos num domínio D, Devedzic, 2004 Thursday, October 24, 13
  19. 19. Tópicos num domínio D, Usando uma linguagem L, Devedzic, 2004 Thursday, October 24, 13
  20. 20. 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
  21. 21. 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
  22. 22. Pizza Base de Pizza Pizza de Calabresa tem base Comida Thursday, October 24, 13 Massa fina
  23. 23. :Pizza rdfs:subClassOf :Comida , [ rdf:type owl:Restriction ; owl:onProperty :base ; owl:someValuesFrom :BaseDePizza ]. Thursday, October 24, 13
  24. 24. Por que Construir e usar Ontologias? • Compartilhar conhecimento (interoperabilidade) • Vocabulários padronizados (reuso) • Informação processável por máquina Thursday, October 24, 13
  25. 25. 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
  26. 26. RDF E SPARQL Thursday, October 24, 13
  27. 27. Representação em Triplas sujeito objeto Neymar é um jogador Barcelona é um time Neymar Thursday, October 24, 13 predicado está no elenco Barcelona
  28. 28. <Jogador> é um <Time> está no elenco <Neymar> é um <Barcelona> mandante <Partida> é um <Santos> visitante <BarcelonaXSantos:02082013> é uma local <Camp Nou> Thursday, October 24, 13 data “02/08/2013”
  29. 29. 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
  30. 30. Contrução de Ontologias • Linguagens • OWL (Web Ontology Language) • RDF (Resource Description Framework) • SPARQL (SPARQL Protocol and RDF Query Language) Thursday, October 24, 13
  31. 31. Triplas em RDF Thursday, October 24, 13
  32. 32. Triplas em RDF <Neymar> Thursday, October 24, 13
  33. 33. Triplas em RDF <Neymar> é um Thursday, October 24, 13
  34. 34. Triplas em RDF <Neymar> é um <Jogador> Thursday, October 24, 13
  35. 35. Triplas em RDF <http://semantica.globo.com/esportes/Jogador/Neymar> <Neymar> é um <Jogador> Thursday, October 24, 13
  36. 36. Triplas em RDF <http://semantica.globo.com/esportes/Jogador/Neymar> <Neymar> <Jogador> Thursday, October 24, 13
  37. 37. Triplas em RDF <http://semantica.globo.com/esportes/Jogador/Neymar> <Neymar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <Jogador> Thursday, October 24, 13
  38. 38. Triplas em RDF <http://semantica.globo.com/esportes/Jogador/Neymar> <Neymar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://semantica.globo.com/esportes/Jogador> <Jogador> Thursday, October 24, 13
  39. 39. Triplas em RDF <http://semantica.globo.com/esportes/Jogador/Neymar> <Neymar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://semantica.globo.com/esportes/Jogador> <Jogador> Thursday, October 24, 13
  40. 40. Triplas em RDF <http://semantica.globo.com/esportes/Jogador/Neymar> <Neymar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://semantica.globo.com/esportes/Jogador> <Jogador> URI Thursday, October 24, 13
  41. 41. 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
  42. 42. SPARQL • Linguagem definida pelo W3C para consultas em bases RDF • Permite consultas federadas • Sintaxe baseada em SQL Thursday, October 24, 13
  43. 43. Estrutura da consulta # 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 ... Thursday, October 24, 13
  44. 44. Estrutura da consulta # 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 ... Thursday, October 24, 13
  45. 45. Estrutura da consulta abreviação de URIs # 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 ... Thursday, October 24, 13
  46. 46. Estrutura da consulta abreviação de URIs # 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 ... Thursday, October 24, 13
  47. 47. Estrutura da consulta abreviação de URIs # 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 ... Thursday, October 24, 13 o que retornar
  48. 48. Estrutura da consulta abreviação de URIs # 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 ... Thursday, October 24, 13 o que retornar
  49. 49. Estrutura da consulta abreviação de URIs # declaração e prefixos PREFIX esportes: <http://semantica.globo.com/esportes/> # cláusula de resultado SELECT ... o que retornar # definição de datasets FROM ... # padrão para consulta WHERE { ... } # modificadores de consulta ORDER BY ... Thursday, October 24, 13 de que grafos
  50. 50. Estrutura da consulta abreviação de URIs # declaração e prefixos PREFIX esportes: <http://semantica.globo.com/esportes/> # cláusula de resultado SELECT ... o que retornar # definição de datasets FROM ... # padrão para consulta WHERE { ... } # modificadores de consulta ORDER BY ... Thursday, October 24, 13 de que grafos
  51. 51. Estrutura da consulta abreviação de URIs # declaração e prefixos PREFIX esportes: <http://semantica.globo.com/esportes/> # cláusula de resultado SELECT ... o que retornar # definição de datasets FROM ... de que grafos # padrão para consulta WHERE { ... } # modificadores de consulta ORDER BY ... Thursday, October 24, 13 o que consultar (matching)
  52. 52. Estrutura da consulta abreviação de URIs # declaração e prefixos PREFIX esportes: <http://semantica.globo.com/esportes/> # cláusula de resultado SELECT ... o que retornar # definição de datasets FROM ... de que grafos # padrão para consulta WHERE { ... } # modificadores de consulta ORDER BY ... Thursday, October 24, 13 o que consultar (matching)
  53. 53. Estrutura da consulta abreviação de URIs # declaração e prefixos PREFIX esportes: <http://semantica.globo.com/esportes/> # cláusula de resultado SELECT ... o que retornar # definição de datasets FROM ... de que grafos # padrão para consulta WHERE { ... } o que consultar (matching) # modificadores de consulta ORDER BY ... Thursday, October 24, 13 pós-processamento
  54. 54. dbpedia.org/sparql Thursday, October 24, 13
  55. 55. Exemplo de Consulta 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 Thursday, October 24, 13
  56. 56. Resultado Thursday, October 24, 13
  57. 57. 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
  58. 58. Resultado Thursday, October 24, 13
  59. 59. LINKED DATA Thursday, October 24, 13
  60. 60. Linked Data • Rede de dados, co-refenciados • Endpoints SPARQL abertos • Identificadores únicos (URIs) para conceitos • URIs derreferenciáveis • Bases de dados de referência Thursday, October 24, 13
  61. 61. Linked Data • Repositório de uso geral • • DBPedia (conceitos extraídos da Wikipedia) Repositório sobre domínios específicos • GeoNames • MusicBrainz • legislation.data.gov.uk Thursday, October 24, 13
  62. 62. Thursday, October 24, 13
  63. 63. Thursday, October 24, 13
  64. 64. 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
  65. 65. Outros Vocabulários • FOAF (Friend of a Friend) • Informações sobre pessoas • Originalmente usado para redes sociais Thursday, October 24, 13
  66. 66. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets Thursday, October 24, 13
  67. 67. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets Thursday, October 24, 13
  68. 68. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets Thursday, October 24, 13
  69. 69. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets Thursday, October 24, 13
  70. 70. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets review Thursday, October 24, 13
  71. 71. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets review Thursday, October 24, 13
  72. 72. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets review Thursday, October 24, 13
  73. 73. SCHEMA.ORG • Iniciativa Google, Bing e Yahoo! • Grande melhoria em SEO • Gera Rich Snippets review atores Thursday, October 24, 13
  74. 74. 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
  75. 75. Benefícios • Significado explícito • Sem ambiguidades • Entendido por máquinas de busca Thursday, October 24, 13
  76. 76. 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
  77. 77. globo.com COMO USAMOS Thursday, October 24, 13
  78. 78. Thursday, October 24, 13
  79. 79. Thursday, October 24, 13
  80. 80. Thursday, October 24, 13
  81. 81. Thursday, October 24, 13
  82. 82. Thursday, October 24, 13
  83. 83. Thursday, October 24, 13
  84. 84. globo esporte .com Thursday, October 24, 13
  85. 85. globo esporte .com Thursday, October 24, 13
  86. 86. globo esporte .com Thursday, October 24, 13
  87. 87. globo esporte .com Thursday, October 24, 13
  88. 88. globo esporte .com Thursday, October 24, 13
  89. 89. globo esporte .com Thursday, October 24, 13
  90. 90. Thursday, October 24, 13
  91. 91. Thursday, October 24, 13
  92. 92. Thursday, October 24, 13
  93. 93. Thursday, October 24, 13
  94. 94. Números • 98% das matérias do GE e EGO são anotadas • + 8 MIL páginas de tópico Thursday, October 24, 13
  95. 95. 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
  96. 96. Como? Ontologias Materia Matéria XYZ Thursday, October 24, 13 cita a entidade cita a entidade Pessoa Romário
  97. 97. 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
  98. 98. Thursday, October 24, 13
  99. 99. 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
  100. 100. 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
  101. 101. CMS suggest annotation suggest annotation Arquitetura atual entity extractor entity extractor search engine suggest annotation entity extractor A P I triple store CDA suggest annotation entity extractor process queue Thursday, October 24, 13
  102. 102. Nova arquitetura A P I search engine triple store Thursday, October 24, 13
  103. 103. 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
  104. 104. Relações self inCollection /esports/ Time /esportes/Time/ Barcelona item create Thursday, October 24, 13 replace delete
  105. 105. / Thursday, October 24, 13
  106. 106. GET Thursday, October 24, 13 /
  107. 107. GET Thursday, October 24, 13 /
  108. 108. { GET Thursday, October 24, 13 / "items": [ { "title": "Upper", "@id": "http://semantica.globo.com/upper/", "resource_id": "upper" }, { "title": "Esportes", "@id": "http://semantica.globo.com/esportes/", "resource_id": "esportes" } ]
  109. 109. GET Thursday, October 24, 13 /
  110. 110. GET Thursday, October 24, 13 / "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" } ]
  111. 111. GET Thursday, October 24, 13 /
  112. 112. rel:item GET Thursday, October 24, 13 /
  113. 113. resource_id:esportes rel:item GET Thursday, October 24, 13 /
  114. 114. resource_id:esportes rel:item GET Thursday, October 24, 13 /
  115. 115. resource_id:esportes rel:item GET / GET Thursday, October 24, 13
  116. 116. resource_id:esportes rel:item GET /esportes / GET Thursday, October 24, 13
  117. 117. GET /esportes Thursday, October 24, 13
  118. 118. rel:item GET /esportes Thursday, October 24, 13
  119. 119. resource_id:Time rel:item GET /esportes Thursday, October 24, 13
  120. 120. resource_id:Time rel:item GET /esportes Thursday, October 24, 13
  121. 121. resource_id:Time rel:item GET /esportes Thursday, October 24, 13 GET
  122. 122. resource_id:Time rel:item GET /esportes Thursday, October 24, 13 GET /esportes/Time
  123. 123. /esportes/ GET Time Thursday, October 24, 13
  124. 124. /esportes/ GET Time Thursday, October 24, 13 rel:item
  125. 125. resource_id:Barcelona /esportes/ GET Time Thursday, October 24, 13 rel:item
  126. 126. resource_id:Barcelona /esportes/ GET Time Thursday, October 24, 13 rel:item
  127. 127. resource_id:Barcelona /esportes/ GET Time Thursday, October 24, 13 rel:item GET
  128. 128. resource_id:Barcelona /esportes/ GET Time Thursday, October 24, 13 rel:item GET /esportes/Time/ Barcelona
  129. 129. GET Thursday, October 24, 13
  130. 130. GET /esportes/Time/ Barcelona Thursday, October 24, 13
  131. 131. rel:delete GET /esportes/Time/ Barcelona Thursday, October 24, 13
  132. 132. rel:delete GET /esportes/Time/ Barcelona Thursday, October 24, 13
  133. 133. rel:delete DELETE GET /esportes/Time/ Barcelona Thursday, October 24, 13
  134. 134. 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
  135. 135. CASES RELEVANTES Modelos de uso da Web Semântica Thursday, October 24, 13
  136. 136. Thursday, October 24, 13
  137. 137. Ações Realizadas • Uso da ontologia GoodRelations • Adição de metadados: RDFa Thursday, October 24, 13
  138. 138. Thursday, October 24, 13
  139. 139. Thursday, October 24, 13
  140. 140. Resultados • Tráfego originado por motores de busca: + 30% • Taxa de cliques no Yahoo!: + 15% • Aumento significativo do Google PageRank Thursday, October 24, 13
  141. 141. Thursday, October 24, 13
  142. 142. Ações Realizadas • Ontologias públicas • Interligação com repositórios de dados externos • Criação de categorias e agregadores úteis Thursday, October 24, 13
  143. 143. Domínios Representados Thursday, October 24, 13
  144. 144. Domínios Representados Thursday, October 24, 13
  145. 145. Domínios Representados Thursday, October 24, 13
  146. 146. Ontologia De Programas Thursday, October 24, 13
  147. 147. Thursday, October 24, 13
  148. 148. Thursday, October 24, 13
  149. 149. Resultados • 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 Thursday, October 24, 13
  150. 150. Thursday, October 24, 13
  151. 151. Ações Realizadas • 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 Thursday, October 24, 13
  152. 152. 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) Thursday, October 24, 13 ✓ Assuntos: Livestock; Goats; Amputation; Prosthesis; Legs ✓ Organizações: Woodstock Farm Animal Sanctuary ✓ Lugares: Woodstock (NY); New York City ✓ Pessoas: Santos, Fernanda; Brown, Jenny
  153. 153. Thursday, October 24, 13
  154. 154. Thursday, October 24, 13
  155. 155. Thursday, October 24, 13
  156. 156. globo.com /talentos Programa de estagiários Thursday, October 24, 13
  157. 157. globo.com Ícaro Medeiros icaro.medeiros@gmail.com Time de Semântica semantica@corp.globo.com slides http://www.slideshare.net/icaromedeiros Thursday, October 24, 13

×