Daniel di Meglio : Réconcilier le grec ancien et l’informatique

►  λύχνος n° 142, novembre 2015, article deux

Comment expliquer le grec ancien à une machine ?

Le projet Exeuresis

 

Machine d'Anticythère, premier calculateur astronomique (IIIe/ IIe siècle av. J. C.) wikicommons
Machine d’Anticythère, premier calculateur astronomique (IIIe/ IIe siècle av. J. C.) wikicommons

[Daniel di Meglio, helléniste marseillais et informaticien passionné et passionnant, nous livre sa réflexion sur les instruments qui permettent d’écrire le grec ancien sur nos ordinateurs. Il a créé un  site en anglais  (pour informaticiens) : EXEURESIS, où il développe ces outils informatiques.]

Que signifie le nom Exeuresis ?

Cet article a pour objet le projet Exeuresis, à travers un bref aperçu de son fonctionnement. En guise d’exorde, je souhaiterais préciser le sens et les raisons du choix de ce vocable. Ceux qui sont rompus aux humanités auront sûrement saisi qu’il s’agit du mot grec ἐξεύρεσις que l’on peut traduire par « découverte » ou « invention ». Ce terme m’est apparu non seulement idoine mais surtout libre de droits. En effet, trouver un nom à mon projet fut une gageure. Si d’aucuns estiment que l’intérêt pour le grec ancien tombe en désuétude, ce que je me refuse à croire animé peut-être d’une naïveté fieffée, force est d’admettre que beaucoup de concepts, marques ou idées commerciales tirent encore leurs noms d’un étymon grec, voire de sa translittération plus ou moins heureuse. Les exemples abondent et si je devais m’autoriser une touche d’humour, je ne citerais que le titre du dernier opus de la célèbre saga Terminator, appelé Genisys (sic) au lieu de Genesis!

Archimède peint par Planella Coromina, Josep ou Jose (1804-90) wikicommons
Archimède peint par Planella Coromina, Josep ou Jose (1804-90) wikicommons

Qu’est-ce que le projet Exeuresis ?

Pour une première approche, on peut dire que le projet Exeuresis est un logiciel pour le grec ancien. Le fait est qu’il existe déjà de nombreux programmes en la matière. On songera notamment au projet Perseus qui offre en ligne un excellent outil d’analyse morphologique. Ceci étant, l’idée du projet Exeuresis m’est venue il y a quelques années avec l’intention de créer une passerelle entre informaticiens et hellénistes afin de faciliter la communication entre deux univers à priori hermétiques l’un à l’autre. Ainsi, mon ambition est de fournir une boîte à outils logiciels qui permette de faciliter et d’optimiser des applications pour le grec ancien. J’ai commencé à travailler sur ce projet dans mon temps libre et à ce jour, il n’en est qu’à ses balbutiements.

En toute rigueur, le logiciel dont il est question ici s’appelle un composant. Pour la suite de notre propos, il va être nécessaire, à plusieurs reprises, d’entrer dans quelques considérations théoriques et tout d’abord de s’attarder quelques instants sur ce qu’est un composant. C’est un truisme que de dire que les ordinateurs ont grandement évolué depuis l’époque où l’utilisateur avait face à lui un écran noir et devait saisir des mots dans un langage sibyllin afin d’exécuter les tâches les plus élémentaires. Aujourd’hui, grâce aux interfaces graphiques, même un petit enfant est à même d’utiliser intuitivement un ordinateur. Les personnes qui ont développé toutes ces applications n’ont pas eu à chaque fois à remonter aux origines de l’informatique et tout réécrire. Les développeurs s’appuient sur l’existant et l’enrichissent au fur et à mesure avec leurs propres logiciels. Pour ce faire, ils peuvent parfois utiliser ou créer un composant qui est en quelque sorte une bibliothèque de fonctions programmatiques dédiées à une opération particulière. Ce composant pourra être réutilisé à loisir et constitue « une brique» qui viendra agrandir un vaste édifice logiciel. A titre d’illustration, considérons les modules de cartes géographiques de Google que l’on trouve dans de nombreux programmes. Grâce au composant mis à disposition par Google, un développeur peut implémenter dans son application un service cartographique élaboré et ce de façon très simple, par le biais des fonctions que contient ce composant. Dans le même ordre d’idées, le projet Exeuresis s’articule autour d’un composant logiciel appelé ClassicalGreekLinguisticFramework, lequel embarque des fonctions qui permettent de manipuler des éléments de la langue grecque.

Comment expliquer à une machine les choses du monde réel ?

