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.owl
http://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 ?Flavor
WHERE {
?Wine wine:hasFlavor ?Flavor
}
Consultas
Consultas
PREFIX wine:<http://www.w3.org/...>
SELECT ?Wine ?Flavor ?Location
WHERE {
?Wine wine:hasFlavor ?Flavor;
?Wine wine:locatedIn ?Location.
}
Consultas
Consultas
PREFIX wine:<http://www.w3.org/...>
SELECT ?Wine ?Flavor ?Location
WHERE {
?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/...>
ASK
WHERE {
?Wine wine:locatedIn wine:NewZealandRegion.
}
Consultas
PREFIX wine:<http://www.w3.org/...>
DESCRIBE ?Wine
WHERE {
?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
Neto
Neto
Neto
Neto
Neto
Neto
Neto
Neto
Neto
Neto
Avô
Avô
Avô
Avô
Avô
Avô
Avô
Avô
Avô
Avô
Consultas
PREFIX wine:<http://www.w3.org/...>
SELECT ?Wine ?Location
WHERE {
?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 ?Wine
WHERE {
{?Wine wine:locatedIn wine:SonomaRegion}
UNION
{?Wine wine:locatedIn wine:CaliforniaRegion}
}
Consultas
Consultas
PREFIX wine:<http://www.w3.org/...>
SELECT ?Wine ?Location
WHERE {
?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 ?Sugar
WHERE {
?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 5
OFFSET 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.
Conclusões
- http://pt.wikipedia.org/wiki/W3C
- http://en.wikipedia.org/wiki/SPARQL
- http://www.w3.org/TR/2004/WD-rdf-sparqlquery-20041012/
- http://www.w3.org/2009/Talks/0615-qbe/
http://pt.wikipedia.org/wiki/Resource_Descripti
on_Framework
Dúvidas
Download

Slide 1