Linguagem de consulta SPARQL Maria Gabriela Cardoso

Preview:

Citation preview

Linguagem de consulta SPARQL

Maria Gabriela Cardoso

Agenda

- Web Semântica- RDF- SPARQL- Consultas SPARQL- Conclusão- Referências

Internet

- Informações não estruturadas;- A proposta da Web Semântica- Dados estruturados- Seguindo ontologias

RDF

- Resource Description Framework; - Flexível e extensível para representar informações;- Recursos são descritos através de declarações e possuem propriedades que têm valor;

RDF

- Usado para representar informações pessoais, redes sociais, metadados sobre artefatos digitais, integração sobre diferentes fontes de informação;- Grande vantagem para desenvolvedores utilizarem uma linguagem de consulta para o RDF;

RDF

-Composto por três recursos: Sujeito, predicado e objeto;- A W3C (organização de padronização, recomenda a utilização de RDF).

SPARQL

- Consultas SPARQL são executadas sobre conjuntos de dados RDF (gráficos RDF);- RDF -> Triplas compostas por sujeito, predicado e objeto (São representados por URIs);- Objetos também podem ser representados por literais;- Também pode ser aplicada sobre extensões do RDF (Ex: OWL).

SPARQL

- URIs: <http://example.com/resource> ou prefixo:name

- Literais: "string" "13.4"^^xsd:float ou "string with language"@enz

SPARQL

Sendo assim, as triplas são dos formatos:

- URI (sujeito) URI(Predicado) URI(objeto) - prefixo:sujeito prefixo2:predicado prefixo3:objeto- prefixo:sujeito prefixo2:predicado "literal"

SPARQL

Esquematização de uma consulta

SPARQL

Declaração de prefixos

PREFIX wine:<http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#>PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SPARQL

Formas de consulta

- SELECT- ASK- CONSTRUCT- DESCRIBE

SPARQL

Definição do dataset

SPARQL

Definição do dataset

SPARQL

O padrão de consulta (WHERE)

SPARQL

O padrão de consulta (WHERE)

Consultas

- Realizadas no Protégé (Versão 4.2.0)- Fonte de dados: wine.owlhttp://www.w3.org/TR/2003/CR-owl-guide-20030818/wine

- Fonte de dados já importada para as

consultas. Não é preciso informar o

dataset no FROM.

Consultas

PREFIX wine:<http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#>SELECT ?Wine ?FlavorWHERE { ?Wine wine:hasFlavor ?Flavor}

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?Flavor ?LocationWHERE { ?Wine wine:hasFlavor ?Flavor;?Wine wine:locatedIn ?Location.}

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?Flavor ?LocationWHERE { ?Wine wine:hasFlavor ?Flavor; wine:locatedIn ?Location.}

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT DISTINCT ?Sugar WHERE { ?Wine wine:hasSugar ?Sugar.}

PREFIX wine:<http://www.w3.org/...>SELECT ?Sugar WHERE { ?Wine wine:hasSugar ?Sugar.}

Consultas

Com distinct Sem distinct

Consultas

PREFIX wine:<http://www.w3.org/...>ASKWHERE { ?Wine wine:locatedIn wine:NewZealandRegion.}

Consultas

PREFIX wine:<http://www.w3.org/...>DESCRIBE ?WineWHERE { ?Wine wine:locatedIn wine:NewZealandRegion.}

Consultas

Consultas

PREFIX ex: <http://www.snee.com/ns/demo#> CONSTRUCT { ?p ex:hasGrandfather ?g . } WHERE {?p ex:hasParent ?parent; ?parent ex:hasParent ?g ; ?g ex:gender :male . }

Consultas

NetoNetoNetoNetoNetoNetoNetoNetoNetoNeto

AvôAvôAvôAvôAvôAvôAvôAvôAvôAvô

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?LocationWHERE { ?Wine wine:locatedIn ?Location.FILTER (?Location != wine:NewZealandRegion)}

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Location ?Sugar WHERE { ?Wine wine:locatedIn ?Location.OPTIONAL {?Wine wine:hasSugar ?Sugar}}

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?WineWHERE { {?Wine wine:locatedIn wine:SonomaRegion}UNION {?Wine wine:locatedIn wine:CaliforniaRegion}}

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?LocationWHERE { ?Wine wine:locatedIn ?Location.FILTER (?Location = wine:SonomaRegion || ?Location = wine:CaliforniaRegion)}

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?Location WHERE { ?Wine wine:locatedIn ?Location.} ORDER BY ?Location

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Location ?SugarWHERE { ?Wine wine:locatedIn ?Location.?Wine wine:hasSugar ?Sugar.} GROUP BY ?Sugar ?Location

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Location (COUNT(?Location) as ?Count)WHERE { ?Wine wine:locatedIn ?Location.} GROUP BY ?Location HAVING(COUNT(?Location) > 3)

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?Sugar WHERE { ?Wine wine:hasSugar ?Sugar.} LIMIT 10

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?Sugar WHERE { ?Wine wine:hasSugar ?Sugar.} OFFSET 5

Consultas

Consultas

PREFIX wine:<http://www.w3.org/...>SELECT ?Wine ?Sugar WHERE { ?Wine wine:hasSugar ?Sugar.} LIMIT 5OFFSET 5

Consultas

Conclusões- A linguagem de consulta padronizada para dados RDF com múltiplas implementações oferece aos desenvolvedores e usuários finais uma maneira de escrever e de consumir os resultados de consultas em toda esta vasta gama de informações.

- A tecnologia foi desenvolvida para permitir buscas em diferentes fontes de informação, independente do formato dos resultados.

- Criação de projetos em web semântica. Por exempo o DBpedia, que extrai informações de forma estruturada da Wikipedia.

Dúvidas

?

Recommended