Corese Moteur de recherche sémantique pour RDF

Slides:



Advertisements
Présentations similaires
Le moteur
Advertisements

Introduction aux Web Services Partie 1. Technologies XML
Approche graphique du nombre dérivé
Transformation de documents XML
Corese Moteur de recherche sémantique pour RDF
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Web Sémantique RDF
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
RDF Schema pour les ontologies légères
1 Semantic Web Olivier Corby. 2 Semantic Web Évolution du Web pour permettre le traitement automatique des informations (par programme) Documents structur.
Stage serveur web sémantique
Classe : …………… Nom : …………………………………… Date : ………………..
1 1 Momentum. 2 2 Tout objet en mouvement continuera son mouvement tant que rien nentrave sa progression.
ACTIVITES Le calcul littéral (3).
Les Prepositions.
Les espaces de nommage XML par Philippe Poulard 1
Cours Web sémantique Langage SPARQL
Le Modèle Logique de Données
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Ontologie, Méta-données, Sémiotiques
SYMETRIE CENTRALE OU SYMETRIE PAR RAPPORT A UN POINT.
1 TICE 2000 / Troyes / octobre 2000 Des moteurs de recherche efficaces pour des systèmes hypertextes grâce aux contextes des nœuds Des moteurs de.
Construction de Box-Plot ou diagrammes en boîtes ou boîtes à moustaches Construire une boîte à moustaches …
Introduction aux Web Services Partie 1. Technologies HTML-XML
Développement d’applications web
Monique THONNAT et Nathanaël ROTA Projet ORION
Fabien Gandon Post-doc Université de Carnegie Mellon
INRIA, Sophia Antipolis
La haute tour sombre 3 Des actions
OLAP : Un pas vers la navigation
Département fédéral de lintérieur DFI Office fédéral de la statistique OFS La qualité de lemploi en Suisse Silvia Perrenoud Journées suisses de la statistique.
SUJET D’ENTRAINEMENT n°2
MeSH Pierre Claveirole – CDRMG / UNAFORMEC.
RDF(S)
Test bilan de calcul mental N°1 :
Introducing Semantic Sensors in the SensApp Application Participant: Djeddi Samir. Encadrants: Mosser, Sébastien, UNS-I3S, MODALIS. Faron-Zucker, Catherine,
Développement d’application web
Interprétation de séquences dimages pour des applications MédiaSpace Alberto AVANZI François BREMOND Monique THONNAT Projet ORION INRIA de Sophia Antipolis.
W3C OWL Ontology Web Language
G-RDF WEB SEMANTIQUE.
Notre calendrier français MARS 2014
Web sémantique : Web de demain
Annexe 1 VISITE SUR
1 Ressources Bibliographiques Outils Internet pour la Bibliographie 3 Octobre 2008 Contact :
C'est pour bientôt.....
Veuillez trouver ci-joint
Modélisation des connaissances et Web sémantique
2.2 PRODUIT SCALAIRE ET CALCUL D’ANGLES
SUJET D’ENTRAINEMENT n°4
BLOGS (carnets web, cybercarnets) Didactiques des NTICS.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
2 Développer, tester et déployer un site web avec WebMatrix (RIA101) Christine Dubois 9 février 2011.
Page 1 © Jean Elias Gagner en agilité numérique. Page 2 © Jean Elias Les fournisseurs.
Bases de données phénotypique et ontologie
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Initiation à XML Sebti Foufou.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
SUJET D’ENTRAINEMENT n°1
Page 1 © Jean Elias Recherche et veille. Page 2 © Jean Elias Les fournisseurs.
1 Modèle pédagogique d’un système d’apprentissage (SA)
Introduction.
Conférence du groupe X- Environnement, 24 avril 2013 L’impact écologique des infrastructures numériques Cédric Gossart Institut Mines-Télécom Télécom Ecole.
Voici les mouvements de Mars et de la Terre dans le référentiel héliocentrique Sens de rotation LE SOLEIL MARS LA TERRE.
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
CALENDRIER-PLAYBOY 2020.
USAM BRIDGE H O W E L L -CLASSIQUE
9 paires séries de 3 étuis ( n° 1 à 27 )
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Transcription de la présentation:

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»

COnceptual REsource Search Engine Corese COnceptual REsource Search Engine Moteur de recherche RDF en graphe conceptuel Resource Description Framework (W3C)

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

Graphes conceptuels Réseau sémantique Concepts et relations typés Modèle de John Sowa http://www.jfsowa.com/cg/cgexamp.htm Réseau sémantique Concept [Person : John] Relation (author) Concepts et relations typés Hiérarchies de types de concept et de relation

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

