Inflectiones, déclinaisons et conjugaisons en grec ancien

Posté par  (site web personnel) . Édité par Benoît Sibaud et tuiu pol. Modéré par ZeroHeure. Licence CC By‑SA.
26
13
fév.
2014
Python

En bref : inflectiones est une bibliothèque (Python3, GPLv3) qui permet de conjuguer et de décliner des mots. Le travail inverse (analyser un mot pour en dégager les caractéristiques morphologiques) ne m'intéressant pas, n'a pas été codé. Enfin, seuls quelques exemples tirés du grec ancien et de l'esperanto sont disponibles, voyez les exemples ci-dessous. Le projet n'en est qu'à ses débuts et attend du renfort !

Sommaire

(1) buts d'Inflectiones

(1.1) buts

Dans le cadre de différents projets (comme celui-ci) j'ai eu besoin de récupérer des formes automatiquement fléchies (conjuguées/déclinées) dans quelques langues, dont le grec ancien. La bibliothèque Inflectiones répond à ce problème en renvoyant une liste de formes décrites, d'une part à l'aide de la bibliothèque DChars (trace orthographique), d'autre part à l'aide de la bibliothèque Phoseg (trace phonétique). Une exportation sous forme de tableaux HTML est possible : vous en trouverez deux exemples ci-après.

Inflectiones peut être utilisé pour faire le travail inverse et analyser une forme pour en reconstituer les caractéristiques morphologiques : ayant trop peu de temps à consacrer à ce projet, j'ai volontairement supprimé tout le code permettant de faire de telles analyses car je n'en étais pas satisfait. Si vous étiez intéressés par cette possibilité, faites-le-moi savoir.

(1.2) intérêt

Le point fort de cette bibliothèque est de générer automatiquement des grilles de flexions. S'agissant du grec ancien, son utilisation permet(trait) de réduire les erreurs que je vois souvent dans les tableaux tapés péniblement à la main et qui sont rarement corrigés même quand une erreur est signalée.

J'utilise Inflectiones dans le cadre d'un dictionnaire de grec ancien → français dont les articles sont partiellement remplis par des grilles de flexion construites et par Inflectiones et par les données du dictionnaire : reportez à l'article χρόνος pour en avoir un exemple.

Enfin, il est facile de construire une table inverse associant à une formée donnée sa décomposition grammaticale (ex. en français : aima → aimer::passé simple.3S) : le module Infgrid permet de construire facilement de tels dictionnaires.

(2) utiliser Inflectiones

(2.1) créer une simple liste de formes

Le code suivant …

word = "γεωργός"
infgrid = INFLECTIONES["grc.λόγος"].inflect( input_parameters = {
                                                            "Nsg"           : word,
                                                            "gender"        : "masculine",
                                                                           },
                                                      )
for key in infgrid.gridsv:
    orthophone_objects = infgrid.gridsv[key]
    print(key, 
          orthophone_objects[0].ortho, 
          orthophone_objects[0].phone.get_ipa_representation())

… remplit un objet nommé infgrid de type Infgrid qui est une grille de flexions (ici, un tableau de déclinaison). Dans cet exemple, la flexion nommée grc.λόγος est appelée avec deux paramètres, le nominatif singulier γεωργός et le genre de ce mot.

infgrid.gridsv est par exemple un dictionnaire associant à une clef un objet Phrase qui n'est rien d'autre qu'une liste d'objets OrthoPhone.

o  key est une clef de type string valant par exemple "case=N;number=sg;dialect=att".
o  orthophone_objects[0] est de type Orthophone
o  orthophone_objects[0].ortho est un objet de type DString, une liste d'objets DChars
o  orthophone_objects[0].phone est un objet de type PhoSeg

(2.2) créer un tableau HTML

Si vous écriviez maintenant …

htmldata = INFLECTIONES["grc.λόγος"].inflectAndExportAsHTML( input_parameters = {
                                                            "Nsg"           : "ἀθηναῖος",
                                                            "gender"        : "masculine",
                                                                           },
                                                morphogrid = "fra__grc_logos",
                                                formatstring = "ORTHO [PHONE]",
                                                captiontitle = word,
                                                tableborder = "1",
                                                characters_output = {"grc::ignore makron":True},
                                                      )

… vous obtiendriez du code HTML générant un tableau de type « tableau de grammaire que l'on trouve dans les manuels scolaires ». Pour plus de lisibilité (affichage en console par exemple), le code HTML généré peut être interprété par l'outil w3m à l'aide de la commande : python example.py | w3m -dump -cols 200 -T text/html. C'est ce que j'ai fait pour présenter les deux tableaux suivants, liés au grec ancien.

(3) quelques résultats en grec ancien

Les conjugaisons et déclinaisons du grec ancien sont compliquées à expliquer à un ordinateur : il s'agissait pour moi d'un bon test pour jauger les capacités d'Inflectiones !

S'agissant de la transcription phonétique, elle n'a rien de trivial. Par exemple dans ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː], vous pouvez remarquer que la transcription d'αίω est [ˈa˧˥.jːɔː], et non le simple (mais ambigu) [ˈai̯.ɔː].

