Vous êtes sur la page 1sur 48

Modélisation et représentation des

connaissances

4 3
Représentation des connaissances
Connaissance

Données, information, connaissance


5
5 ans
est agé de 5 ans
À 5 an s ( e n g r a n d e section ), to u t t rou b le sp éci fi q ue d e
p a r o l e o u d e l a n g a g e o r a l d o i t a m e n e r à u n b i l an
a
Magritte, La Trahison des Images Much more better...It is a
o r t h o p h o n i q u e q u i é v a l u e r a l e s d i ff é r e n t e s c o m p é t e n c e s (...)
drawing of a (Blanc&Touzin, 2014)

Approximation de souhaite représenter, en fonction


de son utilisation

5/120 6 4/120 5

La notion de connaissance Quelques notions

Varie en fonction des disciplines


Données :
Anthropologue : la première connaissance est celle que les
hommes ont -mêmes et de leur environnement Élément fondamental et objectif, qualitatif ou quantitatif
Philosophie : on étudie avant tout la connaissance au sens de servant de base à un raisonnement ou à la réalisation des
de celui qui connaît ou sait quelque chose. traitements
Psychologie cognitive : toute activité mentale humaine se Informations :
fonde sur une représentation interne du monde extérieur,
constituée à la fois de connaissances sur Ensemble de données non structurées et organisées pour
donner forme à un message résultant contexte donné et
les objets
les situations
donc parfaitement subjectif.
les événements

74/120 8 73/120 7
La notion de connaissance dans la gestion des
Les sources existantes connaissances
Modèle hiérarchique de la connaissance :
Plusieurs niveaux :
Données brutes C = Connaissance Connaissance Je suis à Orléans
C = I · U avec
I = Information Information assimilée
Informations internes, externes structurées ou pas U = Utilisation pour réaliser une action Je chaudement
Connaissances / compétences
Savoir-faire / expériences
I = Information
Plusieurs niveaux de partage I = D · k avec
D = Donn´ees Information La température est de 10o C
k = Contexte Données mises en contexte à Orléans
Individualisé
Partagé
Intégré dans un processus organisé
Données 10oC
Eléments bruts en
dehors de tout contexte

76/120 10 75/120 9

Cycle Données Informations Connaissances Cycle Données Informations Connaissances


Exemple : Données : quatre dimensions (le sujet, et le
Si Tristan est le fils de Gilles alors il a probablement autour temps)
de 30 ans de moins que lui, il porte le même nom de famille, etc. Analyse des données par rapport à un contexte
Convertion en informations
Propositions déduites et convoquées en fonction du contexte du Contexte : Points de repère à partir de différentes influences
statut de la relation père- fils. (langue, culture, codes symboliques et code de communication
doit rentrer en résonance avec les référentiels de de besoins du moment)
récepteur de l information. Connaissance : établissement par
La connaissance est caractérisée par sa propension à produire correspondance entre
de l information la conception réalité,
sur cette réalité.
La connaissance sert à préciser action

78/120 12 77/120 11
Pourquoi faire ? Modélisation des connaissances
Réalisation dans un système « intelligent »
La représentation et la modélisation des connaissances sont au
de Articifielle Recensement et
Définition de système de gestion des connaissances en Structuration les connaissances
entreprise dans une représentation schématique
Réalisation de supports pédagogiques ou de matériel
pour les rendre visibles, manipulables, compréhensibles,
didactique (MOOC)
communicables
Clarification du domaine
Structuration des connaissances abordées (Paquette, 2002a)
Identification des liens entre les connaissances On obtient un modèle de connaissances
Représentation du modèle mental relatif aux connaissances
domaine
(Basque&Pudelko, 2004)

7/120 14 6/120 13

Trois axes de la gestion des connaissances en entreprise


Gestion des connaissances en entreprise

Maîtrise de la collecte des informations


Circulation maîtrisée des connaissances
Intégration des outils en place
Mémoire et transfert
Repérage des connaissances cruciales
Préservation des connaissances
Valorisation des connaissances
Actualisation des connaissances
Veille et acquisition
Cohésion des connaisances
Partage des connaissances et de
9/120 16 8/120 15
Représentation des connaissances et logique Axes de recherche en IA
De nombreux aspects :
Représentation et Raisonnement
Logique : approche déclarative pour représenter des
Ingénierie des Connaissances
connaisances
Apprentissage Automatique
Deux principaux outils mathématiques (parmi bien :
Reconnaissance des Formes, Vision
Logique des propositions
Logique des prédicats Robotique, Automatique
Utilisation de méthodes bien connues pour déduire Traitement Automatique des Langues
de nouvelles connaissances Satisfaisabilité, Contraintes Sustainabiity
Programmation logique Interaction avec EIAH, IHM
Extraction et Gestion des Connaissances
Agents et Systèmes Multi-Agents

55/120 18 50/120 17

Chapitre 2 :
Modèles de représentation de connaissance

Réseaux Sémantiques
Les ontologies Les objets structurés : schémas et scripts
Web sémantique

Ontologies

20 98/120 19
Ontologies Plan du chapitre

Motivations: Ontologies :
Constat:

Grand volume de données : Motivations


Difficultés de la compréhension de la sémantique Définition(s)
rattachée à ces données Pourquoi utiliser une ontologie?

Formalismes de représentation des ontologies


Cette tâche se révèle très difficile car la sémantique liée aux Classifications des ontologies
informations manipulées par les composants logiciels est
bien souvent implicite et cachée, ce qui complique la tâche
Welty 2000].

22 21

Ontologies
Ontologies

Motivations: Motivations:
Plusieurs approches pour représenter : Objectifs :
- Comment représenter les informations cachées et implicites
un moyen rapide pour retrouver des informations utiles.

- Comment capturer
se basant sur des dictionnaires:
une structure plus élaborée que les mots clés
1.collecter tous les concepts et les termes de ces concepts
2.et les relations possibles entre ces concepts
utilisant les taxonomies:
plus complètes que

24 23
Ontologies
Ontologies
Motivations:
Motivations:
Plusieurs approches pour représenter :
?
Etymology & Thing
Philosophy

Essence Existence

Ontologie
ONTOS (Being) + LOGOS

Language Reason

26 25

Ontologies Ontologies
Définitions :
Définitions :
ontologie
[Uschold Une ontologie peut prendre différentes formes, mais elle
inclura nécessairement un vocabulaire de termes et une spécification de
leur signification. Cette dernière inclut des définitions et une indication (petit Larousse 1998).
de la façon dont les concepts sont reliés entre eux, les liens imposant
collectivement une structure sur le domaine et contraignant les Une ontologie est une spécification explicite
interprétations conceptualisation [Gruber 93]
[Pierra 2007]: Une ontologie est une conceptualisation d'un domaine en
termes de classes et de propriétés qui soit : [Bachimont 2000] : Comprend tout ce à quoi il faut penser dans un
- explicite domaine, tous les objets de pensée d'un domaine.
- formelle
- consensuelle Une ontologie est une convention de vocabulaire et de relations entre les
- référençable par des identificateurs universels mots de ce vocabulaire

28 27
Ontologies Ontologies
Pourquoi utiliser une ontologie? Pourquoi utiliser une ontologie?
Gilles KASSEL (les différents points de vue)
- BD: Définir un vocabulaire canonique des concepts d'un domaine.
identifiants + notions primitives {classes/propriétés/types} du domaine

Une définition, au sens large - IA : Définir des correspondances entre vocabulaires et des possibilités de
Dans un sens large, on peut adopter pour la notion la déduction.
caractérisation suivante [Uschold, 98] : {classes/propriétés/types} du domaine primitifs + Opérateurs de synonymie conceptuelle
ontologie peut prendre différentes formes, mais elle inclura
nécessairement un vocabulaire de termes et une spécification de leur - Langue Naturelle{mots } + similarités entre mots+relations mots / sens
signification. Cette dernière inclut des définitions et une indication de la
façon dont les concepts sont reliés entre eux, les liens imposant
collectivement une structure sur le domaine et contraignant les [Pierra 2007]
interprétations possibles des termes.

30 29

Ontologies Ontologies
Pourquoi utiliser une ontologie? Pourquoi utiliser une ontologie?

Une définition, au sens strict


Les de et de des Connaissances émanent Une telle caractérisation rend compte:
du projet ARPA Knowledge Sharing Effort (1991). Une définition divers
tels des glossaires, des terminologies, des thesaurus et
consensuelle pour ces disciplines reste celle de [Gruber, 93] : des ontologies (au sens strict),
mis en par différents professionnels (ingénieurs de la connaissance,
Une ontologie est une spécification explicite bibliothécaires, traducteurs)
conceptualisation. et se distinguant suivant que est mis sur les termes ou leur
signification.

32 31
Ontologies Ontologies
Pourquoi utiliser une ontologie? Pourquoi utiliser une ontologie?

Noy & Hafner, 97]:


