[Put logo here]

Propositions de la TEI pour l'indexation:

encodage de texte ou encodage de donnée ?

Lou Burnard

C'est quoi, l'indexation?

Un index, au sens classique, fournit une manière de flècher au sein d'un texte continu :

  • des passages d'interêt, caracterisés d'une manière quelconque
  • des références à des unités lexicales ayant un intérêt sémantique
  • notamment les noms de lieux, de personnes, des évènements, ou des objets etc

Un index est donc un ensemble (d'habitude organisé et structuré) de pointeurs, chacun contenant un label, et une déscription

Balisage et indexation

‘Markup reflects a theory of text’ (Sperberg-McQueen, 1991)

On pourrait considérer que l'acte même de balisage serait une forme d'indexation...

Mais c'est habituel de distinguer

La balise <index>

La TEI propose un élément spécifique pour faciliter la création d'un index classique

... The Tangerine Dream (où officiaent deux danseuses du ventre Zazou et Asiza)...
<p>... The Tangerine Dream <index>   <term>    <hi>Tangerine Dream</hi> Cabaret      parisien</term>  </index> (où officiaent deux danseuses du ventre Zazou et Asiza)... <index>   <term>ZAZOUA danseuse du ventre</term>  </index>  <index>   <term>ASIZA danseuse du ventre</term>  </index> ... </p>
L'attribut indexName permet de spécifier un index particulier:
<p>... The Tangerine Dream <index indexName="Index-des-lieux">   <term>    <hi>Tangerine        Dream</hi> Cabaret parisien</term>  </index> (ou officiaent deux danseuses du ventre Zazou et Asiza)... <index indexName="Index-des-personnes">   <term>ZAZOUA danseuse      du ventre</term>  </index>  <index indexName="Index-des-personnes">   <term>ASIZA danseuse du ventre</term>  </index> ... </p>

On peut aussi specifier une hierarchie des termes :

<p>... The Tangerine Dream <index>   <term>Cabaret parisien</term>   <index>    <term>Tangerine Dream</term>   </index>  </index>...</p> <p> ... Le Petit Casino <index>   <term>Cabaret parisien</term>   <index>    <term>Petit Casino</term>   </index>  </index> </p>

Attention: comme ailleurs, la prise en charge de la création des indexes à partir de cette balisage n'est pas assurée par la TEI!

Indexation et représentation des expressions référentielles

Révéler la vraie sémantique d'un document ... la rêve des indexeurs

Sommaire des propositions de la TEI pour les expressions référentielles

Quelques exemples des expressions qu'on pourrait souhaiter distinguer/annoter/indexer

<name>Nancy</name> est adorable... <placeName>Nancy</placeName> est ma ville préférée ... <rs>Elle</rs> est jolie.

Grosse question : comment s'exprime la sémantique du balisage TEI ?

Encodage des références (1)

Un élément très générique est disponible en TEI : il s’agit de <rs>, qui signifie « expression référentielle » (referencing string)

Il peut contenir un nom propre, mais aussi un pronom, une périphrase, ou toute autre façon de référencer un objet identifiable

<rs>le président de la république</rs> <rs>la personne que j'ai rencontrée dans la rue</rs> <rs>sa ville préférée</rs>

Mais ceux-ci sont peut-etre plus douteux:

<p> D'<rs>une ville inconnue</rs> elle s'est retirée dans une <rs>thébaïde</rs> </p>

<rs>: une balise qui fait tout

<rs type="org">La famille</rs> s'était alors retirée en banlieue, à <rs type="place">Villemomble</rs>, mais <rs type="person">Alfred</rs> aimait se rendre à <rs type="place">Paris</rs> et <date>un jour de 1917</date> alors qu'il sortait de <rs type="place">la musée des Arts et Métiers</rs> il était tombé inanimé dans <rs type="place">la rue</rs>....

Attention: les valeurs de l'attribut type ne sont pas forcément contrôlés de la TEI

Un élément plus spécifique existe pour distinguer les noms propres des autres types de référence: <name>...

<rs type="org">La famille</rs> s'était alors retirée en banlieue, à <name type="place">Villemomble</name>, mais <name type="person">Alfred</name> aimait se rendre à <name type="place">Paris</name> et <date>un jour de 1917</date> alors qu'il sortait de <rs type="place">la musée des Arts et Métiers</rs> il était tombé inanimé dans <rs type="place">la rue</rs>.

Des éléments plus précises...

Au lieu d'une balise <name type="xxx">, la TEI propose une balise <xxxName>

Quel est l'interêt de ce type d'encodage (dite "sémantique")?

Encodage des références aux personnes

L'élément <persName> s'applique à tout nom propre ou périphrase qui fait référence à un personnage, réel ou imaginaire

<persName>Michel Eyquem de Montaigne</persName>
<persName>Christopher Robin</persName>
<persName>Geoffroy Grisegonelle</persName>

Les noms personnel peuvent avoir une structure intéressante et complexe...

Composants des noms de personnes

<persName>  <forename>Geoffroy</forename>  <genName>Ier</genName>  <roleName>comte d'<placeName>Anjou</placeName>  </roleName>  <nameLink>dit</nameLink>  <addName>Grisegonelle</addName></persName>
<persName xml:lang="ru">  <forename type="first">Владимир</forename>  <forename type="patronymic">Владимирович</forename>  <surname>Маяковский</surname> </persName>
<persName xml:lang="ara">  <surname>بن نوح</surname>  <forename>الحسن</forename>  <addName type="kunyah">أبو منصور</addName>  <addName type="nisbah">القمري</addName> </persName>

Encodage des références aux lieux

L'élément <placeName> s'applique à tout nom de lieu absolu ou relatif, reel ou imaginaire par ex. le nom d’un bâtiment, village, ville , pays ...

<placeName>Eglise Saint-Christophe à Tours</placeName>

Les éléments de ce type souvent s'imbriquent...

<placeName>Église <persName>   <roleName>Saint</roleName>-Christophe  </persName> à <placeName>Tours</placeName> </placeName>

Encodage des références aux organisations

L'élément <orgName> s'applique au nom d’une organisation, d’une institution, d'une societe, ou même d'un tribu.

<orgName>Les Beatles</orgName>
<orgName>Microsoft Inc</orgName>
<orgName>Chapitre de <persName>   <roleName>Saint</roleName> Léon </persName> </orgName>

Encodage des références aux objets geographiques

L'élément <geogName> s'applique aux noms ayant une caractéristique géographique (un mont, une fleuve, une vallée ... )

Il peut contenir un élément <geogFeat> qui s'applique a un nom commun (par ex. mont, fleuve, vallée, montagne...) contenu par le nom géographique

<geogName>  <geogFeat>Dune</geogFeat> de <name>Pilat</name> </geogName>

Enrichissement progressif d'un texte

<p>La demande de construction a été addressée par le sieur <name>Hag Ahmed Mohamed</name> pour bâtir son terrain à côté de la mosquée <name>Suyadi Mohamed el-Anouar</name>, sise à chara <name>el-Sayeda Sekina</name> </p>
<p>La demande de construction a été addressée par le sieur <persName>Hag Ahmed    Mohamed</persName> pour bâtir son terrain à côté de la mosquée <placeName>Suyadi    Mohamed el-Anouar</placeName>, sise à chara <name>el-Sayeda Sekina</name> </p>
... sise à chara <placeName>el- <persName ref="https://www.wikidata.org/wiki/Q584737"> Sayeda Sekina </persName> </placeName>

Un <persName>n'est pas un <person>!

Dans un texte nous trouvons souvent plusieurs références à la même personne de manières différentes
...<persName>Clara Schumann</persName> ...<persName>Clara</persName> ...<persName>Frau Schumann</persName> ...

Nous considérons que tous ces noms réfèrent à la même personne. Comment le signaller ?

De même, il arrive que nous trouvons des noms identiques qui (à notre avis) réfèrent à des personnes différentes. Comment le signaller ?

La TEI propose deux attributs, disponibles sur tous les éléments de dénomination, pour spécifier à quelle entité on réfère :

...<persName ref="#CS">Clara Schumann</persName> ...<persName ref="#CS">Clara</persName> ...<persName ref="#CS">Frau Schumann</persName> ...

#CS est un URI: il devrait correspondre à un autre élément de notre document (a priori un <person>)

Relier les noms propres à des ontologies externes

Toutes les balises de références textuelles permettent également ce type de connexion à des referentiels (ou ontologies) externes

<persName ref="http://viaf.org/viaf/44499359"  type="person">Clara</persName>
<persName key="Schumann, Clara (1819 1896)">Clara</persName>

Cette mécanisme permet la résolution des ambiguités en rendant explicite une interprétation du texte

Les entités TEI (1)

TEI propose des éléments spécifiques pour regrouper des informations concernant les entités nommées (en plus de leur noms):

Par exemple voici notre connaissance d'un certain Wladimir Maïakowski :
<person xml:lang="frxml:id="VM1893">  <persName xml:lang="ru">Владимир Владимирович Маяковский</persName>  <persName>Wladimir Maïakowski</persName>  <birth when="1893-07-19">7 July (OS) 1893, <placeName ref="#BGDT">Baghdati,      Georgie</placeName>  </birth>  <death when="1930-04-14"/>  <occupation>   <p>Poète et dramaturge, l'un des plus éminents représentants du futurisme      de la Russie du début du XXe siècle.</p>  </occupation> <!-- ... --> </person>

L'élément <person> (vel sim) ne contient pas une transcription, mais des annotations

Traits, états et événements

Le variéte des informations que l'on pourrait souhaiter retenir pour une entité nommée est vaste -- et donc impossible de standardiser de manière exhaustive. La TEI fournit trois éléments génériques, et quelques-uns plus spécifiques.

Les elements génériques:

Les éléments plus spécifiqes

Pour les personnes :

états
par ex <occupation> le métier, <residence> la résidence, <education>,l'éducation
traits
par ex <faith> la foi, <sex> le sexe, <socEcStatus>, le statut social
événements
par ex <birth> la naissance, et <death> la mort

Pour les lieux :

états
par ex <terrain>, <climate>, <location>, <population>
noms (en ordre hiérarchique)
par ex <bloc> (regroupement de pays), <country> (pays ou unité administratif pareil), <region> (sous-division administrative d'un pays), <settlement> (lieu d'habitation), <district> (sous-division de settlement)

Lieux

Pour les lieux, la TEI prévoit plusieurs types de déscription :

Notons que toutes ces données (même la dernière) sont des états -- elles peuvent changer avec le temps -- des attributs (notBefore etc.) sont disponibles pour associer une information avec le temps

Regroupements et responsabilités

On peut regrouper les entités dans une liste pour construire une espèce d'index :

<listPerson>  <head>Personnes citées dans ce document</head>  <person xml:id="AA1873">   <persName>Anna Akhmetova</persName> <!-- ... -->  </person>  <person xml:id="VM1893">   <persName>Vladimir Mayakovsky</persName> <!-- ... -->  </person> </listPerson>

Et pareillement on peut regrouper des <place> dans une <listPlace>, des <event> dans un <listEvent> etc.

On peut indiquer l'agence responsable d'une annotation et sa certitude avec des attributs resp et cert, respectivement:
<org xml:id="MXYtype="tribu"  resp="#herodote">  <orgName>Les Maxyens</orgName>  <country>Lybie</country>  <desc>Selon Hérodote, c'était une tribu de Lybie occidentale qui disait être la    descendante des Troyens</desc> </org> <!-- ... dans le texte --> <p> ... Il s'agit des <orgName resp="#LBref="#MXYcert="low">maxiliens</orgName> ... </p>

Datation des propositions

Autres calendriers

L'attribut calendar sert à indiquer le calendrier dans lequel une date est exprimée

<date calendar="#cal_AHwhen="0676-06-08">20 Rajab, 56</date> <!-- implique une définition dans l'entête par ex --> <calendarDesc>  <calendar xml:id="cal_AH">   <p>Anno Hegirae (Muhammedan Era)</p>  </calendar> </calendarDesc>

Par défaut les dates sont normalisées par rapport au calendrier chrétien gregorien; l'attribut custom-when permet l'indication d'une normalisation par rapport au calendrier spécifié.

Epoques historiques

On peut définir un <period> (époque) et référer à cela de la même manière :
<placeName period="#hellenistic">Stauropolis</placeName> <!-- nécessite une définition dans l'entête par ex --> <category xml:id="hellenistic">  <catDesc>   <ref target="http://www.wikipedia.com/wiki/Hellenistic">Hellenistic</ref>: Se dit de    la periode <date notBefore="-0323notAfter="-0031">après la mort d'Alexandre      jusqu'au <date when="-146">conquête romaine</date>   </date>  </catDesc> </category>
ou, plus directement,
<placeName period="http://www.wikipedia.com/wiki/Hellenistic">Stauropolis</placeName>

Vers le "placeography"

Par exemple: le lieu de naissance de Mayakovsky

<place xml:id="BGDT">  <placeName xml:lang="ka">ბაღდათი</placeName>  <placeName xml:lang="en">Baghdati</placeName>  <placeName notAfter="1990"   notBefore="1940xml:lang="ru">Маяковский</placeName>  <location type="geopolitical">   <country>Georgia</country>   <region>Imereti</region>  </location>  <location type="physical">   <offset>West of</offset>   <placeName>    <geogFeat>River</geogFeat>    <geogName>Khanistskali</geogName>   </placeName>   <geo>42.102298,42.832947</geo>  </location>  <population when="2007">   <p>4,700 people</p>  </population> </place>

Les éléments TEI prévus pour l'encodage des entités ressemblent plus aux notices textuelles qu'aux données structurées. Ils sont (apparemment) destinés à être lus par un humain et non pas par un automat.

Les relations entre les lieux

La TEI propose des méthodes simples pour indiquer

<place xml:id="LT">  <country>   <placeName xml:lang="lt">Lietuva</placeName>   <placeName xml:lang="fr">Lituanie</placeName>   <placeName xml:lang="en">Lithuania</placeName>  </country>  <place xml:id="LT-VN">   <settlement>Vilnius</settlement>  </place>  <place xml:id="LT-KA">   <settlement>Kaunas</settlement>  </place> </place>

... mais comment indiquer d'autre relations, par ex ‘Vilnius est la capitale de Lietuva’ ou ‘Kaunas est loin de Vilnius’ ?

Les relations personnelles

Exemples

<person xml:id="jsbach">  <persName>Johann Sebastian Bach</persName> </person> <person xml:id="mbbach">  <persName>Maria Barbara Bach</persName> </person> <person xml:id="cdbach">  <persName>Catharina Dorothea Bach</persName> </person> <person xml:id="ghbach">  <persName>Gottfried Heinrich Bach</persName> </person> <!--….--> <relation type="marriage"  mutual="#jsbach #mbbachfrom="1707to="1720"/> <relationGrp type="children"  subtype="first-marriage">  <relation name="parentactive="#jsbach"   passive="#cdbach"/> <!--….--> </relationGrp> <relationGrp type="children"  subtype="second-marriage">  <relation name="parentactive="#jsbach"   passive="#ghbach"/> <!--….--> </relationGrp>

L'élément <relation> pourrait également servir à représenter des relations entre lieux :

<relation type="capitalCity"  active="#LT-VNpassive="#LT"/> <relation type="farApart"  mutual="#LT-VN #LT-KA"/>

N'oublions pas qu'un nom peut être considéré un entité!

Pour certaines raisons (onomastique, étymologie...) les noms propres existent indépendamment de leur relation à une entité.

Les éléments <nym> et <listNym> peuvent être utilisés pour rappeler une information concernant un nom considéré comme une entité, et l'attribut nymRef peut être utilisé pour lui associer le ou les noms..

<nym xml:id="VLAD">  <nym>   <form xml:lang="ru">Владимир</form>   <etym>from <lang>Slavonic</lang> Влад (rule) + мѣр (fame), changed by folk      etymology into мир (world)</etym>   <nym>    <form>Vlad</form>   </nym>   <nym>    <form>Volodya</form>   </nym>  </nym>  <nym>   <form xml:lang="da">Valdemar</form>  </nym>  <nym>   <form xml:lang="de">Waldemar</form>  </nym> </nym> <forename type="firstnymref="#VLAD">Владимир</forename>

Quoi faire avec toutes ces balises?

Exemples : le projet ReNom ; le projet Pelagios ; le projet MoEML

Index des personnes : exemple

https://renom.univ-tours.fr/fr/index/personnes/avicenne

Comment effectuer ce balisage ?

Rappel: il nous faut des moyens ...

La reconnaissance automatique des ‘entités nommées’ -- NER -- est devenu une application classique dans le domaine de TAL

Les référentiels se prolifèrent en format "linked open data" (LOD)

Outil typique de cet approche: Recogito

Voir le tutoriel Données liées et annotation de corpus de Francesca Frontini (CAHIER, Montpellier, 2018)

Quid de RDF et LOD?

Comment intégrer RDF en TEI ?

La TEI partage les objectifs fédératifs et "open" de LOD. Mais sa sémantique est plus dispersée. Elle ne simplifie pas les documents : on peut la lui reprocher, mais la sémantique d'un ensemble de documents TEI est souvent dispersée dans son balisage d'une manière peu cohérente.

Par contre, la sémantique d'une page web qui fournit par ex. les prix, les détails téchniques, les couleurs disponibles, etc pour un gadget quelconque peut facilement être extraite, et en l'exprimant, on exprime toute la portée de ce page.

On peut s'imaginer plusieurs méthodes pour intégrer une description RDF dans un document TEI

Ca se discute depuis 2013... pour une synthèse récente, voir https://github.com/TEIC/TEI/issues/1860

A la recherche d'une ontologie TEI

c'est bien possible... mais la TEI est conçue pour les documents, et les documents ne sont pas des ensembles de données abstraites ou objectives.

Un document doit etre interprété: il faut compléter sa modélisation avec son/ses interpretation/s...

Science de texte: science de données

... et de même pour les données!

Il ne faut pas sous-estimer l'importance du contexte de production/consommation des données, non plus.

All data is historical data: the product of a time, place, political, economic, technical, & social climate. If you are not considering why your data exists, and other data sets don’t, you are doing data science wrong”

Les données ont toujours un aspect historique - elles ressortent d'un temps, d'un endroit, ou d'un climat socio-économique spécifique. Si vous ne mettez pas en question les raisons pour lesquelles vos données à vous existent et d'autres sont disparues, alors vous pratiquez incorrectement la science de données

[Melissa Terras, Opportunities, barriers, and rewards in digitally-led analysis of history, culture and society. Turing Lecture 2019-03-03, https://www.youtube.com/watch?v=bf6DsJ7VcLI]

‘Text is not a special kind of data: data is a special kind of text’