Les deux seules flexions acceptées pour le moment sont les mots de la deuxième déclinaison et quelques temps des verbes thématiques non contractes et non préfixés; les « accidents phonétiques » (exemples au futur : τρίβω > τρίψω, πείθω > πείσω, …) sont bien intégrées (voyez le résumé des possibilités dans l'en-tête du fichier paideuo.py).

Pour être complet, les tableaux qui suivent présentent, pour chaque forme, et la trace orthographique et la trace phonétique entre crochets (formatstring = "ORTHO [PHONE]"). Il est bien sûr possible de ne retenir que la trace orthographique en spécifiant par exemple formatstring = "ORTHO".

(3.1) deuxième déclinaison : ἀθηναῖος

word = "ἀθηναῖος"
infgrid = INFLECTIONES["grc.λόγος"].inflectAndExportAsHTML( input_parameters = {
                                                            "Nsg"           : word,
                                                            "gender"        : "masculine",
                                                                           },
                                                morphogrid = "fra__grc_logos",
                                                formatstring = "ORTHO [PHONE]",
                                                captiontitle = word,
                                                tableborder = "1",
                                                characters_output = {"grc::ignore makron":True},
                                                      )
print(infgrid)



                                               ἀθηναῖος
┌─────────────┬────────────────────────────┬──────────────────────────────┬──────────────────────────────────┐
│             │singulier                   │duel                          │pluriel                           │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│nominatif    │ἀθηναῖος [a.t̪ʰɛː.nˈa˥˧.jːos]│ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː]   │ἀθηναῖοι [a.t̪ʰɛː.nˈa˥˧.jːoi̯]      │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│vocatif      │ἀθηναῖε [a.t̪ʰɛː.nˈa˥˧.jːe]  │ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː]   │ἀθηναῖοι [a.t̪ʰɛː.nˈa˥˧.jːoi̯]      │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│accusatif    │ἀθηναῖον [a.t̪ʰɛː.nˈa˥˧.jːon]│ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː]   │ἀθηναίους [a.t̪ʰɛː.nˈa˧˥.jːoːs]    │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│génitif      │ἀθηναίου [a.t̪ʰɛː.nˈa˧˥.jːoː]│ἀθηναίοιν [a.t̪ʰɛː.nˈa˧˥.jːoi̯n]│ἀθηναίων [a.t̪ʰɛː.nˈa˧˥.jːɔːn]     │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│datif        │ἀθηναίῳ [a.t̪ʰɛː.nˈa˧˥.jːɔː] │ἀθηναίοιν [a.t̪ʰɛː.nˈa˧˥.jːoi̯n]│ἀθηναίοις [a.t̪ʰɛː.nˈa˧˥.jːoi̯s]    │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│datif(ionien)│                            │                              │ἀθηναίοισι [a.t̪ʰɛː.nˈa˧˥.jːoi̯.si] │
└─────────────┴────────────────────────────┴──────────────────────────────┴──────────────────────────────────┘

(3.2) verbes thématiques : τρί̄ϐω

word = "τρί̄ϐω"
infgrid = INFLECTIONES["grc.παιδεύω"].inflectAndExportAsHTML( input_parameters = {
                                                             "AIndPresent1S" : word,
                                                             "AIndImperfect1S" : None,
                                                             "AIndFuture1S" : None,
                                                             "AIndAorist_no_augment" : None,
                                                             "PIndFuture1S" : None,
                                                             "PIndAorist_no_augment" : None,
                                                       },
                                                morphogrid = "fra__grc_paideuo",
                                                formatstring = "ORTHO [PHONE]",
                                                captiontitle = word,
                                                tableborder = "1",
                                                characters_output = {"grc::ignore makron":True},
                                                      )
