W3C SPARQL (Simple Protocol And RDF Query Language) BALI Ahmed Master informatique 2012/2013 ----------- Basé sur le cours de olivier.

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
Ma surprise du Zoo.
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Vocabulaire 6.2 Français II Bon voyage ! 1.
Licence pro MPCQ : Cours
Distance inter-locuteur
Le pluriel des noms
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Les numéros 70 –
Les numéros
ACTIVITES Les fractions (10).
Sud Ouest Est Nord Individuel 36 joueurs
Les identités remarquables
Le, la, les words Possessive Adjectives MINE!!. 2 My in french is mon, ma,mes... Le word/ begins with a vowel: Mon La word: Ma Les word: Mes.
Cours Web sémantique Langage SPARQL
Sirop de Liège « industriel »
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
Nom du module Date Lieu de la formation. 2 Genèse du projet Historique, partenaires, publics Pour qui ? Pourquoi ? Qui ? Comment ? Quand ?
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
-17 Anticipations économiques en Europe Septembre 2013 Indicateur > +20 Indicateur 0 a +20 Indicateur 0 a -20 Indicateur < -20 Union européenne total:
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
CONCOURS DE CONAISSANCE 4 Français I Mars Il ________ la géographie (to learn).
Cours de physique générale I Ph 11
Langages du Web Sémantique
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
PM18 MONTAGE DU BLINDAGE AUTOUR DE LA QRL F. DELSAUX - 25 JAN 2005
Le Concours de Conaissance Francais I novembre 2012.
Titre : Implémentation des éléments finis sous Matlab
LES NOMBRES PREMIERS ET COMPOSÉS
Unit 4: Les animaux - Il y a - There is/are Unit 4: Les animaux.
Unit 4: Les animaux Unit 4: Les animaux.
1 INETOP
1 Délégation FSA 2008: Cycle de formations prédépart __ Quest-ce que la mondialisation ?
RACINES CARREES Définition Développer avec la distributivité Produit 1
Systèmes mécaniques et électriques
Appliquer la métthode Branch and Bound au problème de lassignation des tâches avec la matrice suivante: 1234 a11 88 b c33415 d Calcul de.
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
1 10 pt 15 pt 20 pt 25 pt 5 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Les fonctions.
Titre : Implémentation des éléments finis en Matlab
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
C'est pour bientôt.....
1 INETOP
Veuillez trouver ci-joint
+21 Anticipations économiques en Europe Decembre 2013 Indicateur > +20 Indicateur 0 á +20 Indicateur 0 á -20 Indicateur < -20 Union européenne total: +14.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
Nom:____________ Prénom: ___________
CALENDRIER-PLAYBOY 2020.
Exercice de vérification 1 p
Commission paritaire de suivi des opérations de reclassement repositionnement dans le cadre du droit d’option Statistiques novembre 2010.
Les Chiffres Prêts?
Elles avaient envahi le jardin, mais derrière... 1.
Les parties du corps By Haru Mehra Le Frehindi 1Haru Mehra, DELF, DALF,CFP.
Transcription de la présentation:

W3C SPARQL (Simple Protocol And RDF Query Language) BALI Ahmed Master informatique 2012/ Basé sur le cours de olivier corby (INRIA)

Notion est un langage de requête et un protocole qui permettra de rechercher, d'ajouter, de modifier ou de supprimer des données RDF disponibles à travers Internet. Comme le SQL aux données des bases de données, avec SPARQL, on accède aux données du Web des données. « SPARQL fera une énorme différence», selon Tim Berners-Lee dès mai

Que fait SPARQL? Pour interroger une base de triplets RDF sous forme de graphe SPARQL est neutre par rapport aux inférences RDF/RDFS/OWL. Cest au serveur de triplets (e,g dbpedia) de faire les inférences et de délivrer les bons triplets 3

A partir dune base RDF : Extraire de linformation : URI, literal, datatype literal Extraire un sous graphe RDF Construire un graphe résultat 4

SPARQL: exemple PREFIX foaf: SELECT ?mbox WHERE { ?x foaf:name "Johnny Lee Outlaw". ?x foaf:mbox ?mbox } 5

Syntaxe SPARQL : Triple URI: Qname: rdf:type foaf:name Variable: ?x ?name Blank Node (variable anonyme): _:b1 _:b2 Literal: Literal 3.14 true 12^^xsd:integer 6

Syntaxe SPARQL : Triple subject property object foaf:name ?name ?x foaf:name 'Omar' ?x ?p 'Omar' _:b1 foaf:age 49 7

