740 likes | 857 Views
Semantic Web. Olivier Corby. 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. Semantic Web.
E N D
Semantic Web Olivier Corby
Semantic Web • Évolution du Web pour permettre le traitementautomatique des informations (par programme) • Documents structurés (XML) • Associer sémantique aux pages Web • http://www.scientificamerican.com/2001/0501issue/0501berners-lee.html
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
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
XML <book> <author>John Maynard Keynes</author> <title>General Theory of Employment …</title> .. </book>
XML <aaa> <bbb>John Maynard Keynes</bbb> <ccc>General Theory of Employment …</ccc> .. </aaa> Définit une structure mais pas le sens
Sens <book> book a kind of Document <title> <author> Documents have an author, which is a Person, a title which is a Literal
RDF • Resource Description Framework • Annotations sémantiques décrivant le contenu des documents • Permet de faire des recherches d'information en utilisant ces annotations
RDF Suite Le moteur de recherche : • exploite les annotations • effectue des inférences élémentaires • retrouve des documents pertinents
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)
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.
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
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)
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)
RDF : syntaxe XML <rdf:Description about=http://www.essi.fr/cours/log11> <titre>Modélisation des connaissances</titre> </rdf:Description>
Ajouter du sens • La ressource est un cours, • un cours a des enseignants, • l’enseignant est un chercheur de l'INRIA, • etc.
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'/>
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>
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>
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>
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>
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>
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 ?
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
Traits avancés • Modularité • Multi héritage, multi instanciation • Conteneurs
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
Namespace (2) <rdf:Description xmlns:ns=‘http://www.inria.fr/acacia/cours#> <ns:titre>Modélisation des connaissances</ns:titre>
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>
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>
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>
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>
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>
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
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
Sous-propriété (2) P' subPropertyOf P domain(P') domain(P) range(P') range(P)
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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
Interrogation Lever les ambiguïtés grâce à l'ontologie Exploiter la conceptualisation et la subsomption Document ? Article Person ? Student Designation ? Title
Extensions : Corese COnceptual REsource Search Engine Implémentation de RDF basée sur les graphes conceptuels Moteur de recherche sémantique
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.