1 Web Sémantique RDF Olivier.Corby@sophia.inria.fr

Preview:

Citation preview

1

Web Sémantique

RDF

Olivier.Corby@sophia.inria.fr

2

Semantic Web

World Wide Web Consortium : www.w3.org

Extension du Web actuel où l’information serait munie d’une signification (meaning) bien définie

Pour faciliter le travail en coopération homme-machine

Un Web de données et de documents

3

Semantic Web

Évolution du Web pour permettre le traitement automatique des informations (par programme)

Documents et données structurés (XML)

Associer sémantique (sens) aux documents

http://www.scientificamerican.com/2001/0501issue/0501berners-lee.html

4

Semantic Web : Vision W3C

5

Applications

Préparer automatiquement un voyage, par l’Internet, en combinant des informations (hôtel, avion, voiture)

Etre prévenu d’informations sur un thème donné : conférence, publication, etc.

6

Applications

Annotation de documents multimedia : trouver une séquence avec un facteur cycliste

Site Web d’entreprise structuré par un référentiel

Documentation technique

7

XML

Extensible Markup LanguageLangage de description et d’échange de :

documents structurés données structurées

Conçu par le World Wide Web Consortium (W3C) www.w3.org

8

XML

Définit la structure (syntaxe) comme un arbre de syntaxe abstraite

Mais rien sur la signification, le sens : la sémantique

La sémantique permet de définir la signification des balises, donc des informations. Contraint les traitements

9

XML

<book>

<author>John Maynard Keynes</author>

<title>General Theory of Employment …</title>

..

</book>

10

XML

<aaa>

<bbb>John Maynard Keynes</bbb>

<ccc>General Theory of Employment …</ccc>

..

</aaa>

Définit une structure mais pas le sens

11

Sens

<book> book a kind of Document

<author> Documents have an author, which is a Person,

<title> a title which is a Literal

12

Sens

Décrire le sens avec un certain consensus

En utilisant des vocabulaires standardisés : ontologie

13

RDF

Resource Description Framework Annotations sémantiques décrivant le

contenu des documents Permet de faire des recherches

d'information en utilisant ces annotations

14

RDF Suite

Le moteur de recherche : exploite les annotations effectue des inférences élémentaires retrouve des documents pertinents

15

RDF et Schema

RDF sert à annoter des documents pour décrire le contenu

Ces descriptions reposent sur un vocabulaire partagé : une ontologie

RDF Vocabulary Description Language 1.0: RDF SchemaW3C Working Draft 10 Octobre

http://www.w3.org/RDF

16

RDF Schema

Classes de ressource et Propriétés Spécialisation Syntaxe XML Propriétés sont entités à part entière,

comme les classes et les instances.

17

Pourquoi les propriétés ?

Car le Web est un réseau où tout le monde peut participer

Une classe n'est pas définie entièrement localement

Elle peut être réutilisée et complétée par ailleurs : on peut donc définir de nouvelles propriétés sur une classe existante

Web based design vs Top down

18

Modèle RDF

RDF repose sur un modèle de triplet :resource propriété valeur

appelés respectivement :resource property value

Les valeurs sont soit des ressources, soit des littéraux (valeurs atomiques)

19

Modèle RDF (2)

Une ressource (e.g. document ou fragment de document) est désignée par un URI

Peut être accessible par URIExemple :

http://www.essi.fr/cours/log11 ns:titre ‘Modélisation des connaissances’

Noté :ex:log11 ns:titre ‘Modélisation …’

20

RDF : syntaxe XML

<rdf:Descriptionrdf:about=‘http://www.essi.fr/cours/log11’>

<titre>Modélisation des connaissances </titre>

</rdf:Description>

21

Ajouter du sens

La ressource est un cours, un cours a des enseignants, l’enseignant est un chercheur de

l'INRIA, etc.

22

Exemple

ex:log11 rdf:type ns:Cours