Syntaxe SPARQL ?x c:firstName ?y. ?x c:lastName ?z ?x c:firstName ?y ; c:lastName ?z 8

Syntaxe SPARQL ?x c:name Omar. ?x c:name Zaid. ?x c:name Omar, Zaid. 9

Blank Node _:b [] _:b c:speed ?v ?x c:speed [] Blank: comme une variable non retournée en résultat 10

Blank Node ?x c:speed [ rdf:value ?val ; c:unit 'km/h' ] Equivalent à : ?x c:speed _:b _:b rdf:value ?val _:b c:unit 'km/h' 11

Blank Node ?x c:speed [ rdf:value ?val ; c:unit 'km/h' ] Interroger le design pattern des relations n-aires: 100 km/h 12

Liste (1 ?x v) _:a rdf:first 1. _:a rdf:rest _:b. _:b rdf:first ?x. _:b rdf:rest _:c. _:c rdf:first v. _:c rdf:rest rdf:nil 13

Test : Filtre FILTER (?age >= 7 && ?age <= 77) Comparaison : = > != Opération : + * / - Booléen : && (and) || (or) ! (not) Fonction : isBlank(?x) my:fun(?y) 14

Syntaxe Abstraite Filtre EXP ::= TERM | EXP OPER EXP | (EXP) TERM ::= VAR | CST | FUN CST ::= URI | Literal OPER ::= = > + - * / && || ! FUN ::= NAME( EXP* ) 15

Tests et datatypes 1 = 1.0 1^^xsd:integer = 1.0^^xsd:decimal ?x + ?y < 0.1 * ?z 16

Tests regex(?string,.*master.*) engineer != engineer = 17

Tests: fonctions isURI(?x) isLiteral(?y) isBlank(?z) bound(?t) 18

Tests lang(?x) = en -> true -> false datatype(?y)= xsd:string ! (?x || ?y && ?z) 19

Exercice 1. Trouver lage des ressources dont le nom est Salim 2. Trouver le nom des ressources dont lage est inférieur à 50, 3. Trouver les valeurs des propriétés des ressources dont le nom est Salim et lage inférieur à Trouver les autres noms des ressources dont le nom est Salim 5. Trouver les ressources qui ont deux propriétés différentes avec la même valeur 6. Trouver les ressources qui ont deux fois la même propriété avec des valeurs différentes 20

Exercice 1. Trouver lage des ressources dont le nom est Salim select ?age where { ?x name Salim. ?x age ?age } 2. Trouver le nom des ressources dont lage est inférieur à 50 select ?name where { ?x name ?name. ?x age ?age filter(?age < 50) } 3. Trouver les valeurs des propriétés des ressources dont le nom est Salim et lage inférieur à 50 select ?p ?y where { ?x name Salim. ?x age ?age filter(?age < 50) ?x ?p ?y } 21

Exercice 4. Trouver les autres noms des ressources dont le nom est Salim select ?name where { ?x name Salim. ?x name ?name } 5. Trouver les ressources qui ont deux propriétés différentes avec la même valeur select * where { ?x ?p ?y. ?x ?q ?y filter(?p != ?q)} 6. Trouver les ressources qui ont deux fois la même propriété avec des valeurs différentes select * where { ?x ?p ?y. ?x ?p ?z filter(?y != ?z)} 22