RDF <Book rdf:about=‘doc’> <author> <Person rdf:about=‘jr’> <name>John Rawls</name> </Person> </author> <title>Theory of Justice</title> </Book>

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

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

RDFS Ontologie Annotation RDF subClassOf range domain type subPropertyOf Property Resource Class Literal Ontologie Country Company Person employs subdivisionOf activity Inanimate Entity nationality domain range Annotation RDF www.T-Nova.de www.DeutscheTelekom.de subdivisionOf activity Telecom

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

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

Requête à la OQL select d.title, p.name from d Document, p Person where d.title like‘XML’ and d.author = p

Requête à la RQL Select ?title, ?pname From ?doc rdf:type ex:Document ?p rdf:type ex:Person Where ?doc ex:title ?title ?title like ‘XML’ ?doc ex:author ?p ?p ex:name ?pname

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

Projection Trouver des occurrences spécialisées : Query : [Document]-(author)-[Creator] Trouver des occurrences spécialisées : Réponse 1 [Paper]-(author)-[Person] Paper < Document Person < Creator Réponse 2 [Report]-(author)-[Team] Report < Document Team < Creator

Résultat Les graphes résultats sont traduits en RDF Et traités par une feuille de style XSLT qui engendre du HTML

Projection approchée Réponse tolère des concepts non spécialisés Query : [TechnicalReport](author)[Person] Target : [ResearchReport] (author) [Team]

Projection approchée Document TechnicalReport ResearchReport Creator Person Team Query : [TechnicalReport](author)[Person]

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, passe par le plus précis supertype commun Distance entre réponse et requête = somme des distances des concepts approchés

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

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

Distance

Opérateurs de requête ~ contain ^ startWith < <= = >= > nombre ou string ! negation : != !~ | boolean or : ~XML | ~ RDF <: <=: =: >=: >: type

Opérateurs Trouver un document : ?doc rdf:type ex:Document Le titre contient XML : ?doc ex:title ?title ~XML Le titre contient XML ou RDF : ?doc ex:title ?title ~XML | ~RDF La date est antérieure à 2004 : ?doc ex:date ?date <= 2004-01-01

Opérateurs avec variable Deux auteurs différents : ?doc ex:author ?p1 ?doc ex:author ?p2 != ?p1 Deux personnes de même noms : ?p1 rdf:type ex:Person ?p1 ex:name ?x ?p2 rdf:type ex:Person ?p2 ex:name ?x ?p1 != ?p2

Opérateurs de type Un document de type égal à TechnicalReport ?x rdf:type ex:Document =: ex:TechnicalReport Un document qui ne soit pas un Rapport technique : ?x rdf:type ex:Document !<=: ex:TechnicalReport Documents différents, de même type : ?x rdf:type ex:Document ?y rdf:type ex:Document != ?x =: ?x

Négation Trouver une personne qui n’est pas l’auteur d’un document dont le titre contient XML : ?p rdf:type ex:Person ?doc ex:title ~XML ?p not ex:author ?doc

Chemin de longueur variable Trouver par quel chemin deux personnes sont reliées, chemin de longueur au plus n : ?x rdf:type ex:Person ?y rdf:type ex:Person ?x ex:relation *2 ?y Essaie : ?x ex:relation ?y ?x ex:relation ?t ex:relation ?y

Tous les chemins de longueur variable Trouver par quels chemins deux personnes sont reliées, chemins de longueur au plus n : ?x rdf:type ex:Person ?y rdf:type ex:Person ?x ex:relation all *2 ?y Essaie : ?x ex:relation ?y ?x ex:relation ?t ex:relation ?y

Propriété générique Ressources reliées par n’importe quelle propriété : ?x cos:Property ?y Trouver un document dont le titre contient XML et retourner toutes ses propriétés : ?doc ex:title ~XML ?doc cos:Property ?p

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

RDF Datatype <!ENTITY xsd ”http://www.w3.org/2001/XMLSchema#” > <c:Person> <c:age rdf:datatype=‘&xsd;integer’>44</c:age> <c:name rdf:datatype=‘&xsd;string’>Laurent </c:name> <c:date rdf:datatype=‘&xsd;date’>1959-10-16 </c:date> </c:Person>

RDF Datatype RDF impose de préciser systématiquement le datatype, même si le range de la propriété est typé sur ce datatype : <rdf:Property rdf:about=‘#speed’> <rdfs:range rdf:resource=‘&xsd;float’/> </rdf:Property> <ex:Car> <ex:speed rdf:datatype=‘&xsd;float>314</ex:speed> </ex:Car>

