870 likes | 991 Views
Web Sémantique RDF. Olivier.Corby@sophia.inria.fr. Semantic Web. World Wide Web Consortium : www.w3.org Extension du Web actuel où l’information serait munie d’une signification (meaning) bien définie Pour faciliter le travail en coopération homme-machine
E N D
Web Sémantique RDF Olivier.Corby@sophia.inria.fr
Semantic Web • World Wide Web Consortium : www.w3.org • Extension du Web actuel où l’information serait munie d’une signification (meaning)bien définie • Pour faciliter le travail en coopération homme-machine • Un Web de données et de documents
Semantic Web • Évolution du Web pour permettre le traitementautomatique des informations (par programme) • Documents et données structurés (XML) • Associer sémantique (sens) aux documents • http://www.scientificamerican.com/2001/0501issue/0501berners-lee.html
Applications Préparer automatiquement un voyage, par l’Internet, en combinant des informations (hôtel, avion, voiture) Etre prévenu d’informations sur un thème donné : conférence, publication, etc.
Applications Annotation de documents multimedia : trouver une séquence avec un facteur cycliste Site Web d’entreprise structuré par un référentiel Documentation technique
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 Définit 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. Contraint les traitements
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 <author> Documents have an author, which is a Person, <title> a title which is a Literal
Sens Décrire le sens avec un certain consensus En utilisant des vocabulaires standardisés : ontologie
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 vocabulaire partagé : une ontologie • RDF Vocabulary Description Language 1.0: RDF SchemaW3C Working Draft 10 Octobre http://www.w3.org/RDF
RDF Schema • Classes de ressource et Propriétés • Spécialisation • Syntaxe XML • Propriétés sont entités à 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 design vs Top down
Modèle RDF RDF repose sur un modèle de triplet : resource 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 (e.g. document ou fragment de document) est désignée par un URI • Peut être accessible par URI Exemple : http://www.essi.fr/cours/log11 ns:titre ‘Modélisation des connaissances’ Noté : ex:log11 ns:titre ‘Modélisation …’
RDF : syntaxe XML <rdf:Description rdf: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 ex:log11 rdf:type ns:Cours ex:log11 ns:titre “Modélisation des connaissances” ns:Cours rdf:type rdfs:Class
RDF/XML <rdf:Description rdf: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 ns:Cours rdf:type rdfs:Class ns:CoursDEA rdf:type rdfs:Class ns:CoursDEA rdfs:subClassOf ns:Cours ns:CoursESSI rdfs:subClassOf ns: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> <rdf:Property rdf:ID='titre'> <rdfs:domain rdf:resource='#Cours'/> <rdfs:range rdf:resource=’&rdfs;Literal’/> </rdf: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 rdf: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/log11’ xmlns:ns=‘http://www.inria.fr/acacia/cours#’ xmlns:rdf=‘http://www.w3.org/1999/02/22-rdf-syntax-ns#’> <rdf:type rdf:resource=‘#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=‘#Chercheur’/> <ns:institut>INRIA</ns:institut> <rdf:type rdf:resource=‘#Enseignant’/> <ns:etablissement>UNSA</ns:etablissement> </rdf:Description>
Plusieurs Schema • Utiliser plusieurs schemas, grâce aux namespaces : <rdf:Description xmlns:rdf=`&rdf;’ 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é : domaine Le domaine est la conjonction des domaines <rdf:Property rdf:ID=‘vitesse’> <rdfs:domain rdf:resource=‘#Objet’/> <rdfs:domain rdf:resource=‘#Mobile’/> <rdfs:range rdf:resource=‘&rdfs;Literal’/> </rdf:Property>
Domaines ns:vitesse rdf:type rdf:Property ns:vitesse rdfs:domain ns:Objet ns:vitesse rdfs:domain ns:Mobile ns:vitesse rdfs:range rdfs:Literal ex:car ns:vitesse “100” ex:car rdf:type ns:Objet ex:car rdf:type ns:Mobile
Sous-propriété • Une propriété peut être spécialisée : <rdf:Property rdf:ID='coordinateur'> <rdfs:subPropertyOf rdf:resource='#enseignant'/> </rdf:Property> ex:bob ns:coordinateur ex:cours Þ ex:bob ns:enseignant ex:cours coordinateur est inclus dans enseignant
Sous propriété (2) <ns:Cours rdf:about=‘http://www.essi.fr/cours/log11’> <ns:coordinateur rdf:resource=‘http://www.inria.fr/Olivier.Corby’/> </ns:Cours> Þ <ns:Cours rdf: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 Peuvent être multilingue <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>
Datatype Pour typer les valeurs litérales, RDF repose sur les datatypes de XML Schema xmlns:xsd=‘http://www.w3.org/2001/XMLSchema#’ xsd:integer xsd:float xsd:string xsd:date xsd:boolean ...
RDF Datatype <!ENTITY xsd ”http://www.w3.org/2001/XMLSchema#” > <c:Person> <c:age rdf:datatype=‘&xsd;integer’>43</c:age> <c:name rdf:datatype=‘&xsd;string’>Laurent </c:name> </c:Person>
Limitation de RDF Impossible de surcharger la signature d’une propriété pour la spécialiser 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 en RDF 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> Ou utiliser OWL
Collection • Quand la valeur d’une propriété est une collection de 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>