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

Formation aux technologies du Web sémantique CCSD, Lyon, 8-10 septembre 2010.

Présentations similaires


Présentation au sujet: "Formation aux technologies du Web sémantique CCSD, Lyon, 8-10 septembre 2010."— Transcription de la présentation:

1 Formation aux technologies du Web sémantique CCSD, Lyon, 8-10 septembre 2010

2 2 Présentation de la formation Objectif : découvrir les technologies du Web sémantique tant du point de vue théorique que pratique Jour 1 Aspect théorique et Web de données Jour 2 Aspect pratique et Ontologie Jour 3 PHP et Web sémantique

3 Plan de la journée Modéliser le RDF Ecrire le RDF Interroger le RDF

4 4 RDF : quelques infos complémentaires La notion de nœud blanc « John Doe » ????? Il est possible de déclarer une ressource en RDF qui na pas dURI, on parle alors de nœud blanc (blank node). La ressource en question est contextuelle à une autre ressource et un outil lui attribuera une URI interne. Espaces de noms, préfixes, Qnames, Curies Principe des Qnames : « Prefix:name », « foaf:knows » Déclaration des préfixes et de la partie redondante dune URI

5 5 RDF/XML : quelques infos complémentaires <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> Gautier Poupeau male Remarque générale : pas de schéma, donc pas de validation en RDF/XML, il faut simplement respecter la structure du triplet Element XML de déclaration correspond au type de la ressource = Element XML de déclaration correspond au type de la ressource = Déclaration des préfixes Elément racine

6 6 RDF/XML : quelques infos complémentaires <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> Gautier Poupeau male Attribut pour déclarer lURI du sujet LURI du sujet Qname pour le prédicat Attribut rdf:datatype pour forcer le type de données dun littéral Si lobjet est un littéral, sa valeur est le contenu de lélément Indiquer la langue du littéral avec lattribut xml:lang

7 7 RDF/XML : quelques infos complémentaires <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> Gautier Poupeau male Indiquer lURI de lobjet dans lattribut rdf:resource URI de lobjet Syntaxe du nœud blanc Déclaration du prédicat en attribut = 48.837 Pour valider un flux RDF/XML, vous pouvez utiliser loutil RDF validator mis à disposition par le W3C http://www.w3.org/RDF/Validator/ http://www.w3.org/RDF/Validator/

8 8 FOAF : Friend Of A Friend http://xmlns.com/foaf/spec/ Ontologie créée et maintenue par Dan Brickley et Libby Miller

9 9 Exercice : créer un profil FOAF en RDF/XML Deux ressources reliées une ressource de type foaf:PersonalProfileDocument une ressource de type foaf:Person Pour les URIs, prenez ce que vous souhaitez si vous ne possédez pas un nom de domaine, même http://exemple.org/ Propriétés minimales à utiliser foaf:name foaf:interest lié à une ressource de DbpediaDbpedia foaf:based_near lié à une ressource de GeonamesGeonames foaf:knows lié à une ressource existante exprimer sa date de naissance avec lontologie BIO (facultatif)lontologie BIO Vous pouvez utiliser le générateur FOAF-a-MATIC pour initialiser votre fichier FOAF. Copiez le résultat dans un éditeur de texte et complétez le fichier.générateur FOAF-a-MATIC

10 10 <html xmlns ="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:lang="fr"> Profil RDFa à titre d'exemple Je m'appelle Gautier Poupeau. RDFa : quelques infos complémentaires Déclaration de la DTD spécifique XHTML + RDFa Déclaration des espaces de noms et des préfixes Déclaration de la langue donc récupéré pour tous les littéraux Pas de déclaration URI du sujet donc lURL de la page par défaut

11 11 <html xmlns ="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:lang="fr"> Profil RDFa à titre d'exemple Je m'appelle Gautier Poupeau. RDFa : quelques infos complémentaires Attribut @property si objet = Littéral (ici dans attribut @content car dans len-tête HTML) Attribut @rel si objet = Ressource Attribut @typeof pour indiquer le type de la ressource = rdf:type Attribut @about pour déclarer lURI dun sujet différent de lURL de la page Utilisation de la hiérarchie de XHTML pour indiquer les différents triplets dont lURI est sujet Attribut @datatype pour indiquer le type de données

