1 Corese Corese Moteur de recherche Moteur de recherche s s é é mantique pour RDF mantique pour RDF Olivier. Olivier. Corby Corby @ @ sophia sophia . . inria inria . . fr fr Projet ACACIA Projet ACACIA INRIA, Sophia Antipolis INRIA, Sophia Antipolis http://www.inria.fr/acacia http://www.inria.fr/acacia « « Knowledge is Power Knowledge is Power » »
66
Embed
1 Corese Moteur de recherche sémantique pour RDF [email protected] Projet ACACIA INRIA, Sophia Antipolis «Knowledge.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
CoreseCoreseMoteur de recherche sMoteur de recherche séémantique mantique
pour RDFpour RDFOlivier.Olivier.CorbyCorby@@sophiasophia..inriainria..frfr
Histoire Histoire 1992 Acacia : acquisition des connaissances à 1992 Acacia : acquisition des connaissances à partir de documents structurés avec des graphes partir de documents structurés avec des graphes conceptuelsconceptuels
1998 : XML 1998 : XML
1999 : RDF, 1er prototype de Corese1999 : RDF, 1er prototype de Corese
2000 ICCS : RDF et les graphes conceptuels2000 ICCS : RDF et les graphes conceptuels
2000-2001 : Moteur Corese pour Comma, 2000-2001 : Moteur Corese pour Comma, projet européenprojet européen
4
Graphes conceptuelsGraphes conceptuelsModModèèle de John Sowale de John Sowa
Distance ontologiqueDistance ontologiqueCalcule une Calcule une distancedistance ontologique ontologique entreentre concept concept requrequêête et concept ciblete et concept cible
Distance = longueur du plus court chemin le long de Distance = longueur du plus court chemin le long de la relation de subsomption entre concept requla relation de subsomption entre concept requêête et te et cible, passe par le plus prcible, passe par le plus préécis supertype communcis supertype commun
Distance entre rDistance entre rééponse et requponse et requêête = somme des te = somme des distances des concepts approchdistances des concepts approchééss
20
Distance ontologiqueDistance ontologique
Distance entre des frDistance entre des frèères : 2res : 2
Entre des cousins germains : 4Entre des cousins germains : 4
O ise au R epti le M am m ife re
V er teb re
V e rs M edu se
In ve rteb re
A n im a l
21
DistanceDistanceDe plus, la distance diminue avec la profondeurDe plus, la distance diminue avec la profondeur
La distance entre un pLa distance entre un pèère de profondeur n et un fils re de profondeur n et un fils est de 1/2est de 1/2nn
Ainsi Homme est plus proche de ChimpanzAinsi Homme est plus proche de Chimpanzé que é que Vertébré de InvVertébré de Invertébré ertébré !!
22
DistanceDistance
O ise au R epti le
H omm e C him pan ze
M am m ife re
V er teb re
V e rs M edu se
In ve rteb re
A n im a l
23
OpOpéérateurs de requrateurs de requêêtete~ contain~ contain
^ startWith^ startWith
< <= = >= >< <= = >= > nombre ou string nombre ou string
! negation : != !~! negation : != !~
| boolean or : | boolean or : ~XML | ~ RDF~XML | ~ RDF
<: <=: =: >=: >: type<: <=: =: >=: >: type
24
OpOpéérateursrateursTrouver un document :Trouver un document :
OpOpéérateurs de typerateurs de typeUn document de type Un document de type éégal gal à à TechnicalReportTechnicalReport?x rdf:type ex:Document =: ex:TechnicalReport?x rdf:type ex:Document =: ex:TechnicalReport
Un document qui ne soit pas un Rapport technique :Un document qui ne soit pas un Rapport technique :?x rdf:type ex:Document !<=: ex:TechnicalReport?x rdf:type ex:Document !<=: ex:TechnicalReport
Documents diffDocuments difféérents, de mrents, de mêême type :me type :
Trouver une personne qui n’est pas l’auteur d’un document dont le Trouver une personne qui n’est pas l’auteur d’un document dont le titre contient XML :titre contient XML :
?p rdf:type ex:Person ?p rdf:type ex:Person
?doc ex:title ~XML?doc ex:title ~XML
?p not ex:author ?doc?p not ex:author ?doc
28
Chemin de longueur variableChemin de longueur variableTrouver par quel chemin deux personnes sont reliTrouver par quel chemin deux personnes sont reliéées, chemin de es, chemin de longueur au plus n :longueur au plus n :
Tous les chemins de longueur variableTous les chemins de longueur variableTrouver par quels chemins deux personnes sont reliTrouver par quels chemins deux personnes sont reliéées, chemins de es, chemins de longueur au plus n :longueur au plus n :
PropriPropriééttéé g géénnéérique rique Ressources reliRessources reliéées par n’importe quelle propries par n’importe quelle propriééttéé : :
?x cos:Property ?y?x cos:Property ?y
Trouver un document dont le titre contient XML et retourner toutes Trouver un document dont le titre contient XML et retourner toutes ses propriétés :ses propriétés :
RDF DatatypeRDF DatatypeRDF impose de prRDF impose de prééciser systciser systéématiquement le datatype, mmatiquement le datatype, mêême si le me si le
range de la proprirange de la propriééttéé est typ est typé sur ce datatype :é sur ce datatype :
RDF DatatypeRDF DatatypeCorese permet, en option, de ne pas répéter le datatype et de l’inférer Corese permet, en option, de ne pas répéter le datatype et de l’inférer
à partir du schema RDFS :à partir du schema RDFS :<rdf:Property rdf:about=‘#speed’><rdf:Property rdf:about=‘#speed’>
Une requUne requêête a pour rte a pour rééponse G1 .. Gnponse G1 .. Gn
On peut grouper les graphes G1 .. Gn selon On peut grouper les graphes G1 .. Gn selon des critdes critèèrrees :s :
distinct x1 .. xndistinct x1 .. xn
group by x1 .. xngroup by x1 .. xn
group by connex x1 .. xngroup by connex x1 .. xn
count x (by y)count x (by y)
36
Distinct Distinct
Une requUne requêête a pour rte a pour rééponse G1 .. Gnponse G1 .. Gn
(select) distinct x1 x2(select) distinct x1 x2
G1 : x1=Jules, x2=JimG1 : x1=Jules, x2=Jim
G2 : x1=Jim, x2=JulesG2 : x1=Jim, x2=Jules
Ne garder qu’un seul graphe, par exemple G1Ne garder qu’un seul graphe, par exemple G1
37
Group byGroup by
Une requUne requêête a pour rte a pour rééponse G1 .. Gnponse G1 .. Gn
group by x1 x2group by x1 x2
Joindre les graphes qui ont mJoindre les graphes qui ont mêême x1 et mme x1 et mêême me x2x2
Ex : grouper les documents par auteur et par Ex : grouper les documents par auteur et par annannééee
38
Group byGroup by?doc rdf:type ex:Document?doc rdf:type ex:Document
?doc ex:author ?p?doc ex:author ?p
?doc ex:year ?y?doc ex:year ?y
D1 John 1990 D4 Jack 2000D1 John 1990 D4 Jack 2000
D2 Jack 2000D2 Jack 2000
D3 John 2004D3 John 2004
39
Group byGroup by
Ex : grouper les documents par auteur et par Ex : grouper les documents par auteur et par annannééeeGroup by ?p, ?yGroup by ?p, ?y
John 1990 D1John 1990 D1
John 2004 D2John 2004 D2
Jack 2000 D2 D4Jack 2000 D2 D4
40
Group by connexGroup by connex
Une requUne requêête a pour rte a pour rééponse G1 .. Gnponse G1 .. Gn
group by connex x1 x2group by connex x1 x2
Joindre les graphes qui ont mJoindre les graphes qui ont mêême valeur pour me valeur pour x1 et/ou x2x1 et/ou x2
41
Group by connexGroup by connex
Trouver les compTrouver les compéétences similaires et former tences similaires et former les classes de comples classes de compéétences similaires tences similaires
?c1 ex:similar ?c2?c1 ex:similar ?c2
Group by connex ?c1 ?c2Group by connex ?c1 ?c2
c1 similar c2c1 similar c2 c4 similar c5c4 similar c5
c6 similar c4c6 similar c4 c3 similar c1c3 similar c1
42
Group by connexGroup by connex
Trouver les compTrouver les compéétences similaires et tences similaires et
former les classes de compformer les classes de compéétences similaires tences similaires
Classe 1 {c1 similar c2, c3 similar c1}Classe 1 {c1 similar c2, c3 similar c1}
Classe 2Classe 2 {c4 similar c5, c6 similar c4}{c4 similar c5, c6 similar c4}
43
Count Count
Une requUne requêête a pour rte a pour rééponse G1 .. Gnponse G1 .. Gn
Count xCount x
Compter les occurrences diffCompter les occurrences difféérentes de x dans rentes de x dans le graphe rle graphe réésultatsultat
Ex : compter les ouvrages d’un auteurEx : compter les ouvrages d’un auteur
44
Count Count
Ex : compter les ouvrages des auteursEx : compter les ouvrages des auteurs
InfInféérencesrencesPermet de dPermet de dééfinir des types de conceptsfinir des types de concepts
Un Patient est une personne qui a une maladie :Un Patient est une personne qui a une maladie :
IF IF
?x rdf:type ex:Person ?x rdf:type ex:Person
?x ex:hasDesease ?d?x ex:hasDesease ?d
THENTHEN
?x rdf:type ex:Patient?x rdf:type ex:Patient
54
Règle de grapheRègle de graphe
Pour appliquer une rPour appliquer une règle Cègle C D D sur unsur un graphe G : graphe G :1. Trouver par projection une occurrence de C 1. Trouver par projection une occurrence de C
dans G : C’dans G : C’ C C2. Joindre la conclusion D au graphe G sur les 2. Joindre la conclusion D au graphe G sur les
concepts de C’ trouvconcepts de C’ trouvéés par projection s par projection
55
Syntaxe de rSyntaxe de rèègles RDFgles RDF<cos:rule><cos:rule>
Moteur Corese intMoteur Corese intégré dans un serveur égré dans un serveur tomcat, dans une servlettomcat, dans une servlet
Navigation dans les ontologies RDFS par des Navigation dans les ontologies RDFS par des feuilles de stylefeuilles de style
58
Serveur Web sServeur Web séémantiquemantique
Interrogation du moteur via des formulaires Interrogation du moteur via des formulaires HTML/JSPHTML/JSP
Les formulaires sont construits en connexion Les formulaires sont construits en connexion avec le moteur en consultant l’ontologieavec le moteur en consultant l’ontologie
59
ApplicationsApplications
2000-2001 : Comma2000-2001 : Comma
2002 Corese pour Samovar avec Renault2002 Corese pour Samovar avec Renault
2003-2004 : Corese pour KMP, projet RNRT 2003-2004 : Corese pour KMP, projet RNRT Cartographie des compétences sur Sophia Cartographie des compétences sur Sophia AntipolisAntipolis
Version de distributionVersion de distributionhttp://www.inria.fr/acacia/soft/corese http://www.inria.fr/acacia/soft/corese