Corese moteur de recherche sémantique Olivier.Corby@sophia.inria.fr http://www.inria.fr/acacia/corese
L’équipe de recherche ACACIA Modèles, méthodes et outils pour la gestion des connaissances. Ingénierie des connaissances et Web sémantique pour construire et exploiter une mémoire d’entreprise Approche Web Sémantique d’entreprise Scénarios : Mémoire de projet (Renault, CSTB) Veille technologique (CSTB) Gestion des compétences (Telecom Valley)
Web Sémantique & CORESE "The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation." Tim Berners-Lee, James Hendler, Ora Lassila, The Semantic Web, Scientific American, May 2001 Community/Corporate Semantic Web CORESE: moteur de recherche sémantique Recherche information & Knowledge Engineering Standards W3C (langages RDF/S, OWL Lite, SPARQL) RDF Rules Utilise les structures de données Notio
Web sémantique Web : HTML, HTTP, URI Web sémantique : XML, XPATH, XSLT, XQUERY RDF/S, SPARQL OWL, Rules
Contribution Acacia Implémentation des standards du Web sémantique en graphes conceptuels 1998 : XML 1999 : DEA sur RDF et CG 2000 : ICCS “A Conceptual Graph Model for W3C RDF” 2000-2001 : Projet européen Comma 2002 : publication workshop WWW 2002-2004 : ODL Inria 2003-2004 : RNRT KMP 2004 : publication ECAI PAIS 2005 : KMP2 Drire Paca, Ingénieur Inria
Applications ESCRIRE : recherche d’information en biologie Renault : mémoire projet conception véhicules CSTB : mémoire de projet bâtiment CSTB : web mining EADS CCR : mémoire documentaire pour recherche industrielle CoMMA : Projet IST mémoire distribuée veille et accueil MEAT : mémoire d’expériences en Biologie KmP : Projet RNRT, gestion des compétence Telecom Valley, KmP2 DRIRE PACA Ligne de Vie : ACI santé collaboration dans réseau de soin WebLearn : AS CNRS eLearning et Web sémantique Aim@Shape : projet européen ontologie pour la géométrie UTT : mémoire de projet
Caractéristiques de CORESE Développement: Depuis 1999 ~ 10 homme ans de R&D Une Opération Développement Logiciel INRIA Deux facettes au package CORESE: Modules pour un Serveur Web Sémantique Logiciel avec API, intégré et intégrable
Fonctionnalités de CORESE Traiter, valider & résoudre requêtes basées sur des ontologies Améliorer la recherche d’information avec sémantique & inférences Portail & Serveur sémantique Interfaces dynamiques et formulaires, mise en page et présentation Intégration XHTML + XML + XSLT + RDF
Représenter les connaissances Ontologies: Annotations: Règles: Requêtes: Humain Homme Femme désignation nom titre Homme: #tdevaux nom Dévaux intérêt Sujet:Génétique Humain:?x membre Groupe:?g Humain:?y collègue Homme:# tdevaux intérêt Sujet:?t
Moteur de recherche sémantique Utilisateurs Ontologies XML <accident> <date> 19 Mai 2000 </date> <description> <facteur>le facteur </description> </accident> Documents Légataires <rdfs:Class rdf:ID="thing"/> <rdfs:Class rdf:ID="person"> <rdfs:subClassOf rdf:resource="#thing"/> </rdfs:Class> Schémas en RDFS <ns:article rdf:about="http://intranet/articles/ecai.doc"> <ns:title>MAS and Corporate Semantic Web</ns:title> <ns:author> <ns:person rdf:about="http://intranet/employee/id109" /> </ns:author> </ns:article> Annotations en RDF composées d’instances des schémas RDFS requête réponse suggestion CORESE CG Résultat PROJECTION Serveur Web sémantique URI UNICODE XML NAMESPACES RDF RDFS ONTOLOGY RULES Pile du Web QUERIES RDFS RDF Requête Règles CG Support CG Base CG Requête CG Règles INFERENCES RDF/S
RDF Resource Description Framework W3C language for the Semantic Web Representing resources in the Web Triple model : resource property value RDF/XML Syntax RDF Schema : RDF Vocabulary Description Language
RDF vs Conceptual Graphs rdfs:Class Concept Type rdf:Property Relation rdfs:Resource Concept rdfs:domain rdfs:range Signature RDF Graph CG Published at ICCS 2000
Ontologie (concepts / classes) class Document class Report subClassOf Document class Topic class ComputerScience subClassOf Topic Document Report Memo Topic ComputerScience Maths
Ontologie (relations / propriétés) property author domain Document range Person property concern domain Document range Topic Document author Person Document concern Topic
Ontologie RDFS / XML <rdfs:Class rdf:ID=‘Document’/> <rdfs:class rdf:ID=‘Report’> <rdfs:subClassOf rdf:resource=‘#Document’/> </rdfs:Class> <rdf:Property rdf:ID=‘author’> <rdfs:domain rdf:resource=‘#Document’/> <rdfs:range rdf:resource=‘#Person’/> </rdf:Property>
Annotation Le rapport RR-1834 a été écrit par le chercheur Olivier Corby et porte sur le langage de programmation JAVA Report http://www.inria.fr/RR-1834.html author http://www.inria.fr/o.corby concern http://www.inria.fr/acacia#Java Researcher http://www.inria.fr/o.corby name “Olivier Corby” Report http://www.inria.fr/RR-1834.html Researcher http://www.inria.fr/o.corby author name Olivier Corby Java http://www.inria.fr/acacia#Java concern
Langage de Requête Exprimée dans le vocabulaire de l’ontologie, exemple : Trouver des documents sur Java ?doc rdf:type c:Document ?doc c:concern ?topic ?topic rdf:type c:Java Document ?doc Java ?topic concern
Requêtes & exploitation ontologie Les rapports et les articles sont des documents, … Les documents ont des auteurs, qui sont des personnes, … Les personnes ont des centres d’intérêt … Document Report Article Memo Document author Person Person interest Topic
Langage de requête à la SPARQL select * sort ?name where ?person rdf:type c:Person c:Person rdfs:label ?l@fr (?person c:hasCreated ?doc or ?person c:IsInterestedBy ?topic) option (?person c:isMemberOf ?org option (?org c:name ?desc)) ?person ?p ?value ?person c:Property{4} c:SemanticWeb ?person c:name ?name ?name = “Olivier”@fr ?person c:age ?age ?age <= “45”^^xsd:integer
Paramétrage select list liste des projections merge tout grouper dans un seul résultat group ?person count ?doc sort ?name projection 100 result 10 where
Recherche approchée Rechercher la meilleure approximation en fonction de l’ontologie. Exemple: Requête Rapport Technique sur Java écrit par un ingénieur ? Réponse approchée : Rapport Technique Support de cours Ingénieur Equipe
Distance dans l’ontologie Objet Acteur Document Personne Équipe Rapport Cours Ingénieur Chercheur R. Recherche R. Technique Support C.
Distance dans l’ontologie Objet 1 Acteur Document 1/2 Personne Équipe Rapport Cours 1/4 Ingénieur Chercheur R. Recherche R. Technique Support C.
Calcul de distances Calcul de la distance ontologique Distance = somme des longueurs des chemins entre concepts approximés Minimiser la distance, classer résultats par distance croissante et seuillage Syntaxe: select more where exp
Inférences & Règles Exploiter des inférences (règles) pour la recherche d’information Si un membre d’une équipe a un centre d’intérêt alors l’équipe a aussi ce centre d’intérêt ?person interestedBy ?topic ?person member ?team ?team interestedBy ?topic Person ?person Topic ?topic interestedBy interestedBy Team ?team member
Inférences & Règles Classer une ressource Si une personne a écrit une thèse sur un sujet alors c’est un docteur et un expert du sujet. ?person author ?doc ?doc rdf:type PhDThesis ?doc concern ?topic ?person expertIn ?topic ?person rdf:type PhD PhDThesis ?doc Person ?person author Topic ?topic concern PhD ?person expertIn
Syntaxe RDF/XML <cos:rule> <cos:if> ?person author ?doc ?doc rdf:type PhDThesis ?doc concern ?topic </cos:if> <cos:then> ?person expertIn ?topic ?person rdf:type PhD </cos:then> </cos:rule>
Sémantique : transitivité <cos:rule> <cos:if> ?x c:partOf ?y ?y c:partOf ?z </cos:if> <cos:then> ?x c:partOf ?z </cos:then> </cos:rule>
Règles : transitivité <cos:rule> <cos:if> ?p rdf:type owl:TransitiveProperty ?p1 rdfs:subPropertyOf ?p ?p2 rdfs:subPropertyOf ?p ?x ?p1 ?y ?y ?p2 ?z </cos:if> <cos:then> ?x ?p ?z </cos:then> </cos:rule>
OWL Lite Restriction Class Human subClassOf Restriction onProperty hasParent allValuesFrom Human
OWL Lite Restriction ?x rdf:type c:Human ?x c:parent ?p => ?p rdf:type c:Human
OWL Lite in Corese owl:TransitiveProperty owl:SymmetricProperty owl:inverseOf owl:Restriction owl:onProperty owl:someValuesFrom owl:allValuesFrom
Résultats Réponse traduite en RDF/XML Traitée par feuille de style XSLT Adaptable à l’utilisateur, au contexte Peut engendrer HTML, SVG etc. XHTML XML RDF XML XSLT JSP SVG JavaScript
? GUI Factory Formulaire de requête Engendré par connexion avec ontologie et graphe RDF Requête prédéfinie éditée par l’utilisateur ? Objet select ?doc c:title ?person where ?doc rdf:type c:Document ?doc c:concern ?topic ?topic rdf:type c:Java ?doc c:title ?title ?title ~ “web” ?doc c:author ?person Acteur Document Personne Équipe Rapport Cours Ingénieur Chercheur R. Recherche R. Technique Support C.
Générateur IHM Construire menu avec sous-classes de Person <select name=‘ihm_person’ title='Profession'> <query> ?x rdfs:subClassOf c:Person </query> </select> Rendu JSP/HTML: Requête adaptable associée au menu : ?p rdf:type get:ihm_person
Intégration XHMTL+XML+XSLT+RDF Dans une feuille de style XSLT : Appel au moteur de recherche, Connexion à une BD : engendrer un schéma RDF ou des annotations Intégration du résultat dans le flux de sortie XSLT CORESE JSP
Architecture résumée Web File System ARP JSP XSLT SERVLETS SWING TOMCAT HTTP Response XHTML, CSS, SVG JavaScript SWING SERVLETS Query Solving engine Rule Engine forward chaining Web Join engine Projection engine CORESE Engine and API RDF to CG Parser CG Base ARP Rule Parser JSP Notio Type inference engine HTTP Request CG Manager CG to RDF Pretty-Printer Query Parser XSLT JDBC File System Data Base
Semantic Web Server Integrate RDF processing to XML/XSLT and JSP/Servlets Web server based on RDFS ontology and RDF metadata RDF not only for document retrieval but for information navigation, access and presentation RDF Query processor return RDF/XML processed by XSLT
Integration XML/RDF Semantic hyperlink : <a href=‘http://server?submit= ?doc rdf:type c:TechReport ?doc c:title ?t ?doc s:subject s:KnowledgeEngineering’> Title</a>
Integration XML/RDF Semantic query tag (XML, JSP) <cos:query> ?doc rdf:type c:TechReport ?doc c:title ?t ?doc s:subject s:KnowledgeEngineering </cos:query>
Semantic processing in XSLT <xsl:variable name=‘res’ select=‘model:submit($model, “?doc rdf:type c:TechReport ?doc c:title ?t ?doc s:subject s:KnowledgeEngineering”)’> <xsl:apply-templates select=‘$res’ />
Knowledge Management Platform (KMP Project) Goal: Design a prototype of a Semantic Web Server of competences for inter-firm partnership in the telecommunication domain & Analyse the collective uses of the prototype Example of a query that can be asked to the KMP system: I am seeking for an industrial partner knowing how to design integrated circuits within the GSM field for cellular/mobile phone manufacturers Area: Telecom Valley (Sophia Antipolis)
Corese as a basis for KMP The KMP Semantic Web Server is based on Corese Existing Corese functions to be exploited: Automatic Index (à la yahoo) based on the ontology Graphical navigation Conceptual and/or terminological querying Queries about the ontologies Approximate queries Answer in SVG Enrichment of metadata by applying inference rules Validation or consistency rules
Applications CORESE (KmP) Knowledge Management Platform: Serveur Web Sémantique comme portail de gestion des compétences pour partenariats sur Sophia Rodige, INRIA, Latapses, Telecom Valley, GET
Applications CORESE (Ligne de Vie) Assister collaboration médicale dans un réseau de soin, pour la prévention, le diagnostic, la thérapie, le suivi des patients et l’éducation. INRIA, Nautilus, SPIM
En cours… Extensions vers langages étendus (OWL Lite W3C) Cardinality, sameAs Langage de requête W3C SPARQL Semantic Web Service Web Pragmatique Site de Corese : http://www.inria.fr/acacia/corese
CG vs RDF : Pour le OUI Les graphes conceptuels permettent d’implémenter les standards du Web sémantique et d’assurer l’interopérabilité : XML, XSLT, XPATH, XHTML RDF/S, OWL Lite, SPARQL, RDF Rules Performance, persistence ? Corporate Semantic Web OK Distribution, P2P Alignement Contexte, Profil, Point de vue, IHM, ergonomie Lexique, terminologie multilingue A partir de texte