La plupart des ontologies sont structurées au moyen de la relation de
Le terme situe les ontologies sur le versant
subsomption, ou de généralisation, entre concepts. La relation Tout-Parties sémantique. Une conceptualisation rend compte du sens des termes.
composé est également utilisée. La littérature logico-philosophique nous enseigne que le sens
Certaines ontologies sont denses, contenant de nombreux axiomes contraignant le correspond à des intensions (ou objets intensionnels), par opposition
sens des termes. se résument à une taxinomie de concepts donnés sans à extensions.
définition.
La taille des ontologies varie de quelques dizaines de concepts à plusieurs dizaines de
milliers de concepts. fait des ontologies un objet
Les ontologies peuvent être informelles, formelles ou opérationnelles. Dans ce syntaxique. La conceptualisation est codée dans un langage. Suivant
dernier cas, elles sont spécifiées dans un langage de programmation. le langage utilisé, prendra la forme théorie logique
(ensemble de formules logiques) ou réseau sémantique.

34 33

Ontologies Ontologies
Pourquoi utiliser une ontologie? Pourquoi utiliser une ontologie?

Point de vue de la linguistique:


La Linguistique est concernée par le processus de construction des ontologies dans la est la branche de la philosophie qui traite de la nature et de
mesure où les données dont on dispose pour élaborer les ontologies consistent en de la réalité. Elle côtoie qui traite de la nature et des origines de
des expressions linguistiques de connaissances. notre connaissances [Nef, 98].
La caractérisation du sens de ces expressions conduit à déterminer des signifiés Produits de les ontologies formelles sont des théories de :
contextuels, dépendants des contextes (documents) où les expressions apparaissent. dont est menée de façon rigoureuse, en ayant recours en général à la logique
Ces signifiés contextuels doivent alors être normés, ce qui revient à fixer une mathématique,
signification pour un contexte de référence, celui de la tâche (application) pour transversales à toutes les ontologies matérielles, relatives à des domaines différents
(des régions de savoir).
laquelle est élaborée [Bachimont, 00].
Ontologique est la branche de des Connaissances qui exploite
régionale (non universelle) que obtient est ainsi une spécification de les principes de (formelle) pour construire des ontologies [Guarino &
signifiés normés. Giaretta, 95].

36 35
Ontologies Ontologies

Unité de base pour la description du vocabulaire d'une ontologie.


Peut être abstrait ou concret, élémentaire ou composé, réel ou fictif.

La signification du concept, appelée également notion ou intension


du concept.
Le(s) objet(s) dénotés par le concept, appelé(s) également réalisation ou Axiomes
extension du concept.
Relations

Propriétés

Concept

40 39
Ontologies Ontologies

Une propriété : Un concept :


sert pour la définition de la sémantique exprimée par chaque concept
défini.
Une Relation:
lien organisant des concepts en représentant un type particulier

définie comme tout sous- -à-


dire R Cn.
relation par une association ou un lien entre les concepts, elle est
généralement exprimée par un terme ou représentée par un lien
graphique ou plus généralement par un signe.
Exemples : sous-concept-de, connecté-à, sorte-de, etc.

42 41

Ontologies Ontologies
Plusieurs formalismes proposés pour:

Un Axiome:
du système de gestion des connaissances. Permet de définir la sémantique des termes (classes, relations), leurs
propriétés et toute contrainte quant à leur interprétation.
un domaine donné.
Offrir un support formel à la composition de concepts et à leur
comparaison.
Exemples:
Logique de description.
Réseaux sémantiques.
Graphes conceptuels.

44 43
Ontologies Ontologies
La logique de description fournit trois composantes formels :
Concept :
Concept primitif possède une description incomplète et sert à construire des Logique de description (LD):
concepts définis. Créée par [Brachman 79].
Concept défini possède une description complètement spécifiée qui correspond à
des conditions nécessaires et suffisantes exprimées par des rôles. Un formalisme logique de représentation des connaissances [Kayser 97]
[Ducourneau 98].
Les rôles sont des relations binaires entre concepts,
atomiques et des rôles atomiques correspondant à des prédicats binaires
Les concepts du domaine sont organisés en une hiérarchie par la relation de et décrivant les relations entre les objets.
subsomption. Deux notions T-Box et A-Box, suivantes :
Les LD utilisent un raisonnement déductif pour expliciter les informations T-Box (Terminological Box) : permet de décrire les concepts en
implicites contenues dans une base de connaissances.
sur ces relations. T-Box renferme donc les connaissances
terminologiques.
A-Box (Assertional Box) correspond au niveau des assertions

46 45

Ontologies Ontologies
Réseaux sémantiques: Réseaux sémantiques: Structure de graphe qui encode les connaissances
des objets ainsi que leurs propriétés:

Les concepts
lui-
par un arc [Quillian 68], [Woods 75].

relations qui représentent soit des catégories taxonomiques soit des


propriétés
représentent les objets du domaine.
Un arc
Roussey 04].

48 47
Ontologies Ontologies
Graphes conceptuels : Modèle de représentation de connaissances du type réseaux
Graphes conceptuels : sémantiques fondés sur la logique développée par [Sowa 06].

Un GC est fini, connexe, biparti :


les , appelés également sommets et les . Chacun de

marqueur précisant une instance particulière de la classe. Toute relation conceptuelle a un


ou plusieurs arcs, chacun lié à un concept selon [Chein 92].
Les types de relations et de concepts correspondent à des prédicats, les liens « sorte-
de » sont des implications et les graphes par des assertions.

50 49

Classification des ontologies (selon objet de


conceptualisation) Classifications des ontologies

Les ontologies peuvent être classées selon plusieurs dimensions.


Parmi celles-ci, on cite les trois suivantes :
Objet de conceptualisation
Haut niveau Niveau de détail : fine, large
Noyau de Niveau de formalisation : informel, semi-formel, formel
domaine
Domaine

Tâche

Application

52 51
Ontologie de tâches

Elle est utilisée pour conceptualiser des tâches spécifiques dans les
systèmes, telles que les tâches de diagnostic, de planification, de aux rôles joués par les entités du domaine tout en exécutant une
conception, de configuration, soit tout ce qui concerne la résolution certaine activité.
de problèmes.
Elle régit un ensemble de vocabulaires et de concepts qui décrit une
structure de résolution des problèmes inhérente aux tâches et
indépendante du domaine.

54 53

Ontologie noyau de domaine Ontologie de domaine

cette ontologie définit des concepts génériques et centraux dans cette ontologie régit un ensemble de vocabulaires
différents domaines [Kassel 09].
et de concepts qui décrit un domaine d'application
Elle véhicule des connaissances génériques moins abstraites que
ou monde cible
pour être réutilisées à travers différents domaines.
Elle porte sur des concepts généraux qui se veulent indépendants

Exemples : Cyc, KR ontology.

56 55
Exercice Exemples des ontologies

refroidit par le radiateur. Le carburateur produit un mélange

boîte entraine les roues.

60 59
Chapitre 3 :
Correction Exercice

Cycle de vie des Ontologies

61

PLAN
Préambule