Pattern optionnel SELECT * WHERE { ?x :hasCreated ?doc. OPTIONAL { ?x :isMemberOf ?org } hasCreated est obligatoire isMemberOf est optionnel 23

Pattern optionnel SELECT * WHERE { :John :hasCreated :d1 ?x :hasCreated ?doc :John :hasCreated :d2 OPTIONAL { :Jack :hasCreated :d3 ?x :isMemberOf ?org :Jack :isMemberOf :club } Résultats: (1) x = :John ; doc = :d1 ; org = unbound (2) x = :John ; doc = :d2 ; org = unbound (3) x = :Jack ; doc = :d3 ; org = :club 24

Pattern optionnel SELECT * WHERE { ?x :hasCreated ?doc. OPTIONAL { ?x :age ?age. ?x :isMemberOf ?org } age et isMemberOf doivent être présents pour que optional réussisse 25

Pattern optionnel SELECT * WHERE { :John :hasCreated :d1 ?x :hasCreated ?doc. :John :hasCreated :d2 OPTIONAL { :Jack :hasCreated :d3 ?x :age ?age. :Jack :isMemberOf :club ?x :isMemberOf ?org :Jim :hasCreated :d4 } :Jim :isMemberOf :assoc } :Jim :age 45 Résultats (1) x = :John ; doc = :d1 ; org = unbound ; age = unbound (2) x = :John ; doc = :d2 ; org = unbound ; age = unbound (3) x = :Jack ; doc = :d3 ; org = unbound ; age = unbound (4) x = :Jim ; doc = :d4 ; org = :assoc ; age = 45 26

Pattern optionnel SELECT * WHERE { :John :hasCreated :d1 ?x :hasCreated ?doc. :John :hasCreated :d2 OPTIONAL {?x :age ?age} :Jack :hasCreated :d3 OPTIONAL {?x :isMemberOf ?org} :Jack :isMemberOf :club } :Jim :hasCreated :d4 :Jim :isMemberOf :assoc :Jim :age 45 Résultats (1) x = :John ; doc = :d1 ; org = unbound ; age = unbound (2) x = :John ; doc = :d2 ; org = unbound ; age = unbound (3) x = :Jack ; doc = :d3 ; org = :club ; age = unbound (4) x = :Jim ; doc = :d4 ; org = :assoc ; age = 45 27

Pattern optionnel avec test SELECT * WHERE { ?x :hasCreated ?doc. OPTIONAL { ?x :age ?age FILTER (?age < 45). ?x :isMemberOf ?org. } 28

Pattern UNION SELECT * WHERE { :Barack :apply :Presidency {?x :apply ?job} :Barack :play :BasketBall UNION :John :apply :Presidency {?x :play ?act} } Résultats (1) x = :Barack ; job = :Presidency ; act = unbound (2) x = :Barack ; job = unbound ; act = :BasketBall (3) x = :John ; job = :Presidency ; act = unbound 29

RDF Dataset Interroger une base de plusieurs graphes Des graphes nommés avec des URI Un graphe par défaut Identifier les graphes interrogés 30

Résultat SELECT * WHERE SELECT DISTINCT ?x ?y WHERE ORDER BY ?x DESC(?y) LIMIT 10 OFFSET 10 31

Distinct select distinct ?x ?z where { ?x :friend ?y ?y :friend ?z } Ne retourne pas deux fois les mêmes valeurs de x et z 32

Distinct select distinct ?x ?z :Jules :friend :Jim where { :Jim :friend :Jack ?x :friend ?y :Jules :friend :James ?y :friend ?z :James :friend :Jack } Résultat (1) x = :Jules ; z = :Jack 33

Distinct select ?x ?z :Jules :friend :Jim where { :Jim :friend :Jack ?x :friend ?y :Jules :friend :James ?y :friend ?z :James :friend :Jack } Résultat (1) x = :Jules ; z = :Jack (2) x = :Jules ; z = :Jack 34

Order by select ?pers ?date :Jim :author :d2 where { :Jack :author :d1 ?pers :author ?doc :d2 :date ?doc :date ?date :d1 :date } order by ?date Résultat (1) pers = :Jim ; date = (2) pers = :Jack ; date =

Order by select ?doc ?date :Jim :author :d2 where { :Jack :author :d1 ?pers :author ?doc :Jack :author :d3 ?doc :date ?date :d2 :date } :d1 :date order by ?date :d3 :date desc(?doc) Résultat (1) doc = :d3 ; date = (2) doc = :d1 ; date = (3) doc = :d2 ; date =

Limit/Offset select * where { PATTERN } LIMIT résultats au plus 37

Limit/Offset select * where { PATTERN } LIMIT 20 OFFSET résultats (au plus), après le 10ème i.e. de 11 à 30 38

Construct construct { ?girl :brother ?boy } where { ?boy :sister ?girl } 39

Construct construct { :Jules :sister :Jil ?girl :brother ?boy } where { ?boy :sister ?girl } Résultat :Jil :brother :Jules 40

Discribe describe ?x where { ?x rdf:type :HotTopic ?x :date ?date filter (?date >= ^^xsd:date) } Retourne une description des ?x, dépend de lapplication (du serveur) 41

Ask ask {:Olivier :teach :ensi} yes/no answer 42

Négation Trouver les personnes qui sont membre dune organisation et qui nont pas créé de doc 43

Negation as failure Les personnes qui sont membre dune organisation et qui nont pas créé de doc : SELECT * WHERE { ?x c:isMemberOf ?org. OPTIONAL { ?x c:hasCreated ?doc } FILTER (! bound(?doc)) } 44

Fonction externe (user defined) PREFIX fun: SELECT * WHERE { ?x c:age ?age. FILTER fun:prime(?age) } 45

Format Résultat XML <sparql xmlns=" 46

Format Résultat XML <sparql xmlns=" 47

Format Résultat XML r2 Bob 30 48