12 12 RDFa : quelques infos complémentaires Mon anniversaire est le 19 mai Je suis passionné par les technologies du Web sémantique. Je tiens d'ailleurs un blog sur ces questions : Les petites cases J'appartiens à la communauté des professionnels de l'information composée de : Emmanuelle Bermès Stéphane Pouyllau Attribut @content pour indiquer contenu différent de lélément Attribut @rel et @href pour indiquer triplet avec ressource en objet Utilisation de la hiérarchie pour indiquer triplet sur une ressource elle-même objet avec le prédicat foaf:weblog Même chose mais ici on a un nœud blanc Utilisation de la hiérarchie pour indiquer triplet sur une ressource elle-même objet avec le prédicat foaf:knows

13 13 RDFa : quelques infos complémentaires / le résultat Après avoir passé la page Web dans loutil RDFa Distiller, on obtient les triplets suivants.RDFa Distiller <rdf:RDF xmlns:dc="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> Gautier Poupeau Stéphane Pouyllau Emmanuelle Bermès Les petites cases 05-19 Mon profil FOAF

14 14 Object Reuse and Exchange (OAI-ORE) Ontologie créée et maintenue par lOpen Archives Initiative pour décrire lagrégation de ressources Web ; conçue pour remplacer OAI-PMH en utilisant de manière plus conforme larchitecture du Web et en se basant sur les technologies du Web sémantique.

15 15 Exercice : Ajouter du RDFa dans la page de notice de HAL Ontologies à utiliser OAI-ORE FOAF Dublin Core Outils en ligne à utiliser pour vous aider RDFa Distiller Check RDFa RDF Validator

16 Plan de la journée Modéliser le RDF Ecrire le RDF Interroger le RDF