Cycle de vie 1996, les premières ontologies ont été développées de façon
Besoin complètement artisanale, sans suivre de méthode prédéfinie.
Conception
De ces premiers projets (ex : Mikrokosmos, Enterprise Ontology, TOVE,
Diffusion
MENELAS) sont issues des listes de recommandations constituant des
Utilisation
ébauches de méthodes, ou cadres méthodologiques.
Evaluation
Evolution Depuis 1998, on assiste à la naissance de cadres méthodologiques plus
élaborés inspirés des méthodes de des Connaissances (ex :
Exemples de Méthodologies
METHONTOLOGY) et fondés, soit sur la linguistique (ex : TERMINAE), soit
sur (ex : principes proposés par N. Guarino).

64 63
68 67
Conception : Opérationalisation Conception : Ontologisation
opérationalisation consiste à outiller une ontologie pour permettre à une
machine, via cette ontologie, de manipuler des connaissances du domaine. La permettre, à cette étape, de construire une ontologie proprement dite. Afin de
machine doit donc pouvoir utiliser des mécanismes opérant sur les respecter les objectifs généraux des ontologies, T. GRUBE R propose 5 critères
ontologisation
Cette étape revient à décider des connaissances à implanter et à opérer des
choix de représentation en fonction des constructions proposées par le
langage cible.
la cohérence (consistance logique) des axiomes ;
-à-
modification ;
la minimalité
portabilité ;
la minimalité -à-
chaque terme

70 69

Conception : Opérationalisation
Diffusion
La phase de diffusion s'intéresse au déploiement et à la mise en place de
l'ontologie. Les problèmes de cette phase sont fortement contraints par opérationalisation consiste à outiller une ontologie pour permettre à une
l'architecture des solutions. machine, via cette ontologie, de manipuler des connaissances du domaine. La
Dans un contexte d'application web, on reposera sur des technologies idoines. machine doit donc pouvoir utiliser des mécanismes opérant sur les
Pour le partage de fichiers, des architectures pair à pair ou autres
architectures distribuées peuvent être utilisées. Cette étape revient à décider des connaissances à implanter et à opérer des
choix de représentation en fonction des constructions proposées par le
Pour l'intégration d'applications, des architectures de services web peuvent langage cible.
être une solution.
Dans toutes ces architectures, la distribution des ressources (données,
modèles, applications et utilisateurs) et leur hétérogénéité (syntaxes,
sémantiques, protocoles, contextes, etc.) posent des problèmes de recherche
sur l'interopérabilité (alignement et médiation) et le passage à l'échelle (larges
bases, optimisation d'inférences, propagation de requêtes, syndication de
données, composition de services, etc.).

72 71
Gestion Utilisation
L'activité permanente de gestion et planification souligne qu'il est important La phase d'utilisation regroupe toutes les activités reposant plus ou moins
d'avoir un travail de suivi et une politique globale pour détecter ou déclencher, directement sur la disponibilité de l'ontologie, par exemple, l'annotation de
préparer et évaluer les itérations du cycle et s'assurer que l'on reste dans le ressources (traitement de la langue, rétroingénierie de base de données, etc.),
cercle vertueux des systèmes d'information (où se succèdent contribution, la résolution de requête (algorithme de projection de graphes avec
utilisation, création). contraintes), la déduction de connaissances et l'aide à la décision (moteurs
d'inférence à base de règles),
Toutes ces activités ont en commun de poser le problème de la conception des
interactions avec l'utilisateur et de leur ergonomie (interfaces dynamiques,
profils et contextes d'utilisation). Sur ce point, l'ontologie apporte à la fois de
nouvelles solutions (par exemple, les inférences exploitent les ontologies pour
la génération dynamique d'éléments d'interfaces) et de nouveaux problèmes
(par exemple, la complexification des modèles de données engendre des
problèmes pour leur représentation et l'interaction avec ces représentations).

74 73

Evolution Evaluation
-à-dire que a priori par des tests correspondants à

les réponses prévues aux questions de compétences .


de connaissances [FER 97].
reste un thème de recherche encore peu exploré.

76 75
Exemple de Méthodologie
Grüninger
http://www.eil.utoronto.ca/tove/ontoTOC.html Ontology Uschold & King, 95]
Cette méthode est basée sur du développement de
du projet TOVE (TOrento Virtual Enterprise). Elle aboutit à la construction http://www.aiai.ed.ac.uk/project/enterprise
modèle logique de connaissance. est développée selon les
étapes suivantes : La méthode, basée sur du développement de
Identification de scénarii (problèmes) dépendants application Enterprise Ontology, repose sur de différentes étapes :
Formulation de questions informelles (basées sur les scénarii) auxquelles Identification du POURQUOI de ;
doit permettre de répondre ; Construction de (identification des concepts clef ; modélisation
Spécification terminologie à partir des termes apparaissant dans les informelle ; formalisation) et intégration existantes ;
questions.
Spécification formelle (en KIF) des axiomes et des définitions pour les termes de Evaluation et documentation de .
la terminologie. Cette méthode du développement de SBCs. Les étapes et sous-
Evaluation de la complétude de . tâches sont décrites de façon abstraite. Les techniques à utiliser pour les
La méthode reste spécifiée de façon abstraite. Ni les différentes étapes ni sous-tâches ne sont pas précisées (ex : comment identifier les concepts clef
les techniques ne sont décrites en détail. ? Quel langage de formalisation utiliser ?).

78 77

Méthode METHONTOLOGY de Fernandez-Lopez

Méthode METHONTOLOGY de Fernandez-Lopez


Cette méthode est développée au Laboratoire Artificielle de
polytechnique de Madrid. Elle vise la construction
au et repose sur :
un processus de développement comportant des activités
de gestion de projet (planification, assurance qualité), des activités
orientées développement (spécification, conceptualisa- tion,
formalisation) et des activités de support (documentation) ;
un cycle de vie des ontologies basé sur des prototypes évoluant.
METHONTOLOGY méthode de développement de SBCs. Elle
est spécifiée de façon très détaillée et a été utilisée pour construire
plusieurs ontologies dont des ontologies : Reference Ontology
[Arpirez-Vega et al., 98]. Elle est supportée par ODE [Blazquez et al].

80 79
Chapitre 4 :
Une méthode linguistiquement fondée
TERMINAE [Biébow & Szulman, 99]
Cette méthode est développée au LIPN, à de Villetaneuse.
dans la problématique du groupe de recherche français TIA
(Terminologie et IA), elle propose la construction à partir de
textes en suivant quatre principales étapes :
Représentations et langages : OWL Constitution corpus (documents techniques, comptes rendus, livres de
cours, etc.), à partir analyse des besoins de visée,
Etude linguistique, pour identifier des termes et des relations lexicales, en
utilisant des outils de traitement de la langue naturelle,
Normalisation sémantique, conduisant à des concepts et des relations
sémantiques définis dans un langage semi-formel.
Formalisation et intégration des concepts au sein BC formelle.
Dans sa version actuelle, supportant la méthode intègre LEXTER
[Assadi & Bourigault, 00] pour identifier des termes candidats.

82 81

Introduction :Critères des langages d'ontologie


Sommaire
Les langages d'ontologie permettent d'écrire des
conceptualisations formelles et explicites des modèles - Fondements de OWL
de domaines
- Langage OWL
Les critères essentiels sont:
une syntaxe précise
l'efficacité du support de raisonnement
une sémantique formelle
une puissance d'expression suffisante
la facilité d'expression
84 83

84 83
Origine de OWL Standard de web sémantique

Langage créé en 2004


Standard W3C
Syntaxe basée sur XML (balises)
Description des ressource sur le Web
OWL (Web Ontology Language) est un langage basé sur RDF.
Il enrichit le modèle des RDF Schemas en définissant un
vocabulaire riche pour la description d'ontologies
complexes.

86 85

Bref Rappel sur RDF Bref Rappel sur RDF

Une ressource spécifique associée à une propriété et sa Resource Description Framework (RDF)
valeur correspondante est une expression ou déclaration Est un modèle, associé à une syntaxe, dont le but est de
(« statement »)RDF. Ces trois parties (ressource, propriété,
valeur) sont appelées respectivement sujet, prédicat et mêmes méta-données pour des ressources partagées.
objet.
Se base sur le triplet {propriété, ressource, valeur}. Le
langage de balisage XML est utilisé pour le spécifier.
associée à une ressource) peut être une autre
déclaration RDF (réification) Les propriétés peuvent être des éléments XML ou bien des
attributs XML.

