SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
1
Faculté des Sciences Dhar El
Mahraz-Fès
SPARQL 1.1
• Yassine AKHIAT
• El Yazid AKACHAR
Master :
Information Systems ,Network & Multimédia
2
Plan
 Introduction
 SPARQL 1.0
 SPARQL 1.1
 Description
 Motivation
 Nouveautés
 Demonstration
 Conclusion
3
INTRODUCTION
4
SPARQL 1.0
 SPARQL est composé de 3 parties :
 SPARQL Query Language
 SPARQL QUERY RESULTS
 SPARQL PROTOCOL FOR RDF
5
SPARQL 1.0
 LIMITATION
 Read Only : interrogation mais pas de mise a jour
 Nécessite de passer par des langages externe
6
SPARQL 1.1
 DESCRIPTION
 SPARQL 1.1 – recommandation récente du W3C
 SPARQL 1.1 – en 21-03-2013
 SPARQL 1.1 – interroger des banques de triplets
RDF
7
SPARQL 1.1
 NOUVEAUTÉS SPARQL 1.1 QUERY
 Projection (project Exption)
 Agrégation (Aggregates)
 Requetés imbriquées (Subqueris)
 Négation
 Chemins (Property-path)
 Librairie de fonctions (Function Library)
8
SPARQL 1.1 - PROJECTION
 As
 Assignation et création de nouvelles valeurs
 Utilisable avec les agrégats, fonctions mathématiques
et librairie de fonctions
9
SPARQL 1.1 - PROJECTION
<Person rdf:ID="John">
<age rdf:datatype="&xsd;integer" >37</age>
</Person>
<Person rdf:ID="Mark">
<age rdf:datatype="&xsd;integer" >14</age>
</Person>
<Woman rdf:ID="Flora">
<age rdf:datatype="&xsd;integer" >95</age>
</Woman>
<Man rdf:ID="Lucas">
<age rdf:datatype="&xsd;integer" >12</age>
</Man>
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
SELECT ?name (?x AS ?AGE)
where {
?name humans:age ?x
}
name AGE
John 37
Mark 14
Flora 95
Lucas 12
Gaston 102
William 42
Karl 36
Pierre 71
DATA
RESULTAT
10
SPARQL 1.1 - AGGREGATION
 SPARQL 1.0:
 Besoin de passer par un script externe pour les
fonctions agrégats « classiques » et disponibles en SQL
 Compter un nombre de résultats
 Trouver une valeur moyenne
 Prendre une valeur aléatoire
11
 SPARQL 1.1:
 COUNT
 SUM
 MIN
 MAX
 AVG
 SAMPLE
 ETC …
 Combinés avec les projections précédentes
SPARQL 1.1 - AGGREGATION
12
SPARQL 1.1 - AGGREGATION
PREFIX humans:<http://www.inria.fr/2007/09/11/humans#>
SELECT (COUNT( ?x) as ?count)
WHERE {
?y humans:age ?x
}
count
8
 COUNT :
 Nombre d’éléments associés a une expression
<Person rdf:ID="John">
<age rdf:datatype="&xsd;integer" >37</age>
</Person>
<Person rdf:ID="Mark">
<age rdf:datatype="&xsd;integer" >14</age>
</Person>
<Woman rdf:ID="Flora">
<age rdf:datatype="&xsd;integer" >95</age>
</Woman>
<Man rdf:ID="Lucas">
<age rdf:datatype="&xsd;integer" >12</age>
</Man>
RESULTAT
13
SPARQL 1.1 - AGGREGATION
PREFIX humans:<http://www.inria.fr/2007/09/11/humans#>
SELECT (AVG(?x) AS ?moyenne)
WHERE {
?y humans:age ?x
}
moyenne
52.44
 AVG :
 moyenne des valeurs associées a une expression
<Person rdf:ID="John">
<age rdf:datatype="&xsd;integer" >37</age>
</Person>
<Person rdf:ID="Mark">
<age rdf:datatype="&xsd;integer" >14</age>
</Person>
<Woman rdf:ID="Flora">
<age rdf:datatype="&xsd;integer" >95</age>
</Woman>
<Man rdf:ID="Lucas">
<age rdf:datatype="&xsd;integer" >12</age>
</Man>
RESULTAT
SPARQL 1.1 - SUBQUIRIES
 SPARQL 1.0:
 Necessaire de passer par un language extern
 SPARQL 1.1:
 Il est possible d'imbriquer les requêtes les unes dans les autres.
