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

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

description

Formation aux technologies du Web sémantique CCSD, Lyon, 8-10 septembre 2010. Présentation de la formation. Objectif : découvrir les technologies du Web sémantique tant du point de vue théorique que pratique. Jour 3. Jour 1. Jour 2. Aspect théorique et Web de données. PHP et - PowerPoint PPT Presentation

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

Formation aux technologies du Web sémantiqueCCSD, Lyon, 8-10 septembre 2010

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éoriqueet

Web de données

Jour 2

Aspect pratiqueet

Ontologie

Jour 3

PHPet

Web sémantique

Plan de la journée

Modéliserle RDF

Ecrirele RDF

Interrogerle RDF

4

RDF : quelques infos complémentaires

La notion de nœud blanc

<http://www.w3.org/People/Berners-Lee/card#i>

« John Doe »

<http://xmlns.com/foaf/0.1/name>

?????

<http://xmlns.com/foaf/0.1/knows>

Il est possible de déclarer une ressource en RDF qui n’a pas d’URI, 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

<http://xmlns.com/foaf/0.1/knows></http://xmlns.com/foaf/0.1/knows>

Principe des Qnames : « Prefix:name », « foaf:knows »

Déclaration des préfixes et de la partie redondante d’une URI

5

RDF/XML : quelques infos complémentaires<?xml version="1.0" encoding="UTF-8"?> <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#">

<foaf:Person rdf:about="http://www.lespetitescases.net/foaf_got.rdf#GP">

<foaf:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> Gautier Poupeau </foaf:name>

<foaf:gender xml:lang="en">male</foaf:gender>

<foaf:interest rdf:resource="http://dbpedia.org/resource/XML"/>

<foaf:knows rdf:resource="http://www.figoblog.org/foaf.rdf#EB"/>

<foaf:based_near> <geo:Point geo:lat="48.837" geo:long="2.404"/>

</foaf:based_near>

</foaf:Person></rdf:RDF>

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 =<rdf:Description rdf:about="http://www.lespetitescases.net/foaf_got.rdf#GP"> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/></rdf:Description>

Déclaration des préfixes

Elément racine

6

RDF/XML : quelques infos complémentaires<?xml version="1.0" encoding="UTF-8"?> <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#">

<foaf:Person rdf:about="http://www.lespetitescases.net/foaf_got.rdf#GP">

<foaf:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> Gautier Poupeau </foaf:name>

<foaf:gender xml:lang="en">male</foaf:gender>

<foaf:interest rdf:resource="http://dbpedia.org/resource/XML"/>

<foaf:knows rdf:resource="http://www.figoblog.org/foaf.rdf#EB"/>

<foaf:based_near> <geo:Point geo:lat="48.837" geo:long="2.404"/>

</foaf:based_near>

</foaf:Person></rdf:RDF>

Attribut pour déclarer l’URI du sujetL’URI du sujet

Qname pour le prédicatAttribut rdf:datatype pour forcer le type de

données d’un littéral

Si l’objet est un littéral, sa valeurest le contenu de l’élément

Indiquer la langue du littéral avecl’attribut xml:lang

7

RDF/XML : quelques infos complémentaires<?xml version="1.0" encoding="UTF-8"?> <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#">

<foaf:Person rdf:about="http://www.lespetitescases.net/foaf_got.rdf#GP">

<foaf:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> Gautier Poupeau </foaf:name>

<foaf:gender xml:lang="en">male</foaf:gender>

<foaf:interest rdf:resource="http://dbpedia.org/resource/XML"/>

<foaf:knows rdf:resource="http://www.figoblog.org/foaf.rdf#EB"/>

<foaf:based_near> <geo:Point geo:lat="48.837" geo:long="2.404"/>

</foaf:based_near>

</foaf:Person></rdf:RDF>

Indiquer l’URI de l’objet dansl’attribut rdf:resource

URI de l’objet

Syntaxe du nœud blanc

Déclaration du prédicat en attribut =<geo:Point> <geo:lat>48.837</geo:lat></geo:Point>

Pour valider un flux RDF/XML, vous pouvez utiliser l’outil RDF validator mis

à disposition par le W3Chttp://www.w3.org/RDF/Validator/

8

FOAF : Friend Of A Friend

http://xmlns.com/foaf/spec/

Ontologie créée et maintenue par Dan Brickley et Libby Miller

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 Dbpedia• foaf:based_near lié à une ressource de Geonames• foaf:knows lié à une ressource existante• exprimer sa date de naissance avec l’ontologie BIO (facultatif)

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.

10

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

<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">

