Corese Moteur de recherche smantique pour RDF Olivier

  • Slides: 78
Download presentation
Corese Moteur de recherche sémantique pour RDF Olivier. Corby@sophia. inria. fr Projet ACACIA INRIA,

Corese Moteur de recherche sémantique pour RDF Olivier. Corby@sophia. inria. fr Projet ACACIA INRIA, Sophia Antipolis http: //www. inria. fr/acacia «Knowledge is Power» 1

Corese COnceptual REsource Search Engine Moteur de recherche RDF Resource Description Framework (W 3

Corese COnceptual REsource Search Engine Moteur de recherche RDF Resource Description Framework (W 3 C) 2

Histoire 1992 Acacia : acquisition des connaissances à partir de documents structurés avec des

Histoire 1992 Acacia : acquisition des connaissances à partir de documents structurés avec des graphes conceptuels 1998 : XML 1999 : RDF, 1 er prototype de Corese 2000 ICCS : RDF et les graphes conceptuels 2000 -2001 : Moteur Corese pour Comma, projet européen 3

Web Sémantique Extension du Web actuel où l’information serait munie d’une signification (meaning) bien

Web Sémantique Extension du Web actuel où l’information serait munie d’une signification (meaning) bien définie Pour faciliter le travail en coopération hommemachine Un Web de données et de documents 4

Web Sémantique Évolution du Web pour permettre le traitement automatique des informations (par programme)

Web Sémantique Évolution du Web pour permettre le traitement automatique des informations (par programme) Documents et données structurés (XML) Associer sémantique (sens) aux documents et aux données 5

W 3 C 6

W 3 C 6

Applications Préparer automatiquement un voyage, par l’Internet, en combinant des informations (hôtel, avion, voiture)

Applications Préparer automatiquement un voyage, par l’Internet, en combinant des informations (hôtel, avion, voiture) Mémoire d’entreprise : web sémantique d’entreprise 7

XML Extensible Markup Language Langage de description et d’échange de : • documents structurés

XML Extensible Markup Language Langage de description et d’échange de : • documents structurés • données structurées W 3 C 8

XML Définit la structure (syntaxe) comme un arbre de syntaxe abstraite Mais rien sur

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 9

Sens <book> book a kind of Document <author> Documents have an author, which is

Sens <book> book a kind of Document <author> Documents have an author, which is a Person, <title> a title which is a Literal 10

Sens Décrire le sens avec un certain consensus En utilisant des vocabulaires conceptuels standardisés

Sens Décrire le sens avec un certain consensus En utilisant des vocabulaires conceptuels standardisés : ontologie 11

Ontologie Se mettre d'accord sur le sens des termes employés dans une organisation, une

Ontologie Se mettre d'accord sur le sens des termes employés dans une organisation, une communauté, un métier Faire en sorte que les personnes et les logiciels se comprennent 12

Ontologie Identifier, modéliser les concepts et les relations d'un domaine, pertinents pour une/des applications

Ontologie Identifier, modéliser les concepts et les relations d'un domaine, pertinents pour une/des applications Se mettre d'accord, au sein d'une communauté, sur les termes employés pour se référer à ces notions 13

Ontologie Identifier un domaine technique Recenser, classer les termes du vocabulaire Identifier les termes

Ontologie Identifier un domaine technique Recenser, classer les termes du vocabulaire Identifier les termes dénotant • des objets • des propriétés • des relations Classer les objets 14

Ontologie Identifier les points de vue pertinents du domaine : • Technique, Financier, Management

Ontologie Identifier les points de vue pertinents du domaine : • Technique, Financier, Management • Structurel, Fonctionnel 15

Ontologie : modélisation des connaissances Au sens où une théorie physique est un modèle

Ontologie : modélisation des connaissances Au sens où une théorie physique est un modèle de la réalité Il peut y avoir plusieurs modèles d’une même réalité : • expérience de la chute des corps • théorie de la gravitation de Newton • relativité générale d’Einstein 16

Connaissance Continuum : donnée, information, connaissance • donnée : … --- … • information

Connaissance Continuum : donnée, information, connaissance • donnée : … --- … • information : SOS • connaissance : en cas d’alerte, déclencher les secours La connaissance permet de produire de nouvelles données, informations, connaissances : inférence 17

Connaissances de résolution de problème : conception, diagnostic, évaluation, planification tâches, inférences Connaissances du

Connaissances de résolution de problème : conception, diagnostic, évaluation, planification tâches, inférences Connaissances du domaine électronique, mécanique, médecine, etc. Concept, relation 18

Ontologie Composant réutilisable Réutilisation : généralité, abstraction (reuse) Partage : consensus, standardisation (sharing) Accord

Ontologie Composant réutilisable Réutilisation : généralité, abstraction (reuse) Partage : consensus, standardisation (sharing) Accord sur conceptualisation partagée : engagement ontologique (commitment) 19

RDF W 3 C Resource Description Framework Langage de description de meta données pour

RDF W 3 C Resource Description Framework Langage de description de meta données pour le web sémantique Modèle de triplets resource property value A l’échelle du web : utilise des URI Permet de classer les ressources 20

RDF Meta donnée pour décrire le contenu des documents –Type de document –Auteurs –Origine

RDF Meta donnée pour décrire le contenu des documents –Type de document –Auteurs –Origine –Sujet –Public cible 21

RDF Triples ex: doc ex: title “Theory of Justice” rdf: type ex: Book ex:

RDF Triples ex: doc ex: title “Theory of Justice” rdf: type ex: Book ex: author ex: jr ex: subject ex: philosophy ex: jr ex: name “John Rawls” ex: jr rdf: type ex: Person 22

Syntaxe XML <ex: Book rdf: about=‘#doc’> <ex: author rdf: resource=‘#jr’/> <ex: title>Theory of Justice

Syntaxe XML <ex: Book rdf: about=‘#doc’> <ex: author rdf: resource=‘#jr’/> <ex: title>Theory of Justice </ex: title> </ex: Book> <ex: Person rdf: about=‘#jr’> <ex: name>John Rawls</ex: name> </ex: Person> 23

RDF Schema Vocabulaire standard pour décrire des ressources Classes de ressources Propriétés et signatures

RDF Schema Vocabulaire standard pour décrire des ressources Classes de ressources Propriétés et signatures 24

Classes ex: Book rdf: type rdfs: Class ex: Book rdfs: sub. Class. Of ex:

Classes ex: Book rdf: type rdfs: Class ex: Book rdfs: sub. Class. Of ex: Document ex: Person rdf: type rdfs: Class ex: Person rdfs: sub. Class. Of ex: Hominidae 25

Propriétés ex: author ex: name rdf: type rdf: Property rdfs: domain ex: Document rdfs:

Propriétés ex: author ex: name rdf: type rdf: Property rdfs: domain ex: Document rdfs: range ex: Person rdf: type rdf: Property rdfs: domain ex: Person rdfs: range rdfs: Literal 26

Inférence de type ex: doc ex: author ex: jr ex: author rdfs: domain ex:

Inférence de type ex: doc ex: author ex: jr ex: author rdfs: domain ex: Document ex: author rdfs: range ex: Person ex: doc rdf: type ex: Document ex: jr rdf: type ex: Person 27

Typage : class Si une ressource a pour type C, alors C est une

Typage : class Si une ressource a pour type C, alors C est une classe : rdf: type rdfs: range rdfs: Class ex: olivier rdf: type ex: Person rdf: type rdfs: Class 28

Sous-propriété ex: nick. Name rdfs: sub. Property. Of ex: name ex: jr ex: nick.

Sous-propriété ex: nick. Name rdfs: sub. Property. Of ex: name ex: jr ex: nick. Name “Joe” ex: jr ex: name “Joe” 29

RDFS XML <rdfs: Class rdf: ID=‘Person’> <rdfs: sub. Class. Of rdf: resource=‘#Hominidae’/> </rdfs: Class>

RDFS XML <rdfs: Class rdf: ID=‘Person’> <rdfs: sub. Class. Of rdf: resource=‘#Hominidae’/> </rdfs: Class> <rdf: Property rdf: ID=‘name’> <rdfs: domain rdf: resource=‘#Person’/> <rdfs: range rdf: resource=‘&rdfs; Literal’/> </rdf: Property> 30

Ressource anonyme Ressource intermédiaire, sans identificateur Sémantique existentielle : il existe une ressource <ns:

Ressource anonyme Ressource intermédiaire, sans identificateur Sémantique existentielle : il existe une ressource <ns: Cours> <ns: auteur> <ns: Person> <ns: name>O. Corby</ns: name> </ns: Person> </ns: auteur> </ns: Cours> 31

Relation n-aire Les propriétés sont des relations binaires Pour décrire une relation n-aire, utiliser

Relation n-aire Les propriétés sont des relations binaires Pour décrire une relation n-aire, utiliser une ressource anonyme : <ns: Mobile> <ns: vitesse rdf: parse. Type=‘Resource’> <rdf: value>130</rdf: value> <ns: unit>km/h</ns: unit> </ns: vitesse> </ns: Mobile> 32

Relation n-aire <ns: Mobile> <ns: vitesse> <rdf: Description> <rdf: value>130</rdf: value> <ns: unit>km/h</ns: unit>

Relation n-aire <ns: Mobile> <ns: vitesse> <rdf: Description> <rdf: value>130</rdf: value> <ns: unit>km/h</ns: unit> </rdf: Description> </ns: vitesse> </ns: Mobile> 33

Requêtes • • Trouver les cours dont O. Corby est enseignant ? Qui enseigne

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 ? 34

Requêtes • A la OQL (Object Query Language) select c. num, p. nom from

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’ 35

Sémantique Tous les énoncés RDF sont considérés comme vrais, dans un même environnement, la

Sémantique Tous les énoncés RDF sont considérés comme vrais, dans un même environnement, la conjonction des énoncés est considérée comme vrai également Il n’y a pas de contexte local (dans lequelque chose serait vrai) Il n’y a pas de négation RDF est monotone : ce qui est vrai reste vrai au fur et a mesure que l’on rajoute de l’information RDF est un sous-ensemble de la logique du premier ordre avec des prédicats binaires et des variables existentielles. 36

Graphes conceptuels Réseau sémantique Concept et relation Concepts et relations typés Hiérarchies de types

Graphes conceptuels Réseau sémantique Concept et relation Concepts et relations typés Hiérarchies de types de concept et de relation 37

GC [Book: doc]-(author)-[Person: jr]-(name)-[Literal: “John Rawls”] -(title)[Literal: “Theory of Justice”] 38

GC [Book: doc]-(author)-[Person: jr]-(name)-[Literal: “John Rawls”] -(title)[Literal: “Theory of Justice”] 38

GC - RDF Concept ressource Relation propriété Type classe Signature de relation domain, range

GC - RDF Concept ressource Relation propriété Type classe Signature de relation domain, range Projection pour retrouver des ressources RDF comme format de GC 39

Différences RDF : relation binaire RDF : ressources peuvent avoir plusieurs types RDF distingue

Différences RDF : relation binaire RDF : ressources peuvent avoir plusieurs types RDF distingue les littéraux et les ressources RDF est multilingue (xml: lang tag) 40

RDF S Literal Resource Property Class Onto logie sub. Property. Of domain type Inanimate

RDF S Literal Resource Property Class Onto logie sub. Property. Of domain type Inanimate Entity Anno tation RDF Country domain Company www. T-Nova. de Person subdivision. Of employs range activity sub. Class. Of subdivision. Of nationality www. Deutsche. Telekom. de activity Telecom 41

Corese Construire une représentation • d’un schema RDF et • d’énoncés RDF Recher des

Corese Construire une représentation • d’un schema RDF et • d’énoncés RDF Recher des ressources Classer des ressources par inférence de type Compléter la base de ressources par des inférences Serveur Web sémantique 42

Moteur de recherche Projection d’un graphe requête sur le graphe cible Opérateurs de recherche

Moteur de recherche Projection d’un graphe requête sur le graphe cible Opérateurs de recherche Projection approchée Groupement des résultats 43

Requête select d. title, p. name from d Document, p Person where d. title

Requête select d. title, p. name from d Document, p Person where d. title contains ‘XML’ and d. author = p 44

Requête <c: Document c: Title=‘~XML’> <c: author> <c: Person c: name=‘? x’/> </c: author>

Requête <c: Document c: Title=‘~XML’> <c: author> <c: Person c: name=‘? x’/> </c: author> </c: Document> 45

Projection [Document] (author) [Creator] Trouve des occurrences spécialisées : [Paper] (author) [Person] [Report] (author)

Projection [Document] (author) [Creator] Trouve des occurrences spécialisées : [Paper] (author) [Person] [Report] (author) [Team] 46

Projection approchée Réponse tolère des concepts non spécialisés Query [Technical. Report](author)[Person] vs Target :

Projection approchée Réponse tolère des concepts non spécialisés Query [Technical. Report](author)[Person] vs Target : [Research. Report] (author) [Team] 47

Distance ontologique Calcule une distance ontologique entre concept requête et concept cible Distance =

Distance ontologique Calcule une distance ontologique entre concept requête et concept cible Distance = longueur du plus court chemin le long de la relation de subsomption entre concept requête et cible Distance entre réponse et requête = somme des distances des concepts approchés 48

Distance ontologique Distance entre des frêres : 2 Entre des cousins germains : 4

Distance ontologique Distance entre des frêres : 2 Entre des cousins germains : 4 49

Distance De plus, la distance diminue avec la profondeur La distance entre un père

Distance De plus, la distance diminue avec la profondeur La distance entre un père et un fils de profondeur n est de 1/2 n Ainsi Homme est plus proche de Chimpanzé que Vertébré de Invertébré ! 50

Opérateurs ~ ^ = < ! | <: contain start. With <= >= >

Opérateurs ~ ^ = < ! | <: contain start. With <= >= > negation : != !~ boolean or : ~XML | ~ RDF <=: >=: >: type 51

Opérateurs Document ? x =: Technical. Report Un document de type égal à Technical.

Opérateurs Document ? x =: Technical. Report Un document de type égal à Technical. Report 52

XML Schema Datatypes xsd: string xsd: float xsd: integer xsd: date Xsd: boolean 53

XML Schema Datatypes xsd: string xsd: float xsd: integer xsd: date Xsd: boolean 53

RDF Datatype <!ENTITY xsd ”http: //www. w 3. org/2001/XMLSchema#” > <c: Person> <c: age

RDF Datatype <!ENTITY xsd ”http: //www. w 3. 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> 54

Groupement Une requête a pour réponse G 1. . Gn On peut grouper les

Groupement Une requête a pour réponse G 1. . Gn On peut grouper les graphes : distinct x 1. . xn group by connex x 1. . xn count x (by y) 55

Distinct Une requête a pour réponse G 1. . Gn distinct x 1 x

Distinct Une requête a pour réponse G 1. . Gn distinct x 1 x 2 G 1 : x 1=Jules, x 2=Jim G 2 : x 1=Jim, x 2=Jules Ne garder qu’un seul graphe 56

Group by Une requête a pour réponse G 1. . Gn group by x

Group by Une requête a pour réponse G 1. . Gn group by x 1 x 2 Joindre les graphes qui ont même x 1 et même x 2 Ex : grouper les documents par auteur et par année 57

Group by connex Une requête a pour réponse G 1. . Gn group by

Group by connex Une requête a pour réponse G 1. . Gn group by connex x 1 x 2 Joindre les graphes qui ont même valeur pour x 1 et/ou x 2 58

Count Une requête a pour réponse G 1. . Gn Count x Compter les

Count Une requête a pour réponse G 1. . Gn Count x Compter les occurrences différentes de x dans le graphe résultat Ex : compter les ouvrages d’un auteur 59

Extensions OWL owl: Transitive. Property owl: Symmetric. Property owl: inverse. Of owl: intersection. Of

Extensions OWL owl: Transitive. Property owl: Symmetric. Property owl: inverse. Of owl: intersection. Of owl: disjoint. With 60

Intersection owl: Class Woman owl: intersection. Of owl: Class Human owl: Class Female Définit

Intersection owl: Class Woman owl: intersection. Of owl: Class Human owl: Class Female Définit une équivalence entre Woman et l’intersection de Human et Female Human Female Woman 61

Inverse p 1 owl: inverse. Of p 2 X p 1 Y Y p

Inverse p 1 owl: inverse. Of p 2 X p 1 Y Y p 2 X has. Parent owl: inverse. Of has. Child John has. Parent Jim has. Child John 62

Symétrie p rdf: type owl: Symmetric. Property X p Y Y p X ex:

Symétrie p rdf: type owl: Symmetric. Property X p Y Y p X ex: sibling rdf: type owl: Symmetric. Property John ex: sibling Jack ex: sibling John 63

Transitivité owl: Transitive. Property X p Y Y p Z X p Z ex:

Transitivité owl: Transitive. Property X p Y Y p Z X p Z ex: part. Of rdf: type owl: Transitive. Property ex: axis ex: part. Of ex: engine ex: part. Of ex: car ex: axis ex: part. Of ex: car 64

Règles CG 1 CG 2 Si CG 1 alors compléter l’occurrence de CG 1,

Règles CG 1 CG 2 Si CG 1 alors compléter l’occurrence de CG 1, trouvée par projection, par CG 2 [Person: ? x] -(member)-[Team] -(participate)[Consortium: ? c] [Participant: ? x] –(participate)[Consortium: ? c] 65

Inférences Préciser le type d’un concept : [Person: ? x] -> [Participant: ? x]

Inférences Préciser le type d’un concept : [Person: ? x] -> [Participant: ? x] Relation entre concepts : [Participant: ? x]-(participate)[Consortium : ? c] 66

Règle de graphe règles de graphe conceptuel Pour appliquer une règle C D sur

Règle de graphe règles de graphe conceptuel Pour appliquer une règle C D sur un graphe G : 1. Trouver C’, une occurrence 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 67

Syntaxe RDF <cos: rule> <cos: if> <c: Person rdf: about=‘? p’> <c: member> <c:

Syntaxe RDF <cos: rule> <cos: if> <c: Person rdf: about=‘? p’> <c: member> <c: Team> <c: participate> <c: Consortium rdf: about=‘? c’/> </c: participate> </c: Team> </c: member> </c: Person </cos: if> 68

Syntaxe RDF <cos: then> <c: Participant rdf: about=‘? p’> <c: participate rdf: resource=‘? c’/>

Syntaxe RDF <cos: then> <c: Participant rdf: about=‘? p’> <c: participate rdf: resource=‘? c’/> </c: Participant> </cos: then> </cos: rule> 69

Serveur Web sémantique Moteur Corese intégré dans un serveur web Ontologie structure l’information 70

Serveur Web sémantique Moteur Corese intégré dans un serveur web Ontologie structure l’information 70

Applications 2000 -2001 : Comma 2002 Corese pour Samovar avec Renault 2003 -2004 :

Applications 2000 -2001 : Comma 2002 Corese pour Samovar avec Renault 2003 -2004 : Corese pour KMP, projet RNRT Cartographie des compétences sur Sophia Antipolis Version de distribution http: //www. inria. fr/acacia/soft/corese 2002 -2004 : ODL Inria 71

Comma O’Comma : Corporate Memory Management through Agents Système multi agents (Jade) Ontology en

Comma O’Comma : Corporate Memory Management through Agents Système multi agents (Jade) Ontology en RDF : Document, Entreprise, Domaine, Utilisateur Moteur de recherche Corese : RDF en graphe conceptuels Règles de graphe 72

Comma Méthode: Recueil, Phase terminologique, Structuration, Validation, Formalisation en RDFS Résultat: 470 concepts, 80

Comma Méthode: Recueil, Phase terminologique, Structuration, Validation, Formalisation en RDFS Résultat: 470 concepts, 80 relations, 13 niveaux de profondeur 73

Comma Haut niveau Niveau médian Aspects Document Aspects Entreprise Utilisateur Aspects Domaine Niveau spécifique

Comma Haut niveau Niveau médian Aspects Document Aspects Entreprise Utilisateur Aspects Domaine Niveau spécifique 74

KMP : Knowledge Management Platform Cartographie des compétences en Télécom sur Sophia Antipolis Serveur

KMP : Knowledge Management Platform Cartographie des compétences en Télécom sur Sophia Antipolis Serveur Web sémantique de compétence Favoriser les partenariats Ontologie en RDF : Compétence, Organisation, Domaine 75

Projets Futurs e. Learning, mémoire d’entreprise, génie civil, documentaire, web sémantique pour l’ énergie

Projets Futurs e. Learning, mémoire d’entreprise, génie civil, documentaire, web sémantique pour l’ énergie 76

Références http: //www. inria. fr/acacia/cours/utt/corese. ppt http: //www. inria. fr/acacia/soft/corese 77

Références http: //www. inria. fr/acacia/cours/utt/corese. ppt http: //www. inria. fr/acacia/soft/corese 77

Démo 78

Démo 78