Mais , il faut faire attention à la portée des variables
 Exemple
14
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
SELECT ?name (?y AS ?Amis)
WHERE {
?x humans:name ?name.
{ SELECT ?y
WHERE {
?x humans:hasFriend ?y
} } }
15
 SPARQL 1.0:
 FILTRE + BOUND
 SPARQL 1.1:
 MINUS et NOT EXISTS
SPARQL 1.1 - NÉGATION
PREFIX tp: <http://www.inria.fr/2007/09/11/humans#>
SELECT ?x ?y
WHERE {
?x rdf:type tp:Man.
optional {?x tp:hasChild ?y}
FILTRE (!BOUND (?y))
}
16
 SPARQL 1.1:
 Simplifier la négation en SPARQL 1.1
 Identifier les patrons de requête non existants
 Supprimer certaines valeurs des résultats (Evaluer le
MINUS et le soustraire des résultats)
SPARQL 1.1 - NÉGATION
17
SPARQL 1.1 - NEGATION
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
SELECT ?name
WHERE {
?name humans:age ?y.
MINUS { ?name humans:age 37
}
}
name
Mark
Flora
Lucas
Gaston
William
Karl
Pierre
<Person rdf:ID="John">
<age rdf:datatype="&xsd;integer" >37</age>
</Person>
<Person rdf:ID="Mark">
<age rdf:datatype="&xsd;integer" >14</age>
</Person>
<Woman rdf:ID="Flora">
<age rdf:datatype="&xsd;integer" >95</age>
</Woman>
<Man rdf:ID="Lucas">
<age rdf:datatype="&xsd;integer" >12</age>
</Man>
RESULTAT
DATA
18
 SPARQL 1.1:
 Intégrer les fonctions utilisés par les différents intégrateurs
 Utilisés fréquemment mais non standardisés en SPARQL 1.0
 En supplément des fonctions habituelles, et de nouvelles
 STRLEN : longueur d’une chaine
 CONCAT : concatenation
 COALESCE : première expression sans erreur
 CONTAINS : sous-chaine de caractère
SPARQL 1.1 - FONCTIONS
19
SPARQL 1.1 - FONCTIONS
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
SELECT (CONCAT(?x,?name) AS ?concatination)
WHERE {
?y humans:age ?x
?y humans:name ?name.
}
<Person rdf:ID="John">
<age rdf:datatype="&xsd;integer" >37</age>
</Person>
<Person rdf:ID="Mark">
<age rdf:datatype="&xsd;integer" >14</age>
</Person>
<Woman rdf:ID="Flora">
<age rdf:datatype="&xsd;integer" >95</age>
</Woman>
<Man rdf:ID="Lucas">
<age rdf:datatype="&xsd;integer" >12</age>
</Man>
RESULTAT
DATA concatination
John37
Mark14
Flora95
Lucas12
Gaston102
William42
Karl36
Pierre71
20
 SPARQL 1.1:
 Un chemin est une voie possible entre deux nœuds dans un
graphe
 Ce système est basé sur les expressions régulières.
 Exemples
 Identifier les amis d’un ami, et les amis de leurs amis,
