Liste de liens :
Liste de liens :
L'exploitation des annotations justifie le travail d'annotation et peut l'aider, non seulement en vérifiant sa cohérence mais également en permettant d'ajouter des annotations supplémentaires.
Pouvoir faire des sélections de mots à l'aide de requêtes URSQL (TYPE@PROPERTY=VALUE) :
Dans les outils utilisants un champ de requête CQP, si le corpus est équipé d'annotations URS, l'utilisateur peut choisir le type de requête “URSQL” et rentrer des requêtes du type “MENTION@REF=L'auteur”. L'état actuel de URSQL ne permet pas de définir si l'on souhaite filtrer sur des Unités, Relations ou Schémas. Dans tous les cas, le résultat de la sélection est la liste des limites des unités sous-jacentes des annotations URS sélectionnées.
Exemple avec l'interface pour TIGERSearch intégrée dans la fenêtre de concordance :
Ajouter aux propriétés disponibles dans les outils, les propriétés des annotations URS.
Pour exécuter les macros il faut :
En général, il faut sélectionner le corpus sur lequel on veut travailler dans la vue Corpus avant de lancer la macro.
Pour modifier le code Groovy d'une macro :
Un premier jeu de macros a été réalisé pour calculer différentes mesures à l'occasion de l'écriture d'un article (CG, JG, VO).
Les mesures sont étendues au croisement avec les structures des textes et à la gestion d'un corpus et d'une partition.
Ces macros sont accompagnées de macros préliminaires de contrôle de la cohérence des annotations (proto-validation des annotations d'un texte par rapport à la structure d'annotation utilisée). Elles ont été développées pour vérifier la cohérence des annotations entre plusieurs annotateurs (les mesures supposent une cohérence parfaite).
Cette macro liste pour chaque chaine d'un corpus la valeur de sa propriété 'Nom du référent' (par défaut) suivie des formes (par défaut) de ses unités successives.
Par exemple pour DESPERIERS ça donne ça pour la propriété 'word' (forme graphique) des mots :
Caillette: à Caillette, le povre Caillette, disoit, il, qu’il, sa, le, le, l’ha, l’ha, l’ha, Caillette, son, tu, Caillette, je, de ce sage homme Caillette, Caillette, qui, moy, luy, Caillette, Caillette, le, luy, luy, son, il, luy, il, Je, va auteur: LES pages, les pages, les pages, tous ses gens de bien de pages, leur, à tous l’un apres l’autre, vous, qu’ilz, tous, qu’ilz, les, n’en, tant d’honnestes jeunes gens, qui, tous, les autres, avec les pages, je un Seigneur de cour: un des Seigneurs de court, qui, qui, du Seigneur, ses lecteur: vous, vous, vous, vous un page (2): moy, qu’un, lequel, il, je auteur: mon, je, Moy, m’escouter, je, Mon Triboulet: Triboulet, Qui, ses, sa, Il, il, il, Il, luy, le, le, luy, vous, vous, vous, Triboulet, qui, son, luy, son, Triboulet, il, il, vous, son, Triboulet, il, je, je maitre de Triboulet: un maistre, povre maistre, tu, Ce maistre, je, son maistre, son maistre le cheval: son cheval, le cheval, qu’il, le, luy, luy, cheval, ce meschant cheval, le, il les hommes: d’hommes, lesquelz, ilz, savent, qu’ilz Polite: un autre fol nommé Polite, qui, Polite, mit, il, il, qu’il, il, tenoit, il, Polite, tu, Po lite, il Abbé de Bourgueil: à un abbé de Bourgueil, Monsieur l’abbé, luy, le, l’abbé, Moyne, moy, l’abbé, moy, moy, l’abbé, l’abbé, moy, le moyne, il, il le chantre: un chantre, qui, lequel, qu’il, qu’il, l’appelloyent, luy, luy, son, il, je, je, Je, je, Je, Sa, luy, te, luy, t’en, il, luy, t’oubliera, tu, luy, qu’il, ce Bassecontre, servoit, il, sa, qu’il, le povre chantre, luy, le Bassecontre, qu’il, qu’il, son, son, sa, il, il, qu’il, il, qu’il, il, il, pria, luy, sa, qu’il, il, qu’il, luy, luy, ce Bassecontre, sa, sa, le chantre, lequel, me, il, il, qu’il, Le chantre, Mon chantre, qui, venoit, luy, il, il, tu, tes, ce fol, le Bassecontre, il, Je, me, je, t’ha, tu, il, il, je, qu’il, tu, tu, il, apporta, qu’il, qu’il, son, luy, ses les chanoines: les chanoines, qui, qu’ilz, d’eux, tes chanoines, nous partie des chanoines: Monsieur, vous, vous, vous autres, d’eux, ilz, messieurs, ilz, des messieurs, qu’ilz, leur, ilz messieurs tel et tel: messieurs tel et tel, ceux, qu’il, leur, ilz, leur, d’eux, messieurs, eux principaux chanoines: aux principaux d’entre eux, les, l’un apres l’autre, qu’ilz, leur, leur, leur, les, leur, Ilz, ilz, qu’ilz, leur, messieurs, qui, tous, leurs, leur, ilz, ilz, ilz, ilz, chacun, leur, qu’ilz, leur, ilz, nous, nous, les nostres, les vostres, Les nostres, ilz, chacun, leurs, ilz, avons, les, Messieurs, voz, ilz, vous, vous autres messieurs, vous, chacun, soy, vous, vous, vous, vous, vostre, vous, voz, ilz, ilz, nous, nous, vous, leur, leur, ilz, allerent, conclurent, qu’ilz un chanoine: monsieur vostre maistre, il, il, il un chanoine2: je, l’un, j’avois, je un autre chanoine: l’autre, j’avois, je, moy valets chanoines: aux valetz, qui, qu’ilz on: on, qu’on, qu’on, qu’on
Si on coche l'option buildCQL de cette macro, on génère à la place une requête par chaine qui cherche tous les mots de ses unités.
Par exemple pour la chaine Caillette ça donne ça :
Caillette: ([id="w_Desperiers_17"] [id="w_Desperiers_18"])|([id="w_Desperiers_27"] [id="w_Desperiers_28"] [id="w_Desperiers_29"])|([id="w_Desperiers_35"])|([id="w_Desperiers_39"])|([id="w_Desperiers_46"])|([id="w_Desperiers_53"])|([id="w_Desperiers_65"])|([id="w_Desperiers_75"])|([id="w_Desperiers_92"])|([id="w_Desperiers_102"])|([id="w_Desperiers_108"])|([id="w_Desperiers_122"])|([id="w_Desperiers_126"])|([id="w_Desperiers_139"])|([id="w_Desperiers_150"])|([id="w_Desperiers_152"])|([id="w_Desperiers_177"] [id="w_Desperiers_178"] [id="w_Desperiers_179"] [id="w_Desperiers_180"] [id="w_Desperiers_181"])|([id="w_Desperiers_250"])|([id="w_Desperiers_255"])|([id="w_Desperiers_264"])|([id="w_Desperiers_276"])|([id="w_Desperiers_288"])|([id="w_Desperiers_349"])|([id="w_Desperiers_356"])|([id="w_Desperiers_363"])|([id="w_Desperiers_368"])|([id="w_Desperiers_374"])|([id="w_Desperiers_381"])|([id="w_Desperiers_388"])|([id="w_Desperiers_390"])|([id="w_Desperiers_394"])|([id="w_Desperiers_402"])
C'est un peu indigeste mais ça permet de commencer à exploiter les outils habituels de TXM avec les chaines.
Par exemple la concordance de la chaine Caillette donne ça (j'ai copié/collé la requête de Caillette dans le champ “Requête” d'une concordance) :
Du coup la concordance permet également de naviguer dans la chaîne par retour au texte :
Pour obtenir cet affichage :
On peut par ailleurs tester par exemple la Progression de plusieurs chaines, l'index des mots des unités d'une chaine, etc.
Le modèle URS de DEMOCRAT :
On limite une première version prototype au modèle DEMOCRAT :
On augmente le modèle DEMOCRAT pour préparer les interrogations :
On projette les propriétés de mentions / unités et de chaines / schémas :
<w u_mention_ref=",Pierre,Paul," u_mention_accessibilite=",Faible,Faible," u_mention_categorie=",GN.NAM,DET.POS," s_chaine_genre=",MASCULIN,MASCULIN," ... w_debut_u_mention=",Paul,">
La virgule sépare les valeurs de propriétés.
Les virgules se trouvant dans les valeurs de propriétés sont :
Après le traitement, il faut vérifier s'il n'y a pas d'ENS clachant, auquel cas message console détaillé (identifiant unités concernées, propriété, valeurs, etc.) et on demande de recoder les propriétés avant de relancer la demande de projection.
Note : la question se pose pour les tokens qui ne reçoivent pas d'information :
Nouvelle commande “URS2CQP” :
Formulaire des paramètres :
#URSQL de projection( nom propriété)( URSQL de condition) #type@propriété nom-propriete type@propriété=valeur MENTION@REF MENTION@ACCESSIBILITE MENTION@CATEGORIE MENTION@rangMention=1 u-mention-debut REF
CHAINE@GENRE
Pour coder/interroger aussi les identifiants de mentions pour les relations :
<w u_mention_identifiant=",M2,M3," u_mention_accessibilite=",Faible,Faible," u_mention_categorie=",GN.NAM,DET.POS," u_mention_ref=",Pierre,Paul,">
Pour améliorer l'ergonomie, on peut recoder :
Ce qui donnerait :
<w chaine=",REF42," debutmention=",REF42,"> <w chaine=",REF42,REF64,REF3," debutmention=",REF42,REF3,">
Interprétation :
On projette des informations de chaines et mentions :
On projette sur tous les tokens :
<w chaine=",Pierre," debutmention=",Pierre,"> <w chaine=",Pierre,Paul,Jacques," debutmention=",Pierre,Jacques,">
Un peu de généralisation indicative :
<w schema_de_type_A=",REF42," debut_d_unite_de_type_AA=",REF42,"> <w schema_de_type_A=",REF42,REF64,REF3," debut_d_unite_de_type_AA=",REF42,REF3,">
On teste ce modèle de projection : au niveau des mots, en supposant qu'un même mot peut appartenir à plusieurs mentions, et alors c'est l'ordre des valeurs dans chaque propriété qui permet d'associer les valeurs pour différentes propriétés.
Dès les premiers cas pratiques on s'aperçoit que cette projection est en fait très lourde à utiliser :
Bref, sur les quatre premiers cas on est mis en difficulté, et du coup on voit très vite qu'une projection qui travaillerait non pas au niveau du mot mais de la mention (en en faisant une structure) serait beaucoup plus approprié par rapport aux interrogations (même si évidemment on rencontrera davantage de limites en cas de chevauchements avec les autres structures du corpus). On teste alors ce nouveau cas de figure ci-après (§ macro URSUnits2CQPStruct).
Le modèle URS de DEMOCRAT :
Exemple de projection :
<mention ref="Pierre" categorie="DET.DEF" accessibilite="Faible" chaine-type="humain" chaine-genre="masculin" rang="3" debutmention="oui">Le jeune homme</mention> <mention ref="Pierre et Paul"...><mention ref="Pierre"...>Pierre</mention> et <mention ref="Paul" ...>Paul</mention></mention>
Exemples d'utilisation dans des questionnements
FRÉDÉRIC - DIAPORAMA CORLI - 25 OCTOBRE 2017
Comment les chaînes de coréférence sont-elles constituées ? (diapo 7)
On peut par exemple faire un INDEX des séquences de POS des maillons d'une ou toutes les chaînes, pour une ou toutes les catégories de maillons :
INDEX de <mention>[]+</mention> en frpos
(cette requête ne gère cependant pas des discontinuités de mentions)
Requêtes pour d'autres cas évoqués :
<mention>[_.mention_ref="Caillette"]+</mention> <mention>[_.mention_ref="Caillette" & _.mention_categorie="DET.DEF"]+</mention>
À quel rang dans une chaîne un démonstratif apparaît-il ? (diapo 7)
On peut faire le décompte pour les rangs qu'on veut (un à un ou en paquet) :
[mention & frpos=".*DEM" & _.mention_rang="1"] [mention & frpos=".*DEM" & _.mention_rang="([1-9]|10)"]
Quelle est la fréquence d'apparition des noms propres ? (diapo 7)
Toutes chaînes confondues :
[mention & frpos="NAM"]
Pour la chaîne de référent “Caillette” :
[_.mention_ref="Caillette" & frpos="NAM"]
Quelles sont les expansions des expressions référentielles ? (diapo 7)
On peut chercher les effectifs pour chaque longueur :
<mention>[]{1,1}</mention> <mention>[]{2,2}</mention> <mention>[]{3,3}</mention> etc.
ou classe de longueur :
<mention>[]{1,2}</mention> <mention>[]{3,4}</mention> <mention>[]{5,}</mention>
Quels sont les rôles thématiques privilégiés en début de chaîne ? (diapo 7)
On attrape un début de chaîne par :
<mention_rang="1">[]+</mention>
Mais comment identifie-t-on le rôle thématique ? On peut observer les réalisations en INDEX (est-il utile de choisir une certaine propriété d'analyse ?), en CONCORDANCE. On peut calculer les SPÉCIFICITÉS des réalisation au rang 1 par rapport aux réalisations quelque soit le rang (qu'on a regroupées et isolées en sous-corpus).
Peut-on prévoir des motifs dans la manière dont les chaînes se croisent ? (diapo 7)
On attrape les mentions d'une chaîne par une requête du type :
<mention_ref="Pierre">[] ou <mention_ref="Pierre">[]+</mention>
L'observation globale peut se faire en PROGRESSION, et locale en CONCORDANCE (et retour au texte en ÉDITION) en mettant mention:ref dans les localisations.
Y a-t-il corrélation entre un genre textuel et un type de chaîne ?
Pour un genre donné (ex. roman) et un type de chaîne donné (ex. humain), on calcule la spécificité du type de chaîne pour le genre avec la macro PlotSpecif :
T = nombre d'occurrences de <mention>[] t = nombre d'occurrences de <mention>[_.text_genre="roman"] F = nombre d'occurrences de <mention_chaine-type="humain">[] f = nombre d'occurrences de <mention_chaine-type="humain">[_.text_genre="roman"]
CATHERINE - GRILLE D'ANALYSE (document passé par Céline en 2015) et OUTILS DE MESURE (document envoyé par Catherine en 2018)
Il s'agit essentiellement de mesures, donc actuellement plutôt implémentées par des macros spécifiques.
Néanmoins on peut vérifier ici qu'on arrive, avec la projection CQP, à réaliser facilement la plupart des décomptes utilisés dans les mesures.
<mention>[]
<mention_rang="1">[] ou encore, si on veut ne compter que les chaînes comportant au moins 3 mentions par exemple : <mention_rang="3">[]
[mention]
<mention_ref="Caillette">[]
INDEX de <mention>[]+</mention> en frpos ou bien, si c'est la catégorie attribuée globalement à la mention qui nous intéresse, alors travailler sur la deuxième projection.
mentions avec au moins 1 enchâssement : <mention>[]*<mention>[]+</mention>[]*</mention> mentions avec au moins 2 enchâssements : <mention>[]*<mention>[]*<mention>[]+</mention>[]*</mention>[]*</mention> etc.
<mention>[]* a:[_.mention_ref="Caillette" & frpos="NOM|NAM"] []*</mention> []{0,100} <mention>[]* [_.mention_ref="Caillette" & word=a.word] []*</mention>
CHAINE debut milieu fin CHAINE-1 5 10 2 CHAINE-2 0 5 10 ...
Récupérer la dernière version dans sharedocs (répertoire de travail Democrat de lyon)
REF u/f ratio Dieu 5/10 0.5 Auteur 1/10 0.1 La moutarde 0/10 0.1 ...
Plusieurs résultats peuvent être obtenus par des transferts “génériques” :
(cette macro peut être appelée depuis le menu URS/Analec avec l'entrée “Créer des structures à partir des Unités” ou “Convertir Unités en Structures”)
On projette des informations XML encodées dans les unités URS pour construire des structures dans le XML-TXM, puis (potentiellement déformées : minusculisées, récursion limitée, pas de milestone) dans CQP. Par exemple, des informations d'encodage TEI pour obtenir des éléments TEI dans le XML-TXM.
Remarque : on peut créer une structure d'annotation prédéfinie dédiée à la TEI P5, avec ses éléments et leurs attributs (si les noms des éléments TEI sont encodés dans une propriété d'unité 'type', on ne pourra malgré tout pas contraindre les autres propriétés de l'unité à correspondre aux attributs de cet élément particulier). Les fonctionnalités de navigation dans les valeurs de propriétés aideront à accélérer l'annotation.
Extensions/Variantes possibles :
(cette macro peut être appelée depuis le menu URS/Analec avec l'entrée “Projeter les propriétés des Unités sur des mots” ou “Projeter les propriétés des Unités sur leur premier mot”)
On projette des informations de mots encodées dans les unités URS pour construire des propriétés de mots dans le XML-TXM, puis dans CQP (déformées).
Extensions/Variantes possibles :
Création de balises TEI “persName” à partir d'unités :
Création de paragraphes TEI p à partir d'unités :
Insertion de sauts de page TEI pb à partir d'unités :