Navigation – Plan du site
Le texte à l'épreuve du numérique

Isilex, un serveur et gestionnaire de contenus collaboratifs REST XQuery au service des humanités numériques : l’exemple de la Bible historiale

Isilex, a Collaborative REST XQuery CMS for Digital Literacies : About the Bible Historiale
Xavier-Laurent Salvador
p. 97-114

Résumés

Dans le contexte des humanités numériques, il est désormais possible de développer de nouveaux moyens de représentations des données textuelles affranchies de la logique documentaire. Isilex <http://www.isilex.fr> est un gestionnaire de contenus XML en même temps qu’un serveur Web basé sur la philosophie innovante du Web intitulée REST et basée sur les possibilités de programmation offertes par la bibliothèque Full-Text d’XQuery. Il permet de penser de nouveaux moyens pour la mise en ligne immédiate d’encyclopédies et de corpus.

Haut de page

Texte intégral

  • 1 X.-L. Salvador, Étymologie et archéologie du sens à travers le livre de l’Exode de la Bible Histori (...)
  • 2 Voici la version de la Vulgate : « tulitque decem camelos de grege domini sui et abiit ex omnibus b (...)

1Penser le corpus du texte biblique médiéval, notamment en français, c’est être amené à penser la polyphonie. Les moyens d’édition et de publication hérités de la modernité (c’est-à-dire des traditions nées dans les premiers ateliers d’imprimerie de la Renaissance) ne permettent pas d’exploiter le codex de manière à représenter la richesse du travail de l’auteur médiéval. Dans la Bible historiale de Guyart des Moulins, première bible en prose traduite intégralement en français avec son exégèse historique à la fin du xiiie siècle, les références bibliques sont croisées, comme j’ai pu le démontrer ailleurs1, avec les commentaires des exégètes aussi bien qu’avec des interventions personnelles de la main du traducteur. À partir du moment où il y a traduction, ou plutôt transvasement du sacré d’un coffre à un autre, l’opération s’accompagne d’un sentiment de déperdition informative qui est l’image linguistique d’une impression de corruption de l’originalité de la parole divine. Ce sentiment entraîne, pour le traducteur, le besoin de compenser cette dépréciation de l’objet par un ensemble de procédés qui ont pour but de valider l’authenticité du texte. La conjonction de l’Histoire Scolastique et de la Vulgate en est le moyen le plus flagrant. Un autre moyen tout aussi frappant est l’apparition d’une autorité insérée dans le corps même de l’ouvrage, comme on peut en trouver un exemple en Gn. 24,102 :

  • 3 Transcription du ms. Paris, BnF, Arsenal 5059.

Donc prist il .x. chamaux du fouc son Seigneur si s’en ala et porta avec lui de tous les biens son Seigneur mesmement de ceulx qu’il savoit qu’il y avoit peu en la terre ou il aloit ce dist le maître en histoires si s’en ala en Mesopotarmie a Charan la cité Nachor. Cy dist Josephus qu’il vint a grant travail et grant temps mist car il y a la parfondes ces en yver et en ete grant faulte d’yaue et es landes grant plantes de larrons3.

On voit bien comment le texte de la Bible Historiale se donne comme un discours polyphonique, les autorités intervenant dans le texte pour cautionner l’ouvrage français, fidèle à l’authenticité du discours telle que les contemporains de la traduction se la représentent en lien avec une forme « d’immanence sémantique ». Rita Copeland explique parfaitement que :

  • 4 « As early Christian semiology accords human language a secondary, although necessary, role in rela (...)

De même que la sémiologie du christianisme ancien attribue au langage humain un rôle secondaire, bien que nécessaire, par rapport à la primauté et à la stabilité de la signifiance divine, de même la théorie patristique de la traduction s’intéresse principalement à la récupération d’un sens vrai au-delà des accidents de la diversité linguistique humaine […] ; mais alors que la théorie romaine cherche à éliminer la différence (même quand elle la reconnaît) en rejetant la revendication originaire de la source et en substituant le latin au grec, la critique patristique s’efforce davantage de résoudre la différence en pointant vers une communauté de source et d’objectif du fait d’une signification immanente4.

Les exemples sont très nombreux et nous les avons ailleurs largement documentés. Les moyens de penser un corpus comme celui de la Bible Historiale amènent tout naturellement à s’orienter vers des pistes de représentations du texte qui incluent, en amont, la possibilité d’un travail pérenne pour une équipe sur le long terme et, en aval, la possibilité de consulter le texte, ses références, ses variations, ses traductions dans toutes les langues, afin de permettre à un moteur de recherche de cibler la donnée et d’en extraire la clé interprétative de manière semi-automatique sous la forme d’une synopse.

2C’est dans ce contexte que nous avons proposé le développement d’un outil de saisie et de mise en ligne de corpus automatisés, Isilex5. Les choix théoriques qui ont présidé au développement d’Isilex sont intimement liés au développement des humanités numériques. Il faut orienter les bases de données vers les problématiques de la science du texte et de la connaissance nouvelle6. C’est pourquoi nous avons fait le choix de travailler dans un univers qui accorde toute sa valeur à la profondeur de la donnée dans le contexte des small data. Le choix s’est naturellement porté sur des options technologiques qui accordent leur place à l’innovation.