ex:log11 ns:titre “Modélisation des connaissances”

ns:Cours rdf:type rdfs:Class

23

RDF/XML

<rdf:Description rdf:about=‘http://www.essi.fr/cours/log11’> <rdf:type rdf:resource='#Cours'/> <titre>Modélisation des connaissances</titre>

</rdf:Description>

<rdfs:Class ID='Cours'/>

24

Classes

ns:Cours rdf:type rdfs:Class

ns:CoursDEA rdf:type rdfs:Class

ns:CoursDEA rdfs:subClassOf ns:Cours

ns:CoursESSI rdfs:subClassOf ns:Cours

25

Classes

<rdfs:Class rdf:ID='Cours'/>

<rdfs:Class rdf:ID='CoursDEA'><rdfs:subClassOf rdf:resource='#Cours'/>

</rdfs:Class>

<rdfs:Class rdf:ID='CoursESSI'><rdfs:subClassOf rdf:resource='#Cours'/>

</rdfs:Class>

26

Classes (2)

<rdfs:Class rdf:ID='CoursCommun'><rdfs:subClassOf rdf:resource='#CoursDEA'/><rdfs:subClassOf rdf:resource='#CoursESSI'/>

</rdfs:Class>

<rdf:Property rdf:ID='titre'><rdfs:domain rdf:resource='#Cours'/><rdfs:range rdf:resource=’&rdfs;Literal’/>

</rdf:Property>

27

Propriétés

<rdf:Property rdf:ID=‘enseignant’><rdfs:domain rdf:resource='#Cours'/><rdfs:range rdf:resource='#Personne'/>

</rdf:Property>

<rdf:Property rdf:ID='nom'><rdfs:domain rdf:resource='#Personne'/><rdfs:range rdf:resource=’&rdfs;Literal'/>

</rdf:Property>

28

Classes

<rdfs:Class rdf:ID='Personne'/>

<rdfs:Class rdf:ID='MaitreDeConf'>

<rdfs:subClassOf rdf:resource='#Personne'/></rdfs:Class>

<rdfs:Class rdf:ID='Chercheur'>

<rdfs:subClassOf rdf:resource='#Personne'/></rdfs:Class>

29

Annotation<rdf:Description

rdf:about='http://www.essi.fr/cours/log11’>

<rdf:type rdf:resource='#Cours'/>

<titre>Modélisation des connaissances</titre>

<num>Log11</num>

<enseignant>

<Chercheur rdf:about='http://www.inria.fr/Olivier.Corby’>

<nom>Olivier Corby</nom>

<institut>INRIA</institut>

</Chercheur>

</enseignant>

</rdf:Description>

30

Requêtes

Trouver les cours dont O. Corby est enseignant ?

Qui enseigne le cours LOG11 ? Y a-t-il un enseignant-chercheur ? Y a-t-il une Personne de l'INRIA ?

31

Requêtes

A la OQL (Object Query Language)

select c.num, p.nom

from c Cours, p Personne

where c.titre like ‘connaissance’ and

p.institut = ‘INRIA’

32

Traits avancés

Modularité

Multi héritage, multi instanciation

Conteneurs

33

Namespace

Pour modulariser les schemas :

À un schema est associé un nom symbolique : un URI

Les balises issues du schema sont préfixées par cet URI,

appelé namespace

34

Namespace (2)

<rdf:Description xmlns:ns=‘http://www.inria.fr/acacia/cours#’>

<ns:titre>Modélisation des connaissances</ns:titre>

35

Exemple<rdf:Description rdf:about=‘http://www.essi.fr/cours/log11’

xmlns:ns=‘http://www.inria.fr/acacia/cours#’ xmlns:rdf=‘http://www.w3.org/1999/02/22-rdf-syntax-ns#’>

<rdf:type rdf:resource=‘#Cours'/>

<ns:titre>Modélisation des connaissances</ns:titre><ns:num>Log11</ns:num>

36

