Semantic Web Olivier Corby 1 Semantic Web volution
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/0501 issu e/0501 berners-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 (W 3 C) www. w 3. 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 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/log 11, ‘Modélisation des connaissances� ) 15
RDF : syntaxe XML <rdf: Description about=� http: //www. essi. fr/cours/log 11� > <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/log 11� > - <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='Cours. DEA'> <rdfs: sub. Class. Of rdf: resource='#Cours'/> </rdfs: Class> <rdfs: Class rdf: ID='Cours. ESSI'> <rdfs: sub. Class. Of rdf: resource='#Cours'/> </rdfs: Class> 19
Classes (2) <rdfs: Class rdf: ID='Cours. Commun'> <rdfs: sub. Class. Of rdf: resource='#Cours. DEA'/> <rdfs: sub. Class. Of rdf: resource='#Cours. ESSI'/> </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='Maitre. De. Conf'> - <rdfs: sub. Class. Of rdf: resource='#Personne'/> </rdfs: Class> <rdfs: Class rdf: ID='Chercheur'> - <rdfs: sub. Class. Of rdf: resource='#Personne'/> </rdfs: Class> 22
Annotation <rdf: Description about='http: //www. essi. fr/cours/log 11� > <rdf: type rdf: resource='#Cours'/> <titre>Modélisation des connaissances</titre> <num>Log 11</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 LOG 11 ? 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/log 1� xmlns: ns=‘http: //www. inria. fr/acacia/cours#� xmlns: rdf=‘http: //www. w 3. 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>Log 11</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=‘Enseignant. Chercheur� > <rdfs: sub. Class. Of rdf: resource=‘#Enseignant� /> <rdfs: sub. Class. Of 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. w 3. 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: sub. Property. Of rdf: resource='#enseignant'/> </rdf: Property> coordinateur(C, P) enseignant(C, P) coordinateur est incluse dans enseignant 35
Sous-propriété (2) P' sub. Property. Of P domain(P') domain(P) range(P') range(P) 36
Sous propriété (3) <ns: Cours about=� http: //www. essi. fr/cours/log 11� > <ns: coordinateur rdf: resource=‘http: //www. inria. fr/Olivier. Corby� /> </ns: Cours> <ns: Cours about=‘http: //www. essi. fr/cours/log 11� > <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 sub. Class. Of Primate Class Chimpanzee sub. Class. Of Primate <rdf: Property rdf: ID=‘child� > - <rdfs: domain - <rdfs: range 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: Property> 40
Solution Spécialiser la propriété : <rdf: Property rdf: ID='man. Child'> <rdfs: sub. Property. Of 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/log 11� > <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: sub. Class. Of rdf: resource="#Entity"/> <rdfs: sub. Class. Of rdf: resource="#Entity. Concerning. ATopic"/> <rdfs: sub. Class. Of rdf: resource="#Numberable. Entity"/> <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: sub. Property. Of rdf: resource="#Some. Relation"/> <rdfs: range rdf: resource="http: //www. w 3. 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> 45
Exemple (3) <c: Research. Report 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: Created. By> <c: Person rdf: about=”http: //www. inria. fr/acacia/Nada. Natta"> <c: First. Name>Nada</c: First. Name> <c: Family. Name>Matta</c: Family. Name></c: Person> </c: Created. By> <c: Person rdf: about=" http: //www. inria. fr/acacia/Nada. Natta"> <c: First. Name>Olivier</c: First. Name> <c: Family. Name>Corby</c: Family. Name></c: Person> </c: Created. By> <c: Creation. Date>12 -1996</c: Creation. Date> 46 <c: Created. By><c: Project. Group 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 | ~RDF not join option not is. Member. Of join results on concept is optionnal 51
Exemple <c: Document c: Title='~XML' c: Created. By='? p'/> <c: Person rdf: about='? p' c: Name='? n' c: member. Of='? 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=‘is. Member. Of� > - <cos: transitive>true</cos: transitive> <cos: inverse rdf: resource=‘#has. Member� > </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: is. Member. Of='www. inria. fr/acacia'/> <c: Project rdf: about='www. inria. fr/acacia' c: is. Member. Of='www. inria. fr'/> <c: Person rdf: about='#oc' c: is. Member. Of='www. inria. fr'/> <c: Organization rdf: about='www. inria. fr' c: has. Member=‘#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. w 3. org/1999/02/22 -rdf-syntax-ns#"> <!ENTITY rdfs "http: //www. w 3. 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)[Modelisation. Connaissance] -(inclut)-[Phd. Student: L. A] … } 64
Exemple (2) [Projet: Acacia]-{ -(interet)-[Modelisation. Connaissance] -(inclut)[Person: O. Corby]-(interet)[Modelisation. Connaissance] -(inclut)-[Phd. Student: L. A] … } 65
Futur du Semantic Web · · · · Documents structurés XML Schema XQuery Ressource annotées par du 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 · Recher 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 · Onto. Broker, 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 W 3 C 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. w 3. org/XML www. w 3. org/RDF http: //www. w 3. 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
- Slides: 74