Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parJolene Poulet Modifié depuis plus de 10 années
1
Corese Moteur de recherche sémantique pour RDF
Projet ACACIA INRIA, Sophia Antipolis «Knowledge is Power»
2
COnceptual REsource Search Engine
Corese COnceptual REsource Search Engine Moteur de recherche RDF en graphe conceptuel Resource Description Framework (W3C)
3
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 : Moteur Corese pour Comma, projet européen
4
Graphes conceptuels Réseau sémantique Concepts et relations typés
Modèle de John Sowa Réseau sémantique Concept [Person : John] Relation (author) Concepts et relations typés Hiérarchies de types de concept et de relation
5
GC [Book:doc]- -(author)-[Person:jr]- -(name)-[Literal:“John Rawls”]
-(title)- -[Literal:“Theory of Justice”]
6
RDF <Book rdf:about=‘doc’> <author>
<Person rdf:about=‘jr’> <name>John Rawls</name> </Person> </author> <title>Theory of Justice</title> </Book>
7
GC - RDF Concept ressource Relation propriété Type classe
Signature de relation domain, range Projection pour retrouver des ressources RDF comme format de GC
8
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)
9
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 subdivisionOf activity Telecom
10
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
11
Moteur de recherche Projection d’un graphe requête sur le graphe cible
Opérateurs de recherche Projection approchée Groupement des résultats
12
Requête à la OQL select d.title, p.name from d Document, p Person
where d.title like‘XML’ and d.author = p
13
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
14
Requête Corese <c:Document c:Title=‘~XML’> <c:author>
<c:Person c:name=‘?x’/> </c:author> </c:Document>
15
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
16
Résultat Les graphes résultats sont traduits en RDF
Et traités par une feuille de style XSLT qui engendre du HTML
17
Projection approchée Réponse tolère des concepts non spécialisés
Query : [TechnicalReport](author)[Person] Target : [ResearchReport] (author) [Team]
18
Projection approchée Document TechnicalReport ResearchReport Creator
Person Team Query : [TechnicalReport](author)[Person]
19
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
20
Distance entre des frères : 2 Entre des cousins germains : 4
Distance ontologique Distance entre des frères : 2 Entre des cousins germains : 4
21
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é !
22
Distance
23
Opérateurs de requête ~ contain ^ startWith
< <= = >= > nombre ou string ! negation : != !~ | boolean or : ~XML | ~ RDF <: <=: =: >=: >: type
24
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 <=
25
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
26
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
27
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
28
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
29
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
30
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
31
xsd:string xsd:float xsd:integer xsd:date Xsd:boolean
XML Schema Datatypes xsd:string xsd:float xsd:integer xsd:date Xsd:boolean
32
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’> </c:date> </c:Person>
33
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>
34
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
35
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)
36
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
37
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
38
Group by ?doc rdf:type ex:Document ?doc ex:author ?p ?doc ex:year ?y
D1 John D4 Jack 2000 D2 Jack 2000 D3 John 2004
39
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
40
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
41
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
42
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}
43
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
44
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)
45
Extensions OWL owl:TransitiveProperty owl:SymmetricProperty
owl:inverseOf owl:intersectionOf owl:disjointWith
46
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
47
Inverse p1 owl:inverseOf p2 X p1 Y Y p2 X
hasParent owl:inverseOf hasChild John hasParent Jim Jim hasChild John
48
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
49
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
50
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
51
Règles de graphe CG1 CG2 [Person:?x] -(member)-[Team]-
-(participate) [Consortium:?c] [Participant:?x] –(participate)- [Consortium:?c]
52
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]
53
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
54
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
55
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>
56
Syntaxe RDF <cos:then> <c:Participant rdf:about=‘?p’>
<c:participate rdf:resource=‘?c’/> </c:Participant> </cos:then> </cos:rule>
57
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
58
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
59
Applications 2000-2001 : Comma 2002 Corese pour Samovar avec Renault
: Corese pour KMP, projet RNRT Cartographie des compétences sur Sophia Antipolis Version de distribution : ODL Inria
60
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
61
Comma Méthode: Recueil, Phase terminologique, Structuration, Validation, Formalisation en RDFS Résultat: 470 concepts, 80 relations, 13 niveaux de profondeur
62
Comma Haut niveau médian Niveau spécifique Aspects Entreprise Document
Utilisateur Domaine
63
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
64
Projets Futurs WebLearn : Action CNRS, eLearning,
mémoire d’entreprise, génie civil, document,
65
Références http://www.inria.fr/acacia/cours/essi2004/corese.ppt
66
Démo
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.