88 87
Ontologie (concepts / classes)
Échanger des ontologies
Document
class Document Nommer et définir un vocabulaire conceptuel consensuel et faire des
inférences élémentaires
class Report Report Memo Nommer les classes de ressources existantes
subClassOf Document Nommer les relations qui existent entre ces classes
Donner la signature de ces relations: type de
propriété
Le domaine (d'où la relation part)
Topic
domain range
class Topic Le range (où la relation arrive)
Documenter ces notions en langue naturelle
class ComputerScience Squelette taxonomique d'une ontologie
subClassOf Topic ComputerScience Maths
Liens hiérarchiques des classes
Liens hiérarchiques des propriétés

90 89

Ontologie (relations / propriétés)

Document concern Topic


Combinaison de OWL et RDF Schema
property concern
domain Document
Dans l'idéal, OWL devrait étendre RDFS
creator Agent
c'est cohérent avec l'architecture en couches du web sémantique
range Topic Thing
Mais étendre simplement RDFS ne fonctionnerait pas pour obtenir la
puissance d'expression et l'efficacité de raisonnement
la combinaison de RDFS avec la logique conduit à des particularités de calcul Document author Agent compositor
indéterminables

property author
domain Document
range Person
subPropertyOf creator
92 91
OWL version 1 OWL language
OWL has more expressive power than RDF Schema, provides Web Ontology Language (OWL) - is a semantic markup
additional vocabulary along with a formal semantics language for publishing and sharing ontologies on the World Wide
Three sublanguages: Web.
OWL Lite was designed for easy implementation and to provide users with a OWL is vocabulary extension RDF and derived from DAML+OIL
functional subset that will get them started in the use of OWL.
Web Ontology Language.
OWL DL was designed to support the existing Description Logic business segment
and to provide a language subset that has desirable computational properties for
Two versions:
reasoning systems. Version 1 (W3C Recommendation Feb 2004)
More expressive Dialects: OWL-Lite, OWL-DL, OWL-Full
Based on DL (Description Logic)
Version 2 (W3C Recommendation Oct 2009)
(Almost) all features included
Still computationally complete and decidable Profiles: OWL EL, OWL QL, OWL RL
OWL Full relaxes some of the constraints on OWL DL so as to make available Uses vocabulary from RDF and RDFS
features which may be of use to many database and knowledge representation More expressive than RDFS
systems, but which violate the constraints of Description Logic reasoners.
Maximum expressiveness
Computational properties not guaranteed

94 93

OWL Full Les trois espèces de OWL


Utilise toutes les primitives des langages OWL
-
Permet de combiner ces primitives de manière arbitraire avec langages :
RDF et RDFS OWL Full
OWL Full est totalement compatible en amont avec RDF, tant OWL DL
du point de vue syntaxique que sémantique OWL Lite

OWL Full est puissant au point d'être indécidable Chaque sous-langage visant à satisfaire à plusieurs aspects des
n'offre pas de support complet (ou efficace) de raisonnement
critères

96 95
OWL Lite OWL DL
Toute restriction supplémentaire limite OWL DL à un dialecte OWL DL (Description Logic) est un sous-langage de OWL Full qui
des constructeurs de langage restreint l'application des constructeurs au départ de OWL et RDF
par ex., OWL Lite exclut les classes énumératives, les déclarations de disjonction l'application des constructeurs de OWL les uns aux autres n'est pas autorisée
et la cardinalité arbitraire correspond donc à une logique descriptive bien étudiée
Avantage de ce langage: OWL DL permet le support de raisonnement efficace
plus facile à saisir pour les utilisateurs Mais on perd alors la compatibilité totale avec RDF:
plus facile à mettre en oeuvre pour les créateurs d'outils tous les documents RDF ne sont pas forcément des documents OWL DL
Inconvénients d'une expressivité restreinte autorisés
par contre, tout document OWL DL autorisé est aussi un document RDF
autorisé

98 97

Compatibilité en amont entre espèces OWL


OWL version 2
OWL 2 is extension of OWL designed to facilitate ontology development
and sharing via the Web, with the ultimate goal of making Web content
more accessible to machines.
OWL 2 ontologies provide classes, properties, individuals, and data values and are stored as Semantic
Web documents; Toute ontologie autorisée OWL Lite est aussi une ontologie autorisée
RDF/XML is primary exchange syntax for OWL 2 and provides interoperability of OWL 2 tools. Other
alternative syntaxes also are used (Turtle, XML, Manchester Syntax, Functional-Style Syntax, etc.) OWL DL
OWL 2 Profiles (sublanguages) are syntactic restrictions of OWL 2. Each Toute ontologie autorisée OWL DL est aussi une ontologie autorisée
is more restrictive than OWL DL and provides different computational OWL Full
and/or implementational benefits:
OWL 2 EL enables polynomial time algorithms for all the standard reasoningtasks Toute conclusion valide OWL Lite est aussi une conclusion OWL DL
applications with very large ontologies that need expressive power for performance
valide
OWL 2 QL enables conjunctive queries to be answered in LogSpace using standard relational
database technology Toute conclusion valide OWL DL est aussi une conclusion OWL Full
applications with relatively lightweight ontologies used to organize large numbers of individuals valide
and need to access the data directly via relational queries (e.g., SQL)

OWL 2 RL enables the implementation of polynomial time reasoning algorithms using rule-extended
database technologies operating directly on RDF triples
applications with relatively lightweight ontologies used to organize large numbers of individuals
and need to operate directly on data in the form of RDF triples

100

99
OWL OWL version 2
Additionally to three new profiles and new OWL 2 Manchester
Syntax, OWL 2 adds new functionality with respect to OWL 1:
syntactic sugar to make some common patterns easier to write (e.g., disjoint union of
classes);
property chains and keys (in order to uniquely identify individuals of a given class by
values of (a set of) key properties);
richer datatypes:
various kinds of numbers: a wider range of XML Schema Datatypes (double, float, decimal,
positiveInteger, etc.) and providing its own datatypes, e.g., owl:real;
strings with (or without) a Language Tag (using the rdf:PlainLiteral datatype);
boolean values, binary data, IRIs, time instants, etc.
datatype restrictions by means of constraining facets that constrain the range of
values allowed for a given datataype, by length (for strings) e.g., minLength,
maxLength, and minimum/maximum value, e.g., minInclusive, maxInclusive.
N-ary Datatypes;
qualified cardinality restrictions;
asymmetric, reflexive, and disjoint properties;
enhanced annotation capabilities.

102
101

Diversité de syntaxe OWL Sommaire

OWL repose sur RDF et utilise la syntaxe XML de RDF Fondements de OWL
Langage OWL
D'autres formes de syntaxe ont été également définies pour
OWL:
la syntaxe sur base XML plus lisible
une syntaxe abstraite beaucoup plus compacte et lisible que les
langages XML
une syntaxe graphique basée sur les conventions de UML

104 103
owl:Ontology Syntaxe OWL XML/RDF: en-tête (header)
<owl:Ontology rdf:about="">
<rdf:RDF
<rdfs:comment>An example OWL ontology </rdfs:comment>
xmlns:owl ="http://www.w3.org/2002/07/owl#"
<owl:priorVersion
xmlns:rdf ="http://www.w3.org/1999/02/22-rdf- syntax-
rdf:resource="http://www.mydomain.org/uni-ns-old"/> ns#"
<owl:imports xmlns:rdfs="http://www.w3.org/2000/01/rdf- schema#"
rdf:resource="http://www.mydomain.org/persons"/> xmlns:xsd ="http://www.w3.org/2001/ XLMSchema#">
<rdfs:label>University Ontology</rdfs:label>
</owl:Ontology> Une ontologie OWL peut commencer par une collection
d'assertions à des fins internes utilisant l'élément owl:Ontology
owl:imports est une propriété transitive

106 105

Classes (2) Classes

owl:equivalentClass définit l'équivalence des classes Les classes se définissent avec owl:Class
owl:Class est une sous-classe de rdfs:Class
<owl:Class rdf:ID="faculty">
La disjonction se définit par owl:disjointWith
<owl:equivalentClass rdf:resource=
"#academicStaffMember"/>
</owl:Class> <owl:Class rdf:about="#associateProfessor">
owl:Thing est la classe la plus générale pouvant tout contenir <owl:disjointWith rdf:resource="#professor"/>
owl:Nothing est la classe vide <owl:disjointWith rdf:resource="#assistantProfessor"/>
</owl:Class>

108 107
Propriétés des types de données Propriétés

OWL utilise les types de données XMLS avec OWL a deux types de propriétés
l'architecture en couches de SW propriétés objet , qui relient des objets à d'autres objets
par ex., is-TaughtBy (est enseigné par), est chef de
propriétés de type de données, reliant les objets aux valeurs des types de
<owl:DatatypeProperty rdf:ID="age"> données
par ex., téléphone, titre, âge, etc.
<owl:domain rdf:resource="#Professor"/>
<rdfs:range rdf:resource=
"http://www.w3.org/2001/XLMSchema
#nonNegativeInteger"/>
</owl:DatatypeProperty>

110 109

Propriétés inverses Propriétés des objets


Types de données définies par l'utilisateur

<owl:ObjectProperty rdf:ID="teaches"> <owl:ObjectProperty rdf:ID="isTaughtBy">


<rdfs:range rdf:resource="#course"/> <owl:domain rdf:resource="#course"/>
<rdfs:domain rdf:resource= "#academicStaffMember"/> <owl:range rdf:resource= "#academicStaffMember"/>
<owl:inverseOf rdf:resource="#isTaughtBy"/> <rdfs:subPropertyOf rdf:resource="#involves"/>
</owl:ObjectProperty> </owl:ObjectProperty>

112 111
Restrictions des propriétés Propriétés équivalentes

En OWL, on peut déclarer que la classe C remplit certaines conditions owl:equivalentProperty


toutes les instances de C remplissent les conditions
<owl:ObjectProperty rdf:ID="lecturesIn">
Cela revient à dire que C est une sous-classe de C', où C' rassemble
tous les objets remplissant les conditions <owl:equivalentProperty rdf:resource="#teaches"/>
C' peut rester anonyme </owl:ObjectProperty>

114 113

Restrictions des propriétés (3) Restrictions des propriétés (2)

L'autre type définit les restrictions des diverses valeurs que la


propriété peut prendre Cet élément contient un élément owl:onProperty et une ou
owl:allValuesFrom indique une quantification universelle plusieurs déclarations de restriction
owl:hasValue indique une valeur spécifique
owl:someValuesFrom indique une quantification existentielle
Un type définit les restrictions de cardinalité (au moins un, au plus

116 115
owl:allValuesFrom
owl:hasValue
<owl:Class rdf:about="#firstYearCourse">
<rdfs:subClassOf>
<owl:Class rdf:about="#mathCourse"> <owl:Restriction>
<rdfs:subClassOf> <owl:onProperty rdf:resource="#isTaughtBy"/>
<owl:Restriction> <owl:allValuesFrom
<owl:onProperty rdf:resource= rdf:resource="#Professor"/>
"#isTaughtBy"/> </owl:Restriction>
<owl:hasValue rdf:resource= </rdfs:subClassOf>
"#949352"/>
</owl:Restriction> </owl:Class>
</rdfs:subClassOf>
</owl:Class>

118 117

Restrictions de cardinalité owl:someValuesFrom

<owl:Class rdf:about="#academicStaffMember">
On peut spécifier un nombre minimum et maximum avec <rdfs:subClassOf>
owl:minCardinality et owl:maxCardinality <owl:Restriction>
On peut spécifier un nombre précis en mettant un même nombre <owl:onProperty rdf:resource="#teaches"/>
pour minimum et maximum
Pour être pratique, OWL propose aussi owl:cardinality
<owl:someValuesFrom rdf:resource=
"#undergraduateCourse"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>

120 119
Propriétés spéciales
owl:TransitiveProperty (propriété transitive)
Restrictions de cardinalité (2)
par ex. "a un grade supérieur à", "est l'ancêtre de"
owl:SymmetricProperty (symmétrie)
par ex. "a le même grade que", "a le même parent que"
<owl:Class rdf:about="#course">
owl:FunctionalProperty définit une propriété ayant au <rdfs:subClassOf>
moins une valeur pour chaque objet <owl:Restriction>
chefDirect <owl:onProperty rdf:resource="#isTaughtBy"/>
owl:InverseFunctionalProperty définit une propriété pour <owl:minCardinality rdf:datatype=
laquelle deux objets différents ne peuvent pas avoir la "&xsd;nonNegativeInteger">
même valeur 1
</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>

122 121

Combinations booléennes Propriétés spéciales (2)

On peut combiner des classes par des opérations <owl:ObjectProperty rdf:ID="hasSameGradeAs">


booléennes (union, intersection, complément)
<rdf:type rdf:resource="&owl;TransitiveProperty"/>
<owl:Class rdf:about="#course"> <rdf:type rdf:resource="&owl;SymmetricProperty"/>
<rdfs:subClassOf> <rdfs:domain rdf:resource="#student"/>
<owl:Restriction> <rdfs:range rdf:resource="#student"/>
<owl:complementOf rdf:resource= </owl:ObjectProperty>
"#staffMember"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>

124 123
Combinations booléennes (3) Combinations booléennes (2)
<owl:Class rdf:ID="facultyInCS">
<owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:ID="peopleAtUni">
<owl:Class rdf:about="#faculty"/> <owl:unionOf rdf:parseType="Collection">
<owl:Restriction> <owl:Class rdf:about="#staffMember"/>
<owl:onProperty rdf:resource="#belongsTo"/> <owl:Class rdf:about="#student"/>
<owl:hasValue rdf:resource= </owl:unionOf>
"#CSDepartment"/> </owl:Class>
</owl:Restriction>
</owl:intersectionOf>
La nouvelle classe n'est pas une sous-classe de l'union mais
</owl:Class> bien égale à l'union
on a ainsi établi une équivalence de classes

126 125

Déclarations des instances Enumérations avec owl:oneOf


Les instances des classes sont déclarées comme en RDF
<owl:oneOf rdf:parseType="Collection">
<rdf:Description rdf:ID="949352">
<owl:Thing rdf:about="#Monday"/>
<rdf:type rdf:resource= "#academicStaffMember"/>
<owl:Thing rdf:about="#Tuesday"/>
</rdf:Description> <owl:Thing rdf:about="#Wednesday"/>
<academicStaffMember rdf:ID="949352"> <owl:Thing rdf:about="#Thursday"/>
<uni:age rdf:datatype="&xsd;integer"> 39<uni:age> <owl:Thing rdf:about="#Friday"/>
</academicStaffMember> <owl:Thing rdf:about="#Saturday"/>
<owl:Thing rdf:about="#Sunday"/>
</owl:oneOf>

128 127
Restriction des possibilités dans OWL DL (1)

Séparation des propriétés Types de données en OWL


la série des propriétés d'un objet et les propriétés des types de données
sont disjointes
ce qui suit ne peut donc jamais être spécifié pour les propriétés des
XMLS offre un mécanisme de construction de types de
types de données données définies par l'utilisateur
owl:inverseOf par ex., le type de données de adultAge inclut tous les nombres
entiers supérieurs à 18
owl:FunctionalProperty
owl:InverseFunctionalProperty
Ces types de données dérivées ne peuvent pas s'utiliser
en OWL
owl:SymmetricProperty
le document de référence OWL énumère tous les types de
données XMLS utilisables
il s'agit des types les plus souvent utilisés comme string(chaîne),
integer (nombre entier), Boolean (booléen), time (heure) et date.

130 129

Restriction des possibilités dans OWL DL (2)


Restriction des possibilités dans OWL Lite
Pas de restrictions de cardinalité transitive
aucune restriction de cardinalité ne peut être imposée aux propriétés
transitives
Restrictions plus strictes que pour OWL DL Classes anonymes restreintes: ces classes ne sont permises que
owl:oneOf, owl:disjointWith, owl:unionOf, comme
domaine et étendue de owl:equivalentClass ou owl:disjointWith
owl:complementOf et owl:hasValue ne sont pas autorisés
étendue (mais non le domaine) de rdfs:subClassOf
Les déclarations de cardinalité (cardinalité minimale,
maximale et exacte) ne peuvent se faire que sur les valeurs 0
et 1
owl:equivalentClass ne peuvent plus se faire entre classes
anonymes mais uniquement entre identifiants de classes

132 131
Principe légataire dans la hiérarchie des
Récapitulation
classes
OWL est le standard proposé pour les ontologies du web Restriction d'étendue: Les cours ne peuvent être donnés
OWL repose sur RDF et RDFS: que par les membres du corps académique
on utilise la syntaxe à base XML Salah Maher est professeur
les instances sont définies par des descriptions RDF
Il "hérite" de la capacité d'enseigner via la classe des
la plupart des primitives de modélisation RDFS sont appliquées
membres du corps académique
En RDFS, ceci se fait en déterminant la sémantique de
"est une sous-classe de"
ce n'est pas le rôle de l'application (logiciel de traitement RDF)
d'interpréter "est une sous-classe de"

134 133

Outils Récapitulation (2)


OWL Ontology Validator [en]. Validation en ligne d'ontologies OWL.
OWL Plugin: A Semantic Web Ontology Editor for Protégé [en].
OWL API [en]. Projet open source d'une API java permettant l'accès à des La sémantique formelle et le support de raisonnement sont
ontologies OWL. fournis par la cartographie de OWL en logique
Jena [en]. Projet open source d'une API java permettant l'accès à des la logique de prédicats et de descriptions servent à cet usage
ontologies OWL. Comprend des raisonneurs intégrés et permet d'utiliser des
raisonneurs externes compatibles DIG (Racer par exemple). Plus fonctionnel Bien que OWL soit assez puissant pour son utilisation
qu'OWL API à ce jour (24/08/04). pratique, on développe des extensions
Protégé [en]. Editeur d'ontologies très reconnu. Permet d'éditer au format où on trouvera encore d'autres possibilités logiques et des règles.
OWL.

136 135
Exercice Correction 1/3 Exercice (Enoncé)

Soit une portion d'une ontologie décrite avec un diagramme de


classes UML.
<!-- Défintion des classes -->

<owl:Class rdf:ID="Citoyen" />


<owl:Class rdf:ID="Etudiant">
<rdfs:subClassOf rdf:resource="#Citoyen" />
</owl:Class> Donner le code de cette ontologie avec le langage OWL
1/ Ecriture des classes
</owl:Class> 2/ Ecriture des propriétés
<owl:Class rdf:ID="Ville" /> 3/ Assertion d'instanciation

138 137

Exercice - Correction 2/3


2/ Ecriture des propriétés : cette étape permet de détailler les propriétés (DatatypeProperty et ObjectProperty) des concepts.
Exercice Exercice - Correction 3/3
<!-- Propriétés d'objet habiteA-->

3/ La dernière étape concerne l'assertion qui s'agit non seulement de l'instanciation des individus, mais également de leur description par l'énonciation de
leurs propriétés. <owl:ObjectProperty rdf:ID="habiteA">

<rdfs:domain rdf:resource="#Citoyen" />

<Etudiant rdf:ID="BenFoulen"> <rdfs:range rdf:resource="#Ville" />

<nom>BenFoulen</nom> </owl:ObjectProperty>

<prenom>Foulen</prenom>
<DateNaissance>1990-07-14</DateNaissance> <!-- Propriétés de type de donnée -->
<habiteA rdf:resource="#Sfax" />
</Etudiant> <owl:DatatypeProperty rdf:ID="nom">

<rdfs:domain rdf:resource="#Citoyen" />


<Ville rdf:ID="Sfax"> <rdfs:range rdf:resource="&xsd;string" />
<NomVille>Sfax</NomVille> </owl:DatatypeProperty>
</Ville> <owl:DatatypeProperty rdf:ID="prenom">

<rdfs:domain rdf:resource="#Citoyen" />

<rdfs:range rdf:resource="&xsd;string" />

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="DateNaissance">

<rdfs:domain rdf:resource="#Citoyen" />

<rdfs:range rdf:resource="&xsd;date" />

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="NomVille">

<rdfs:domain rdf:resource="#Ville" />

<rdfs:range rdf:resource="&xsd;string" />


140 139
</owl:DatatypeProperty>
Chapitre 5 :
Sommaire

Introduction
Règles monotoniques: exemple
Règles non monotoniques: exemple
Un DTD pour les règles monotoniques Interrogation : logique et inférence
Un DTD pour les règles non monotoniques

142

Représentation des connaissances


Importance de la logique

Langage de haut niveau pour l'expression des connaissances Jusqu'à présent, on a vu ce qui concerne la représentation des
Puissance d'expression élevée connaissances
Sémantique formelle bien comprise La représentation des connaissances (KR)
Notion précise de conséquence logique La logique reste le fondement de KR, surtout sous la forme de la
logique des prédicats (logique du premier ordre)
Système de vérification capable de dériver automatiquement les
déclarations du point de vue syntaxique au départ d'un jeu de
prémisses

144 143
Spécialisations de la logique des prédicats:
Importance de la logique (2)
RDF et OWL
RDFS et OWL (Lite et DL) sont des spécialisations de la Il existe des systèmes de vérification pour lesquels une conséquence
logique des prédicats sémantique logique coïncide avec la dérivation syntaxique dans le
système de vérification
correspondant essentiellement à une logique descriptive
sûrs et complets
Elles définissent des sous-jeux raisonnables de la logique
La logique des prédicats est unique en ce sens que des systèmes de
Compromis entre puissance d'expression et complexité de vérification sûrs et complets existent réellement
calcul t pas pour une logique plus expressive (logique d'ordre supérieur)
Plus le langage est expressif, moins les systèmes de vérification Suit la vérification conduisant à une conséquence logique
correspondant sont efficaces
Logique susceptible de fournir des explications aux réponses
par traçabilité de la vérification

146 145

Règles monotonique par rapport aux règles non Règles monotonique par rapport aux règles non
monotoniques (2) monotoniques

Exemple: Un commerçant en ligne souhaite offrir une remise


Solution 2 spéciale si le client a son anniversaire ce jour-là
R1: si anniversaire, remise spéciale
Solution 1
R1: si anniversaire, remise spéciale
Résout le problème, mais:
la prémisse de la règle R2' n'est pas comprise dans la puissance d'expression R2: si pas anniversaire, pas de remise spéciale
de la logique des prédicats Que se passe-t-il si un client refuse de donner sa date de
il faut un nouveau type de système de règles
naissance pour des raisons de respect de la vie privée?

148 147
Règles monotoniques par rapport aux règles non
monotoniques (3)
Echange de règles

Echange de règles entre différentes applications La solution avec les règles R1 et R2 fonctionne lorsqu'on a une
ex., une boutique en ligne fait la pub de ses politiques de prix, de information complète de la situation
remboursement et de confidentialité. Elle les exprime par des règles Le nouveau système de règles sera appliqué dans les cas où les
L'approche sémantique consiste à exprimer le contenu de informations disponibles sont incomplètes
manière accessible par la machine en faisant appel à l'un des est une règle non monotonique
langages web que nous avons vus
On montre comment les règles peuvent s'exprimer en
langages de type XML (langages de balisage des règles)

150 149

Relations familiales Sommaire

Eléments factuels d'une base de données sur les relations Introduction


familiales: Règles monotoniques: exemple
mother(X,Y), X mère de Y Règles non monotoniques: exemple
father(X,Y), X père de Y
Un DTD pour les règles monotoniques
male(X), X masculin
female(X), X féminin Un DTD pour les règles non monotoniques
Relation inférée parent: un parent est soit un père soit une
mère
mother(X,Y) => parent(X,Y)
father(X,Y) => parent(X,Y)

152 151
Sommaire Relations inférées

Introduction male(X), parent(P,X), parent(P,Y), notSame(X,Y) =>


Règles monotoniques: exemple brother(X,Y)
Règles non monotoniques: exemple female(X), parent(P,X), parent(P,Y), notSame(X,Y) =>
Un DTD pour les règles monotoniques sister(X,Y)
Un DTD pour les règles non monotoniques brother(X,P), parent(P,Y) => uncle(X,Y)
mother(X,P), parent(P,Y) => grandmother(X,Y)
parent(X,Y) => ancestor(X,Y)
ancestor(X,P), parent(P,Y) => ancestor(X,Y)

154 153

Exigences potentielles du client Commerce par courtage

45 mètres carrés minimum avec au moins 2 chambres à coucher Le commerce par courtage se caractérise par
ascenseur si au troisième étage ou plus haut
animaux de compagnie autorisés l'intervention d'un tiers, le courtier
Carlos est d'accord de payer: Le rôle du courtier est de faire coïncider les exigences de
$ 300 pour un appartement de 45 m2 situé au centre l'acheteur avec les possibilités du vendeur, puis de
$ 250 pour un appartement identique en banlieue
$ 5 en plus par m2 supplémentaire
proposer une transaction lorsque les deux parties
$ 2 en plus par m2 s'il y a un jardin trouvent leur satisfaction dans l'échange commercial
il ne peut pas payer plus de $ 400 au total
La location immobilière est une activité courante souvent
S'il a le choix, il prendra l'offre la moins chère fastidieuse et qui prend beaucoup de temps
Sa deuxième priorité est le jardin
Sa dernière priorité est la surface supplémentaire

156 155
Formalisation des exigences de Carlos Règles
Formalisation des exigences de Carlos prédicats utilisés

r1: => acceptable(X) size(x,y), y est la surface de l'appartement x (en m2)


r2: bedrooms(X,Y), Y < 2 => ¬acceptable(X) bedrooms(x,y), x a y chambres à coucher
price(x,y), y est le prix de x
r3: size(X,Y), Y < 45 => ¬acceptable(X)
floor(x,y), x est à l'étage y
r4: ¬pets(X) => ¬acceptable(X) gardenSize(x,y), x a un jardin de superficie y
r5: floor(X,Y), Y > 2,¬lift(X) => ¬acceptable(X) lift(x), il y a un ascenseur dans la maison x
r6: price(X,Y), Y > 400 => ¬acceptable(X) pets(x), animaux de compagnie admis dans x
r2 > r1, r3 > r1, r4 > r1, r5 > r1, r6 > r1 central(x), x est situé au centre
acceptable(x), appartement x répond aux exigences de Carlos
offer(x,y), Carlos est d'accord de payer $ y pour l'appartement x

158 157

Représentation des appartements disponibles


Formalisation des exigences de Carlos Règles (2)

bedrooms(a1,1) =>
size(a1,50)
central(a1) =>
floor(a1,1)
¬lift(a1) r9: offer(X,Y), price(X,Z), Y < Z => ¬acceptable(X)
pets(a1)
r9 > r1
garden(a1,0)
price(a1,300)

160 159
Détermination des appartements acceptables Représentation des appartements disponibles
(2)

Si on fait correspondre les exigences de Carlos avec les


appartements disponibles, on a
Flat Bedrooms Size Central Floor Lift Pets Garden Price
appart. a1 n'est pas acceptable parce qu'il n'a qu'une seule app. chambres surf. Central étage ascen anim jardin prix
chambre (règle r2)
a1 1 50 oui 1 non oui 0 300
appart. a4 et a6 ne sont pas acceptables parce que les animaux de
compagnie ne sont pas admis (règle r4) a2 2 45 oui 0 non oui 0 335

pour a2, Carlos est d'accord de payer $ 300, mais le prix est plus a3 2 65 non 2 non oui 0 350
élevé (règles r7 et r9) a4 2 55 non 1 oui non 15 330
appart. a3, a5 et a7 sont acceptables (règle r1) a5 3 55 oui 0 non oui 15 350

a6 2 60 oui 3 non non 0 370

a7 3 65 oui 1 non oui 12 375

162 161

Sommaire Choix d'un appartement

Introduction r10: cheapest(X) => rent(X)


Règles monotoniques: exemple r11: cheapest(X), largestGarden(X) => rent(X)
Règles non monotoniques: exemple r12: cheapest(X), largestGarden(X), largest(X)
Un DTD pour les règles monotoniques
rent(X)
Un DTD pour les règles non monotoniques
r12 > r10, r12 > r11, r11 > r10
On doit spécifier que pas plus d'un appartement ne peut
être loué en appliquant les ensembles conflictuels

164 163
Faits Formules atomiques

<fact> p(X, a, f(b, Y ))


<atom>
<predicate>p</predicate> <atom>
<term> <predicate>p</predicate>
<const>a</const> </term> <term><var>X</var></term>
</atom> <term><const>a</const></term>
</fact> <term> <function>f</function>
<term><const>b</const></term>
<term> <var>Y</var></term>
</term>
</atom>

166 165

Règles (2) Règles

<body> <rule>
<atom><predicate>p</predicate> <head>
<term><var>X</var></term>
<atom>
<term> <const>a</const> </term>
<predicate>r</predicate>
</atom>
<atom><predicate>q</predicate> <term><var>X</var></term>
<term> <var>Y</var></term> <term><var>Y</var></term>
<term> <const>b</const></term> </atom>
</atom> </head>
</body>
</rule>

168 167
Balisage des règles en XML: un DTD
Modèle de données alternatif de RuleML

RuleML représente un effort majeur de standardisation dans le <!ELEMENT program ((rule|fact)*)>


domaine des règles <!ELEMENT fact (atom)>
RuleML est actuellement basé sur XML mais fait appel à des "role- <!ELEMENT rule (head,body)>
tags" de type RDF, dont la position dans une expression n'est pas <!ELEMENT head (atom)>
pertinente <!ELEMENT body (atom*)>
cependant, ils sont différents pour le modèle de données XML dans lequel
l'ordre est important
<!ELEMENT atom (predicate,term*)>
<!ELEMENT term (const|var|(function,term*))>
<!ELEMENT predicate (#PCDATA)>
<!ELEMENT function (#PCDATA)>
<!ELEMENT var (#PCDATA)>
<!ELEMENT const (#PCDATA)>
<!ELEMENT query (atom*))>

170 169

Modifications par rapport au DTD précédent Sommaire

Absence de symboles de fonction Introduction


la structure du terme est neutre Règles monotoniques: exemple
Les atomes négatifs peuvent se présenter dans l'en-tête et Règles non monotoniques: exemple
l'énoncé d'une règle Un DTD pour les règles monotoniques
Chaque règle a un nom Un DTD pour les règles non monotoniques
En plus des règles et des faits, un programme contient
encore des déclarations de priorité
on utilise une étiquette <stronger> pour représenter les priorités et
une étiquette d'ID dans les règles pour signaler leur nom

172 171
un DTD Faits et priorité en XML

<!ELEMENT program ((rule|fact|stronger)*)>


<fact>
<!ELEMENT neg (atom)>
<!ELEMENT rule (head,body)> <predicate>p</predicate>
<!ATTLIST rule id ID #IMPLIED> <term> <const>a</const> </term>
</atom>
<!ELEMENT body ((atom|neg)*)>

<stronger superior="r1" inferior="r2"/>

176 175
Chapitre 6 :
Un DTD (2)

<!ELEMENT atom (predicate,(var|const)*)>


<!ELEMENT stronger EMPTY)>
Suite logique et inférence : Langage SWRL <!ATTLIST stronger
superior IDREF #REQUIRED>
inferior IDREF #REQUIRED>
<!ELEMENT predicate (#PCDATA)>
<!ELEMENT var (#PCDATA)>
<!ELEMENT const (#PCDATA)>
<!ELEMENT query (atom*))>

177

Règles SWRL OWL et langage de règles : SWRL

?z) Un langage de règles est utile pour différentes raisons :

SWRL ne permet pas de créer des concepts ni des relations


-
des variables (individus) et la satisfaction de la règle.
Les règles SWRL sont construites suivant ce schéma : Semantic Web Rule Language (SWRL) [Horrocks &al, 2004]:
antécédent -> conséquent. SWRL : acronime pour « Semantic Web Rule language »
A proposal to combine ontologies and rules:
Ontologies : OWL-DL
un atome étant : Règles : RuleML
soit une instance de concept : Ci(z) = prédicat unaire SWRL = OWL-DL + RuleML
soit une relation OWL : Ri(x, y) = prédicat binaire
soit une relations SWRL same-as(?x, ?y), different-from(?x,?y

180 179
Les built-ins prédéfinis dans SWRL
Built-ins pour la comparaison
swrlb:equal, swrlb:notEqual, swrlb:lessThan, swrlb:lessThanOrEqual, swrlb:greaterThan
Soit en OWL le concept de Oncle défini ainsi :
Exemple : Person(?p) ^ hasAge(?p, ?age) ^ swrlb:greaterThan(?age, 17) -> Adult(?p) intersectionOf(SubClassOf(Homme), estfrereDe(Pere)).
Built-ins pour les opérations mathématiques
swrlb:add, swrlb:multiply, swrlb:divide, swrlb:mod, swrlb:pow, swrlb:sin, swrlb:cos
Exemple : Person(?p) ^ hasSalaryInEuros(?p, ?euros) ^ swrlb:multiply(1.9, ?euros, ?dinars) -> OWL ne permet pas de déduire les instances de la propriété
hasSalaryInDinars(?p, ?dinars)
Built-ins pour le chaînes de caractères
estOncleDe
swrlb:endsWith, swrlb:startsWith, swrlb:stringConcat, swrlb:substring, swrlb:stringLength
Exemple : Person(?p) ^ hasNumber(?p, ?number) ^ swrlb:startsWith(?number, "+") ->
hasInternationalNumber(?p, true)
Built-ins pour la négation booléenne estOncleDe et relie les instances concernées :
swrlb:booleanNot(?x, ?y) est satisfait si ?x est la négation booléenne de ?y
Built-ins pour les listes aEnfant(?x,?y) ^ estfrereDe(?z,?x) -> estOncleDe(?z,?y)
swrlb:listConcat, swrlb:listSubtraction, swrlb:members, swrlb:first, swrlb:length
Exemple : swrlb:listConcat(?l,rdf:List(1,2),rdf:List(3,4))
Built-ins pour les dates et le temps
swrlb:date, swrlb:time, swrlb:subtractDates, swrlb:subtractTimes
182 181

Les built-ins
SQWRL
Bossam, Hoolet, Jess, KAON2, Pellet, RacerPro, R2ML (REWERSE Rule Markup Built-ins connissances
Language) et Sesame. Person(?p) ^ hasCar(?p, ?c) -> sqwrl:select(?p, ?c)
Person(?p) ^ hasName(?p, ?name) -> sqwrl:selectDistinct(?name)
Built-ins
Pour compter le nombre de voitures possédés par chaque personne de
Traduire SWRL en logique du premier ordre (Hoolet) Person(?p) ^ hasCar(?p, ?c) -> sqwrl:count(?c)
Pour avoir la moyenne des ages des personnes de
Traduire OWL-DL en règles et appliquer un algorithme de chaînage avant Person(?p) ^ hasAge(?p, ?age) -> sqwrl:avg(?age)
(Bossam) Pour avoir maximal des personnes de
-DL fondé sur les Person(?p) ^ hasAge(?p, ?age) -> sqwrl:max(?age)
algorithmes des tableaux sémantiques (Pellet et Jess) Compter le nombre de fois le nom personne existe dans
Person(?p) ^ hasName(?p, ?name) -> sqwrl:select(?name) ^ sqwrl:count(?name)
Donner lees noms des personnes classées par ordre alphabétique avec le nombre de voitures
possèdent
Person(?p) ^ hasName(p, ?name) ^ hasCar(?p, ?c) -> sqwrl:select(?name) ^ sqwrl:count(?c) ^
récupérer leurs résultats : sqwrl:orderBy(?name)
On peut aussi renommer les colonnes de résultat
=> sélection de connaissances existantes ou inférées Person(?p) ^ hasName(?p, ?namer) ^ hasCar(?p, ?c) -> sqwrl:select(?name, "Number of cars") ^
sqwrl:count(?c) ^ sqwrl:columnNames("Name", "Description", "Count")

184 183
Exercice correction 1/4 Exercice - Enoncé

arbre, nous devons représenter les personnes qui peuvent être soit males soit femelles.
Une personne est caractérisée par un nom, un prénom et un âge. Une personne peut avoir
au maximum deux parents qui représentent sa mère et son père.
1. Représentez le graphe sémantique correspondant à cet énoncé
2. Transformez ce graphe en langage OWL
3. Ecrivez les règles SWRL qui permettent de déduire les relations suivantes :
3.1. aFrere
3.2. aSoeur
3.3. aOncle
3.4. aTante

6. Donnez pour chaque personne, son nom, prénom et son nombre de frères.

186 185

Exercice correction 3/4 Exercice correction 2/4


2.) </owl:Class>
3) <?xml version="1.0"?> <owl:Class rdf:about="#Femelle">
<rdf:RDF <owl:disjointWith rdf:resource="#Male"/>
a. <rdfs:subClassOf rdf:resource="#Personne"/>
xmlns="http://www.mesOntologies.com/arbreGenealogique.o
wl#" </owl:Class>
aParent(?enfant1, ?parent) aParent(?enfant2, ?parent) xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" <owl:ObjectProperty rdf:about="#aParent">
xmlns:owl="http://www.w3.org/2002/07/owl#" <rdfs:domain rdf:resource="#Personne"/>
Male(?enfant2) differentFrom xmlns:xsd="http://www.w3.org/2001/XMLSchema#" <rdfs:range rdf:resource="#Personne"/>
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" </owl:ObjectProperty>
aFrere(?enfant1, ?enfant2) <owl:DatatypeProperty rdf:ID="prenom">
xml:base="http://www.mesOntologies.com/arbreGenealogiqu <rdfs:domain rdf:resource="#Personne"/>
b. e.owl#"> <rdfs:range
<owl:Ontology rdf:about="Arbre Genealogique"> rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:Ontology>
aParent(?enfant1, ?parent) aParent(?enfant2, ?parent) </owl:DatatypeProperty>
<owl:Class rdf:ID="Personne">
<owl:DatatypeProperty rdf:ID="nom">
<rdfs:subClassOf>
Femelle(?enfant2) differentFrom <owl:Restriction> <rdfs:range
<owl:onProperty> rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
aSoeur(?enfant1, ?enfant2) <owl:ObjectProperty rdf:ID="aParent"/> <rdfs:domain rdf:resource="#Personne"/>
</owl:onProperty> </owl:DatatypeProperty>
c. <owl:maxCardinality <owl:FunctionalProperty rdf:ID="age">
rdf:datatype="http://www.w3.org/2001/XMLSchema#int" <rdf:type
aParent(?enfant, ?parent) aFrere >2</owl:maxCardinality> rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty
</owl:Restriction> "/>
aOncle(?enfant, ?oncle) </rdfs:subClassOf> <rdfs:domain rdf:resource="#Personne"/>
<rdfs:subClassOf <rdfs:range
rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
d. rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
</owl:Class>
<owl:Class rdf:ID="Male"> </owl:FunctionalProperty>
aParent(?enfant, ?parent) aSoeur <owl:disjointWith> </rdf:RDF>
<owl:Class rdf:ID="Femelle"/>
aTante(?enfant, ?oncle) </owl:disjointWith>
<rdfs:subClassOf rdf:resource="#Personne"/>
188 187
Exercice correction 4/4
4)
age(?personne, ?valAge) swrlb:greaterThan(?valAge
sqwrl:select(?personne)

5)
age(?personne, ?valAge) swrlb:lessThan(?valAge
sqwrl:count(?personne)

6)
nom(?p, ?valNom) prenom(?p, ?valPrenom) aFrere(?p,
?frere sqwrl:select(?valNom, ?valPrenom)
sqwrl:count(?frere)

189

Vous aimerez peut-être aussi