quelque soit la distance
SPARQL 1.1 - CHEMINS
21
SPARQL 1.1 - CHEMINS
Syntaxe description
IRI une IRI ou un nom préfixé, un chemin de longueur unitaire
^elt chemin inverse (de l'objet au sujet)
elt{,n} entre 0 et n occurrences de elt
elt{n,} n occurrences ou plus de elt
elt{n} exactement n occurrences de elt
elt{n,m} un chemin entre n et m occurrences de elt
elt? un chemin de zéro ou un elt
elt+ un chemin d'une ou plusieurs occurrences de elt
elt* un chemin de zéro ou plusieurs occurrences de elt
elt1|elt2 une voie alternative de elt1 ou elt2 (toutes les possibilités sont
essayées) ;
elt1 / elt2 une séquence de chemin de elt1, suivie par elt2
(elt) un groupe de chemin elt, des crochets de contrôle prioritaire
22
 Alternatives
 Simplifier l’union :
 Triples utilisant un prédicat parmi plusieurs
SPARQL 1.1 - CHEMINS
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
select ?x
where
{
?y (humans:name|humans:age) ?x
}
23
 Inverse
 Simplifier les requetés bidirectionnelles
 Simulation de la symétrie
 Exemple
SPARQL 1.1 - CHEMINS
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
select ?x
WHERE {
?x (^humans:age) ?y.
}
y
37
14
95
12
102
42
36
71
24
 Séquences
 Simplifier les imbrications
 A suivi de B, suivi de C …
 Exemple
SPARQL 1.1 - CHEMINS
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
SELECT ?y ?x
WHERE {
?y humans:name "Mark"
?y humans:hasFather/ humans:name ?x
}
25
 SPARQL 1.0:
 Read-only: Interrogation mais pas de mise a jour
 Nécessité de passer par des langage externes
 SPARQL 1.1:
 Deux types d'opérations ont été définis :
 les opérations sur les graphes (graph management)
 les opérations sur les données au sein de graphes (graph
update)
SPARQL 1.1 - UPDATE
26
SPARQL 1.1 - UPDATE
 SPARQL 1.1:
 Les opérations possibles sur les graphes sont :
 CREATE & DROP
 CLEAR & LOAD
 Pour les données et les triplets :
 INSERT DATA & DELETE DATA
 INSERT & DELETE
27
SPARQL 1.1 - UPDATE
SPARQL Update Language Statements
INSERT DATA { triples }
DELETE DATA {triples}
[ DELETE { template } ] [ INSERT { template } ] WHERE {
pattern }
LOAD <uri> [ INTO GRAPH <uri> ]
CLEAR GRAPH <uri>
CREATE [ SILENT ] GRAPH <uri>
DROP [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )
28
SPARQL 1.1 - UPDATE
 Suppression
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
DELETE DATA
{
<http://www.inria.fr/2007/09/11/humans-instances#John> humans:age 37
}
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
INSERT DATA
{
<http://www.inria.fr/2007/09/11/humans-instances#John>
humans:age 89
}
name AGE
John 89
Mark 14
Flora 95
Lucas 12
Gaston 102
William 42
Karl 36
Pierre 71
 Insertion
29
SPARQL 1.1 - UPDATE
 DELETE / INSERT
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
DELETE
where
{
?x humans:age 37
}
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
INSERT {
?x humans:age 1000 .
}
where {
? x humans:name "Alice"
}
name AGE
John 89
Alice 1000
Flora 95
Lucas 12
Karl 36
30
SPARQL 1.1 - PROTOCOL
 Définition
 Le protocole SPARQL est un moyen de transmettre des requêtes
et des mises à jour SPARQL des clients aux processeurs SPARQL
 Le protocole SPARQL se compose de deux opérations HTTP :
 Query opération
 Update opération
31
SPARQL 1.1 - PROTOCOL
 Terminologies
 SPARQL Protocol client
 SPARQL Protocol service
 SPARQL endpoint
 SPARQL Protocol operation
 RDF Dataset
32
SPARQL client SPARQL engine
RDF
Store
SPARQL 1.1 - PROTOCOL
33
CONCLUSION
 SPARQL permet de découvrir la structure d'une base de données.
Cela servira à l'avenir à des agents (machines) sur le Web qui
pourront ainsi découvrir les données disponibles à travers le Web
pour répondre à des questions complexes.
 SPARQL ouvre ainsi les portes au Web des données (Linked
Data), qui permettra à l'homme et à la machine de mieux
interpréter les informations à travers le Web, sans service
intermédiaire.
34
QUESTIONS :
Merci pour votre
attention
^_^
35

Mais conteúdo relacionado

Destaque

Introduction to RDF & SPARQL
Introduction to RDF & SPARQLIntroduction to RDF & SPARQL
Introduction to RDF & SPARQLOpen Data Support
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Olaf Hartig
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQLOlaf Hartig
 
SPARQL - Basic and Federated Queries
SPARQL - Basic and Federated QueriesSPARQL - Basic and Federated Queries
SPARQL - Basic and Federated QueriesKnud Möller
 
Presentacion curso
Presentacion cursoPresentacion curso
Presentacion cursomercemmm
 
Tercer seminario
Tercer seminarioTercer seminario
Tercer seminarioInnaRM
 
Diapositivas de twitter
Diapositivas de twitterDiapositivas de twitter
Diapositivas de twittertatiz16
 
Delrio en uci
Delrio en uciDelrio en uci
Delrio en uciroberdox
 
Revista informe
Revista informeRevista informe
Revista informesifinancia
 
Redes inalámbricas
Redes inalámbricasRedes inalámbricas
Redes inalámbricasshadiaav
 
Stuart hall estudios culturales dos paradigmas* revista “causas y azares”, n...
Stuart hall estudios culturales  dos paradigmas* revista “causas y azares”, n...Stuart hall estudios culturales  dos paradigmas* revista “causas y azares”, n...
Stuart hall estudios culturales dos paradigmas* revista “causas y azares”, n...José Carlos Bonino Jasaui
 

Destaque (20)

SPARQL Tutorial
SPARQL TutorialSPARQL Tutorial
SPARQL Tutorial
 
Introduction to RDF & SPARQL
Introduction to RDF & SPARQLIntroduction to RDF & SPARQL
Introduction to RDF & SPARQL
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQL
 
SPARQL - Basic and Federated Queries
SPARQL - Basic and Federated QueriesSPARQL - Basic and Federated Queries
SPARQL - Basic and Federated Queries
 
SPARQL Cheat Sheet
SPARQL Cheat SheetSPARQL Cheat Sheet
SPARQL Cheat Sheet
 
Presentacion curso
Presentacion cursoPresentacion curso
Presentacion curso
 
Seminario v
Seminario vSeminario v
Seminario v
 
Tercer seminario
Tercer seminarioTercer seminario
Tercer seminario
 
Diapositivas de twitter
Diapositivas de twitterDiapositivas de twitter
Diapositivas de twitter
 
Delrio en uci
Delrio en uciDelrio en uci
Delrio en uci
 
Revista informe
Revista informeRevista informe
Revista informe
 
La cultura de las ciudades
La cultura de las ciudadesLa cultura de las ciudades
La cultura de las ciudades
 
Arquitecturaderede s
Arquitecturaderede sArquitecturaderede s
Arquitecturaderede s
 
Guitarra
GuitarraGuitarra
Guitarra
 
Redes inalámbricas
Redes inalámbricasRedes inalámbricas
Redes inalámbricas
 
El barroco
El barrocoEl barroco
El barroco
 
Stuart hall estudios culturales dos paradigmas* revista “causas y azares”, n...
Stuart hall estudios culturales  dos paradigmas* revista “causas y azares”, n...Stuart hall estudios culturales  dos paradigmas* revista “causas y azares”, n...
Stuart hall estudios culturales dos paradigmas* revista “causas y azares”, n...
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 

Semelhante a SPARQL_1.1

Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Alexis Seigneurin
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsMICHRAFY MUSTAFA
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDidier Plaindoux
 
Solr overview presentation
Solr overview presentationSolr overview presentation
Solr overview presentationspy-seth
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairAlexis Seigneurin
 
___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdf___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdfOuailChoukhairi
 
Open data & linked data
Open data & linked dataOpen data & linked data
Open data & linked dataVincentBroute
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 
Fmin103 0910 tpjdbc
Fmin103 0910 tpjdbcFmin103 0910 tpjdbc
Fmin103 0910 tpjdbcKarim Amane
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5halleck45
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdfOuailChoukhairi
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamTelecomValley
 

Semelhante a SPARQL_1.1 (20)

Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)
 