Exemple (suite)

<ns:enseignant>

<ns:Chercheurrdf:about=‘http://www.inria.fr/Olivier.Corby’>

<ns:nom>Olivier Corby</ns:nom><ns:institut>INRIA</ns:institut>

</ns:Chercheur>

</ns:enseignant></rdf:Description>

37

Héritage multiple

Une classe peut spécialiser plusieurs classes

<rdfs:Class rdf:ID=‘EnseignantChercheur’><rdfs:subClassOf rdf:resource=‘#Enseignant’/><rdfs:subClassOf rdf:resource=‘#Chercheur’/></rdfs:Class>

38

Multi instanciation Une description peut être instance de plusieurs

classes

<rdf:Descriptionrdf:about=‘http://www.inria.fr/Olivier.Corby’>

<rdf:type rdf:resource=‘#Chercheur’/><ns:institut>INRIA</ns:institut>

<rdf:type rdf:resource=‘#Enseignant’/><ns:etablissement>UNSA</ns:etablissement>

</rdf:Description>

39

Plusieurs Schema

Utiliser plusieurs schemas, grâce aux namespaces :

<rdf:Descriptionxmlns:rdf=`&rdf;’

xmlns:ns=`http://www.inria.fr/acacia/cours#’xmlns:ex=`http://www.essi.fr/namespace#’>

<ns:institut>INRIA</ns:institut>

<ex:formation>UNSA</ex:formation></rdf:Description>

40

Propriété : domaine

Le domaine est la conjonction des domaines

<rdf:Property rdf:ID=‘vitesse’><rdfs:domain rdf:resource=‘#Objet’/><rdfs:domain rdf:resource=‘#Mobile’/>

<rdfs:range rdf:resource=‘&rdfs;Literal’/>

</rdf:Property>

41

Domaines

ns:vitesse rdf:type rdf:Property ns:vitesse rdfs:domain ns:Objet ns:vitesse rdfs:domain ns:Mobilens:vitesse rdfs:range rdfs:Literal

ex:car ns:vitesse “100”ex:car rdf:type ns:Objetex:car rdf:type ns:Mobile

42

Sous-propriété

Une propriété peut être spécialisée :

<rdf:Property rdf:ID='coordinateur'><rdfs:subPropertyOf rdf:resource='#enseignant'/></rdf:Property>

ex:bob ns:coordinateur ex:cours ex:bob ns:enseignant ex:cours

coordinateur est inclus dans enseignant

43

Sous propriété (2)

<ns:Cours rdf:about=‘http://www.essi.fr/cours/log11’>

<ns:coordinateur

rdf:resource=‘http://www.inria.fr/Olivier.Corby’/>

</ns:Cours>

<ns:Cours rdf:about=‘http://www.essi.fr/cours/log11’>

<ns:enseignant rdf:resource=‘http://www.inria.fr/Olivier.Corby’/>

</ns:Cours>

44

Nom externe de Propriété Une propriété peut avoir plusieurs noms externes : labels

Peuvent être multilingue

<rdf:Property rdf:ID=‘name’><rdfs:domain rdf:resource='Person'/><rdfs:range rdf:resource=’&rdfs;Literal'/>

<rdfs:label xml:lang='fr'>nom</rdfs:label><rdfs:label xml:lang='en'>name</rdfs:label>

</rdf:Property>

45

DatatypePour typer les valeurs litérales, RDF repose sur les

datatypes de XML Schema

xmlns:xsd=‘http://www.w3.org/2001/XMLSchema#’

xsd:integerxsd:floatxsd:stringxsd:datexsd:boolean

...

46

RDF Datatype

<!ENTITY xsd ”http://www.w3.org/2001/XMLSchema#” >

<c:Person><c:age rdf:datatype=‘&xsd;integer’>43</c:age>

<c:name rdf:datatype=‘&xsd;string’>Laurent </c:name>

</c:Person>

47