print(infgrid)



                                         τρί̄ϐω
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ACTIF                                                                                       │
├──┬─────────┬───────────────────────────────────────┬───────────────────────────────────────┤
│  │         │                                       │                                       │
│  │         │indicatif                              │infinitif                              │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│  │         │τρίϐω [t̪rˈiː˧˥.bɔː]                    │τρίϐειν [t̪rˈiː˧˥.beːn]                 │
│  │présent  │τρίϐεις [t̪rˈiː˧˥.beːs]                 │                                       │
│  │         │τρίϐει [t̪rˈiː˧˥.beː]                   │                                       │
│  │         │τρίϐομεν [t̪rˈiː˧˥.bo.men]              │                                       │
│  │         │τρίϐετε [t̪rˈiː˧˥.be.t̪e]                │                                       │
│  │         │τρίϐουσι [t̪rˈiː˧˥.boː.si]              │                                       │
│  │         │τρίϐετον [t̪rˈiː˧˥.be.t̪on]              │                                       │
│  │         │τρίϐετον [t̪rˈiː˧˥.be.t̪on]              │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│         │ἔτριϐον [ˈet̪.riː.bon]                  │                                       │
│2S│imparfait│ἔτριϐες [ˈet̪.riː.bes]                  │                                       │
│3S│         │ἔτριϐε [ˈet̪.riː.be]                    │                                       │
│1P│         │ἐτρίϐομεν [et̪.rˈiː˧˥.bo.men]           │                                       │
│2P│         │ἐτρίϐετε [et̪.rˈiː˧˥.be.t̪e]             │                                       │
│3P│         │ἔτριϐον [ˈet̪.riː.bon]                  │                                       │
│2D│         │ἐτριϐέτην [et̪.riː.bˈe.t̪ɛːn]            │                                       │
│3D│         │ἐτριϐέτην [et̪.riː.bˈe.t̪ɛːn]            │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│         │ἔτριψα [ˈet̪.riːp.sa]                   │τρῖψαι [t̪rˈiː˥˧p.sai̯]                  │
│2S│aoriste  │ἔτριψας [ˈet̪.riːp.sas]                 │                                       │
│3S│         │ἔτριψε [ˈet̪.riːp.se]                   │                                       │
│1P│         │ἐτρίψαμεν [et̪.rˈiː˧˥p.sa.men]          │                                       │
│2P│         │ἐτρίψατε [et̪.rˈiː˧˥p.sa.t̪e]            │                                       │
│3P│         │ἔτριψαν [ˈet̪.riːp.san]                 │                                       │
│2D│         │ἐτριψάτην [et̪.riːp.sˈa.t̪ɛːn]           │                                       │
│3D│         │ἐτριψάτην [et̪.riːp.sˈa.t̪ɛːn]           │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│         │τρίψω [t̪rˈiː˧˥p.sɔː]                   │τρίψειν [t̪rˈiː˧˥p.seːn]                │
│2S│futur    │τρίψεις [t̪rˈiː˧˥p.seːs]                │                                       │
│3S│         │τρίψει [t̪rˈiː˧˥p.seː]                  │                                       │
│1P│         │τρίψομεν [t̪rˈiː˧˥p.so.men]             │                                       │
│2P│         │τρίψετε [t̪rˈiː˧˥p.se.t̪e]               │                                       │
│3P│         │τρίψουσι [t̪rˈiː˧˥p.soː.si]             │                                       │
│2D│         │τρίψετον [t̪rˈiː˧˥p.se.t̪on]             │                                       │
│3D│         │τρίψετον [t̪rˈiː˧˥p.se.t̪on]             │                                       │
├──┴─────────┴───────────────────────────────────────┴───────────────────────────────────────┤
│PASSIF                                                                                      │
├──┬─────────┬───────────────────────────────────────┬───────────────────────────────────────┤
│  │         │                                       │                                       │
│  │         │indicatif                              │infinitif                              │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
│  │         │                                       │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│  │         │τρίϐομαι [t̪rˈiː˧˥.bo.mai̯]              │τριϐέσθαι [t̪riː.bˈes.t̪ʰai̯]             │
│  │présent  │τρίϐει [t̪rˈiː˧˥.beː]                   │                                       │
│  │         │τρίϐεται [t̪rˈiː˧˥.be.t̪ai̯]              │                                       │
│  │         │τριϐόμεθα [t̪riː.bˈo.me.t̪ʰa]            │                                       │
│  │         │τρίϐεσθε [t̪rˈiː˧˥.bes.t̪ʰe]             │                                       │
│  │         │τρίϐονται [t̪rˈiː˧˥.bon.t̪ai̯]            │                                       │
│  │         │τρίϐεσθον [t̪rˈiː˧˥.bes.t̪ʰon]           │                                       │
│  │         │τρίϐεσθον [t̪rˈiː˧˥.bes.t̪ʰon]           │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│         │ἐτριϐόμην [et̪.riː.bˈo.mɛːn]            │                                       │
│2S│imparfait│ἐτρίϐου [et̪.rˈiː˧˥.boː]                │                                       │
│3S│         │ἐτρίϐετο [et̪.rˈiː˧˥.be.t̪o]             │                                       │
│1P│         │ἐτριϐόμεθα [et̪.riː.bˈo.me.t̪ʰa]         │                                       │
│2P│         │ἐτρίϐεσθε [et̪.rˈiː˧˥.bes.t̪ʰe]          │                                       │
│3P│         │ἐτρίϐοντο [et̪.rˈiː˧˥.bon.t̪o]           │                                       │
│2D│         │ἐτρίϐεσθον [et̪.rˈiː˧˥.bes.t̪ʰon]        │                                       │
│3D│         │ἐτριϐέσθην [et̪.riː.bˈes.t̪ʰɛːn]         │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│         │ἐτρίφθην [et̪.rˈiː˧˥pʰ.t̪ʰɛːn]           │τριφθῆναι [t̪riːpʰ.t̪ʰˈɛː˥˧.nai̯]         │
│2S│aoriste  │ἐτρίφθης [et̪.rˈiː˧˥pʰ.t̪ʰɛːs]           │                                       │
│3S│         │ἐτρίφθην [et̪.rˈiː˧˥pʰ.t̪ʰɛːn]           │                                       │
│1P│         │ἐτρίφθημεν [et̪.rˈiː˧˥pʰ.t̪ʰɛː.men]      │                                       │
│2P│         │ἐτρίφθητε [et̪.rˈiː˧˥pʰ.t̪ʰɛː.t̪e]        │                                       │
│3P│         │ἐτρίφθησαν [et̪.rˈiː˧˥pʰ.t̪ʰɛː.san]      │                                       │
│2D│         │ἐτρίφθητον [et̪.rˈiː˧˥pʰ.t̪ʰɛː.t̪on]      │                                       │
│3D│         │ἐτριφθήτην [et̪.riːpʰ.t̪ʰˈɛː˧˥.t̪ɛːn]     │                                       │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│         │τριφθήσομαι [t̪riːpʰ.t̪ʰˈɛː˧˥.so.mai̯]    │τριφθήσεσθαι [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰai̯] │
│2S│futur    │τριφθήσει [t̪riːpʰ.t̪ʰˈɛː˧˥.seː]         │                                       │
│3S│         │τριφθήσεται [t̪riːpʰ.t̪ʰˈɛː˧˥.se.t̪ai̯]    │                                       │
│1P│         │τριφθησόμεθα [t̪riːpʰ.t̪ʰɛː.sˈo.me.t̪ʰa]  │                                       │
│2P│         │τριφθήσεσθε [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰe]   │                                       │
│3P│         │τριφθήσονται [t̪riːpʰ.t̪ʰˈɛː˧˥.son.t̪ai̯]  │                                       │
│2D│         │τριφθήσεσθον [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰon] │                                       │
│3D│         │τριφθήσεσθον [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰon] │                                       │
└──┴─────────┴───────────────────────────────────────┴───────────────────────────────────────┘