5 sw
5 sw5 sw
5 sw
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
 
Solr overview presentation
Solr overview presentationSolr overview presentation
Solr overview presentation
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdf___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdf
 
Open data & linked data
Open data & linked dataOpen data & linked data
Open data & linked data
 
Sql
SqlSql
Sql
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Fmin103 0910 tpjdbc
Fmin103 0910 tpjdbcFmin103 0910 tpjdbc
Fmin103 0910 tpjdbc
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
Introduction Apche Spark
Introduction Apche SparkIntroduction Apche Spark
Introduction Apche Spark
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
XML Xpath & XSLT
XML  Xpath & XSLTXML  Xpath & XSLT
XML Xpath & XSLT
 

SPARQL_1.1

  • 1. 1 Faculté des Sciences Dhar El Mahraz-Fès SPARQL 1.1 • Yassine AKHIAT • El Yazid AKACHAR Master : Information Systems ,Network & Multimédia
  • 2. 2 Plan  Introduction  SPARQL 1.0  SPARQL 1.1  Description  Motivation  Nouveautés  Demonstration  Conclusion
  • 4. 4 SPARQL 1.0  SPARQL est composé de 3 parties :  SPARQL Query Language  SPARQL QUERY RESULTS  SPARQL PROTOCOL FOR RDF
  • 5. 5 SPARQL 1.0  LIMITATION  Read Only : interrogation mais pas de mise a jour  Nécessite de passer par des langages externe
  • 6. 6 SPARQL 1.1  DESCRIPTION  SPARQL 1.1 – recommandation récente du W3C  SPARQL 1.1 – en 21-03-2013  SPARQL 1.1 – interroger des banques de triplets RDF
  • 7. 7 SPARQL 1.1  NOUVEAUTÉS SPARQL 1.1 QUERY  Projection (project Exption)  Agrégation (Aggregates)  Requetés imbriquées (Subqueris)  Négation  Chemins (Property-path)  Librairie de fonctions (Function Library)
  • 8. 8 SPARQL 1.1 - PROJECTION  As  Assignation et création de nouvelles valeurs  Utilisable avec les agrégats, fonctions mathématiques et librairie de fonctions
  • 9. 9 SPARQL 1.1 - PROJECTION <Person rdf:ID="John"> <age rdf:datatype="&xsd;integer" >37</age> </Person> <Person rdf:ID="Mark"> <age rdf:datatype="&xsd;integer" >14</age> </Person> <Woman rdf:ID="Flora"> <age rdf:datatype="&xsd;integer" >95</age> </Woman> <Man rdf:ID="Lucas"> <age rdf:datatype="&xsd;integer" >12</age> </Man> PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> SELECT ?name (?x AS ?AGE) where { ?name humans:age ?x } name AGE John 37 Mark 14 Flora 95 Lucas 12 Gaston 102 William 42 Karl 36 Pierre 71 DATA RESULTAT
  • 10. 10 SPARQL 1.1 - AGGREGATION  SPARQL 1.0:  Besoin de passer par un script externe pour les fonctions agrégats « classiques » et disponibles en SQL  Compter un nombre de résultats  Trouver une valeur moyenne  Prendre une valeur aléatoire
  • 11. 11  SPARQL 1.1:  COUNT  SUM  MIN  MAX  AVG  SAMPLE  ETC …  Combinés avec les projections précédentes SPARQL 1.1 - AGGREGATION
  • 12. 12 SPARQL 1.1 - AGGREGATION PREFIX humans:<http://www.inria.fr/2007/09/11/humans#> SELECT (COUNT( ?x) as ?count) WHERE { ?y humans:age ?x } count 8  COUNT :  Nombre d’éléments associés a une expression <Person rdf:ID="John"> <age rdf:datatype="&xsd;integer" >37</age> </Person> <Person rdf:ID="Mark"> <age rdf:datatype="&xsd;integer" >14</age> </Person> <Woman rdf:ID="Flora"> <age rdf:datatype="&xsd;integer" >95</age> </Woman> <Man rdf:ID="Lucas"> <age rdf:datatype="&xsd;integer" >12</age> </Man> RESULTAT
  • 13. 13 SPARQL 1.1 - AGGREGATION PREFIX humans:<http://www.inria.fr/2007/09/11/humans#> SELECT (AVG(?x) AS ?moyenne) WHERE { ?y humans:age ?x } moyenne 52.44  AVG :  moyenne des valeurs associées a une expression <Person rdf:ID="John"> <age rdf:datatype="&xsd;integer" >37</age> </Person> <Person rdf:ID="Mark"> <age rdf:datatype="&xsd;integer" >14</age> </Person> <Woman rdf:ID="Flora"> <age rdf:datatype="&xsd;integer" >95</age> </Woman> <Man rdf:ID="Lucas"> <age rdf:datatype="&xsd;integer" >12</age> </Man> RESULTAT
  • 14. SPARQL 1.1 - SUBQUIRIES  SPARQL 1.0:  Necessaire de passer par un language extern  SPARQL 1.1:  Il est possible d'imbriquer les requêtes les unes dans les autres. Mais , il faut faire attention à la portée des variables  Exemple 14 PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> SELECT ?name (?y AS ?Amis) WHERE { ?x humans:name ?name. { SELECT ?y WHERE { ?x humans:hasFriend ?y } } }
  • 15. 15  SPARQL 1.0:  FILTRE + BOUND  SPARQL 1.1:  MINUS et NOT EXISTS SPARQL 1.1 - NÉGATION PREFIX tp: <http://www.inria.fr/2007/09/11/humans#> SELECT ?x ?y WHERE { ?x rdf:type tp:Man. optional {?x tp:hasChild ?y} FILTRE (!BOUND (?y)) }
  • 16. 16  SPARQL 1.1:  Simplifier la négation en SPARQL 1.1  Identifier les patrons de requête non existants  Supprimer certaines valeurs des résultats (Evaluer le MINUS et le soustraire des résultats) SPARQL 1.1 - NÉGATION
  • 17. 17 SPARQL 1.1 - NEGATION PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> SELECT ?name WHERE { ?name humans:age ?y. MINUS { ?name humans:age 37 } } name Mark Flora Lucas Gaston William Karl Pierre <Person rdf:ID="John"> <age rdf:datatype="&xsd;integer" >37</age> </Person> <Person rdf:ID="Mark"> <age rdf:datatype="&xsd;integer" >14</age> </Person> <Woman rdf:ID="Flora"> <age rdf:datatype="&xsd;integer" >95</age> </Woman> <Man rdf:ID="Lucas"> <age rdf:datatype="&xsd;integer" >12</age> </Man> RESULTAT DATA
  • 18. 18  SPARQL 1.1:  Intégrer les fonctions utilisés par les différents intégrateurs  Utilisés fréquemment mais non standardisés en SPARQL 1.0  En supplément des fonctions habituelles, et de nouvelles  STRLEN : longueur d’une chaine  CONCAT : concatenation  COALESCE : première expression sans erreur  CONTAINS : sous-chaine de caractère SPARQL 1.1 - FONCTIONS
  • 19. 19 SPARQL 1.1 - FONCTIONS PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> SELECT (CONCAT(?x,?name) AS ?concatination) WHERE { ?y humans:age ?x ?y humans:name ?name. } <Person rdf:ID="John"> <age rdf:datatype="&xsd;integer" >37</age> </Person> <Person rdf:ID="Mark"> <age rdf:datatype="&xsd;integer" >14</age> </Person> <Woman rdf:ID="Flora"> <age rdf:datatype="&xsd;integer" >95</age> </Woman> <Man rdf:ID="Lucas"> <age rdf:datatype="&xsd;integer" >12</age> </Man> RESULTAT DATA concatination John37 Mark14 Flora95 Lucas12 Gaston102 William42 Karl36 Pierre71
  • 20. 20  SPARQL 1.1:  Un chemin est une voie possible entre deux nœuds dans un graphe  Ce système est basé sur les expressions régulières.  Exemples  Identifier les amis d’un ami, et les amis de leurs amis, quelque soit la distance SPARQL 1.1 - CHEMINS
  • 21. 21 SPARQL 1.1 - CHEMINS Syntaxe description IRI une IRI ou un nom préfixé, un chemin de longueur unitaire ^elt chemin inverse (de l'objet au sujet) elt{,n} entre 0 et n occurrences de elt elt{n,} n occurrences ou plus de elt elt{n} exactement n occurrences de elt elt{n,m} un chemin entre n et m occurrences de elt elt? un chemin de zéro ou un elt elt+ un chemin d'une ou plusieurs occurrences de elt elt* un chemin de zéro ou plusieurs occurrences de elt elt1|elt2 une voie alternative de elt1 ou elt2 (toutes les possibilités sont essayées) ; elt1 / elt2 une séquence de chemin de elt1, suivie par elt2 (elt) un groupe de chemin elt, des crochets de contrôle prioritaire
  • 22. 22  Alternatives  Simplifier l’union :  Triples utilisant un prédicat parmi plusieurs SPARQL 1.1 - CHEMINS PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> select ?x where { ?y (humans:name|humans:age) ?x }
  • 23. 23  Inverse  Simplifier les requetés bidirectionnelles  Simulation de la symétrie  Exemple SPARQL 1.1 - CHEMINS PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> select ?x WHERE { ?x (^humans:age) ?y. } y 37 14 95 12 102 42 36 71
  • 24. 24  Séquences  Simplifier les imbrications  A suivi de B, suivi de C …  Exemple SPARQL 1.1 - CHEMINS PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> SELECT ?y ?x WHERE { ?y humans:name "Mark" ?y humans:hasFather/ humans:name ?x }
  • 25. 25  SPARQL 1.0:  Read-only: Interrogation mais pas de mise a jour  Nécessité de passer par des langage externes  SPARQL 1.1:  Deux types d'opérations ont été définis :  les opérations sur les graphes (graph management)  les opérations sur les données au sein de graphes (graph update) SPARQL 1.1 - UPDATE
  • 26. 26 SPARQL 1.1 - UPDATE  SPARQL 1.1:  Les opérations possibles sur les graphes sont :  CREATE & DROP  CLEAR & LOAD  Pour les données et les triplets :  INSERT DATA & DELETE DATA  INSERT & DELETE
  • 27. 27 SPARQL 1.1 - UPDATE SPARQL Update Language Statements INSERT DATA { triples } DELETE DATA {triples} [ DELETE { template } ] [ INSERT { template } ] WHERE { pattern } LOAD <uri> [ INTO GRAPH <uri> ] CLEAR GRAPH <uri> CREATE [ SILENT ] GRAPH <uri> DROP [ SILENT ] (GRAPH <uri> | DEFAULT | NAMED | ALL )
  • 28. 28 SPARQL 1.1 - UPDATE  Suppression PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> DELETE DATA { <http://www.inria.fr/2007/09/11/humans-instances#John> humans:age 37 } PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> INSERT DATA { <http://www.inria.fr/2007/09/11/humans-instances#John> humans:age 89 } name AGE John 89 Mark 14 Flora 95 Lucas 12 Gaston 102 William 42 Karl 36 Pierre 71  Insertion
  • 29. 29 SPARQL 1.1 - UPDATE  DELETE / INSERT PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> DELETE where { ?x humans:age 37 } PREFIX humans: <http://www.inria.fr/2007/09/11/humans#> INSERT { ?x humans:age 1000 . } where { ? x humans:name "Alice" } name AGE John 89 Alice 1000 Flora 95 Lucas 12 Karl 36
  • 30. 30 SPARQL 1.1 - PROTOCOL  Définition  Le protocole SPARQL est un moyen de transmettre des requêtes et des mises à jour SPARQL des clients aux processeurs SPARQL  Le protocole SPARQL se compose de deux opérations HTTP :  Query opération  Update opération
  • 31. 31 SPARQL 1.1 - PROTOCOL  Terminologies  SPARQL Protocol client  SPARQL Protocol service  SPARQL endpoint  SPARQL Protocol operation  RDF Dataset
  • 32. 32 SPARQL client SPARQL engine RDF Store SPARQL 1.1 - PROTOCOL
  • 33. 33 CONCLUSION  SPARQL permet de découvrir la structure d'une base de données. Cela servira à l'avenir à des agents (machines) sur le Web qui pourront ainsi découvrir les données disponibles à travers le Web pour répondre à des questions complexes.  SPARQL ouvre ainsi les portes au Web des données (Linked Data), qui permettra à l'homme et à la machine de mieux interpréter les informations à travers le Web, sans service intermédiaire.