Limitation de RDFImpossible de surcharger la signature d’une propriété

pour la spécialiser

Class PrimateClass Man subClassOf PrimateClass Chimpanzee subClassOf Primate

<rdf:Property rdf:ID=‘child’> <rdfs:domain rdf:resource='#Primate'/> <rdfs:range rdf:resource='#Primate'/>

</rdf:Property>

48

Raffinement impossible

La propriété child étant définie, il est impossible de la raffiner :

<rdf:Property rdf:ID=‘child’>

<rdfs:domain rdf:resource='#Man'/>

<rdfs:range rdf:resource='#Man'/>

</rdf:Property>

49

Solution en RDFSpécialiser la propriété :

<rdf:Property rdf:ID='manChild'> <rdfs:subPropertyOf rdf:resource='#child'/> <rdfs:domain rdf:resource='#Man'/> <rdfs:range rdf:resource='#Man'/></rdf:Property>

Ou utiliser OWL

50

Collection Quand la valeur d’une propriété est une collection de

valeurs :<rdf:Description

rdf:about=‘http://www.essi.fr/cours/log11’>

<ns:staff>

<rdf:Bag> <rdf:li>Olivier Corby</rdf:li> <rdf:li>Sabine Moisan</rdf:li> <rdf:li>Alain Giboin</rdf:li>

</rdf:Bag>

</ns:staff>

</rdf:Description>

51

Conteneurs (2)

rdfs:Container rdf:Bag : collection rdf:Seq : séquence ordonnée rdf:Alt : alternative. Liste de valeurs

possibles pour la propriété

Ils peut y avoir duplication de valeurs

52

Liste

<ex:Group>

<ex:members rdf:parseType=‘Collection’>

<ex:Person rdf:about=‘#JohnDoe’/>

<ex:Person rdf:about=‘#MisterX’/>

</ex:members>

</ex:Group>

53

Liste<ex:Group>

<ex:members>

<rdf:List>

<rdf:first rdf:resource=‘#JohnDoe’ />

<rdf:rest>

<rdf:List>

<rdf:first rdf:resource=‘#MisterX’ >

<rdf:rest rdf:resource=‘&rdf;nil’/>

</rdf:List>

</rdf:rest>

</rdf:List>

</ex:members>

</ex:Group>

54

Ressource anonymeRessource intermédiaire, sans identificateurSémantique existentielle : il existe une ressource

<ns:Cours><ns:auteur>

<ns:Person><ns:name>O. Corby</ns:name>

</ns:Person></ns:auteur>

</ns:Cours>

55

Relation n-aireLes propriétés sont des relations binaires

Pour décrire une relation n-aire, utiliser une ressource anonyme :

<ns:Mobile>

<ns:vitesse rdf:parseType=‘Resource’>

<rdf:value>130</rdf:value>

<ns:unit>km/h</ns:unit>

</ns:vitesse>

</ns:Mobile>

56

Relation n-aire

<ns:Mobile>

<ns:vitesse>

<rdf:Description>

<rdf:value>130</rdf:value>

<ns:unit>km/h</ns:unit>

</rdf:Description>

</ns:vitesse>

</ns:Mobile>

57

SémantiqueTous les énoncés RDF sont considérés comme vrais, dans un

même environnement, la conjonction des énoncés est considérée comme vrai également

Il n’y a pas de contexte local (dans lequel quelque chose serait vrai)

Il n’y a pas de négation

RDF est monotone : ce qui est vrai reste vrai au fur et a mesure que l’on rajoute de l’information

RDF est un sous-ensemble de la logique du premier ordre avec des prédicats binaires et des variables existentielles.

58

Typage : domainLes règles de typage diffèrent des modèles objet traditionnels.

L’utilisation d’une propriété sur une ressource entraine que la ressource soit du type indiqué par le domaine de la propriété

ex:title rdfs:domain ex:Cours

ex:log11 ex:title “Modélisation des connaissances”