A partir de ces quelques éléments liminaires, nous pouvons aller plus avant et détailler le mode opératoire du ClassicalGreekLinguisticFramework. Celui-ci est basé sur la programmation orientée objets. Là encore, il est besoin de s’arrêter brièvement et de faire une mise au point terminologique, même si cela n’est pas aisé. Si vous deviez écrire un programme, la première question qui vous viendrait à l’esprit serait probablement de savoir comment expliquer à une machine les choses du monde réel. S’il s’agit d’un jeu de cartes, comment faire comprendre à un ordinateur ce qu’est un roi, une reine ou un as ? A cette fin, la programmation orientée objets propose un système très élaboré de modélisation virtuelle. (Je ne résisterai pas à la tentation d’un petit aparté. A mon sens, il serait instructif d’approfondir la notion d’objet en informatique et de montrer qu’à bien des égards elle fait écho aux idées platoniciennes. C’est bien la preuve que la Grèce antique demeure d’actualité et a encore beaucoup à nous apprendre ! Mais cela dépasse le cadre du présent article.)

Un objet peut être la représentation virtuelle d’à peu près tout ce que l’on peut imaginer. Pour sa mise en ouvre, il faut créer une classe d’objets qui est une définition globale de l’entité à modéliser. Par la suite, à partir de cette classe, il sera possible de créer une infinité d’objets qui sont des instances, autrement dit des cas particuliers de la classe dont elles sont issues. Cela peut être comparé aux mots du dictionnaire. Si je cherche le mot « chien », je vais trouver une définition qui s’applique à tous les chiens. Cette définition peut être assimilée à la classe d’objets « chien ». Si maintenant je désigne « le chien de mon voisin », qui est un cas particulier et concret du mot du dictionnaire, je peux dire que « le chien de mon voisin » est une instance de la classe « chien ». En premier lieu, une classe comporte des propriétés, qui constituent ses attributs. Par exemple, la classe « être humain » pourrait avoir une foule de propriétés telles que : sexe, taille, nom, prénom, etc. En second lieu, une classe a des méthodes qui correspondent à ce qu’elle peut faire. Dans notre exemple, la classe « être humain » aurait entre autres méthodes : respirer, voir, parler, manger, dormir etc. Enfin, une classe peut gérer des événements. La classe « être humain» pourrait réagir à l’événement « il fait nuit » en enclenchant la méthode « dormir ». Enfin, il est possible de créer une classe à partir d’une autre déjà existante, par dérivation. C’est ce qui s’appelle l’héritage. En sus de ses propres propriétés et méthodes, une classe qui hérite d’une autre classe a de facto toutes les propriétés et méthodes de la classe qui lui est superordonnée. Par exemple, par héritage, la classe « être vivant » peut donner les classes « végétal » et « animal » et cette dernière donner les classes « vertébré » et « invertébré » et l’on pourrait aller bien plus loin…

Comment fonctionne le composant logiciel Classical Greek Linguistic Framework ?

Le Classical Greek Linguistic Framework englobe cinq classes d’objets. La première se nomme Generic Character et correspond de façon abstraite à tout caractère que l’on peut rencontrer dans un texte grec. Cette classe a une méthode Name qui est le nom du caractère. De cette classe sont héritées trois autres classes : Greek Punctuation Mark (signe de ponctuation), Varied Greek Character (divers caractères grecs telle la coronis) et enfin Greek Letter (lettre grecque). Nous allons examiner cette dernière. La classe Greek Letter possède dix propriétés : Name (nom, héritée de GenericCharacter), Accent (accent : doux, rude ou pas d’accent), Breathing (esprit : doux, rude, ou pas d’esprit), CaseType (la « casse », majuscule ou minuscule), Order (le rang dans l’ordre alphabétique), Type (le type de lettre : majuscule ou minuscule), Vowel Length (quantité vocalique : brève, longue, ou pas de quantité dans le cas des consonnes par exemple) et enfin trois propriétés binaires, c’est-à-dire qui ont pour valeur « vrai » ou « faux », à savoir, Has Diaeresis (a ou n’a pas d’accent circonflexe), Has Iota Subscript (a ou n’a pas d’iota souscrit/adscrit) et Mid End Position Shape (la lettre a un allographe lorsqu’elle est en positon médiane ou finale, comme c’est le cas pour le bêta et le sigma). La classe Greek Letter a une méthode, Pick qui permet de cibler une lettre en prenant en compte les signes diacritiques y afférents. Pour finir ce tour d’horizon, il faut signaler la présence d’une autre classe Converting Tool qui servira entre autres choses à gérer l’affichage du grec polytonique à l’écran.

 

Si vous souhaitez en savoir davantage sur le fonctionnement du logiciel, veuillez vous rendre à l’adresse suivante : http://www.exeuresis.com. Je travaille actuellement sur une nouvelle version du programme en vue d’une modélisation plus avancée de la langue grecque. D’ici-là, n’hésitez pas à télécharger le composant et à l’intégrer à vos applications. Cela participera peut-être à la promotion des études helléniques, et à mon sens, c’est là l’essentiel.

 

Daniel Di Meglio


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.