<head typeof="foaf:PersonalProfileDocument"> <title>Profil RDFa à titre d'exemple</title>

<meta property="dc:title" content="Mon profil FOAF"/>

<link rel="foaf:maker" href="#GP"/>

<link rel="foaf:primaryTopic" href="#GP"/> </head>

<body> <div typeof="foaf:Person" about="#GP">

<p>Je m'appelle <span property="foaf:name" datatype="xsd:string">Gautier Poupeau</span>. </p>

RDFa : quelques infos complémentaires

Déclaration de la DTD spécifiqueXHTML + RDFa

Déclaration des espaces de nomset des préfixes

Déclaration de la langue doncrécupéré pour tous les littéraux

Pas de déclaration URI du sujetdonc l’URL de la page par défaut

11

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

<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">

<head typeof="foaf:PersonalProfileDocument"> <title>Profil RDFa à titre d'exemple</title>

<meta property="dc:title" content="Mon profil FOAF"/>

<link rel="foaf:maker" href="#GP"/>

<link rel="foaf:primaryTopic" href="#GP"/> </head>

<body> <div typeof="foaf:Person" about="#GP">

<p>Je m'appelle <span property="foaf:name" datatype="xsd:string">Gautier Poupeau</span>. </p>

RDFa : quelques infos complémentaires

Attribut @propertysi objet = Littéral

(ici dans attribut @content car dans l’en-tête HTML)

Attribut @relsi objet = Ressource

Attribut @typeof pour indiquer le type de la ressource = rdf:type

Attribut @about pourdéclarer l’URI d’un sujet différent

de l’URL de la pageUtilisation de la hiérarchie de XHTML pour indiquer les différents triplets dont

l’URI est sujetAttribut @datatype pour

indiquer le type de données

12

RDFa : quelques infos complémentaires

Mon anniversaire est le <span property="foaf:birthday" content="05-19" xml:lang="en">19 mai</span> </p>

<p> Je suis passionné par les technologies du <span rel="foaf:interest" href="http://dbpedia.org/resource/Semantic_Web">Web sémantique</span>.</p>

<p>Je tiens d'ailleurs un blog sur ces questions : <span rel="foaf:weblog"><a href="http://www.lespetitescases.net" property="dc:title">Les petites cases</a></span></p>

<p>J'appartiens à la communauté des professionnels de l'information composée de :</p>

<ul rel="foaf:knows"><li typeof="foaf:person" about="http://www.figoblog.org/foaf.rdf#EB">

<a property="foaf:name" rel="foaf:homepage" href="http://www.figoblog.org">Emmanuelle Bermès</a> </li> <li typeof="foaf:person">

<a property="foaf:name" rel="foaf:homepage" href="http://stephanepouyllau.org/">Stéphane Pouyllau</a> </li> </ul>

</div> </body>

</html>

Attribut @content pourindiquer contenu différent de l’élément

Attribut @rel et @href pourindiquer 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

RDFa : quelques infos complémentaires / le résultat

Après avoir passé la page Web dans l’outil RDFa Distiller, on obtient les triplets suivants.

<?xml version="1.0" encoding="utf-8"?><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#"> <foaf:PersonalProfileDocument rdf:about="http://www.lespetitescases.net/semweblabs/Formation-CCSD/RDFa.htm"> <foaf:maker> <foaf:Person rdf:about="http://www.lespetitescases.net/semweblabs/Formation-CCSD/RDFa.htm#GP"> <foaf:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Gautier Poupeau</foaf:name> <foaf:knows> <foaf:person> <foaf:homepage rdf:resource="http://stephanepouyllau.org/"/> <foaf:name xml:lang="fr">Stéphane Pouyllau</foaf:name> </foaf:person> </foaf:knows> <foaf:knows> <foaf:person rdf:about="http://www.figoblog.org/foaf.rdf#EB"> <foaf:homepage rdf:resource="http://www.figoblog.org"/> <foaf:name xml:lang="fr">Emmanuelle Bermès</foaf:name> </foaf:person> </foaf:knows> <foaf:weblog> <rdf:Description rdf:about="http://www.lespetitescases.net"> <dc:title xml:lang="fr">Les petites cases</dc:title> </rdf:Description> </foaf:weblog> <foaf:birthday xml:lang="en">05-19</foaf:birthday> <foaf:interest rdf:resource="http://dbpedia.org/resource/Semantic_Web"/> </foaf:Person>

</foaf:maker> <foaf:primaryTopic rdf:resource="http://www.lespetitescases.net/semweblabs/Formation-CCSD/RDFa.htm#GP"/> <dc:title xml:lang="fr">Mon profil FOAF</dc:title> </foaf:PersonalProfileDocument></rdf:RDF>

