Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Banco Semântico e
SPARQL
Ricardo Paiva (Senior Developer @ Globo.com)
Ontologia
Banco de triplas
● Dados são representados na forma de um grafo.
● Nós representam os dados e arestas as conexões.
Dados são organizados em triplas
SPARQL
● Linguagem padrão para consultas em banco de dados
de triplas
● Simplifica consulta em grafos
SELECT ...
FROM ...
...
Consultas básicas (1)
SELECT *
WHERE {
<http://example.com/tech/Hardware/42707> ?p ?o.
}
● Todos atributos associados a um...
Consultas básicas (2)
SELECT * WHERE { ?uri rdfs:label ?o. }
● Label de todas as entidades
SELECT ?uri, ?label
WHERE {
?ur...
Conectores (1)
SELECT * WHERE { ?uri base:status_de_publicacao ‘P’. }
● Ao terminar uma tripla use “.”
SELECT *
WHERE {
?u...
Conectores (2)
SELECT distinct ?uri
WHERE {
?uri tech:cita
<http://example.com/tech/Fabricante/44218>,
<http://example.com...
From
SELECT distinct ?uri
FROM tech:
WHERE {
?uri tech:cita
<http://example.com/tech/Fabricante/44218>,
<http://example.co...
Múltiplos saltos no grafo
SELECT distinct ?uri, ?ent
FROM tech:
WHERE {
?uri tech:cita ?ent.
?ent tech:pertence_a_categori...
Filter (1)
SELECT distinct ?uri, ?status
FROM tech:
WHERE {
?uri a tech:Noticia;
base:status_de_publicacao ?status.
FILTER...
Filter (2)
SELECT distinct ?uri, ?status
FROM tech:
WHERE {
?uri a tech:Noticia;
base:data_da_primeira_publicacao ?pub.
FI...
Ordenação e Limit
SELECT distinct ?uri, ?pub
FROM tech:
WHERE {
?uri a tech:Noticia;
base:data_da_primeira_publicacao ?pub...
Funções de agregação(1)
SELECT count(distinct ?uri)
FROM tech:
WHERE {
?uri a ?tipo;
base:status_de_publicacao ‘P’.
?tipo ...
Funções de agregação(2)
SELECT count(?genero) ?genero
FROM <http://example.com>
WHERE {
?s rdf:type base:Pessoa;
base:gene...
Obrigado!
ricardo.paiva@corp.globo.com
Nächste SlideShare
Wird geladen in …5
×

Banco semântico e SPARQL

591 Aufrufe

Veröffentlicht am

Aprenda a fazer queries semânticas simples usando SPARQL.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Banco semântico e SPARQL

  1. 1. Banco Semântico e SPARQL Ricardo Paiva (Senior Developer @ Globo.com)
  2. 2. Ontologia
  3. 3. Banco de triplas ● Dados são representados na forma de um grafo. ● Nós representam os dados e arestas as conexões.
  4. 4. Dados são organizados em triplas
  5. 5. SPARQL ● Linguagem padrão para consultas em banco de dados de triplas ● Simplifica consulta em grafos SELECT ... FROM ... WHERE ... ORDER BY ...
  6. 6. Consultas básicas (1) SELECT * WHERE { <http://example.com/tech/Hardware/42707> ?p ?o. } ● Todos atributos associados a uma URI: SELECT * WHERE {?s ?p owl:Class} ● Todos tipos de uma determinada classe:
  7. 7. Consultas básicas (2) SELECT * WHERE { ?uri rdfs:label ?o. } ● Label de todas as entidades SELECT ?uri, ?label WHERE { ?uri a tech:Hardware. ?uri rdfs:label ?label. } ● URI e Label de todas as entidades do tipo Hardware
  8. 8. Conectores (1) SELECT * WHERE { ?uri base:status_de_publicacao ‘P’. } ● Ao terminar uma tripla use “.” SELECT * WHERE { ?uri a tech:Noticia; base:permalink ?permalink; base:status_de_publicacao ‘P’. } ● Para repetir o sujeito, use “;”
  9. 9. Conectores (2) SELECT distinct ?uri WHERE { ?uri tech:cita <http://example.com/tech/Fabricante/44218>, <http://example.com/tech/Software/89535>. } ● Para repetir o sujeito e o predicado, use “,”
  10. 10. From SELECT distinct ?uri FROM tech: WHERE { ?uri tech:cita <http://example.com/tech/Fabricante/44218>, <http://example.com/tech/Software/89535>. } ● SEMPRE informe o grafo para minimizar o espaço de busca:
  11. 11. Múltiplos saltos no grafo SELECT distinct ?uri, ?ent FROM tech: WHERE { ?uri tech:cita ?ent. ?ent tech:pertence_a_categoria_hardware ?cat. } ● Selecione uri e entidades que pertençam a uma categoria:
  12. 12. Filter (1) SELECT distinct ?uri, ?status FROM tech: WHERE { ?uri a tech:Noticia; base:status_de_publicacao ?status. FILTER (?status=’P’ or ?status=’A’) } ● Selecione matérias publicadas ou agendadas:
  13. 13. Filter (2) SELECT distinct ?uri, ?status FROM tech: WHERE { ?uri a tech:Noticia; base:data_da_primeira_publicacao ?pub. FILTER (?pub >= ‘2015-01-01’ˆˆxsd:date) } ● Selecione matérias publicadas depois de uma data:
  14. 14. Ordenação e Limit SELECT distinct ?uri, ?pub FROM tech: WHERE { ?uri a tech:Noticia; base:data_da_primeira_publicacao ?pub. } ORDER BY DESC(?pub) LIMIT 20 ● Ordenação por data de publicação:
  15. 15. Funções de agregação(1) SELECT count(distinct ?uri) FROM tech: WHERE { ?uri a ?tipo; base:status_de_publicacao ‘P’. ?tipo rdfs:subClassOf base:Materia. } ● count
  16. 16. Funções de agregação(2) SELECT count(?genero) ?genero FROM <http://example.com> WHERE { ?s rdf:type base:Pessoa; base:genero ?genero. } GROUP BY ?genero ● group by
  17. 17. Obrigado! ricardo.paiva@corp.globo.com

×