Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SPARQL_1.1

814 views

Published on

Introduction about SPARQL_1.1

Published in: Science
  • Be the first to comment

  • Be the first to like this

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

×