1
Faculté des Sciences Dhar El
Mahraz-Fès
SPARQL 1.1
• Yassine AKHIAT
• El Yazid AKACHAR
Master :
Information Systems ,Net...
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 exter...
6
SPARQL 1.1
 DESCRIPTION
 SPARQL 1.1 – recommandation récente du W3C
 SPARQL 1.1 – en 21-03-2013
 SPARQL 1.1 – interr...
7
SPARQL 1.1
 NOUVEAUTÉS SPARQL 1.1 QUERY
 Projection (project Exption)
 Agrégation (Aggregates)
 Requetés imbriquées ...
8
SPARQL 1.1 - PROJECTION
 As
 Assignation et création de nouvelles valeurs
 Utilisable avec les agrégats, fonctions ma...
9
SPARQL 1.1 - PROJECTION
<Person rdf:ID="John">
<age rdf:datatype="&xsd;integer" >37</age>
</Person>
<Person rdf:ID="Mark...
10
SPARQL 1.1 - AGGREGATION
 SPARQL 1.0:
 Besoin de passer par un script externe pour les
fonctions agrégats « classique...
11
 SPARQL 1.1:
 COUNT
 SUM
 MIN
 MAX
 AVG
 SAMPLE
 ETC …
 Combinés avec les projections précédentes
SPARQL 1.1 -...
12
SPARQL 1.1 - AGGREGATION
PREFIX humans:<http://www.inria.fr/2007/09/11/humans#>
SELECT (COUNT( ?x) as ?count)
WHERE {
?...
13
SPARQL 1.1 - AGGREGATION
PREFIX humans:<http://www.inria.fr/2007/09/11/humans#>
SELECT (AVG(?x) AS ?moyenne)
WHERE {
?y...
SPARQL 1.1 - SUBQUIRIES
 SPARQL 1.0:
 Necessaire de passer par un language extern
 SPARQL 1.1:
 Il est possible d'imbr...
15
 SPARQL 1.0:
 FILTRE + BOUND
 SPARQL 1.1:
 MINUS et NOT EXISTS
SPARQL 1.1 - NÉGATION
PREFIX tp: <http://www.inria.f...
16
 SPARQL 1.1:
 Simplifier la négation en SPARQL 1.1
 Identifier les patrons de requête non existants
 Supprimer cert...
17
SPARQL 1.1 - NEGATION
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
SELECT ?name
WHERE {
?name humans:age ?y....
18
 SPARQL 1.1:
 Intégrer les fonctions utilisés par les différents intégrateurs
 Utilisés fréquemment mais non standar...
19
SPARQL 1.1 - FONCTIONS
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
SELECT (CONCAT(?x,?name) AS ?concatinati...
20
 SPARQL 1.1:
 Un chemin est une voie possible entre deux nœuds dans un
graphe
 Ce système est basé sur les expressio...
21
SPARQL 1.1 - CHEMINS
Syntaxe description
IRI une IRI ou un nom préfixé, un chemin de longueur unitaire
^elt chemin inve...
22
 Alternatives
 Simplifier l’union :
 Triples utilisant un prédicat parmi plusieurs
SPARQL 1.1 - CHEMINS
PREFIX human...
23
 Inverse
 Simplifier les requetés bidirectionnelles
 Simulation de la symétrie
 Exemple
SPARQL 1.1 - CHEMINS
PREFIX...
24
 Séquences
 Simplifier les imbrications
 A suivi de B, suivi de C …
 Exemple
SPARQL 1.1 - CHEMINS
PREFIX humans: <h...
25
 SPARQL 1.0:
 Read-only: Interrogation mais pas de mise a jour
 Nécessité de passer par des langage externes
 SPARQ...
26
SPARQL 1.1 - UPDATE
 SPARQL 1.1:
 Les opérations possibles sur les graphes sont :
 CREATE & DROP
 CLEAR & LOAD
 Po...
27
SPARQL 1.1 - UPDATE
SPARQL Update Language Statements
INSERT DATA { triples }
DELETE DATA {triples}
[ DELETE { template...
28
SPARQL 1.1 - UPDATE
 Suppression
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
DELETE DATA
{
<http://www.inr...
29
SPARQL 1.1 - UPDATE
 DELETE / INSERT
PREFIX humans: <http://www.inria.fr/2007/09/11/humans#>
DELETE
where
{
?x humans:...
30
SPARQL 1.1 - PROTOCOL
 Définition
 Le protocole SPARQL est un moyen de transmettre des requêtes
et des mises à jour S...
31
SPARQL 1.1 - PROTOCOL
 Terminologies
 SPARQL Protocol client
 SPARQL Protocol service
 SPARQL endpoint
 SPARQL Pro...
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 (machi...
34
QUESTIONS :
Merci pour votre
attention
^_^
35
Prochain SlideShare
Chargement dans…5
×

SPARQL_1.1

620 vues

Publié le

Introduction about SPARQL_1.1

Publié dans : Sciences
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
620
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

SPARQL_1.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. 2 Plan  Introduction  SPARQL 1.0  SPARQL 1.1  Description  Motivation  Nouveautés  Demonstration  Conclusion
  3. 3. 3 INTRODUCTION
  4. 4. 4 SPARQL 1.0  SPARQL est composé de 3 parties :  SPARQL Query Language  SPARQL QUERY RESULTS  SPARQL PROTOCOL FOR RDF
  5. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 31 SPARQL 1.1 - PROTOCOL  Terminologies  SPARQL Protocol client  SPARQL Protocol service  SPARQL endpoint  SPARQL Protocol operation  RDF Dataset
  32. 32. 32 SPARQL client SPARQL engine RDF Store SPARQL 1.1 - PROTOCOL
  33. 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.
  34. 34. 34 QUESTIONS :
  35. 35. Merci pour votre attention ^_^ 35

×