Isilex, un gestionnaire de contenus
qui lie des URL à des algorithmes

  • 7 Dans la logique de l’adressage des données, l’URL ou « Localisateur Uniforme de Ressources (angl., (...)
  • 8 X.-L. Salvador, « Indexer des documents du dedans : quels moyens de répondre à la question du lieu (...)
  • 9 T. Berners-Lee, Cool URIs don’t change, http://www.w3.org/Provider/Style/URI, 1998.
  • 10 « […] the solution advocated in REST […] states that instead of files, documents, objects, and so f (...)
  • 11 R. T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, thèse (...)

3Nous avons privilégié une philosophie Web, largement exploitée, dénommée REST, qui rompt avec la représentation de l’URL7 comme dénomination du document enregistré au profit d’une évaluation de l’URL comme « lieu de la donnée8 » au cœur du document. Comme Alexandre Monnin, nous concluons qu’au souci posé par l’instabilité de l’actualisation des URI soulevé par Tim Berners-Lee9, « la solution préconisée dans REST […] affirme que, au lieu de fichiers, de documents, d’objets, etc., ce à quoi se réfère un URI est une “ressource”. […] Une ressource peut planifier jusqu’à un champ vide, ce qui autorise de faire des références à un concept avant que n’existe une réalisation de ce concept – notion qui était étrangère à la plupart des systèmes hypertextes antérieurs au Web10 ». L’idée est que le serveur logiciel, plutôt que d’être lié à un stockage permanent dont il subit l’administration des droits d’écriture, évalue chaque URL comme le déclencheur d’un algorithme. À chaque invocation d’une URL dans le navigateur, on associe non pas un document, mais une fonction logicielle développée dans un langage prédéterminé. Cette option, développée par Roy Fielding dans sa thèse11, est assez innovante car elle libère le serveur des contraintes qui liaient la consultation d’une collection de données aux logiciels serveurs. Avec le développement de la logique REST, l’URL cible potentiellement un grand réservoir de représentations de données formées grâce à l’URL elle-même, et non pas consultées grâce à l’URL. Cette différence majeure entre la représentation de la donnée et sa formation offre une puissance non négligeable au chercheur en sciences du texte, puisque le formant, l’URL, permet de faire du client Web un co-constructeur de la ressource qu’il consulte. L’œuvre n’est donc plus pensée en amont par un auteur ou un concepteur-éditeur, mais est retaillée immédiatement au prisme du regard que le lecteur pose sur elle. Dans le cas qui nous préoccupe particulièrement, à savoir la Bible historiale, la question n’est donc plus de penser la Bible en ancien français, ou en latin, ou en grec, avec des liens vers ses commentaires, mais plutôt de construire un réservoir de données en base qui offre au lecteur la possibilité de construire la synopse et le lien qu’il désire, le site étant un atelier au sein duquel se déploie l’imagination créatrice du chercheur. Ce faisant, on abolit l’obstacle constitué par la maîtrise de l’outil en favorisant le développement de la ressource.

  • 12 X.-L. Salvador, XML pour les linguistes (avec une préface d’Henri Portine), Paris, 2016.
  • 13 http://basex.org/.

4L’orientation vers des bases de données entièrement débarrassée de SQL est naturelle dans les sciences du texte dans la mesure où XML s’est depuis longtemps imposé comme un standard de la représentation des lieux de données12, même si parfois c’est pour de mauvaises raisons. Les bases de données non relationnelles en effet, comme les bases de données XML, sont adaptées à la représentation des données textuelles parce que leur mode d’indexation offre une prise en compte de la variabilité des degrés de profondeur que ne permettent pas les logiques tabulaires et matricielles des bases de données relationnelles. Autrement dit, dans la mesure où il n’est jamais possible de prédire le degré de diffusion de données dans un texte (on ne peut pas rapporter un texte à un nombre préconstruit de champs qu’il faudrait remplir), la logique des Markup Languages, au premier rang desquels XML, offre un mode de représentation certes bavard mais efficace. De plus, l’objectif des bases de données en humanités numériques s’orientant très souvent – pour les historiens, les juristes, les littéraires comme pour les géographes – vers la mise à disposition du public de représentations numériques des données de leur discipline, soit sur le Web, soit sous des formats standardisés du monde de l’édition conformes aux préconisations du consortium mondial pour les usages des technologies du Web (W3C), il semble naturel de se diriger vers un serveur de bases de données comme BaseX : développé par l’équipe de Christian Gruën à l’Université de Konstanz13, il permet d’adosser très solidement des bases de données au format XML indexées à des applications Web obéissant au modèle de philosophie REST.

5C’est donc pour répondre à cette double contrainte – la publication du texte de la Bible Historiale et la mise en ligne de données en sciences du texte – qu’est né le gestionnaire de contenu et serveur de bases de données Isilex.

XML

6Le formalisme XML, parfaitement documenté à travers les préconisations du W3C, nous semble particulièrement adapté au projet que nous venons de décrire. De quoi s’agit-il concrètement ? Pour le comprendre, il est nécessaire de se représenter le texte informatique et sa manifestation comme une succession de couches progressives d’abstraction. À ce titre, le caractère informatique constitue le premier degré d’abstraction. Un texte est un flux qui se présente sous la forme d’un ensemble de dessins et d’images (les « glyphes ») qui correspondent pour l’œil humain à des caractères. Il ne faut toutefois pas oublier que l’encre première du texte numérique est la chimie du silicium, et que la collection de glyphes qui forme les énoncés lisibles est issue de la symbolisation par l’image d’une représentation logique et binaire des états électriques des cartes mémoires de nos machines. Cette représentation est compressée pour des raisons d’économie de temps en hexadécimal, puis associée à un troisième étage de représentation, le caractère abstrait dont la table d’encodage établit un lien avec une image : le caractère lisible. Tout fichier au format .txt. (texte) est donc le résultat d’une succession d’opérations de symbolisations des états électroniques.

Fig. 1 : Représentation hexadécimale d’un fichier vidéo

Fig. 1 : Représentation hexadécimale d’un fichier vidéo

Source : logiciel open source Hex Friend.

  • 14 Ibid., p. 78.

7Le deuxième degré d’abstraction consiste à penser l’organisation de la donnée. C’est à ce niveau qu’interviennent le formalisme XML et tous les conventionnements qui en découlent (RDF, OWL, SKOS14), qui reposent sur une convention typographique extrêmement simple mais très puissante : inscrire ce qui concerne les données entre chevrons (le diplè « < », ou caractère anti-lambda qu’utilisaient Isidore de Séville et les commentateurs bibliques pour introduire une glose (fig. 2)), inscrire en dehors des chevrons ce qui relève de la donnée.

Fig. 2 : Première définition de l’usage des chevrons par Isidore de Séville

Fig. 2 : Première définition de l’usage des chevrons par Isidore de Séville

Isidore de Séville, Etymologiae, Liber XXI, v. 13 : « > diplè : nos copistes placent ce signe dans les livres des gens d’Église pour séparer ou pour signaler les citations tirées des Saintes Écritures. »

De cette dernière proposition découle que les informations de structure entre chevrons relèvent d’une économie de la parenthèse : à un bloc entre chevrons ouvrant (<a>) correspond un bloc fermant (</a>). Considérons qu’une ligne du texte de la Bible soit une donnée : le formalisme XML permet d’instruire dans le fil du texte lui-même une méta-information dans le corps du texte : <verset>abcde</verset>. Ici, « abcde » est une donnée (le texte lui-même) et le balisage structure cette donnée en fonction d’une information discrète mais pertinente pour le lecteur : c’est un « verset ». La sémantique du nom de la balise n’est signifiante que pour le lecteur humain ; toutefois, au regard de la machine, il n’est pas indifférent que cet extrait de texte soit nommé : la balise devient un niveau hiérarchique de l’information.

8La nature particulière de cette structure balisée permet de distinguer ce qui relève de la classe d’information (ici « verset ») des spécifications portées par des attributs. En l’occurrence, une structure similaire pourrait être illustrée par l’exemple suivant, où l’attribut sémantiquement signifiant pour le lecteur, « nature = ‘glose’« , caractérise un sous-ensemble de la classe « verset » en apportant deux informations liées, à savoir qu’il existe un attribut de la classe « verset » qui se nomme « nature » et que cette « nature » peut prendre au moins une valeur, en l’occurrence « glose » :

<verset nature = ‘glose’>abcde</nature>

9Le troisième degré d’abstraction est impliqué par la structure imbriquée des blocs de balisage. De même qu’une parenthèse doit être fermée avant qu’une autre ne s’ouvre, des blocs marqués entre des balises sont systématiquement inclus les uns dans les autres.

10Il est juste d’écrire :

<Bible>
<paragraphe>
<titre> </titre>
<texte> </texte>
</paragraphe>
</Bible>

11Il est faux d’écrire :

*<Bible>
<paragraphe>
<titre> </titre>
*</Bible>
</paragraphe>

12De cette structure imbriquée naît l’idée que tout bloc de texte est en fait une structure hiérarchiquement organisée dans le temps, à savoir une généalogie. Dans l’exemple précédent, il est admis de décrire chacun des blocs en termes de filiation et de fraternité : <paragraphe/> est fils de <Bible/>, <titre/> et <texte/> sont frères. Dans le déroulement de cette généalogie (fig. 3), chacun des noms de balise constitue un nœud d’embranchement, tandis que l’axe selon lequel se déroule la filiation constitue une branche.

Fig. 3 : Représentation d’une généalogie XML du livre de l’Exode

Fig. 3 : Représentation d’une généalogie XML du livre de l’Exode

13Reste finalement que l’extrême avantage du formalisme XML demeure également son point faible : le caractère laxiste de la description des métadonnées ouvre la porte à de multiples interprétations de la part des opérateurs de saisie – ce qui peut aboutir très vite à une forme d’anarchie dans le choix des lexiques déterminant les classes et les spécifications. Il est extrêmement avantageux de pouvoir exercer une contrainte sur la structure d’une base de données en décrivant dans un document annexe la fiche prototypique à laquelle toute saisie successive doit obéir, de manière à uniformiser le formalisme. On touche là un quatrième degré d’abstraction, matérialisée par un document texte secondaire qui est lié à tout document XML et qui en décrit le contenu, soit en respectant une syntaxe propre (DTD), soit en suivant le fonctionnement d’un méta-schéma XML : XSD. Enfin, au sommet de cet empilage de normes d’encodage de l’information, se trouvent placées les propositions de normalisation et de dénomination des lieux de données en fonction d’objectifs communs, comme l’édition et la publication en ligne par exemple, qui s’est dotée, avec la TEI, d’un lexique commun de représentation numérique du codex. Ce jeu de convention, qui n’a aucune efficacité sur la représentation de l’objet en ligne par exemple, est en revanche un excellent moyen opératoire pour le transfert et le partage de connaissances.

  • 15 Il s’agit de l’ensemble des moyens de localiser et, en même temps, de consulter une donnée document (...)

14La structuration généalogique de l’information pose toutefois la question de l’adressage15 de l’information et de son accessibilité. Par adressage, nous renvoyons à tous les moyens de conventions qui identifient des lieux dans une chaîne textuelle (on peut penser aux coordonnées d’un tableau, aux offsets d’une chaîne binaire, aux balises d’un formalisme XML, aux conventions XPath). Prenons par exemple un texte structuré de la manière suivante :

1. <Bible>
2. <paragraphe type =‘Bible’>
3. <ref>
4. <chapitre n =‘1’/>
5. <verset n =‘1’/>
6. </ref>
7. Et Dieu dist :
8. </paragraphe>
9. <paragraphe id =’glose’>Josephust dist que [...]</paragraphe>
10. </Bible>

On distingue ici un bloc hiérarchiquement le plus élevé (lignes 1 à 10 : « Bible »), qui est en quelque sorte la racine de l’arborescence. On constate qu’il existe deux natures de paragraphes (« Bible » et « glose » ligne 9) et un bloc de référence (ligne 3 à 6 « ref ») qui comporte une référence de chapitre et une référence de verset. Si la numérotation est pertinente pour le regard du lecteur humain, elle est insignifiante dans le contexte de l’indexation d’une base de données, où la structure linéaire est fragmentée pour être recomposée ensuite. Il faut donc pouvoir nommer précisément l’adresse où se trouve la référence du chapitre concerné, adresse qui serait la même à chaque fois pour tout verset indépendamment du contexte du paragraphe. Ici la donnée relève de l’affectation de l’attribut (« n = 1 ») ou de l’affectation de la valeur du bloc instruit par XML. Pour naviguer dans une telle généalogie, on recourt à un système conventionnel nommé « Xpath », qui reprend les modèles symboliques de la structuration des archives documentaires pour désigner le lieu au cœur de la donnée. Un nœud est donc symbolisé par le symbole shlash (/) et la branche est figurée par son nom jusqu’à la feuille qui contient la donnée décrite. L’attribut est décrit entre crochets et précédé du symbole « a commercial » (@). Il existe un ensemble d’abréviations symboliques qui sont autant de jokers. En l’occurrence, la référence de tous les versets du paragraphe biblique est décrite :

/Bible/paragraphe/ref/verset/@n

Précisément, l’expression ci-dessus cible l’adresse de tous les numéros de versets d’un corpus. XPath intègre également un ensemble de fonctions de spécifications qui s’insèrent entre crochets. Le numéro du verset « Et Dieu dist » s’écrit :

/Bible/paragraphe[. =‘Et Dieu dist’]/ref/verset/@n

Xpath permet donc de manière statique de décrire précisément l’adresse des données.

Isilex, architecture d’application XRX16

  • 16 Dans le cadre général du développement d’applications, la solution XRX (XForms, Rest et XQuery) est (...)

15Tout ce que nous venons de décrire rend parfaitement compte des quatre degrés d’abstraction qui caractérisent l’élaboration d’un fichier de données informé selon un protocole XML :

  • l’encodage du document et la façon dont on s’accorde pour la représentation des caractères dans un fichier numérique ;

  • le formalisme mis en œuvre pour la structuration des données ;

  • l’acquisition d’un protocole conventionnel pour la méta-description des données (DTD/XSD) ;

  • l’acquisition d’un protocole descriptif de l’adressage des données dans une généalogie de type XML.

16Toutefois, tout cela ne répond pas à l’exigence dynamique qui préside au choix d’XML pour l’édition ou la publication d’un texte médiéval par exemple. En effet, Xpath, comme d’ailleurs le document XML, sont des blocs statiques qu’il est satisfaisant de pouvoir décrire de manière abstraite, mais que l’on ne peut pas interroger à ce stade et encore moins transformer au gré des requêtes d’un lecteur. Imaginons par exemple que les besoins de la recherche impliquent de réduire tout le texte du livre de la Genèse de Guyart des Moulins à la partie uniquement traduite de Pierre le Mangeur, ou au contraire de ne retenir que la partie traduite de la Vulgate. Comment faire ? Il est alors nécessaire de franchir un degré supplémentaire dans l’abstraction pour quitter le stade du document numérique descriptif et entrer de plain-pied dans le monde de la base de données et des langages de transformation.

17Le gestionnaire de bases de données est un logiciel qui, partant d’un document de type texte structuré au format XML en fonction des contraintes exercées par la DTD ou l’XSD, compile l’ensemble des données pour en extraire une série d’index qui rendent rapide la consultation des feuilles de l’arborescence pour des textes numériques très volumineux. Ces logiciels d’indexation sont souvent performants, multiplateformes, et rendent exploitables des corpus croisés. Toutefois, pour pouvoir les exploiter, il faut s’accorder encore sur un formalisme de transformation : partant d’un objectif donné, décrit précisément grâce aux formules d’adressage Xpath, comment réduire et reformuler la base initiale du texte de la Bible Historiale tel qu’il a été saisi en un autre fragment XML adapté à la réponse trouvée ? La réponse est apportée par les préconisations du W3C en matière de programmation XQuery17.

18Une requête XQuery se construit selon une syntaxe simple : la boucle. Il est possible de déclarer un nombre infini de boucles successives parcourant une arborescence et d’affecter à une série de variables le résultat joint de ces parcours triés en fonction d’un champ donné. Par « champ », j’entends ici le nom spécifique d’un bloc XML. Pour reprendre l’exemple précédent Xpath, disons que la question suivante : « Quel est le numéro du verset qui commence par “Et Dieu dist” ? » s’écrirait ainsi :

for $verset
in /Bible/paragraphe[starts-with(.,’Et Dieu dist’)]/ref/verset/@n return $verset

XQuery est en fait un langage de programmation de haut niveau composé de cinq instructions de base, une syntaxe Xpath et une bibliothèque étendue de fonctions. Il est généralement admis que les cinq instructions sont regroupées sous l’acronyme « FLWOR », pour « For, Let, Where, Order, Return ». Concrètement, « For » et « Let » sont les deux instructions de déclaration de variables. L’exemple précédent pourrait être écrit de nouveau :

1. Let $verset : =
2. /Bible/paragraphe[starts-with(.,’Et Dieu dist’)]/ref/verset/@n
3. return $verset

Le résultat aurait été identique. « Let » instruit une nouvelle variable qui contient le verset visé par l’adresse Xpath publiée par le membre « return ».

  • 18 À l’exception des clauses « Where some $x satisfies », toutes les déterminations « Where » peuvent (...)

19L’instruction « Where », remplacée dans la plupart des cas par des déterminations ensemblistes entre crochets18, inclut une clause restrictive que l’on pourrait gloser par « telle que » : « pour toute numérotation de verset telle que... », et « return » interrompt la boucle et met fin au traitement des fonctions. L’ensemble obéit également au formalisme XML, ce en quoi XQuery n’est pas simplement un langage de requête comme MySQL, mais bien un langage de transformation :

1. <Bible_nouvelle>
2. {
3. for $verset at $compte
4. in /Bible/paragraphe
5. return
6. <verset_n n =‘{$compte}’ >{data($verset)}</verset_n>
7. }
8. </Bible_nouvelle>

20En l’occurrence, les accolades permettent de désambiguïser la requête et d’indiquer au processeur que le texte inclus est une requête et pas un simple texte. Dans la boucle « for » (ligne 3), on demande au processeur de parcourir l’ensemble des nœuds « paragraphe » de la base et, à chaque occurrence, de renvoyer le contenu de la donnée sans le balisage grâce à la fonction « data() » (ligne 6), et d’imbriquer l’ensemble dans un nouveau champ de base nommé « <verset_n> », dont l’attribut est le rang d’apparition (« $compte »).

  • 19 Les fonctions Full-Text telles que « stemming », « fuzzy » (pour la distance de Levenshtein), « wil (...)

21XQuery est un langage de requête de haut niveau particulièrement adapté à l’exploitation des données textuelles structurées sous forme d’arborescences XML. Au même titre qu’XSLT, c’est un outil de transformation des schémas XML, mais les récents développements des préconisations du W3C qui ont conduit à la publication de XQuery 3.0 orientent résolument ce dernier vers le domaine de la programmation. L’ensemble des bibliothèques de recherches « plein texte » (Full-Text) le rendent donc particulièrement docile à la manipulation par des linguistes, et l’existence d’une synonymie propre aux requêtages dans le domaine permet d’aborder avec une grande souplesse des formules complexes. Ainsi, à partir d’une arborescence comme celle précédemment décrite, il est possible d’extraire les données de manière dynamique, selon des voies différentes, mais qui sont sémantiquement interprétées de manière identique. Soit l’expression suivante19 :

1. for $x in //titre[@id =‘glose’][./text() contains text ‘ceste’ using stemming]

2. return $x
3.( : Pour tout titre du corpus dont l’id indique qu’il s’agit d’un titre de la glose, affiche l’ensemble des titres concernés si et seulement si ils contiennent le mot « ceste » au singulier comme au pluriel :)

Elle se lit exactement de la même manière que :

1. for $x in //titre where $x/@id =‘glose’
2. return for $y in $x where $p contains text ‘ceste’ using stemming
3. return $y

Ou bien encore :

1. //titre[@id =‘glose’][matches(./text(), ‘ceste’)][matches(./text(), ‘cestes’)]

Soit enfin :

1. //titre[@id =‘glose’][. contains text ‘ceste’ using stemming]

Fig. 4 : Représentation d’une extraction de corpus au vol sur le site Biblehistoriale.fr

Fig. 4 : Représentation d’une extraction de corpus au vol sur le site Biblehistoriale.fr

Source : http://www.BibleHistoriale.fr.

22La grande liberté syntaxique accordée au développeur et les temps de traitement extrêmement rapides des bases XML en font un outil parfait pour la restitution des données de l’arbre des manuscrits. L’adaptation des fonctions « plein texte » dans le logiciel BaseX20 autorise également des extractions rapides, grâce à la mise en œuvre d’instructions propres à la base particulièrement adaptées au développement d’applications WEB, comme c’est le cas dans le projet Corpus Bible Historiale qui existe en collaboration avec l’Université Princeton et dont Biblehistoriale.fr fut un maillon actif21. L’instruction extract permet par exemple d’appliquer un style au vol sur les résultats d’une requête de manière pertinente :

1. for $i in //div[./text() contains text "Dieu" using stemming using fuzzy] 2. return
3. <p>{ft :extract($i[text() contains text "Dieu"], "yellow", 26)}</p>

23Malgré l’apparente simplicité de la syntaxe XQuery, il est possible de construire des requêtes complexes sur de grands ensembles. Voilà par exemple comment extraire du corpus très simplement le texte de la traduction expurgée des commentaires de la glose :

1. <corpus id =‘Bible’>
2. {
3. let $index : = for $x in //titre[@id =‘historia’] return $x
4. return
5. for $a in $index return
6. <chapitre>
7. <titre>
8. {data($a)}
9. </titre>
10. <texte>
11. {($a/following-sibling : :*[1])}
12. </texte>
13. </chapitre>
14. }
15. </corpus>

24Et le résultat pour les premiers versets de l’Exode :

1. <corpus id =»Bible»>
2. <chapitre>
3. <titre>Du servage les fils Israel selonc la Bible</titre>
4. <texte>
5. <texte id =»Bible»>
6. <localisation>
7. <livre>1</livre>
8. <verset>1</verset>
9. </localisation>
10. Ce sont li non des fils Israel qui entrerent en egypte
11. avec Jacob. Et y entra Chascuns avec la maisnie
12. <localisation>
13. <livre>1</livre>
14. <verset>2</verset>
15. </localisation>
Ruben Symeon Lea Judas<localisation>
16. <livre>1</livre>
17. <verset>3</verset>
18. </localisation>
19. Ysachar Zabulon Benyamin<localisation>
20. <livre>1</livre>
21. <verset>4</verset>
22. </localisation>
23. Dan Heptalim Gad Asser.<localisation>
24. </chapitre>
25. </corpus>

25L’ensemble de ce dernier paragraphe peut très facilement être transformé en XML/TEI afin de produire un affichage intégré dans une perspective de collaboration de recherches, et se voir appliquer un style CSS dynamique.

Isilex

26Isilex est un outil simple, qui est à la fois un serveur Web basé sur BaseX, un CMS et un gestionnaire de contenus collaboratifs XML/XQuery permettant la construction d’encyclopédies, la mise en ligne de corpus et le croisement automatique des données grâce à un serveur Rest et à un ensemble de fonctions XQuery livrées avec le logiciel (fig. 5).

Fig. 5 : Schéma du développement par couche (Stack Solution XRX) d’Isilex

Fig. 5 : Schéma du développement par couche (Stack Solution XRX) d’Isilex

27Isilex étant basé sur un moteur JAVA, il est exploitable sur n’importe quelle plateforme. Il suffit de lancer l’exécutable pour disposer d’un serveur Web, d’une interface d’édition de données au format XML et d’un outil d’édition de contenus en lignes (pages du site et base de données de recherches).

28Une fois déployé, Isilex peut très facilement être modifié pour intégrer de nouvelles applications, c’est-à-dire de nouvelles URL associées à de nouvelles fonctions. Pour ce faire, il suffit d’éditer un document XQM du répertoire/webapp et d’ajouter sa propre fonction. Isilex met enfin à la disposition du chercheur une petite collection de fonctions issues de sa propre bibliothèque :

  • la fonction « isi :template($contenu) » (lire ici la fonction nommée « template » au sein de l’espace de nommage « isi » de l’application Isilex qui reçoit une variable dénommée « $contenu » sous forme d’un fragment XHTML) permet de créer automatiquement un affichage au format CSS du site incluant toutes les bibliothèques nécessaires ;

  • « isi :lang-text($text) » (lire ici, la fonction nommée « lang-text » au sein de l’espace de nommage « isi » de l’application Isilex qui reçoit une variable dénommée « $text » sous forme d’une chaîne de caractères) permet de renvoyer un « text » dans la langue du site (français ou anglais par défaut) pour peu que la variable équivalente existe dans le tableau de configuration du site ;

  • « isi :validateXML($fiche) » permet de tester et de récupérer les erreurs d’une fiche XML (ici nommée « $fiche » en tant que fragment XML) au regard du schéma de contrainte défini dans la base XSD.

  • 22 X.-L. Salvador, « La synonymie textuelle est-elle un observable de la langue de spécialité ? Protot (...)

29À partir de cet ensemble, il est très facile de produire d’originales applications telles que celles qui sont actuellement exploitées par les différents chercheurs qui ont trouvé en Isilex le moyen de publier rapidement des données collaboratives en ligne dans des formats qui respectent les standards de la recherche. Isilex intègre enfin un moteur de recherches, Idef(x)22, qui propose des modes de recherches immédiatement sur tout objet sauvé en base.

Fig. 6 : Copie d’écran d’Isilex pour le site

Fig. 6 : Copie d’écran d’Isilex pour le site

Source : http://www.BibleHistoriale.fr.

  • 23 Le Domaine d’Intérêt Majeur (DIM) « Sciences du texte et connaissances nouvelles » http://www.human (...)

30Dans le contexte général des humanités numériques telles qu’elles sont définies dans le projet Sciences du texte et connaissances nouvelles23, Isilex propose d’être une solution innovante au service de la recherche qui met en valeur une philosophie du WEB (Rest/XQuery) adaptée aux besoins de l’archéologie textuelle et de la valorisation des innovations dans nos disciplines. Au delà de l’outil, qui reste un obstacle majeur au démarrage de la recherche en SHS, il est important de définir un cadre nouveau au sein duquel les chercheurs, philologues, linguistes, littéraires, géographes, juristes, spécialistes des sciences de la communication ou du management, se saisissent de la question de la ressource, qui reste et demeure l’enjeu primordial du progrès et de la découverte. L’architecture documentaire laissant progressivement place à de nouvelles donnes autour de l’information, de la communication et de la donnée, un CMS XML d’une nature aussi accessible permettrait à court terme d’homogénéiser la structure des données, de faciliter l’interopérabilité des bases et les échanges entre communautés.

Haut de page

Notes

1 X.-L. Salvador, Étymologie et archéologie du sens à travers le livre de l’Exode de la Bible Historiale, avec une préface de Christian Balliu, Bucarest, 2017 (à paraître).

2 Voici la version de la Vulgate : « tulitque decem camelos de grege domini sui et abiit ex omnibus bonis eius portans secum profectusque perrexit Mesapotamiam ad urbem Nahor » (« il prit dix chameaux du troupeau de son maître et s’en alla emportant tous les biens de son maître avec lui jusqu’à Nahor, en Mésopotamie »), ibid., p. 35.

3 Transcription du ms. Paris, BnF, Arsenal 5059.

4 « As early Christian semiology accords human language a secondary, although necessary, role in relation to the primacy and stability of divine signification, so patristic translation theory is concerned mainly with recuperating a truthful meaning beyond the accidents of human linguistic multiplicity […] ; but whereas Roman theory seeks to erase difference (even as it recognizes it) by forecolosing the originary claims of the source and substituting Latin for Greek, patristic criticism seeks more to resolve difference by pointing towards a communality of source and target in terms of the immanence of meaning » (R. Copeland, Rhetoric, Hermeneutics and Translation in the Middle Ages. Academic Traditions and vernacular Texts, Cambridge, 1991, p. 43).

5 http://www.isilex.fr.

6 http://www.humanitesnumeriques.fr.

7 Dans la logique de l’adressage des données, l’URL ou « Localisateur Uniforme de Ressources (angl., Uniform Resource Locator) » (W3C, 1997, https://www.w3.org/Addressing/) est, au sein des cotes bibliothécaires des documents numériques accessibles sur Internet que l’on appelle des « identifieurs (angl., identifiers) » ou « URI », une référence symbolique qui permet de désigner l’endroit où se trouve le document tout en permettant de le consulter immédiatement dans sa version originale si le document est nativement numérique ou dans sa version numérisée – à la différence des cotes bibliothécaires qui distinguent la référence de classement et le lieu du dépôt en magasin d’archivage. La cote bibliothécaire traditionnelle est une URI d’un autre genre qui existe dans les espaces numériques (on peut consulter de nombreux catalogues qui ne permettent pas de lire ni de voir le document) et que l’on désigne sous le nom « d’URN » (« nom de la ressource »), c’est-à-dire l’identification du document lui-même, indépendamment de son lieu de dépôt.

8 X.-L. Salvador, « Indexer des documents du dedans : quels moyens de répondre à la question du lieu de la donnée (XML, OWL, RDF, REST) ? », Questions de communication, 31 (J. Longhi éd, Humanités numériques, corpus et sens, 2017), en cours de parution.

9 T. Berners-Lee, Cool URIs don’t change, http://www.w3.org/Provider/Style/URI, 1998.

10 « […] the solution advocated in REST […] states that instead of files, documents, objects, and so forth, what is being referred to by a URI is a “resource.” […] A resource can map to the empty set, which allows references to be made to a concept before any realization of that concept exists – notion that was foreign to most hypertext systems prior to the Web » (dans A. Monnin, Vers une philosophie du Web : le Web comme devenir-artefact de la philosophie (entre URIs, tags, ontologie(s) et ressources), Thèse de doctorat, Université de Paris 1 Panthéon Sorbonne, 2013, p. 409).

11 R. T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, thèse de l’Université de Californie (Irvine), 2000, http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm.

12 X.-L. Salvador, XML pour les linguistes (avec une préface d’Henri Portine), Paris, 2016.

13 http://basex.org/.

14 Ibid., p. 78.

15 Il s’agit de l’ensemble des moyens de localiser et, en même temps, de consulter une donnée documentaire pertinente dont la consultation répond à la question posée par le lecteur.

16 Dans le cadre général du développement d’applications, la solution XRX (XForms, Rest et XQuery) est une des plus élégantes en raison du faible nombre de transformations rendues nécessaires entre la base structurée et la publication Web.

17 https://www.w3.org/TR/xquery-30/.

18 À l’exception des clauses « Where some $x satisfies », toutes les déterminations « Where » peuvent être réécrites au moyen de prédications déterminatives du type : « $x[. = ‘‘] », ce qui se lit en théorie des ensembles : « tout élément x tel que x =‘‘ ».

19 Les fonctions Full-Text telles que « stemming », « fuzzy » (pour la distance de Levenshtein), « wildcards », permettent d’appliquer des fonctions de calcul de similarités en même temps que d’imposer un fenêtrage (« in window X words ») ou des réseaux de synonymie (« using thesaurus X at »). Le stemmer de Basex, c’est-à-dire la ressource de calculs de variations morphologiques, est hérité du stemmer en SnowBall de Lucene.

20 Voir n. 12.

21 Financé jusqu’en 2015 par la fondation Mellon, le projet http://www.biblehistoriale.fr, initié par Jeanette Patterson, avait pour but de compléter et d’augmenter les catalogues en profitant des capacités analytiques non hiérarchiques que l’informatique apporte à l’étude des grands corpus, et en permettant à l’utilisateur de personnaliser l’édition de données. Il portait un intérêt particulier au rassemblement modulaire des Bibles françaises au Moyen Âge à partir de sources multiples pour la traduction aussi bien que pour les gloses.

22 X.-L. Salvador, « La synonymie textuelle est-elle un observable de la langue de spécialité ? Prototype Idef(x) de calculs de similarités des métiers des Études et du Conseil », dans F. Neveu éd., Observatoires et observables dans la langue française, Le Français moderne, 84 (2016), p. 75-95.

23 Le Domaine d’Intérêt Majeur (DIM) « Sciences du texte et connaissances nouvelles » http://www.humanitesnumeriques.fr/ bénéficie du soutien de la Région Île-de-France. Ce réseau a pour but de rassembler, à l’échelle régionale, des initiatives institutionnelles dont l’objectif est de dynamiser une recherche d’excellence en humanités numériques, capable de rivaliser avec ses homologues nationaux et internationaux. Il a plus précisément vocation à soutenir, en premier lieu, des projets de recherche dans lesquels le document et l’archive, qu’ils aient besoin d’être numérisés ou qu’ils appartiennent d’emblée à la nouvelle culture numérique, contribuent à redessiner les contours du patrimoine.

Haut de page

Table des illustrations

Titre Fig. 1 : Représentation hexadécimale d’un fichier vidéo
Crédits Source : logiciel open source Hex Friend.
URL http://journals.openedition.org/medievales/docannexe/image/8192/img-1.jpg
Fichier image/jpeg, 260k
Titre Fig. 2 : Première définition de l’usage des chevrons par Isidore de Séville
Légende Isidore de Séville, Etymologiae, Liber XXI, v. 13 : « > diplè : nos copistes placent ce signe dans les livres des gens d’Église pour séparer ou pour signaler les citations tirées des Saintes Écritures. »
URL http://journals.openedition.org/medievales/docannexe/image/8192/img-2.jpg
Fichier image/jpeg, 52k
Titre Fig. 3 : Représentation d’une généalogie XML du livre de l’Exode
URL http://journals.openedition.org/medievales/docannexe/image/8192/img-3.jpg
Fichier image/jpeg, 268k
Titre Fig. 4 : Représentation d’une extraction de corpus au vol sur le site Biblehistoriale.fr
Crédits Source : http://www.BibleHistoriale.fr.
URL http://journals.openedition.org/medievales/docannexe/image/8192/img-4.jpg
Fichier image/jpeg, 1012k
Titre Fig. 5 : Schéma du développement par couche (Stack Solution XRX) d’Isilex
URL http://journals.openedition.org/medievales/docannexe/image/8192/img-5.jpg
Fichier image/jpeg, 200k
Titre Fig. 6 : Copie d’écran d’Isilex pour le site
Crédits Source : http://www.BibleHistoriale.fr.
URL http://journals.openedition.org/medievales/docannexe/image/8192/img-6.jpg
Fichier image/jpeg, 852k
Haut de page

Pour citer cet article

Référence papier

Médiévales 73, automne 2017, p. 97-114

Référence électronique

Xavier-Laurent Salvador, « Isilex, un serveur et gestionnaire de contenus collaboratifs REST XQuery au service des humanités numériques : l’exemple de la Bible historiale », Médiévales [En ligne], 73 | automne 2017, mis en ligne le 28 février 2019, consulté le 30 mai 2020. URL : http://journals.openedition.org/medievales/8192 ; DOI : https://doi.org/10.4000/medievales.8192

Haut de page

Auteur

Xavier-Laurent Salvador

CERAL–EA 3968, DIM Sciences du Texte et connaissances nouvelles, Université Sorbonne Paris Cité (Université Paris 13)

Haut de page

Droits d’auteur

Tous droits réservés

Haut de page
  • Logo Presses Universitaires de Vincennes
  • OpenEdition Journals