17 17 SPARQL : retour sur la syntaxe Les différents types de requêtes SELECT qui permet de sélectionner des informations dans la base de données, cest-à-dire de faire une recherche CONSTRUCT qui permet de construire un nouveau graphe à partir des données disponibles (c'est-à-dire de combiner les données dune nouvelle manière) ASK qui permet de tester sil existe au moins une réponse à une question posée DESCRIBE permet de récupérer un graphe RDF (un ensemble de triplets) décrivant une ressource, à partir de son URI. La syntaxe dune requête SPARQL PREFIX dbpedia: PREFIX foaf: SELECT ?oeuvre WHERE { ?oeuvre dbpedia:Victor_Hugo. ?oeuvre foaf:name "Les Misérables". } Déclaration des préfixes et des espaces de nom Déclaration du type de requête Déclaration des contraintes Déclaration de la ou les variables recherchées Déclaration dun triplet on note lutilisation des chevrons si lURI est exprimé complètement Déclaration du littéral entre guillemets

18 18 SPARQL : DISTINCT/OPTIONAL Le mot-clé DISTINCT SELECT ?predicat WHERE { ?predicat ?objet. } Autant de résultats que de triplets dont Victor Hugo est sujet, plusieurs résultats identiques SELECT DISTINCT ?predicat WHERE { ?predicat ?objet. } Dédoublonnage automatique des résultats Le mot-clé OPTIONAL PREFIX dbpedia: PREFIX foaf: SELECT ?auteur ?depiction WHERE { ?auteur a. ?auteur foaf:depiction ?depiction. ?auteur dbpedia:birthPlace. } Résultats que si toutes les contraintes sont vérifiées SELECT ?auteur ?depiction WHERE { ?auteur a. OPTIONAL {?auteur foaf:depiction ?depiction.} ?auteur dbpedia:birthPlace. } Résultats même si la contrainte optionnelle nest pas vérifiée (mais affichage du résultat si elle existe)

19 19 SPARQL : UNION/ORDER/LIMIT Le mot-clé UNION SELECT ?auteur WHERE { ?auteur a. { {?auteur.} UNION {?auteur.} } UNION permet dexprimer lopérateur booléen « OU » (inclusif) Le mot-clé ORDER SELECT ?auteur ?name WHERE { ?auteur a ; foaf:name ?name } ORDER BY ?name ORDER BY permet de classer les résultats suivants une variable déclarée Le mot-clé LIMIT SELECT ?auteur ?name WHERE { ?auteur a ; foaf:name ?name } ORDER BY ?name LIMIT 20 LIMIT permet de limiter le nombre de résultats

20 20 SPARQL : les filtres Il est possible dappliquer des filtres à une requête SPARQL pour limiter les résultats. Filtre lang() SELECT ?abstract WHERE { ?abstract. FILTER (lang(?abstract)=fr) } Filtrer selon la langue du littéral Filtre de comparaison SELECT distinct ?auteur ?date WHERE { ?auteur a. ?auteur ?date. FILTER ( xsd:dateTime(?date) > xsd:dateTime("1950-01-01")). } Filtrer les données avec les signes de comparaison mathématique Filtre de regexp SELECT ?auteur ?name WHERE { ?auteur a. ?auteur foaf:name ?name FILTER regex(?name, '^Jean'). } Filtrer un littéral en y appliquant une regexp Consulter la recommandation SPARQL pour découvrir les autres filtresrecommandation SPARQL

21 21 Exercice : effectuer des requêtes SPARQL sur dbpedia Deux interfaces Web sont disponibles pour effectuer des requêtes Interface classique : http://dbpedia.org/sparqlhttp://dbpedia.org/sparql Interface améliorée : http://dbpedia.org/snorqlhttp://dbpedia.org/snorql Noubliez pas dindiquer la syntaxe de sortie HTML pour visualiser directement les résultats. Effectuez les requêtes suivantes : formuler une requête qui affiche toutes les informations associées à lURI de Victor Hugo. rechercher une ressource ayant pour auteur Victor Hugo et pour type « Livre ». rechercher des romanciers français nés à Paris. rechercher des livres dont les auteurs ont les mêmes influences que lauteur de « Madame Bovary ». Afficher également les auteurs.

22 Plan de la journée Modéliser le RDF Ecrire le RDF Interroger le RDF

23 23 1.Définir les classes de lontologie, soit les types de ressources manipulés ; 2.Arranger les classes en une hiérarchie taxinomique (super-classe ; sous-classe) ; 3.Définir les relations et les attributs ; 4.Définir la logique des relations ; 5.Peupler lontologie, cest-à-dire créer les instances. Les éléments dune ontologie informatique : Classe : ensembles, collections, types d'objets, types de ressources manipulées (ex : documents, article, personne, événement, lieu, concept…) ; Attribut : propriétés, fonctionnalités, caractéristiques ou paramètres que les objets peuvent posséder et partager (ex : titre, date, étiquette, nom) ; Relation : lien que les objets peuvent avoir entre eux (ex : créateur, sujet, éditeur…) Individu ou instance : les objets appartenant à une ontologie (ex : larticle « Semantic Web » écrit en 2001 par Tim Berners-Lee). Rappel en philosophie, lontologie est létude de lêtre en tant quêtre, cest-à-dire létude des propriétés générales de ce qui existe. En informatique et en sciences de linformation, lontologie est un système de modélisation de linformation permettant de représenter un domaine ou champ dinformations sous la forme dun ensemble structuré et relié des termes et concepts. Méthodologie pour la définition dontologies Etapes pour définir une ontologie, soit un vocabulaire RDF

24 24 La recommandation OWL définit trois ensembles dexpressions croissantes : OWL Lite : hiérarchie de classes et mécanisme de contraintes simples ; OWL DL : expressivité maximum et respect des possibilités de calcul dinférence ; OWL Full : expressivité maximum sans garantie de calcul dinférence. OWL : les ensembles, racine et en-tête Lélément racine et len-tête dune ontologie pour définir les métadonnées sur lontologie : Titre dune ontologie ; Description dune ontologie ; Import dune ontologie ; Version précédente… OWL est une recommandation du W3C pour décrire des ontologies en se basant sur le modèle RDF. Il est issu des travaux de la DARPA sur DAML. Son but est de définir les types de ressources, les prédicats et la logique utilisés dans des triplets RDF. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xml:base="http://www.w3.org/2004/02/skos/core#"> Ontology example Exemple d'ontologie Ontologie exemple...

25 25 Définir des classes Dans notre monde, chaque chose a une nature, un type. Exemples : Tim Berners-Lee est une personne ; Une personne est un être vivant ; http://www.bnf.fr est une page Web Une page Web est un document … Dans le monde RDF, la nature dune chose/ressource est une « classe » Chose Être vivant Personne Chien Document Page Web Livre En RDF, une ressource appartient toujours à une classe.

26 26 Pour aller plus loin dans la définition des classes Classe Sous-classe Classe complexe (pour info) Les classes correspondent aux types de ressources manipulés dans lontologie. Elles sont organisés hiérarchiquement. Il est possible de définir des classes complexes. Si A est une classe, B une sous-classe et C une instance de B, alors B est aussi une instance de A http://xmlns.com/foaf/0.1/Agent http://xmlns.com/foaf/0.1/Person Si est de type, alors est aussi de type ThéoriePratique Différence entre une classe et une instance : une classe représente les concepts et les types abstraits et les instances représentent les individus attribués à une classe dans le monde réel. Intersection : Classe à lintersection de deux classes ; Union : Classe unissant deux classes ; Les classes disjointes : précise quune classe est strictement disjointe dune autre classe ; Complémentaire : Classe étant défini comme complémentaire dune autre classe ; Classe énuméré : Classe défini par une liste dinstances ; Equivalence entre les classes Soit A une classe équivalente à B, C appartient à A, alors C appartient à B.

27 27 Définir des propriétés Dans notre monde, chaque type de choses possède des caractéristiques. Exemples : une personne a un nom ; une personne connaît dautres personnes ; une page Web a un titre ; une page Web a un créateur ; … Dans le monde RDF, ces caractéristiques sont des propriétés. En RDF, un prédicat est une propriété définie dans un vocabulaire. « une chaîne de caractères » connaît créateur nom titre Page Web Personne

28 28 Pour aller plus loin dans la définition des propriétés Les propriétés définissent les relations possibles entre les classes ou entre une classe et un type de données. Un propriété définit dans une ontologie est utilisé comme prédicat dans les triplets RDF. Deux types de propriétés Propriété dobjet (ObjectProperty) Classe AClasse B Propriété de type de données (DataTypeProperty) Classe A rdfs:Literal Définir une propriété Nom humainement lisible de la propriété Commentaire ou définition de la propriété Domaine, cest-à-dire la classe en sujet Co-domaine ou range, cest-à-dire la classe ou le type de donnée en objet Propriété B Propriété A Terme associé related Ma jolie description

29 29 Définir une logique pour déduire Dans notre monde, chaque caractéristique et chaque type possèdent une logique interne. Exemple : Si un homme A est le frère dun homme B, alors lhomme B est le frère de la personne A ; … Dans le monde RDF, cette logique est exprimée clairement dans le vocabulaire. En RDF, la logique permet de faire des inférences, cest-à-dire de créer des nouvelles informations. » Est frère de Homme A Homme B Est frère de Homme B Homme A « Est frère de » est une propriété symétrique

30 30 Pour aller plus dans la définition de la logique Inverse Equivalence entre les propriétés Propriété transitive Propriété symétrique Différents types de propriétés dobjet Soit A relié à B par une propriété transitive, B relié à C par la même propriété transitive, alors A relié à C par la même propriété transitive. Soit A relié à B par une propriété symétrique, alors B relié à A par la même propriété symétrique. Les propriétés sur les propriétés Propriété fonctionnelle Soit A une propriété transitive, B ne peut être relié par A que par un seul objet. Soit une propriété A équivalent à une propriété B et C relié à D par la propriété A, alors C relié à D par la propriété B. Soit une propriété A inverse à une propriété B et C relié à D par la propriété A, alors D relié à C par la propriété B.

31 31 OWL : les instances/individus Les instances dune ontologie sont toutes les ressources dont le type appartient au moins une des classes de lontologie. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/terms/" xmlns:skos="http://www.w3.org/2004/02/skos/core#"> Equivalence entre les individus Soit A appartient à une classe B, A est la même chose que B, alors C est la même chose que A et C appartient à la classe B

32 32 Résumé : OWL en une slide Source : Fabien Gandon, http://2.bp.blogspot.com/_z1PUcRnw2jc/Sh2sYi0IaqI/AAAAAAAAAIU/QiR1ESMN3gQ/s1600-h/OWL+in+one.jpg

33 Merci pour votre attention Gautier Poupeau Antidot | GSM: +33 (0)6 45 49 59 77 F-75 Paris | mailto: gpoupeau@antidot.net Blog : Les petites cases | Twitter : @lespetitescasesLes petites cases


Télécharger ppt "Formation aux technologies du Web sémantique CCSD, Lyon, 8-10 septembre 2010."

Présentations similaires


Annonces Google