La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Corese Moteur de recherche sémantique pour RDF

Présentations similaires


Présentation au sujet: "Corese Moteur de recherche sémantique pour RDF"— Transcription de la présentation:

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


Télécharger ppt "Corese Moteur de recherche sémantique pour RDF"

Présentations similaires


Annonces Google