ex:log11 rdf:type ex:Cours

59

Typage : rangeSi une ressource est la valeur d’une propriété, la ressource est du type

indiqué par le range de la propriété

ex:enseignant rdfs:range ex:Person

ex:log11 ex:enseignant ex:olivier

ex:olivier rdf:type ex:Person

60

Typage : classSi une ressource a pour type C, alors C est une classe :

rdf:type rdfs:range rdfs:Class

ex:olivier rdf:type ex:Person

ex:Person rdf:type rdfs:Class

61

Exemple de Schema RDFS

<rdfs:Class rdf:ID="Document">

<rdfs:subClassOf rdf:resource="#Entity"/>

<rdfs:subClassOf rdf:resource="#EntityConcerningATopic"/>

<rdfs:subClassOf rdf:resource="#NumberableEntity"/>

<rdfs:comment xml:lang="en">Entity including elements serving as a representation of thinking.</rdfs:comment>

<rdfs:comment xml:lang="fr">Entite comprenant des elements de representation de la pensee.</rdfs:comment>

<rdfs:label xml:lang="en">document</rdfs:label>

<rdfs:label xml:lang="fr">document</rdfs:label>

</rdfs:Class>

62

Exemple (2)

<rdf:Property rdf:ID="Designation">

<rdfs:subPropertyOf rdf:resource="#SomeRelation"/>

<rdfs:range rdf:resource=”&rdfs;#Literal"/>

<rdfs:domain rdf:resource="#Something"/>

<rdfs:comment xml:lang="en">Identifying word or words by which a thing is called and classified or distinguished from others.</rdfs:comment>

<rdfs:comment xml:lang="fr">Identifiant le ou les mots par lesquels une chose s appelle et est classifiee ou distinguee des autres.</rdfs:comment>

<rdfs:label xml:lang="en">designation</rdfs:label>

<rdfs:label xml:lang="fr">designation</rdfs:label>

</rdf:Property>

63

Exemple (3)<c:ResearchReport rdf:about=”

http://www.inria.fr/rapports/sophia/RR-3071.html "><c:title>Modèles Génériques de Gestion de Conflits dans la Conception Concourante</c:title><c:CreatedBy>

<c:Person rdf:about=”http://www.inria.fr/acacia/Nada.Natta">

<c:FirstName>Nada</c:FirstName><c:FamilyName>Matta</c:FamilyName></c:Person>

</c:CreatedBy><c:CreatedBy> <c:Person rdf:about=" http://www.inria.fr/acacia/Olivier.Corby">

<c:FirstName>Olivier</c:FirstName><c:FamilyName>Corby</c:FamilyName></c:Person>

</c:CreatedBy>

64

Exemple (3)<c:CreationDate>12-1996</c:CreationDate>

<c:CreatedBy>

<c:ProjectGroup rdf:about="http://www.inria.fr/recherche/equipes/acacia.en.html"><c:Designation>Acacia</c:Designation>

</c:ProjectGroup>

</c:CreatedBy>

</c:ResearchReport>

65

Requête

Find Document about XML written by a person from the Acacia project

return the title of the document and the name of the author

66

Interrogation

Lever les ambiguïtés grâce à l'ontologie

Exploiter la conceptualisation et la subsomption

Document ? ArticlePerson ? StudentDesignation ? Title

67

Extensions : Corese

COnceptual REsource Search Engine

Implémentation de RDF basée sur les graphes conceptuels

Moteur de recherche sémantique

68

Langage de reqête

RDF avec des variables et des opérateurs

~ contient^ commence par< <= = >= >chaine ou nombre% expression régulière<: <=: =: >=: >: comparaison de type ! opérateur de négation

!= !~ !<: etc.

| ou booléen : ~XML | ~RDF

69

Exemple <c:Document c:Title='~XML’> <c:CreatedBy rdf:resource='?p'/>

</c:Document>

