Semantic Web

Download Report

Transcript Semantic Web

Semantic Web
Olivier Corby
1
Semantic Web
 Évolution du Web pour permettre le
traitement automatique des
informations (par programme)
 Documents structurés (XML)
 Associer sémantique aux pages Web
 http://www.scientificamerican.com/2001/0501issu
e/0501berners-lee.html
2
Semantic Web
3
XML
Extensible Markup Language
Langage 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
4
XML
Apporte 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
5
XML
<book>
<author>John Maynard Keynes</author>
<title>General Theory of Employment
…</title>
..
</book>
6
XML
<aaa>
<bbb>John Maynard Keynes</bbb>
<ccc>General Theory of Employment
…</ccc>
..
</aaa>
Définit une structure mais pas le sens
7
Sens
<book>  book a kind of Document
<title> <author>  Documents have an
author, which is a Person, a title
which is a Literal
8
RDF
 Resource Description Framework
 Annotations sémantiques décrivant le
contenu des documents
 Permet de faire des recherches
d'information en utilisant ces
annotations
9
RDF Suite
Le moteur de recherche :
 exploite les annotations
 effectue des inférences élémentaires
 retrouve des documents pertinents
10
RDF et Schema
 RDF sert à annoter des documents
pour décrire le contenu
 Ces descriptions reposent sur un
modèle partagé : une ontologie
 RDF Schema, Working Draft (Janvier
2000)
11
RDF Schema




Classes et Propriétés
Spécialisation
Syntaxe XML
Propriétés ont statut d’objet à part
entière, comme les classes et les
instances.
12
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 vs Top down design
13
Modèle RDF
RDF repose sur un modèle de triplet :
 objet propriété valeur
appelés respectivement :
 resource property value
Les valeurs sont soit des ressources, soit
des littéraux (valeurs atomiques)
14
Modèle RDF (2)
 Une ressource est un objet (document
ou fragment de document) accessible
par un URI sur le Web
Exemple :
titre(http://www.essi.fr/cours/log11,
‘Modélisation des connaissances’
)
15
RDF : syntaxe XML
<rdf:Description about=‘
http://www.essi.fr/cours/log11’
>
<titre>Modélisation des connaissances</titre>
</rdf:Description>
16
Ajouter du sens
 La ressource est un cours,
 un cours a des enseignants,
 l’enseignant est un chercheur de
l'INRIA,
 etc.
17
Exemple
<rdf:Description
about=‘
http://www.essi.fr/cours/log11’
>
 <rdf:type rdf:resource='#Cours'/>
 <titre>Modélisation des connaissances
</titre>
</rdf:Description>
<rdfs:Class ID='Cours'/>
18
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>
19
Classes (2)
<rdfs:Class rdf:ID='CoursCommun'>
<rdfs:subClassOf rdf:resource='#CoursDEA'/>
<rdfs:subClassOf rdf:resource='#CoursESSI'/>
</rdfs:Class>
<rdfs:Property rdf:ID='titre'>
<rdfs:domain
rdf:resource='#Cours'/>
<rdfs:range
rdf:resource= ’&rdfs;Literal’/>
</rdfs:Property>
20
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>
21
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>
22
Annotation
<rdf:Description
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>
23
</rdf:Description>
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 ?
24
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’
25
Traits avancés
 Modularité
 Multi héritage, multi instanciation
 Conteneurs
26
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
27
Namespace (2)
<rdf:Description
xmlns:ns=‘http://www.inria.fr/acacia/cours#’
>
<ns:titre>Modélisation des connaissances
</ns:titre>
28
Exemple
<rdf:Description
rdf:about=‘http://www.essi.fr/cours/log1’
xmlns:ns=‘http://www.inria.fr/acacia/cours#’
xmlns:rdf=‘http://www.w3.org/1999/02/22-rdfsyntax-ns#’
>
<rdf:type rdf:resource=
'http://www.inria.fr/acacia/cours#Cours'/>
<ns:titre>Modélisation des connaissances
</ns:titre>
<ns:num>Log11</ns:num>
29
Exemple (suite)
<ns:enseignant>
<ns:Chercheur
rdf:about=‘http://www.inria.fr/Olivier.Corby’>
 <ns:nom>Olivier Corby</ns:nom>
 <ns:institut>INRIA</ns:institut>
 </ns:Chercheur>
</ns:enseignant>
</rdf:Description>
30
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>
31
Multi instanciation
 Une description peut être instance de plusieurs
classes
<rdf:Description
rdf:about=‘http://www.inria.fr/Olivier.Corby’
>
<rdf:type rdf:resource=‘ns:Chercheur’
/>
<ns:institut>INRIA</ns:institut>
<rdf:type rdf:resource=‘ns:Enseignant’
/>
<ns:etablissement>UNSA</ns:etablissement>
</rdf:Description>
32
Plusieurs Schema
 Utiliser plusieurs schemas, grâce aux
