• Aucun résultat trouvé

Les constituants d’une Règle d’Acquisition de Connaissance

Deuxième partie. Notre Démarche,

3.2 La formalisation des Règles d’Acquisition de Connaissance

3.2.3 Les constituants d’une Règle d’Acquisition de Connaissance

Plus formellement, nous pouvons définir une Règle d’Acquisition de Connaissance comme composée de la classe du nœud indicateur N, d’un ensemble fini de couples (Ip, Cp) où Ip représente la p-ième classe d’indices à rechercher dans le contexte sémantique des arbres conceptuels Cp, d’une décision Dk ainsi que d’un ensemble fini de triplets (S, L, T) où S représente la valeur de la décision Dk, L la position de cette valeur dans le texte d’origine et T la valeur de confiance accordée à la décision.

Figure 35. Exemple d’une Règle d’Acquisition de Connaissance en langage OPAL NomRègle: PersonnaliteR1

TypeConcept: Classe Entité

ConceptURI: http://www.mondeca.com/onto#Personnalité

NoeudIndicateur: NomPropre

IndicesContextuels:

{Existe: [EspaceRechercheArbre: père] [NoeudIndice: Personne]

}

Valeur: texte du nœud indicateur Position: faux Confiance: élevé finRègle Partie Action Partie Conditions Partie Options Partie Déclenchement

La partie Déclenchement d’une RAC définit la classe N, la partie Conditions définit les couples (Ip, Cp) et la partie Action définit la décision Dk. Une RAC possède aussi une partie Options, contrairement aux règles d’exploration contextuelle, qui définit le triplet (S, L, T). Nous allons à présent détailler chacun de ces composants. La Figure 35 présente un exemple de Règle d’Acquisition de Connaissance, formalisée dans le langage OPAL que nous présentons dans la prochaine section de ce chapitre. Nous voyons clairement les quatre parties constituantes d’une règle que nous allons à présent détailler.

3.2.3.1 La partie Déclenchement

Cette partie concerne l’information liée au déclenchement de la règle, i.e. l’étiquette sémantique qui va activer la règle. Cette étiquette sémantique est également appelée nœud indicateur ou nœud déclencheur. L’algorithme d’annotation et de peuplement d’ontologie d’OntoPop, décrit au prochain chapitre, parcourt chaque nœud de l’arbre conceptuel généré par l’outil d’extraction d’information à la recherche du prochain nœud porteur d’une étiquette sémantique paramétrée pour activer une Règle d’Acquisition de Connaissance.

3.2.3.2 La partie Conditions

La partie Conditions est optionnelle. Elle ne doit être déclarée que lorsqu’il est nécessaire de vérifier un ensemble de conditions auprès de certaines étiquettes sémantiques, i.e. les indices contextuels complémentaires, dans l’environnement du nœud déclencheur. Chaque condition est constituée de trois composants : l’opération à vérifier (existence, absence, autre, …), l’espace de recherche dans l’arbre auquel cette opération se limite et le nœud indice, i.e. la valeur de l’étiquette sémantique sur laquelle la condition porte.

Dans le cas où plusieurs conditions sont déclarées dans la règle, celles-ci sont liées par l’opérateur logique « ET », c'est-à-dire qu’elles doivent toutes être vérifiées pour que l’action puisse être exécutée. Il est également possible d’imbriquer plusieurs conditions les unes dans les autres comme nous le montrerons plus loin.

3.2.3.3 La partie Action

La partie Action est exécutée si et si seulement toutes les conditions de la partie précédente sont vérifiées. Cette partie précise l’élément de l’ontologie à instancier ou servant à créer l’annotation désirée ainsi que son type dans l’ontologie du domaine.

L’élément de l’ontologie à instancier ou servant à créer l’annotation doit être identifié de manière unique par la Règle d’Acquisition de Connaissance. Il ne doit pas y avoir d’ambiguïté possible. Comme l’identification des éléments dans une ontologie se fait par l’utilisation des « Uniform Resource Identifier » (URI), chaque Règle d’Acquisition de Connaissance utilisera l’URI de l’élément concerné pour l’identifier de manière univoque.

Dans une ontologie, le type d’un élément est normalement l’un des trois suivants : « classe », « attribut » ou « relation ». Mais nous avons décidé d’être entièrement compatibles avec les différents langages de représentation des connaissances présentés à la section 1.3 : RDF, OWL et XTM. Rappelons que d’un côté, RDF et OWL reposent sur des triplets dans lesquels les relations ne sont que binaires. De l’autre, XTM fait intervenir une autre notion, celle de « rôle » d’une classe dans une relation donnée qui permet de modéliser des relations n-aires. Nous pensons qu’il est intéressant de conserver cette façon de modéliser les relations n-aires car elles sont plus proches des formulations langagières trouvées dans les textes non structurés. Comme argumenté dans [VAT 02], une des manières de procéder consiste à assembler des relations binaires RDF ou OWL en fonction d’une classe représentant l’événement de la relation. Chaque relation binaire devient un rôle entre cette classe et les autres classes participant à la relation n-aire. Il devient alors possible de définir des attributs pour la relation n-aire modélisés au niveau de la classe de réification. Par exemple, dans une relation de mariage, la classe de réification représentant cette relation aura des attributs tels que « date mariage » et « lieu mariage ».

Pour en revenir à la formalisation des Règles d’Acquisition de Connaissance, nous avons décidé de tenir compte de la possibilité de réifier en OWL et en RDF les relations n-aires de la même manière que XTM en distinguant deux sortes de classes : les classes usuelles comme celles modélisant les entités nommées désormais appelées « classes entités » dans la suite de ce mémoire et les classes représentant les réifications de relations que nous appellons « classes relations ». Par conséquent, dans la partie Actions d’une RAC, le type de l’élément de l’ontologie concerné par l’annotation ou le peuplement doit correspondre à l’une de ces quatre catégories : classe entité, classe relation, attribut et rôle.