<c:Person rdf:about='?p' c:Name='?n’> <c:memberOf rdf:resource='?o'/>

</c:Person>

<c:Organization rdf:about='?o' c:Designation='~Acacia'/>

70

Inférence

Trouver des documents écrits par un collaborateur de R.D.

collaborateur : membre de l’équipe dirigée par R.D.

Trouver un institut qui travaille sur le sujet S : un de ses membres travaille sur S

71

Règle

si Institut ?i inclut Personne ?p ET

?p a pour interet Sujet ?s

alors?i a pour interet ?s

72

Règle de graphe

[Institut: ?i]-(inclut)-[Personne: ?p] -(interet)-[Sujet: ?s]

[Institut: ?i]-(interet)-[Sujet: ?s]

73

Règle RDF<cos:rule>

<cos:if><s:Institut rdf:about=?i’>

<s:inclut> <s:Personne rdf:about=‘?p’ <s:interet rdf:resource=‘?s’/>

</s:Personne>

</s:inclut>

</s:Institut></cos:if>

<cos:then><s:Institut rdf:about=‘?i’

<s:interet rdf:resource=‘?s’/></s:Institut>

</cos:then></cos:rule>

74

Règle de graphe

règles de graphe conceptuelPour appliquer une règle CD sur un graphe G :1. Trouver C’, une occurrence de C dans G

par projection : C’ C2. Joindre la conclusion D au graphe G sur les

concepts de C’ trouvés par projection

75

Test de condition

Query : [Institut: ?i]-

-(inclut)-[Person: ?p] -(interet)-[Sujet: ?s]

Cible:[Projet: Acacia]-{

-(inclut)-[Person: O.Corby]-(interet)-[ModelisationConnaissance]

-(inclut)-[PhdStudent: L.A]

}

76

Déduction

[Projet: Acacia]-{

-(interet)-[ModelisationConnaissance]

-(inclut)-[Person: O.Corby]-(interet)-[ModelisationConnaissance]

-(inclut)-[PhdStudent: L.A]

}

77

Type défini

IF

[Human ?x]-(has)-[Desease]

THEN

[Patient ?x]

78

Futur du Semantic Web Documents structurés XML XML Schema XQuery

Ressources annotées par du RDF RDF Schema Navigation basée sur un système conceptuel Associer des concepts de l’ontologie RDF

Schema à des balises de document structurés:

79

Futur du Semantic Web

Agents intelligents dotés de capacités d'inférences

Rechercher et combiner l'information sur le Web

Exemple : préparer un voyage avec : Transport : avion ou train Hébergement : hôtel ou gite Déplacement : voiture de location

80

CorrespondanceBalise Concept

<auteur> <ecrivain> <realisateur> <compositeur>

Createur}

81

Concept Balise

Createur

Peintre Sculpteur Ecrivain Musicien

cree(Createur, Œuvre)peint(Peintre,Toile)

peint < creeToile < Œuvre

82

Recherche d'information

Grâce à la correspondance : balise concept,

Le système possède une représentation du sens des balises

83

Exemple :

<auteur>Olivier Corby</auteur>

Createur: Olivier Corby

Le système utilise ensuite l’ontologie relative au concept de créateur pour répondre à des requètes

84

Travaux

OntoBroker, SHOE RDF et Graphes Conceptuels : Corese,

DRDFS Projet Escrire : comparer GC, objets et logique

de description CoMMA : mémoire d’entreprise DAML OIL OWL, Semantic Web Working Group W3C

85

Applications

Mémoire d’entreprise : Corporate Semantic Web Le Schema RDF peut être le référentiel métier

Système documentaire

Web Services

Le Web de demain

86

Bibliographie

www.w3.org/XML www.w3.org/RDF http://www.w3.org/2001/sw/ www.oasis-open.org Méthodes et outils pour la gestion des

connaissances, R. Dieng et. al. Dunod XML, Langage et applications

A. Michard, Eyrolles

Recommended