Le Fa est le système divinatoire des Fon du Bénin, d'où je viens. Les Yoruba le pratiquent sous le nom d'Ifá, et les deux partagent exactement les mêmes figures.
La structure est binaire, au sens littéral et non métaphorique.
Le mécanisme
Une figure comporte deux colonnes. Chaque colonne a quatre positions. Chaque position porte soit une marque, soit deux.
Quatre positions à deux états donnent seize colonnes possibles. Deux colonnes côte à côte donnent 2⁸ = 256 signes. Ces seize colonnes sont les seize dù principaux, et les 256 paires forment l'espace complet.
Deux instruments les produisent. Seize noix de palme, les ikin, manipulées en huit passes. Ou une chaîne de huit coques, opele en yoruba et agumaga en fon, lancée une seule fois. Dans les deux cas la colonne de droite est produite en premier, ce qui n'est pas un détail de présentation : cela détermine le nom du signe obtenu.
Il existe une règle dans la méthode aux noix qui est l'inverse de ce que tout le monde suppose, moi compris avant vérification :
Une noix restée dans la main signifie une marque double. Deux noix signifient une marque simple.
C'est le détail le plus fréquemment recopié de travers dans les descriptions rapides de la procédure, donc la suite de tests l'affirme dans les deux sens, là où un refactor ne peut pas l'inverser en silence.
Les relations sont la partie intéressante
Une fois les seize figures écrites comme motifs binaires, une structure apparaît qui vaut le détour pour un programmeur.
Le renversement : retournez une figure. Quatre des seize se lisent identiquement dans les deux sens : Gbé, Yèku, Woli et Di. Les douze autres s'apparient en six couples.
Le complément : échangez chaque marque simple contre une double et inversement. Cela apparie les seize en huit couples sans aucun point fixe, ce qui découle du fait que quatre positions ne peuvent jamais toutes différer d'elles-mêmes.
Ces deux opérations partitionnent le même ensemble de deux manières qui ne coïncident pas.
Le difficile, c'était les données
Je pensais que le code serait le travail. Il fait quelques centaines de lignes de manipulation de bits.
Le difficile a été d'établir ce que sont les figures.
Les sources divergent. Pas sur les mathématiques, que personne ne conteste, mais sur le nom attaché à chaque figure et sur l'ordre de la liste. L'ordre varie selon les régions : celui que j'utilise est donné par fongbebenin.com pour les dù fon et par ileifa.org pour les odù yoruba, et les deux concordent position par position, mais au moins une liste béninoise publiée place Ka en onzième.
La bibliothèque traite donc rank comme un identifiant stable pour l'indexation et précise explicitement que ce n'est pas une affirmation sur la préséance. L'ordre de préséance des 256 dépend des lignées et n'est pas encodé du tout.
Deux figures ont posé plus de difficultés que cela. Deux listes largement recopiées donnent à Sa et Trukpen les figures inverses. J'ai failli publier cette erreur, parce que la vérification évidente passe dans les deux cas : de part et d'autre on obtient quatre figures palindromes et six paires par renversement.
Ce qui tranche, ce sont les relations. Guda renversé donne Sa, et Ka renversé donne Trukpen. Intervertissez les deux et les deux relations se brisent simultanément. La version inversée est donc incohérente avec elle-même, ce qui se démontre sans avoir à décider quelle source est la plus fiable.
Ce qui n'y est délibérément pas
Il n'y a aucun verset et aucune interprétation. Un signe revient avec sa figure, ses noms en fon et en yoruba, et ses relations structurelles, et rien sur ce qu'il signifie.
C'est une ligne tracée volontairement. Le corpus interprétatif est immense, il s'enseigne différemment selon les lignées, et une bonne partie relève d'un savoir qui appartient aux initiés. Le comprimer dans un fichier JSON produirait quelque chose à la fois inexact et présomptueux.
Une application qui a la légitimité de porter l'interprétation peut le faire, en s'appuyant sur l'index ou le nom que la bibliothèque fournit. Le rôle de la bibliothèque est de garantir que la structure en dessous est juste.
L'utiliser
npx @catidegla/fadu cast
La direction la plus utile est la lecture d'un tirage réel plutôt que sa simulation, ce dont une application a réellement besoin :
import { readIkin } from '@catidegla/fadu';
readIkin([2, 2, 2, 2, 1, 1, 1, 1]).fon; // 'Gbé Yèku'
Une passe qui ne laisse aucune noix, ou trois, est refusée plutôt que transformée en une figure que personne n'a tirée.
69 tests, aucune dépendance, et les fichiers data/du.json et data/signs.json sont livrés pour que les données soient exploitables depuis n'importe quel langage. fadu.
Autant que j'aie pu chercher, il n'existait aucune bibliothèque comparable, dans aucun langage. Cette absence est la raison de son existence, et c'est aussi l'avertissement : il n'y a rien pour vérifier les figures sinon les sources, qui sont donc citées intégralement.
Top comments (0)