Enfin, il est important de préciser qu’un attribut ou un rôle ne peuvent être instanciés que par rapport à la classe pour laquelle ils ont été définis, i.e. leur domaine. Par exemple, si dans l’ontologie une classe « Personnalité » possède un attribut « Date naissance », il ne sera pas possible de créer une instance de cet attribut sans connaître au préalable l’instance de la classe « Personnalité » à laquelle elle est rattachée. Les règles d’acquisition fonctionnent par binômes : (classe entité, attribut) ou (classe relation, rôle) ou encore (classe relation, attribut). Lorsque le type de l’élément de la partie Action est soit « Attribut » soit « Rôle », il faut indiquer l’URI de la classe représentant le domaine de ces propriétés. Ainsi, lorsqu’une instance de classe est repérée dans l’arbre conceptuel, les règles ayant comme type « Attribut » et comme domaine l’URI de la classe instanciée sont déclenchées et la valeur de l’attribut rattachée à l’instance de la classe (cf. Figure 41).

3.2.3.4 La partie Options

Au cours des premières expérimentations des RAC [AMA 04], il est apparu que les trois parties précédentes, bien qu’essentielles, n’étaient pas suffisantes pour capturer toute la complexité existante dans la réalisation de la passerelle OntoPop. Nous avons donc complété les RAC en ajoutant trois options : la valeur générée par la règle, la position de cette valeur dans le document source et le niveau de confiance accordé à la règle.

Premièrement, la valeur à générer par la règle en sortie ne correspond pas toujours à la valeur textuelle contenue dans le nœud indicateur, surtout lorsque l’application cible requiert une forte normalisation des connaissances extraites des documents. Il est donc parfois nécessaire de créer la valeur de l’instance ou de l’annotation en fonction de diverses informations comme le nom d’un nœud, la concaténation de plusieurs valeurs de nœuds de l’arbre, une constante quelle que soit la valeur textuelle du nœud indicateur, etc. Par exemple, dans notre ontologie « People » existe un plan de classement des articles pour chacune des personnalités. Si les rubriques de ce plan de classement sont les mêmes pour toutes les personnalités, leur instance doit porter le nom de la rubrique accolé au nom de la personnalité. Dans la Figure 36, est présenté un arbre conceptuel concernant une extraction liée au mariage de l’instance « Johnny Halliday » de la classe entité « Personnalité ». Or dans le plan de classement des personnalités, il existe une rubrique « Mariage ». Par conséquent, l’instance de cette rubrique pour la personnalité « Johnny Halliday » doit porter le nom « Mariage – Johnny Halliday ». Mais afin de générer automatiquement le libellé de cette instance, il est nécessaire de concaténer deux sortes d’informations différentes : celle du nom de l’étiquette sémantique « /Mariage » avec la valeur textuelle de l’étiquette sémantique « /Personnalite ». Bien qu’apparemment simple, cette situation nous a posé beaucoup difficultés lors des premières implémentations des RAC.

Figure 36. Exemple d’arbre conceptuel représentant un événement mariage

Deuxièmement, il est potentiellement intéressant de vouloir conserver les informations de position des informations extraites ou annotées dans le document d’origine, notamment à des fins de présentation pour l’utilisateur final. Il sera alors possible de créer une interface lui présentant l’emplacement exact des différentes informations retenues comme annotations ou comme nouvelles instances de la base de connaissance.

Troisièmement, chaque Règle d’Acquisition de Connaissance ne possède pas le même niveau de confiance. Par exemple, nous avons vu au chapitre précédent qu’il existait deux sortes de méthodes permettant de repérer les entités nommées dans un document : soit à partir de lexiques contenant les entités nommées connues d’un domaine en particulier, soit à partir de patrons d’extraction qui sont capables de détecter de nouvelles entités nommées potentielles pour ce domaine. Ainsi, dans le cas d’une application permettant de peupler une ontologie automatiquement à partir de ces deux méthodes, il est important pour elle de savoir si la nouvelle instance d’entité nommée provient d’un lexique, auquel cas le taux de confiance dans l’information extraite est élevé, ou bien si elle a été déduite à partir d’un patron d’extraction, auquel cas le taux de confiance accordé sera plus faible. Par exemple, on dispose de deux sortes d’étiquettes sémantique dans notre application « People » :

/COUPLE(Johnny Hallyday s’est marié le 24 juin 1962 à Paris.) /ActorNamed(Johnny Hallyday) /Personnalite(Johnny Hallyday) /Mariage(s’est marié) /Date(24 juin 1962) /Location(Paris) /France(Paris)

l’étiquette sémantique « /Personnalite » permet de savoir que la personnalité reconnue provient d’un lexique contrôlé et l’étiquette sémantique « /NomDePersonnePotentiel » que le nom de la personnalité a été déduite par un patron. Ainsi, deux Règles d’Acquisition de Connaissance sont définies à partir de ces étiquettes, l’une possédant un taux de confiance plus élevé que l’autre. Cette information peut être utilisée pour effectuer un nettoyage de la base de connaissance ou bien pour signaler à l’utilisateur le niveau de pertinence de l’information.

Nous allons à présent décrire comment ces RAC sont implémentées dans OntoPop et notamment présenter le formalisme utilisé pour les représenter.

3.3 L’implémentation des Règles d’Acquisition de