La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Langages du Web Sémantique

Présentations similaires


Présentation au sujet: "Langages du Web Sémantique"— Transcription de la présentation:

1 Langages du Web Sémantique
SPARQL Protocol And RDF Query Language SPARQL Pierre-Yves Vandenbussche

2 Langages du Web Sémantique
SPARQL Langage de requête sur les données RDF (recommandé par W3C en 2008). Protocole d’accès (HTML, SOAP) Langage de présentation des résultats (XML(bindings), RDF) Syntaxe basé sur Turtle (un sous ensemble de N3) Appariement de graphes / projection Principe courant imitant SQL Possibilité de retourner un résultat (clause SELECT) un nouveau graphe de données (clause CONSTRUCT) un booléen pour savoir si il y a au moins 1 résultat (clause ASK)

3 Langages du Web Sémantique
SPARQL - Exemple Données @prefix foaf: < . _:a foaf:name "Johnny Lee Outlaw" . _:a foaf:mbox . _:b foaf:name "Peter Goodguy" . _:b foaf:mbox . _:c foaf:mbox . Requête PREFIX foaf: < SELECT ?name ?mbox WHERE { ?x foaf:name ?name . ?x foaf:mbox ?mbox. } Résultat

4 Langages du Web Sémantique
SPARQL – en détail En 4 blocs: PREFIX: déclaration des namespaces utilisés SELECT: clause sélectionnant les variables à retourner WHERE: pattern de graphe à matcher Un jeu de triplets { (sujet prédicat objet .)*} FILTER: contraintes exprimées avec des fonctions de tests internes (XPath 2.0) ou externes LIMIT/ORDER BY: contraintes sur les résultats retournés Opérateurs: OPTIONAL: rendre optionnel la correspondance au graphe UNION: union ensembliste de plusieurs patterns

5 Langages du Web Sémantique
SPARQL – en détail Dans la clause SELECT: distinct Dans la clause , ^^xsd:integer Dans la clause FILTER: Comparateurs: <, >, =, <=, >=, != Tests sur les binding des variables: isURI(?x), isBlank(?x), isLiteral(?x), bound(?x) Filtres à base d'expressions régulières regex(?x, "A.*") Accès aux attributs/valeur lang(), datatype(), str() Fonctions de (re-)typage (casting) xsd:integer(?x) Fonctions externes / extensions Combinaisons &&, ||

6 Langages du Web Sémantique
SPARQL – en détail Exemple FILTER PREFIX ex: < SELECT ?person ?name WHERE { ?person rdf:type ex:Person . ?person ex:name ?name . ?person ex:age ?age . FILTER (?age > 17) }

7 Langages du Web Sémantique
SPARQL – en détail Exemple OPTIONAL PREFIX ex: < SELECT ?person ?name ?age WHERE { ?person rdf:type ex:Person . ?person ex:name ?name . OPTIONAL { ?person ex:age ?age } }

8 Langages du Web Sémantique
SPARQL – en détail Exemple UNION PREFIX ex: < SELECT ?name WHERE { ?person ex:name ?name . { { ?person rdf:type ex:Adult . } UNION { ?person ex:age ?age . FILTER (?age > 17) } }

9 Langages du Web Sémantique
SPARQL – en détail Exemple ORDER BY, LIMIT, OFFSET PREFIX ex: < SELECT ?person ?name WHERE { ?person rdf:type ex:Person . ?person ex:name ?name . } ORDER BY ?name LIMIT 20 OFFSET 20

10 Langages du Web Sémantique
SPARQL – en détail Exemple contraintes PREFIX ex: < SELECT ?name WHERE { ?person ex:name ?name . OPTIONAL { ?person ex:hasFriend ?x } FILTER ( ! bound(?x)) }

11 Langages du Web Sémantique
SPARQL – en détail Exemple ASK PREFIX ex: < ASK { ?person ex:age ?age . FILTER (?age > 17) }

12 Langages du Web Sémantique
SPARQL – en détail Exemple CONSTRUCT PREFIX ex: < CONSTRUCT { ?person rdf:type ex:Adult } WHERE ?person ex:age ?age . FILTER (?age > 17)

13 Langages du Web Sémantique
SPARQL – Résultats Deux formes possibles pour la présentation de résultats: le binding i.e. la liste des valeurs sélectionnées pour chaque réponse rencontrée; (format XML stable ; bien avec XSLT) les sous graphes des réponses rencontrées en RDF (format RDF/XML ; bien pour applications utilisant RDF)

14 Langages du Web Sémantique
SPARQL – Protocoles d’accès Deux protocoles d’accès: Encapsulé dans HTTP ex: GET /sparql/?query=<encoded query> HTTP/1.1 Host: ics.upmc.fr User-agent: my-sparql-client/0.1 Par un web service SOAP <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv=" xmlns:xsd=" xmlns:xsi=" <soapenv:Body> <query-request xmlns=" <query>SELECT ?x ?p ?y WHERE {?x ?p ?y}</query> </query-request> </soapenv:Body> </soapenv:Envelope>


Télécharger ppt "Langages du Web Sémantique"

Présentations similaires


Annonces Google