14

Object Reuse and Exchange (OAI-ORE)

Ontologie créée et maintenue par l’Open Archives Initiative pour décrire l’agrégation de ressources Web ; conçue pour remplacer OAI-PMH en utilisant de manière plus conforme l’architecture du Web et en se basant sur les technologies du Web sémantique.

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

Plan de la journée

Modéliserle RDF

Ecrirele RDF

Interrogerle RDF

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, c’est-à-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 d’une nouvelle manière)

• ASK qui permet de tester s’il 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 d’une requête SPARQL

PREFIX dbpedia: <http://dbpedia.org/resource/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?oeuvre

WHERE { ?oeuvre <http://dbpedia.org/ontology/author> dbpedia:Victor_Hugo.

?oeuvre foaf:name "Les Misérables".

}

Déclaration des préfixes et des espaces de nomDéclaration du type

de requête Déclaration descontraintesDéclaration de la ou les

variables recherchées

Déclaration d’un tripleton note l’utilisation des chevrons si l’URI

est exprimé complètementDéclaration du littéral

entre guillemets

18

SPARQL : DISTINCT/OPTIONAL

Le mot-clé DISTINCT

SELECT ?predicat WHERE { <http://dbpedia.org/resource/Victor_Hugo> ?predicat ?objet.}

Autant de résultats que de triplets dont Victor Hugo est sujet, plusieurs résultats identiques

SELECT DISTINCT ?predicat WHERE { <http://dbpedia.org/resource/Victor_Hugo> ?predicat ?objet.}

Dédoublonnage automatique des résultats

Le mot-clé OPTIONAL

PREFIX dbpedia: <http://dbpedia.org/ontology/>PREFIX foaf: <http://xmlns.com/foaf/0.1/ >SELECT ?auteur ?depiction WHERE { ?auteur a <http://dbpedia.org/class/yago/FrenchNovelists>. ?auteur foaf:depiction ?depiction. ?auteur dbpedia:birthPlace <http://dbpedia.org/resource/Paris>. }

Résultats que si toutes les contraintes sont vérifiées

SELECT ?auteur ?depiction WHERE { ?auteur a <http://dbpedia.org/class/yago/FrenchNovelists>. OPTIONAL {?auteur foaf:depiction ?depiction.} ?auteur dbpedia:birthPlace <http://dbpedia.org/resource/Paris>. }

Résultats même si la contrainte optionnelle n’est pas vérifiée (mais affichage du résultat si elle existe)

19

SPARQL : UNION/ORDER/LIMIT

Le mot-clé UNION

SELECT ?auteur WHERE {?auteur a <http://dbpedia.org/class/yago/FrenchNovelists>. { {?auteur <http://dbpedia.org/ontology/birthPlace> <http://dbpedia.org/resource/Paris>.} UNION {?auteur <http://dbpedia.org/ontology/birthPlace> <http://dbpedia.org/resource/Besan%C3%A7on>.} }}

UNION permet d’exprimer l’opérateur booléen « OU » (inclusif)

Le mot-clé ORDER

SELECT ?auteur ?name WHERE {?auteur a <http://dbpedia.org/class/yago/FrenchNovelists>; 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 <http://dbpedia.org/class/yago/FrenchNovelists>; foaf:name ?name}ORDER BY ?nameLIMIT 20

LIMIT permet de limiter le nombre de résultats

20

SPARQL : les filtres

Il est possible d’appliquer des filtres à une requête SPARQL pour limiter les résultats.

Filtre lang()

SELECT ?abstract WHERE { <http://dbpedia.org/resource/Victor_Hugo> <http://dbpedia.org/ontology/abstract> ?abstract. FILTER (lang(?abstract)=“fr”)}

Filtrer selon la langue du littéral

Filtre de comparaison

SELECT distinct ?auteur ?date WHERE { ?auteur a <http://dbpedia.org/class/yago/FrenchNovelists>. ?auteur <http://dbpedia.org/ontology/birthDate> ?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 <http://dbpedia.org/class/yago/FrenchNovelists>. ?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 filtres

21

Exercice : effectuer des requêtes SPARQL sur dbpedia

Deux interfaces Web sont disponibles pour effectuer des requêtes

• Interface classique : http://dbpedia.org/sparql• Interface améliorée : http://dbpedia.org/snorql

N’oubliez pas d’indiquer 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 à l’URI 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 l’auteur de « Madame

Bovary ». Afficher également les auteurs.

Plan de la journée

Modéliserle RDF

Ecrirele RDF

Interrogerle RDF

23

1. Définir les classes de l’ontologie, 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 l’ontologie, c’est-à-dire créer les instances.

Les éléments d’une 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 : l’article « Semantic

Web » écrit en 2001 par Tim Berners-Lee).

Rappel en philosophie, l’ontologie est l’étude de l’être en tant qu’être, c’est-à-dire l’étude des propriétés générales de ce qui existe.En informatique et en sciences de l’information, l’ontologie est un système de modélisation de l’information permettant de représenter un domaine ou champ d’informations sous la forme d’un ensemble structuré et relié des termes et concepts.

Méthodologie pour la définition d’ontologies

Etapes pour définir une ontologie, soit un vocabulaire RDF

24

La recommandation OWL définit trois ensembles d’expressions croissantes :• OWL Lite : hiérarchie de classes et mécanisme de contraintes simples ;• OWL DL : expressivité maximum et respect des possibilités de calcul d’inférence ;• OWL Full : expressivité maximum sans garantie de calcul d’inférence.

OWL : les ensembles, racine et en-tête

L’élément racine et l’en-tête d’une ontologie pour définir les métadonnées sur l’ontologie :

• Titre d’une ontologie ;• Description d’une ontologie ;• Import d’une 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.

<?xml version="1.0" encoding="UTF-8"?>

<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#"> <owl:Ontology rdf:about=""> <rdfs:label xml:lang="en">Ontology example</rdfs:label> <rdfs:label xml:lang="fr">Exemple d'ontologie</rdfs:label> <rdfs:comment xml:lang="fr">Ontologie exemple...</rdfs:comment> <owl:imports rdf:resource="http://uneautreontologie.org/onto.owl"/> </owl:Ontology>

</rdf:RDF>

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 d’une chose/ressource est une « classe »

Chose

Être vivant

Personne

Chien

Document

Page Web

Livre

En RDF, une ressource appartient toujours à une classe.

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 l’ontologie. 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 <http://www.w3.org/People/Berners-Lee/card#i> est de type <http://xmlns.com/foaf/0.1/Person>, alors <http://www.w3.org/People/Berners-Lee/card#i> est aussi de type <http://xmlns.com/foaf/0.1/Agent>

Théorie Pratique

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 à l’intersection de deux classes ;• Union : Classe unissant deux classes ;• Les classes disjointes : précise qu’une classe est strictement disjointe d’une autre classe ; • Complémentaire : Classe étant défini comme complémentaire d’une autre classe ; • Classe énuméré : Classe défini par une liste d’instances ;

Equivalence entre lesclasses Soit A une classe équivalente à B, C appartient à A, alors C appartient à B.

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 d’autres 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 »

« une chaîne de caractères »connaît

créateurnomtitre

Page Web

Personne

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é d’objet (ObjectProperty)

Classe A Classe 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éfinitionde la propriété

Domaine,c’est-à-dire la classe en sujet

Co-domaine ou range,c’est-à-dire la classe ou

le type de donnée en objet

Propriété B

Propriété A

<owl:ObjectProperty rdf:ID="related"><rdfs:label xml:lang="fr">Terme associé</rdfs:label><rdfs:label xml:lang="en">related</rdfs:label><rdfs:comment xml:lang="fr">Ma jolie description</rdfs:comment><rdfs:domain rdf:resource="#Concept"/><rdfs:range rdf:resource="#Concept"/><rdfs:subPropertyOf rdf:resource="#semanticRelation">

</owl:ObjectProperty>

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 d’un homme B, alors l’homme

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, c’est-à-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

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 d’objet

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

OWL : les instances/individus

Les instances d’une ontologie sont toutes les ressources dont le type appartient au moins une des classes de l’ontologie.

<?xml version="1.0" encoding="utf-8"?><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#">

<rdf:Description rdf:about="ark:/12148/cb150598844"><rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>

</rdf:Description><!-- OU --><skos:Concept rdf:about="ark:/12148/cb150598844"></skos:Concept>

</rdf:RDF>

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

Résumé : OWL en une slide

Source : Fabien Gandon, http://2.bp.blogspot.com/_z1PUcRnw2jc/Sh2sYi0IaqI/AAAAAAAAAIU/QiR1ESMN3gQ/s1600-h/OWL+in+one.jpg

Merci pour votre attention

Gautier PoupeauAntidot | GSM: +33 (0)6 45 49 59 77F-75 Paris | mailto: [email protected] : Les petites cases | Twitter : @lespetitescases