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