RDF Datatype Corese permet, en option, de ne pas répéter le datatype et de l’inférer à partir du schema RDFS : <rdf:Property rdf:about=‘#speed’> <rdfs:range rdf:resource=‘&xsd;float’/> </rdf:Property> <ex:Car> <ex:speed>314</ex:speed> </ex:Car> _:1 rdf:type ex:Car _:1 ex:speed 314 ^^ xsd:float

Groupement Une requête a pour réponse G1 .. Gn On peut grouper les graphes G1 .. Gn selon des critères : distinct x1 .. xn group by x1 .. xn group by connex x1 .. xn count x (by y)

Distinct Une requête a pour réponse G1 .. Gn (select) distinct x1 x2 G1 : x1=Jules, x2=Jim G2 : x1=Jim, x2=Jules Ne garder qu’un seul graphe, par exemple G1

Group by Une requête a pour réponse G1 .. Gn group by x1 x2 Joindre les graphes qui ont même x1 et même x2 Ex : grouper les documents par auteur et par année

Group by ?doc rdf:type ex:Document ?doc ex:author ?p ?doc ex:year ?y D1 John 1990 D4 Jack 2000 D2 Jack 2000 D3 John 2004

Group by Ex : grouper les documents par auteur et par année Group by ?p, ?y John 1990 D1 John 2004 D2 Jack 2000 D2 D4

Group by connex Une requête a pour réponse G1 .. Gn group by connex x1 x2 Joindre les graphes qui ont même valeur pour x1 et/ou x2

Group by connex Trouver les compétences similaires et former les classes de compétences similaires ?c1 ex:similar ?c2 Group by connex ?c1 ?c2 c1 similar c2 c4 similar c5 c6 similar c4 c3 similar c1

Group by connex Trouver les compétences similaires et former les classes de compétences similaires Classe 1 {c1 similar c2, c3 similar c1} Classe 2 {c4 similar c5, c6 similar c4}

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

Count Ex : compter les ouvrages des auteurs ?doc ex:author ?p Group by ?p Count ?doc John D1 D2 (2) Jack D1 D4 D6 (3)

Extensions OWL owl:TransitiveProperty owl:SymmetricProperty owl:inverseOf owl:intersectionOf owl:disjointWith

Intersection owl:Class Woman owl:intersectionOf owl:Class Human owl:Class Female Définit une équivalence entre Woman et l’intersection de Human et Female Human  Female  Woman

Inverse p1 owl:inverseOf p2 X p1 Y  Y p2 X hasParent owl:inverseOf hasChild John hasParent Jim  Jim hasChild John

Symétrie p rdf:type owl:SymmetricProperty X p Y  Y p X ex:sibling rdf:type owl:SymmetricProperty John ex:sibling Jack  Jack ex:sibling John

Transitivité owl:TransitiveProperty X p Y  Y p Z  X p Z ex:partOf rdf:type owl:TransitiveProperty ex:axis ex:partOf ex:engine ex:engine ex:partOf ex:car  ex:axis ex:partOf ex:car

Règles Si une Personne est membre d’une Equipe qui participe à un Consortium Alors cette Personne est du type Participant et elle participe au Consortium

Règles de graphe CG1  CG2 [Person:?x] -(member)-[Team]- -(participate)- -[Consortium:?c]  [Participant:?x] –(participate)- [Consortium:?c]

Inférences 1. Préciser le type d’un concept : [Person: ?x] -> [Participant: ?x] 2. Créer une relation entre concepts : [Participant: ?x]-(participate)-[Consortium :?c]

Inférences Permet de définir des types de concepts Un Patient est une personne qui a une maladie : IF ?x rdf:type ex:Person ?x ex:hasDesease ?d THEN ?x rdf:type ex:Patient

Règle de graphe Pour appliquer une règle C  D sur un graphe G : 1. Trouver par projection une occurrence de C dans G : C’ C 2. Joindre la conclusion D au graphe G sur les concepts de C’ trouvés par projection

Syntaxe de règles 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>

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

Serveur Web sémantique Moteur Corese intégré dans un serveur tomcat, dans une servlet Navigation dans les ontologies RDFS par des feuilles de style

Serveur Web sémantique Interrogation du moteur via des formulaires HTML/JSP Les formulaires sont construits en connexion avec le moteur en consultant l’ontologie

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

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

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

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

KMP 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

Projets Futurs WebLearn : Action CNRS, eLearning, mémoire d’entreprise, génie civil, document,

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

Démo