(4) installation

Le projet est hébergé sur Github; le code utilise d'autres bibliothèques que j'ai développées : DChars, DictInfos, InfGrid, OrthoPhone et Phoseg. Placez-les à la racine du répertoire où se trouve inflectiones/ et lancez par exemple le script suivant :

from inflectiones.inflectiones import INFLECTIONES
htmldata = INFLECTIONES["grc.λόγος"].inflectAndExportAsHTML( input_parameters = {
                                                            "Nsg"           : "ἀθηναῖος",
                                                            "gender"        : "masculine",
                                                                           },
                                                morphogrid = "fra__grc_logos",
                                                formatstring = "ORTHO [PHONE]",
                                                captiontitle = word,
                                                tableborder = "1",
                                                characters_output = {"grc::ignore makron":True},
                                                      )
print(htmldata)

(5) fonctionnement d'Inflectiones

Il faut comprendre que cette bibliothèque génère des informations orthographiques et phonétiques. C'est la bibliothèque OrthoPhone qui gère le lien entre ces deux types d'informations :

objets DChars + objet Phoseg = OrthoPhone

Grâce à OrthoPhone, il est par exemple possible de supprimer un suffixe à un mot et d'obtenir le résultat orthographique et phonétique attendu. C'est encore OrthoPhone qui gère le délicat problème de l'accentuation ou des signes diacritiques ayant une signification phonétique. Ainsi, l'application de la loi « σωτῆρα » se trouve dans OrthoPhoneGRC.setTheAccentOnThePenult().

En se limitant à la partie d'OrthoPhone liée au grec ancien, voici quelques exemples de fonctions :

o remove_any_initial_vocalic_breathing()
o setTheAccentuation(new_accent='ὀξύτονος', ... 'περισπώμενος', etc. )
o hasAnAnacliticAccent()

Inflectiones remplit des grilles de flexion créées par le module InfGrid. Par exemple, la grille fra__grc_logos prévoit des cellules du type "cas=nominatif;nombre=singulier". Chaque object Infgrid contient un dictionnaire associant le nom d'une cellule à un objet OrthoPhone.

Enfin, un objet Infgrid contient le code HTML du tableau qu'il sert à remplir : voyez un exemple de ces "templates" ici.

(6) et à l'avenir ?

Je cherche des hellénistes susceptibles de relire mes tableaux et des Pythoneux pour étendre Inflectiones à d'autres langues. Si vous êtes intéressés, faites-moi signe !

