1 semantic web olivier corby. 2 semantic web Évolution du web pour permettre le traitement...
TRANSCRIPT
1
Semantic Web
Olivier Corby
2
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/0501issue/0501berners-lee.html
3
Semantic Web
4
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
5
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
6
XML
<book>
<author>John Maynard Keynes</author>
<title>General Theory of Employment …</title>
..
</book>
7
XML
<aaa>
<bbb>John Maynard Keynes</bbb>
<ccc>General Theory of Employment …</ccc>
..
</aaa>
Définit une structure mais pas le sens
8
Sens
<book> book a kind of Document
<title> <author> Documents have an author, which is a Person, a title which is a Literal
9
RDF
Resource Description Framework Annotations sémantiques décrivant le
contenu des documents Permet de faire des recherches
d'information en utilisant ces annotations
10
RDF Suite
Le moteur de recherche : exploite les annotations effectue des inférences élémentaires retrouve des documents pertinents
11
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)
12
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.
13
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
14
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)
15
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)�
16
RDF : syntaxe XML
<rdf:Description about=‘http://www.essi.fr/cours/log11’>
<titre>Modélisation des connaissances</titre>
</rdf:Description>
17
Ajouter du sens
La ressource est un cours, un cours a des enseignants, l’enseignant est un chercheur de
l'INRIA, etc.
18
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'/>
19
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>
20
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>
21
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>
22
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>
23
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>
</rdf:Description>
24
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 ?
25
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’
26
Traits avancés
Modularité
Multi héritage, multi instanciation
Conteneurs
27
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
28
Namespace (2)
<rdf:Description xmlns:ns=‘http://www.inria.fr/acacia/cours#>�
<ns:titre>Modélisation des connaissances</ns:titre>
29
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-rdf-
syntax-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>
30
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>
31
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>
32
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>
33
Plusieurs Schema
Utiliser plusieurs schemas, grâce aux namespaces :
<rdf:Description
xmlns:rdf=‘http://www.w3.org/1999/02/22-rdf-syntax-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>
34
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
35
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
36
Sous-propriété (2)
P' subPropertyOf P
domain(P') domain(P)
range(P') range(P)
37
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>
38
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>
39
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 rdf:resource='#Primate'/> <rdfs:range rdf:resource='#Primate'/>
</rdf:Property>
40
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>
41
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>
42
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>
43
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
44
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>
45
Exemple (2)
<rdf:Property rdf:ID="Designation">
<rdfs:subPropertyOf rdf:resource="#SomeRelation"/>
<rdfs:range rdf:resource="http://www.w3.org/TR/1999/PR-rdf-schema-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>
</rdf:Property>
46
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/Nada.Natta">
<c:FirstName>Olivier</c:FirstName><c:FamilyName>Corby</c:FamilyName></c:Person>
</c:CreatedBy><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>
47
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
48
Interrogation
Lever les ambiguïtés grâce à l'ontologie
Exploiter la conceptualisation et la subsomption
Document ? ArticlePerson ? StudentDesignation ? Title
49
Extensions : Corese
COnceptual REsource Search Engine
Implémentation de RDF basée sur les graphes conceptuels
Moteur de recherche sémantique
50
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.
51
Langage de requête (2)
| ou booléen : ~XML | ~RDF
not not isMemberOfjoin join results on conceptoption concept is optionnal
52
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'/>|
53
Propriétés des relations
Transitivité, symétrie et réflexivité Relation inversesont 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)
54
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>
55
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'/>
56
Symétrie
<c:Person rdf:about='#oc’ c:colleague=’#rd'/>
<c:Person rdf:about='#rd' c:colleague=’#oc'/>
57
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>
58
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>
59
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
60
Règle
si Institut ?i inclut Personne ?p ET
?p a pour interet Sujet ?s
alors?i a pour interet ?s
61
Règle de graphe
[Institut: ?i]-(inclut)-[Personne: ?p] -(interet)-[Sujet: ?s]
[Institut: ?i]-(interet)-[Sujet: ?s]
62
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>
63
Règle de graphe
règles de graphe conceptuelPour appliquer une règle CD sur un graphe G :1. Trouver une occurrence C’ de C dans G par
projection : C’ C2. Joindre la conclusion D au graphe G sur les
concepts de C’ trouvés par projection
64
Exemple
[Institut: ?i]-(inclut)-[Personne: ?p] -(interet)-[Sujet: ?s]
[Projet: Acacia]-{
-(inclut)-[Person: O.Corby]-(interet)-[ModelisationConnaissance]
-(inclut)-[PhdStudent: L.A]
…
}
65
Exemple (2)
[Projet: Acacia]-{
-(interet)-[ModelisationConnaissance]
-(inclut)-[Person: O.Corby]-(interet)-[ModelisationConnaissance]
-(inclut)-[PhdStudent: L.A]
…
}
66
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:
67
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
68
CorrespondanceBalise Concept
<auteur> <ecrivain> <realisateur> <compositeur>
Createur}
69
Concept Balise
Createur
Peintre Sculpteur Ecrivain Musicien
cree(Createur, Œuvre)peint(Peintre,Toile)
peint < creeToile < Œuvre
70
Recherche d'information
Grâce à la correspondance : balise concept,
Le système possède une représentation du sens des balises
71
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
72
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
73
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
74
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