namespaces :
<rdf:Description
xmlns:rdf=‘
http://www.w3.org/1999/02/22-rdfsyntax-ns#’
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>
33
Propriété
 Une propriété peut être associée à plusieurs
classes
<rdf:Property rdf:ID=‘nom’
>
<rdfs:domain rdf:resource=‘#Personne’
/>
<rdfs:domain rdf:resource=‘#Cours’
/>
<rdfs:range rdf:resource=‘&rdfs;Literal ’
/>
</rdf:Property>
Avec DAML+OIL, plusieurs domaines  intersection des
domaines
Ajout possible de propriétés à une classe définie
par ailleurs
34
Sous-propriété
 Une propriété peut être spécialisée :
<rdf:Property rdf:ID='coordinateur'>
<rdfs:subPropertyOf rdf:resource='#enseignant'/>
</rdf:Property>
coordinateur(C, P)  enseignant(C, P)
coordinateur est incluse dans enseignant
35
Sous-propriété (2)
P' subPropertyOf
P

domain(P')  domain(P)
range(P')
 range(P)
36
Sous propriété (3)
<ns:Cours about=‘
http://www.essi.fr/cours/log11’
>
<ns:coordinateur
rdf:resource=‘http://www.inria.fr/Olivier.Corby’
/>
</ns:Cours>

<ns:Cours about=‘http://www.essi.fr/cours/log11’
>
<ns:enseignant
rdf:resource=‘http://www.inria.fr/Olivier.Corby’
/>
</ns:Cours>
37
Nom externe de Propriété
Une propriété peut avoir plusieurs noms externes : labels
<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>
38
Limitation de RDF
Impossible de surcharger une propriété pour la raffiner :
Class Primate
Class Man subClassOf Primate
Class Chimpanzee subClassOf Primate
<rdf:Property rdf:ID=‘child’
>
 <rdfs:domain
 <rdfs:range
rdf:resource='#Primate'/>
rdf:resource='#Primate'/>
</rdf:Property>
39
Raffinement impossible
La propriété child étant définie, il est
impossible de la raffiner :
<rdf:Property rdf:ID=‘child’
>
 <rdfs:domain
 <rdfs:range
rdf:resource='#Man'/>
rdf:resource='#Man'/>
</rdf:Property>
40
Solution
Spé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>
41
Collection
 Quand la valeur d’une propriété comporte
plusieurs 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>
42
Conteneurs (2)




Container
Bag : ensemble
Seq : séquence ordonnée
Alt : alternative. Liste de valeurs possibles
pour la propriété
Ne seront plus dans RDF Core
43
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>
44
Exemple (2)
<rdf:Property rdf:ID="Designation">
<rdfs:subPropertyOf rdf:resource="#SomeRelation"/>
<rdfs:range
rdf:resource="http://www.w3.org/TR/1999/PR-rdfschema-19990303#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>
45
Exemple (3)
<c:ResearchReport
rdf:about=”http://www.inria.fr/rapports/sophia/RR3071.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/Nada.Natta">
<c:FirstName>Olivier</c:FirstName>
<c:FamilyName>Corby</c:FamilyName></c:Person>
</c:CreatedBy>
<c:CreationDate>12-1996</c:CreationDate>
46
<c:CreatedBy><c:ProjectGroup
rdf:about="http://www.inria.fr/recherche/equipes/acacia.en.
Exemple (4)
Find Document about XML
written by a person from the Acacia project
return the title of the document and the name
of the author
47
Interrogation
Lever les ambiguïtés grâce à l'ontologie
Exploiter la conceptualisation et la subsomption
Document ?
Person ?
 Article

Designation ? 
Student
Title
48
Extensions : Corese
COnceptual REsource Search Engine
Implémentation de RDF basée sur les graphes conceptuels
Moteur de recherche sémantique
49
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.
50
Langage de requête (2)
|
ou booléen : ~XML
|
not
join
option
not isMemberOf
join results on concept
concept is optionnal
~RDF
51
Exemple
<c:Document c:Title='~XML' c:CreatedBy='?p'/>
<c:Person rdf:about='?p' c:Name='?n'
c:memberOf='?o'/>
<c:Organization rdf:about='?o'
c:Designation='~Acacia'/>
|
52
Propriétés des relations
Transitivité, symétrie et réflexivité
Relation inverse
sont calculées par le moteur
transitivité : p(x, y)  p(y, z)  p(x, z)
symétrie : p(x, y)  p(y, x)
réflexivité : x p(x, x)
inverse :
p(x, y)  p'(y, x)
53
Proprité des relations (2)
<rdf:Property rdf:ID=‘isMemberOf’>
 <cos:transitive>true</cos:transitive>
<cos:inverse rdf:resource=‘#hasMember‘>
</rdf:Property>
<rdf:Property rdf:ID=‘colleague’>
 <cos:transitive>true</cos:transitive>
<cos:symmetric>true</cos:symmetric>
</rdf:Property>
54
Transitivité & Inverse
<c:Person rdf:about='#oc'
c:isMemberOf='www.inria.fr/acacia'/>
<c:Project rdf:about='www.inria.fr/acacia'
c:isMemberOf='www.inria.fr'/>

<c:Person rdf:about='#oc'
c:isMemberOf='www.inria.fr'/>
<c:Organization rdf:about='www.inria.fr'
c:hasMember=‘#OC'/>
55
Symétrie
<c:Person rdf:about='#oc’ c:colleague=’#rd'/>

<c:Person rdf:about='#rd' c:colleague=’#oc'/>
56
Extension RDFS
<!DOCTYPE rdf:RDF [
<!ENTITY cos
"http://www.inria.fr/acacia/corese#">
<!ENTITY rdf
"http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" ]>
<rdf:RDF xmlns:rdf=”&rdf;”
xmlns:rdfs=”&rdfs;"
xmlns:cos=”&cos;">
<rdf:Property rdf:ID='&cos;transitive'>
<rdfs:domain rdf:resource='&rdf;Property'/>
<rdfs:range rdf:resource='&rdfs;Literal'/>
</rdf:Property>
<rdf:Property rdf:ID='&cos;symmetric'>
<rdfs:domain rdf:resource='&rdf;Property'/>
<rdfs:range rdf:resource='&rdfs;Literal'/>
</rdf:Property>
57
Extension RDFS (2)
<rdf:Property rdf:ID='&cos;reflexive'>
<rdfs:domain rdf:resource='&rdf;Property'/>
<rdfs:range rdf:resource='&rdfs;Literal'/>
</rdf:Property>
<rdf:Property rdf:ID='&cos;inverse'>
<rdfs:domain rdf:resource='&rdf;Property'/>
<rdfs:range rdf:resource='&rdf;Property'/>
</rdf:Property>
58
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
59
Règle
si
Institut ?i inclut Personne ?p ET
?p a pour interet Sujet ?s
alors
?i a pour interet ?s
60
Règle de graphe
[Institut: ?i]-(inclut)-[Personne:
?p]
-(interet)-[Sujet: ?s]

[Institut: ?i]-(interet)-[Sujet: ?s]
61
Règle RDF
<cos:rule>
<cos:if>
<s:Institut rdf:about=‘?i’>
<s:inclut>
<s:Personne rdf:about=‘?p’
s:interet=‘?s’/>
</s:inclut>
</s:Institut>
</cos:if>
<cos:then>
<s:Institut rdf:about=‘?i’s:interet=‘?s’/>
</cos:then>
</cos:rule>
62
Règle de graphe
règles de graphe conceptuel
Pour appliquer une règle CD
sur un graphe G :
1. Trouver une occurrence C’ de C dans G par
projection : C’ C
2. Joindre la conclusion D au graphe G sur les
concepts de C’ trouvés par projection
63
Exemple
[Institut: ?i]-(inclut)-[Personne: ?p]
-(interet)-[Sujet: ?s]
[Projet: Acacia]-{
-(inclut)[Person: O.Corby]-(interet)[ModelisationConnaissance]
-(inclut)-[PhdStudent: L.A]
…
}
64
Exemple (2)
[Projet: Acacia]-{
-(interet)-[ModelisationConnaissance]
-(inclut)[Person: O.Corby]-(interet)[ModelisationConnaissance]
-(inclut)-[PhdStudent: L.A]
…
}
65
Futur du Semantic Web







Documents structurés XML
XML Schema
XQuery
Ressource 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:66
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
67
Correspondance
Balise  Concept




<auteur>
<ecrivain>
<realisateur>
<compositeur>
}
Createur
68
Concept  Balise
Createur
Peintre Sculpteur
Ecrivain
Musicien
cree(Createur, Œ
uvre)
peint(Peintre,Toile)
peint < cree
Toile < Œ
uvre
69
Recherche d'information
Grâce à la correspondance :
balise  concept,
Le système possède une représentation
du sens des balises
70
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
71
Travaux
 OntoBroker, SHOE
 RDF et Graphes Conceptuels : Corese,
DRDFS, Comma
 Projet Escrire : comparer GC, objets et
logique de description
 Projet C-Web : Community Web
 DAML OIL
 Semantic Web Working Group W3C
72
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
73
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, 1999
74