Aller plus loin

  • # correction

    Posté par  (site web personnel) . Évalué à 3.

    Je viens de me rendre compte d'une erreur due à un bug dans ma librairie : le datif pluriel "ionien" est bien ἀθηναίοισι et non la forme indiquée dans le tableau en 3.1, "ἀθηναιοῖσι".

    Si quelqu'un pouvait rectifier, merci !

    Trust the Python !

    • [^] # Re: correction

      Posté par  (site web personnel) . Évalué à 1.

      Je viens de corriger le bug. La forme correcte est donc ἀθηναίοισι [a.t̪ʰɛː.nˈa˧˥.jːoi̯.si]

      Trust the Python !

      • [^] # Re: correction

        Posté par  (site web personnel) . Évalué à 4.

        Corrigé, merci.

        • [^] # Re: correction

          Posté par  (site web personnel) . Évalué à 2.

          Merci d'avoir corrigé malgré la difficulté de cette correction (pour peu que Benoît Sibaud ne connaisse pas le grec, ça a dû être coton :). Je trouve important de ne pas laisser sur le Net des tableaux morphologiques inexacts.

          Trust the Python !

  • # Espéranto et programmation

    Posté par  . Évalué à 8.

    Ce projet me permet d'étendre le sujet.

    Il m'est arrivé de penser que l’espéranto était la langue parfaite pour l'informatique, ce pour 2 raisons :

    1) c'est une langue se voulant internationale par définition, ce qui serait approprié pour les contributions aux codes sources ;

    2) c'est une langue n'ayant pas d'exception. Par conséquent c'est une langue totalement gérable (au moins dans sa syntaxe) par une machine. Il est donc très simple de définir, par exemple, le pluriel d'un nom et par conséquent de donner du sens à ce pluriel. Allié à de la programmation orientée objet, on a là l'outil idéal pour communiquer naturellement avec une machine.

    On peut même se dire qu'une phrase bien formée en espéranto avec des mots techniques précis pourrait devenir un langage de programmation en tant que tel.

    Le principal problème que je vois à un tel projet, c'est… qu'il faut apprendre l'espéranto. :-/

    De plus, si on met au point un tel système capable de piloter des éléments d'une machine de façon naturelle, ça pourrait donner envie à un certain nombre de personnes d'apprendre l'espéranto rien que pour piloter des machines à la voix (de façon bien plus précise qu'avec n'importe quelle autre langue), et ça démocratiserait l'espéranto.

    Et qui sait, peut-être que cette langue deviendrait aussi populaire que le Bitcoin ? ;-)

    • [^] # Re: Espéranto et programmation

      Posté par  (site web personnel) . Évalué à 4.

      J'apprécie beaucoup l'esperanto mais il faut être juste :

      (1) le côté "international" de l'esperanto n'est que partiel; la langue a été créée à partir d'éléments indo-européens et les Chinois, par exemple, doivent se sentit tout autant dépaysés d'apprendre cette langue que d'apprendre le japonais.

      (2) le côté "langue n'ayant pas d'exception" est bien sûr vrai, du moins sur le plan morphologique . Mais du point de vue du sens, l'esperanto a fait des choix qui contraignent quand même ses locuteurs à adopter des réflexes qui n'ont rien de naturel… sans doute parce que, pour une langue humaine, certains choix sont toujours possibles et que chaque langue doit trancher entre les multiples possibilités offertes par la pensée humaine. A titre, d'exemple, voir cette discussion sur la manière dont l'esperanto représente l'infinif passif.

      S'agissant d'Inflectiones, l'esperanto m'a permis de travailler sur tableaux de flexions les plus simples qui soient : j'ai utilisé cette langue afin de tester les bases de ma librarie.

      Trust the Python !

      • [^] # Re: Espéranto et programmation

        Posté par  . Évalué à 3.

        Je suis globalement d'accord avec toi, ceci étant dit :

        (1) les asiatiques ont une éducation à l'alphabet occidental tandis que nous, occidentaux, nous ne grandissons pas en apprenant l'alphabet chinois (si tant est qu'on peut parler d'alphabet) ou japonais. Ils peuvent donc, à défaut d'apprendre facilement l'espéranto, au moins le lire. Et cette éducation leur donne une sensibilité aux langues occidentales que nous n'avons pas envers les langues asiatiques. Par ailleurs l'anglais est la langue de référence de fait sur Internet et en programmation. Passer à l'espéranto est donc relativement peu contraignant (les caractères ASCII peuvent être réutilisés et si on est capable de lire/d'écrire l'anglais, l'espéranto est bien moins éloigné de celui-ci que le japonais ou le chinois par exemple) ;

        (2) j'ai effectivement bien précisé que seule la syntaxe de l'espéranto ne contenait pas d'exceptions. J'aurais probablement plutôt dit parler de morphologie comme tu le dis (la syntaxe donnant déjà du sens à la phrase, la morphologie seulement au vocabulaire). C'est précisément pour cela que j'ai dit "On peut même se dire qu'une phrase bien formée en espéranto avec des mots techniques précis pourrait devenir un langage de programmation en tant que tel.". Il s'agirait de définir le sens précis de termes exactement comme on le fait pour un vocabulaire en XML à l'aide des schémas (les balises seules n'ont aucun sens mais elles en acquièrent lorsqu'on définit un standard, par exemple HTML ou XBEL, instanciés par des schémas).

        Par rapport à Inflectiones, je pense qu'il peut servir de base à un tel projet, sans forcément que l'un et l'autre ne fusionnent pour autant.

        • [^] # Re: Espéranto et programmation

          Posté par  . Évalué à 2. Dernière modification le 13 février 2014 à 18:43.

          …sans oublier une langue tout à fait dédiée à l'informatique, car logique et immuable dans sa syntaxe (c'est une langue dite morte) : le latin.
          Il est tout de même étonnant que la programmation C++ et sutout objet (Soustrupp) soit entièrement dérivée de la philosophie thomiste.

          Cf. l'arbre de Porphyre

          • [^] # Re: Espéranto et programmation

            Posté par  (site web personnel) . Évalué à 2.

            C'est bien la première fois que j'entends parler d'une telle filiation entre le thomisme et le C++ : c'est passionnant ! Aurais-tu une source ou peux-tu donner un complément d'informations ?

            Trust the Python !

          • [^] # Re: Espéranto et programmation

            Posté par  . Évalué à 3.

            …sans oublier une langue tout à fait dédiée à l'informatique, car logique et immuable dans sa syntaxe (c'est une langue dite morte) : le latin.

            La latin n’est quand même pas si simple d’après ce qu’on m’a dit.

            En plus les bases de la syntaxe de l’espéranto ne bougent pas, et en fait la syntaxe en général n’évolue qu’extrêmement peu, voire pas du tout. Même si c’est une langue vivante, il semblerait que les espérantistes soient assez attachés à ne pas faire de modification inutile à la langue.

            Écrit en Bépo selon l’orthographe de 1990

        • [^] # Re: Espéranto et programmation

          Posté par  (site web personnel) . Évalué à 3.

          (1) les asiatiques ont une éducation à l'alphabet occidental tandis que nous,

          Mouais. Ils savent lire du texte électronique, mais dès que c'est écrit à la main, j'en connais plus d'un qui n'arrive plus à lire quoi que ce soit.

          • [^] # Re: Espéranto et programmation

            Posté par  . Évalué à 4. Dernière modification le 13 février 2014 à 23:46.

            J'ai une amie Israélienne pour qui c'est la même chose.
            En l'occurence on parle de faire de l'espéranto la langue de référence dans le monde informatique, donc ça ne poserait finalement pas plus de problèmes que ça (quelqu'un connaît un dingue qui code sur du papier ?? x-p )

            • [^] # Re: Espéranto et programmation

              Posté par  . Évalué à 2.

              Le lojban semble fait pour ça -culturellement neutre et non ambigu- pourquoi toujours lui préférer l'espéranto ? Vraie question de ma part, je ne connais ni l'un ni l'autre.

              • [^] # Re: Espéranto et programmation

                Posté par  . Évalué à 2.

                Je ne connais pas non plus le lojban, mais lorsque je vois revendiqué dans ses caractéristiques qu'elle est «culturellement neutre» et qu'en regardant comment elle traite ses nombres (un nommage décimal complètement régulier), je ne peux m'empêcher de penser que les locuteurs du danois, langue encore très marquée par le système vigésimal[*], ne pourront être réellement d'accord avec cette affirmation (exemple, pour 50 en lojban : «muno» (soit la lecture des différents chiffres composant ce nombre : «cinq-zéro»), en danois : «halvtreds», élision de «halvtredsindstyve» soit 3ème demi (=2,5) fois 20).

                [*] mais elle n'est pas la seule représentante de ce courant de pensée, même le français (de France) est partiellement atteint, avec notre «quatre-vingt» ou notre Hôpital des Quinze-Vingts parisien.

              • [^] # Re: Espéranto et programmation

                Posté par  . Évalué à 5.

                Le lojban est bien moins connu, et le fait d’être «culturellement neutre» fait qu’en vérité personne ne reconnait les mots de vocabulaire. Le mot le plus proche d’un mot d’une autre que je connais en lojban, c’est «plini» pour «planète», alors qu’en espéranto il y a très peu de mots qui ne ressemblent pas au moins un peu.

                De plus l’espéranto a une construction bien plus proche des langues occidentales et du japonais (je ne connais pas les autres langues asiatiques), alors que le lojban a une grammaire basée sur les prédicats (mathématiques). C’est pas très compliqué, mais le fait que ça soit assez différent des autres langues que l’on connait rend plus compliqué l’apprentissage de la langue.

                Si je devais dire quelle est la langue la mieux conçu, j’hésiterais entre les deux, c’est sûr. Mais côté simplicité d’apprentissage, l’espéranto bat toutes les autres langues construites.

                Écrit en Bépo selon l’orthographe de 1990

            • [^] # Re: Espéranto et programmation

              Posté par  (site web personnel) . Évalué à 5.

              Une bonne partie des cours que j'ai suivis utilisaient un tableau sur lequel on écrivait à la main. Quand les profs ou autres étudiants n'arrivent pas à te lire parce qu'ils n'ont pas l'habitude de voir des écritures manuscrites, ben, ça pose quand même un problème, trouvé-je.

      • [^] # Re: Espéranto et programmation

        Posté par  . Évalué à 3.

        J'apprécie beaucoup l'esperanto mais il faut être juste :
        (1) le côté "international" de l'esperanto n'est que partiel; […]

        Confusion «Internationale»/«Universelle» : une langue internationale n'a pas à respecter par sa construction et son vocabulaire la langue de tous les communicants, une langue universelle le devrait (d'où son impossibilité à exister, sauf à limiter les groupes de langues qu'elle est supposée englober).

        C'est d'ailleurs l'argument donné par bon nombre des détracteurs de l'espéranto pour lui dénier son rôle de langue internationale : elle ne peut prétendre à ce titre puisque construite sur une base indo-européenne qui pénalise les locuteurs des langues non indo-européennes, même si cela ne les empêche pas de promouvoir l'anglais comme langue internationale…

        Soit dit en passant, un chinois ne sentira bien moins «dépaysé» en apprenant l'espéranto que l'anglais (l'autre langue internationale) : le caractère régulier de la grammaire de l'espéranto est bien plus proche de la sienne (par exemple, la régularité du marquage des temps, et la non déclinaison de cette marque en fonction du sujet) comparé au caractère fort irrégulier de l'anglais (conjugaisons, pluriels, dérivations masculin/féminin). Pour ce qui est de l'autre composante d'une langue, son vocabulaire, celui de l'espéranto est certes de nature fortement indo-européenne (j'ai croisé un article qui lui donnait des racines à 70% d'origine latine, 20% germanique, dont les racines anglaises), mais là aussi la régularité des règles de dérivation de vocabulaire rend le travail de mémorisation bien plus facile que dans toutes langues indo-européennes qui, de par leur parcours historique, sont bourrées d'exceptions.

        Il n'y a qu'à voir les formes du verbe être dont la conjugaison dans presque toutes les langues européennes est un amalgame de 2 ou 3 formes verbales distinctes (petite liste non exhaustive, pour le seul présent de l'indicatif) :

        • français : «être : suis, es, est, sommes, êtes, sont»,
        • anglais : “be: am, (art/beest), is, are, are, are”,
        • allemand „sein: bin, bist, ist, sind, seid, sind“

        quand la langue n'est pas carrément munie de 2 verbes être :

        • espagnol «ser/estar»,
        • italien «essere/stare»

        ce qui n'empêche pas la conjugaison du premier verbe «être» d'arborer plusieurs formes bien disctintes :

        • espagnol : «ser: soy, eres, es, somos, sois, son»,
        • italien : «essere: sono, sei, è, siamo, siete, sono»

        même si certaines langues font les choses bien plus simplement :

        • danois : «være: er» (à toutes les personnes),
        • suédois : «vara: är» (idem)

        tout en ayant quand même une forme du présent de l'indicatif n'ayant rien à voir avec la forme de leur infinitif.

        (2) […] Mais du point de vue du sens, l'esperanto a fait des choix qui contraignent quand même ses locuteurs à adopter des réflexes qui n'ont rien de naturel…

        L'espéranto n'a fait aucun choix, ce n'est pas une personne consciente ;-), mais on aura tous compris que c'est un raccourci pour dire que ce sont ses locuteurs qui dans leur pratique les ont fait. Et s'ils les ont fait, n'est-ce-t'il pas parce qu'ils se sont naturellement imposés à eux (l'espéranto n'est après tout pas une langue sortie d'une commission de normalisation qui aurait imposé comment doit s'utiliser ou être rendu telle ou telle notion linguistique).

        Qu'un apprenant trouvent certaines tournures de la langue apprise non «naturelles» est normal : sa langue maternelle le conditionne pour utiliser certains schémas différents de ceux de la majorité des autres langues. Ainsi, est-il naturel pour un anglais apprenant le français de n'utiliser qu'un adjectif («grand»), empilant les sens pour parler de ses "tall man" («homme grand») et "great man" («grand homme») ? est-ce naturel pour lui qu'un «grand-père» ait des «petits-enfants», là où dans sa langue maternelle ce sens de lien de filiation n'est exprimé que par le préfixe "grand" ("grandfather" / "grandchildren") ? et inversement pour le français apprenti anglophone ?

        • [^] # Re: Espéranto et programmation

          Posté par  . Évalué à 4.

          Tu cites:

          (2) […] Mais du point de vue du sens, l'esperanto a fait des choix qui contraignent quand même ses locuteurs à adopter des réflexes qui n'ont rien de naturel…

          Je pense qu’il voulait dire «les choix fait lors de la conception de l’espéranto».

          Écrit en Bépo selon l’orthographe de 1990

          • [^] # Re: Espéranto et programmation

            Posté par  (site web personnel) . Évalué à 5.

            Les choix initiaux fait par Zamenhof ont quand même été fait après diverses expérimentations avec épreuve sur traduction d’œuvres classiques. Cela étant l’espéranto continue d’évoluer, comme toute les langues vivantes. De mon point de vu, l’argument pragmatique le plus important en faveur de l’espéranto, c’est sa réussite pratique. C’est à dire relativement à tous les projets du même genre. Qu’importe la perfection grammaticale et la facilité d’apprentissage si au final il n’y a personne avec qui dialoguer.

            En tout cas pour ma part c’est l’espéranto que j’ai retenu pour faire un projet de langages de programmations basé sur un vocabulaire non anglophone.

            • [^] # Re: Espéranto et programmation

              Posté par  . Évalué à 3.

              Les choix initiaux fait par Zamenhof ont quand même été fait après diverses expérimentations avec épreuve sur traduction d’œuvres classiques.

              Et ça se voit dans la cohérence du langage.

              De mon point de vu, l’argument pragmatique le plus important en faveur de l’espéranto, c’est sa réussite pratique. C’est à dire relativement à tous les projets du même genre. Qu’importe la perfection grammaticale et la facilité d’apprentissage si au final il n’y a personne avec qui dialoguer.

              Je ne suis pas tout à fait d’accord: selon moi ce sont deux arguments complémentaires. En effet, quel intérêt d’apprendre une n-ième langue si elle est aussi difficile à apprendre que les autres, et qu’elle est parlée par beaucoup moins de monde?

              Au début j’ai commencé à apprendre le lojban, pourtant vous n’allez pas me dire qu’on en croise à tous les coins de rue… Finalement c’est la facilité d’apprentissage du vocabulaire qui m’a fait venir à l’espéranto (et je ne le regrette pas).

              En tout cas pour ma part c’est l’espéranto que j’ai retenu pour faire un projet de langages de programmations basé sur un vocabulaire non anglophone.

              C’est super intéressant, pour le peu que j’ai lu! As-tu déjà jeté un œil aux trucs de Rust tirés du fonctionnel comme let (déclaration de variables), match (filtrage par motif), et les trait/impl?

              Écrit en Bépo selon l’orthographe de 1990

            • [^] # Re: Espéranto et programmation

              Posté par  . Évalué à 3.

              En tout cas pour ma part c’est l’espéranto que j’ai retenu pour faire un projet de langages de programmations basé sur un vocabulaire non anglophone.

              Je viens d'essayer un truc avec le langage J :

              miajnombroj =: 1 2 3 4
              pluso =: +
              transe =: /
              egalas =: =
              neegalajxo =: 10 egalas pluso transe miajnombroj
              

              D'un côté, comme le langage de base n'a que des symboles il est déjà plutôt neutre ;) Mais comme la documentation adopte un point de vue grammatical, parlant de verbes pour les fonctions, de noms pour les valeurs, et d'adverbes pour les fonctions qui modifient des fonctions, je me suis dis que ça serait intéressant de voir de voir si on pouvait faire une correspondance avec la grammaire de l'espéranto.

              Après réflexion, dans des cas simples on peut faire la correspondance et obtenir un truc qui compile en l'état une phrase qui tient la route, mais du fait de certaines particularités du langage on ne peut par exemple pas faire de l'agglutination compatible avec celle de l'espéranto, et dès qu'on veut faire des phrases composées en J on n'a pas la flexibilité de l'ordre des mots comme en espéranto, entre autres. Il y a aussi le fait que suivant le contexte un verbe en J peut avoir plusieurs traductions en espéranto.

              Mais bon, j'imagine que l'objectif c'est plutôt de traduire de l'anglais vers l'espéranto, pas de symboles vers l'espéranto ;)

              • [^] # Re: Espéranto et programmation

                Posté par  (site web personnel) . Évalué à 4.

                Il y a plusieurs objectifs au projet, et notamment de voir quels sont les mots de vocabulaires espéranto pour remplacer l'anglais dans les langages de programmation. Avoir des langages qui tirent parti de la régularité de l'espéranto est également un objectif. Un de mes livres de chevet du moment est « grammaire méthodique du français », qui me permet de me documenter sur le vocabulaire linguistique et de mieux cerner les rapprochements tels que fonction/verbe comme tu les présentes.

                Remplacer les symboles est également envisageable, les suffixes -iĝi et -igi peuvent servir à marquer l'affectation du résultat d'une fonction, complété par l'accusatif -n sur (ou d'une préposition devant) l'objet affecté. En tout cas ce sont des choses que je souhaiterait réalisé à travers ce projet.

  • # Latin

    Posté par  (site web personnel) . Évalué à 4.

    À ce sujet, j'imagine que ce projet doit aussi pouvoir être adaptable au Latin non ?

    • [^] # Re: Latin

      Posté par  (site web personnel) . Évalué à 3.

      Tout à fait, et cela fait même partie du futur proche d'Inflectiones. Serais-tu intéressé(e) ?

      Trust the Python !

      • [^] # Re: Latin

        Posté par  (site web personnel) . Évalué à 2.

        Faudrait que je me penche plus dans le projet (Et plus dans le latin) mais en tout cas j'essaierai de suivre l'actualité du projet.

        • [^] # Re: Latin

          Posté par  (site web personnel) . Évalué à 1.

          Merci de ta réponse. Je dois d'abord coder la version latine d'OrthoPhone, c'est-à-dire la fonction décrivant phonétiquement le mot latin d'après son orthographe puis la fonction permettant le découpage en syllabes. Une fois ceci terminé (d'ici un mois ?) je pourrai prolonger Inflectiones pour le latin. Je pourrai enfin enricher le projet PrimusAmor. Si tu es intéressé, n'hésite pas à me le faire savoir !

          Trust the Python !

  • # Coquille

    Posté par  . Évalué à 4.

    On écrit «espéranto» (avec un e accent aigu à la place du deuxième e).

    Écrit en Bépo selon l’orthographe de 1990

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.