• Aucun résultat trouvé

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

Deuxième partie. Notre Démarche,

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

3.3.1 Le langage OPAL

Crispino a défini un langage, LangText [CRI 03], à la fois destiné aux linguistes et aux informaticiens, pour modéliser les règles d’exploration contextuelle chargées de résoudre l’apposition d’étiquettes sémantiques dans le texte analysé. Ce formalisme répond aux critères de la méthode d’exploration contextuelle énoncés ci-dessus. Voici dans la Figure 37 un exemple de règle d’exploration contextuelle définie en LangText :

Figure 37. Exemple d’une règle d’exploration contextuelle formalisée en LangText, tiré de [CRI 03]

Dans LangText, les « IndicateursDéclencheurs » correspondent aux marqueurs linguistiques déclenchants l’insertion d’une nouvelle « Etiquette » dans le document. Mais afin de valider cette insertion, une ou plusieurs conditions peuvent être optionnellement définies. Par exemple, la première condition de la règle de la Figure 37 déclare rechercher un indice « y » qui correspond soit au marqueur « &document » soit au marqueur « &personne ». Puis, cet indice doit apparaître dans un

voisinage de 5 mots au plus par rapport à l’indice déclencheur. Si l’ensemble des conditions sont vérifiées, alors une étiquette sémantique sera attribuée à un segment textuel, précisé dans le paramètre « attribuerEtiquette ».

Formalisme LangText Formalisme OPAL Indicateurs Déclencheurs NoeudIndicateur

Etiquette ConceptURI

Indices IndicesContextuels

attribuerEtiquette TypeConcept (Classe, Relation, Attribut, Rôle)

Tableau 3. Tableau de rapprochement des concepts de chacun des formalismes LangText et OPAL

De la même manière que je me suis inspirée de l’analyse contextuelle réalisée par la méthode d’exploration contextuelle pour la formalisation des RAC, j’ai décidé d’adapter le formalisme du langage LangText à l’écriture des RAC pour OntoPop, comme illustré dans le Tableau 3. J’ai baptisé ce nouveau langage OPAL, signifiant « Ontology Population and Annotation Language ». La grammaire de notre formalisme déclaratif des règles d’acquisition dans le langage OPAL est constituée des différents éléments suivants, représentés en notation Extended BNF32 :

Figure 38. Grammaire EBNF du langage OPAL

La signification des principaux éléments constitutifs d’une Règle d’Acquisition de Connaissance en OPAL est la suivante :

32

<Règle> ::= <NomRègle>+ <TypeConcept>+ <ConceptURI>+ <DomainURI>?

<Noeudindicateur>+ <IndicesContextuels>+ <Valeur>? <Position>? <Confiance>?

‘finRègle’

<NomRègle> ::= (‘A-Z’ | ‘a-z’ | ‘0-9’)

<TypeConcept> ::= ‘Classe entité’ | ‘Classe relation’ | ‘Attribut’ | ‘Role’

<ConceptURI> ::= ‘http ::’ (‘A-Z’ | ‘a-z’ | ‘0-9’)

<DomainURI> ::= ‘http ::’ (‘A-Z’ | ‘a-z’ | ‘0-9’)

<Noeudindicateur> ::= (‘A-Z’ | ‘a-z’ | ‘0-9’)

<IndicesContextuels> ::= <Opérateurs> <EspaceRechercheArbre> <ObjetCondition>

<Opérateurs> ::= ‘existe’ | ‘nonExiste’ | ‘contient’ | ‘valeur’ | ‘position’

<EspaceRechercheArbre> ::= ‘père’ | ‘fils’ | ‘grand-père’ | ‘petit-fils’ | ‘ancêtre’ | ‘descendant’ | ‘nom nœud’ | ‘texte’

< ObjetCondition> ::= <NoeudIndice> | <ValeurCondition> <NoeudIndice> ::= (‘A-Z’ | ‘a-z’ | ‘0-9’)

<ValeurCondition> ::= (‘A-Z’ | ‘a-z’ | ‘0-9’)

<Valeur> ::= <Constante> | <FonctionXpath> | <ExpressionXML> <Constante> ::= (‘A-Z’ | ‘a-z’ | ‘0-9’)

<FonctionXpath> ::= ‘text()’ | ‘name()’ | …

<ExpressionXML> ::= <elementXML> | <attributXML> | … <Position> ::= ‘Vrai’ | ‘Faux’

Figure 39. Description des éléments d’une Règle d’Acquisition de Connaissance

D’après la grammaire EBNF, on voit que chaque indice contextuel est composé de trois paramètres : 1) une « Opération » qui correspond à la condition à satisfaire, comme « existe », « nonExiste »,

« position », etc.,

2) l’« EspaceRechercheArbre », i.e. la localisation de l’indice contextuel dans l’arbre (fils, père, petit-fils, grand-père, descendant, ancêtre sont les seules constructions utilisées à ce jour, mais on pourrait aisément étendre cette liste avec les frères, les oncles, etc.) et,

3) l’« ObjetCondition » qui correspond soit au « NoeudIndice », i.e. au nom du nœud sur laquelle porte l’opération de la condition, soit à une « ValeurConfition », celle-ci pouvant être une valeur numérique ou textuelle.

Par ailleurs, plusieurs IndicesContextuels peuvent être juxtaposés comme dans la Figure 40. Dans ce cas, les deux conditions doivent être réunies pour que la règle produise l’action désirée. Cette figure montre aussi qu’un IndiceContextuel peut lui-même être imbriqué dans un autre IndiceContextuel. Ceci permet de déterminer par exemple que l’indice contextuel sur l’ancêtre « DATE-NAISSANCE » doit lui-même posséder un nœud enfant « Personne ».

NomRègle: nom donné par l’utilisateur

TypeConcept: nature de l’élément de l’ontologie

ConceptURI: URI de l’élément dans l’ontologie du domaine

DomaineURI (optionel): URI de la classe correspondant au domaine d’une propriété dans l’ontologie (à renseigner uniquement lorsque le « TypeConcept » a pour valeur attribut ou rôle) NoeudIndicateur: étiquette sémantique déclenchant le processus d’annotation ou de peuplement d’ontologie

IndicesContextuels (optionnel): conditions sur l’existence ou non de certaines étiquettes sémantiques dans le contexte du NoeudIndicateur ou encore sur la position de ces étiquettes dans l’arbre conceptuel

Valeur (optionel): par défaut, la valeur des annotations ou des instances créées à partir des règles d’acquisition de connaissance est celle du texte issu du document original qui est associé au nœud déclencheur. Mais il est parfois nécessaire, notamment à des fins de normalisation, de construire une valeur à partir du nom d’un nœud de l’arbre, ou de plusieurs autres valeurs textuelles associées à d’autres nœuds, etc. Ce champ permet donc de paramétrer lorsque cela est nécessaire la manière de calculer la valeur en sortie de la règle d’acquisition

Position (optionel): indique si la position de l’information extraite dans le document original doit être conservée comme métadonnée des nouvelles instances (par défaut la valeur est ‘faux’)

Confiance (optionel): indique le niveau de confiance à accorder à cette règle (par défaut le niveau de confiance est positionné à ‘élevée’)

Figure 40. Exemple d’une Règle d’Acquisition de Connaissance en langage OPAL permettant d’instancier un attribut de type « Date_Naissance » lié à une instance de classe « Personnalité »

Par exemple, si l’analyse de la phrase « Coppola est né le 7 avril 1939 à Detroit » produit l’arbre