(blog.mistike)

Reflexions et bidouillages généalogiques et hors sujet

On peut tout faire avec un numéro SOSA

Note de début de post : Ce qui suit est très long, sans images, et complètement obscur. Pardonnez-moi.

Je fais partie de ce que Jordi appelle joliment les généageeks. En tant que telle, j’aime jouer avec ma généalogie, et je passe pas mal de temps à développer des applis (web) qui me permettent de faire des rapports, ou de combler les lacunes de mon logiciel (réelles ou pas). Récemment, j’ai commencé à me pencher sérieusement sur la numérotation SOSA. Celle-ci permet en particulier d’extraire uniquement les ascendants, et de connaître le sexe de telle ou telle personne. Elle permet aussi bien sûr de calculer sa place dans l’arbre, avec quelques calculs plus ou moins sympatiques à faire, et de remonter l’arbre.

Mais on est assez vite limité. Malgré celà, j’avais toujours cette idée derrière la tête qu’on pouvait aller plus loin. Eh bien on peut. Si vous gérez votre généalogie sur base de gedcom, ou avec un logiciel qui vous laisse libre accès à vos données, ça peut vous intéresser.

La numérotation SOSA classique

Rappel du fonctionnement : la racine de l’arbre (le de-cujus) porte le numéro 1. Ses ascendants sont numérotés de la façon suivante :

  • Père : 2
  • Mère : 3
  • Grand-père paternel : 4
  • Grand-mère paternelle : 5
  • Grand-père maternel : 6
  • Grand-mère maternelle : 7

Si l’on prend une personne portant le numéro (n), alors son père portera le numéro (n x 2) et sa mère le numéro ((n x 2) + 1). Pour des explications plus claires :-p et plus complètes, voir sur Wikipédia.

A partir de ces numéros, on peut extraire un certain nombre d’informations, selon que l’on est bon en maths ou pas. Entre autres, et à l’exception du de-cujus (numéro 1) :

  • Un homme aura un numéro pair
  • Une femme aura un numéro impair

Pour aller plus loin, il faut passer aux logarithmes (de base 2, pas décimaux) qui permettent d’obtenir le degré d’ascendance. Et là, très franchement, je ne me rappelle plus comment on fait – la Terminale est trop loin !

Le SOSA binaire

La numérotation classique se fait en décimal (base 10). C’est comme celà que nous comptons. Mais que se passe t-il si l’on convertit ces numéros en binaire (base 2) ?

On obtient des suites de 0 et de 1 parfaitement imbuvables, et encore plus longues qu’avant (bonjour génération 16 !). Certes.

Par exemple :

Génération Numéro SOSA Numéro SOSA en binaire Personne
1 1 1 Moi
2 2 10 Papa
2 3 11 Maman
3 4 100 Papi
3 5 101 Mamie
3 6 110 Pépé
3 6 111 Mémé

Vous allez me dire, oui, bon. Et à quoi ça sert ? Et puis comment je fais pour transformer mes numéros en binaire ?

A quoi ça sert

Déjà, personnellement, je trouve nettement plus joli. Mais c’est peut-être juste moi, hein. Déformation professionelle. Bref.

Quelques utilisations simples :

  • Pour trouver le numéro du sosa précédent (enfant), plus besoin de diviser par deux (après avoir enlevé un pour les femmes), il suffit de supprimer le dernier chiffre. Les ascendances et descendances sont plus faciles à déterminer, ne serait-ce que visuellement.
  • Les hommes portent un numéro se terminant par 0.
  • Les femmes portent un numéro se terminant par 1.

Jusque là, pas de grande différence à part la migraine. Mais ça devient plus intéressant. Mettons que vous racontiez la vie et l’oeuvre de Papi Jeannot, né en 1725, SOSA 392, à votre grande soeur.

A quelle branche appartient une personne ?

Branche paternelle ou maternelle ? Facile sur les premières générations, mais au bout d’un moment on ne sait plus sans avoir à se retaper tout son arbre. Eh bien, ici, facile :

  • Le numéro commence par 10 : branche paternelle.
  • Le numéro commence par 11 : branche maternelle.

Papi Jeannot, SOSA 110001000, c’est du côté de Maman. C’est d’abord pour trouver ça que je me suis penchée sur la question. Outre la possibilité de pouvoir répondre facilement à une question commune, celà permet de séparer un fichier facilement, ou d’afficher les données différemment. Utile quand on souhaite transmettre une seule branche à un cousin, par exemple.

Quelle génération ?

Bon, mais 1725, c’est loin. Quelle génération ? Facile, il suffit de compter le nombre de chiffres. Papi Jeannot, toujours SOSA 110001000, fait partie de la 9ème génération. Je vous laisse en déduire le nombre de « grand-grand-grand » à placer devant « Papi ».

Attention, ici je pars du principe que le de-cujus est la génération 1. Si vous partez plutôt de ses parents, il faut enlever un chiffre avant de compter.

La place dans l’arbre

Amusons-nous un peu. On a vu que les hommes sont marqués par un 0 à la fin. Les femmes par un 1. La suite de chiffres permet donc de savoir combien d’hommes, combien de femmes, et dans quel ordre, séparent une personne du de-cujus.

Exemple simple : mon SOSA 5 = 101. En prenant les chiffres un par un, je sais qu’il s’agit de ma grand-mère paternelle (moi + un homme + une femme).

Exemple plus compliqué : mon SOSA 52, autrement dit 110100, donc un homme, à la 6ème génération de ma branche maternelle. En prenant les chiffres un par un :

110100 = le de-cujus + une femme + un homme + une femme + un homme + un homme.

Il s’agit donc du père du père de la mère du père de ma mère. Comment ça vous n’y comprenez rien ? Le grand-père paternel de la grand-mère paternelle de Maman ? Non ? Toujours pas ? Bon en vrai c’est Ambroise CRAMET Senior ;-)

C’est peut-être de la gymnastique de cerveau, mais c’est plus simple que de retrouver ça à partir de 52. Enfin je trouve.

Nombre de patronymes

(Duquel on déduira le nombre de mariages – ou de galipettes). Il suffit de compter le nombre de femmes – donc de 1. Dans l’exemple précédent, il y a deux femmes (le premier 1 est le de-cujus. Ca pourrait aussi bien être mon frère si j’en avais un). Donc deux changements de patronymes. Donc trois patronymes. Si. Je ne suis pas certaine de l’utilité de l’information, mais on ne sait jamais.

Evidemment ça suppose des enfants qui ont la bonne idée de porter le nom de leur père.

Changement de de-cujus

Maintenant que l’on peut exporter facilement une branche, ou pour une autre raison, on peut vouloir changer le de-cujus. Pour ce faire, pour chaque génération supprimée, retirer le second chiffre du numéro des ascendants.

Pour que Maman devienne le de-cujus, par exemple, il suffit de retirer le 1 qui se trouve en seconde position pour chacun de ses ancêtres. Pour que ce soit Papa, retirer le 0 qui se trouve en seconde position. Et ainsi de suite. Ca peut être particulièrement utile pour les calculs de parenté.

Transformer les numéros en binaire

Bon c’est bien joli tout ça, mais comment transformer un numéro SOSA de décimal en binaire ? Ça peut se faire à l’ancienne, c’est-à-dire manuellement. Vu que je n’ai JAMAIS réussi à m’en rappeler, même à la fac, je ne vous ferai pas l’affront de vous faire une démonstration. Il y a même une méthode avec les doigts de la main, mais même celle-là n’est jamais restée.

Donc on passe par un calculateur en ligne. Il en existe beaucoup, par exemple celui-ci : http://sebastienguillon.com/test/javascript/convertisseur.html. Ou on utilise sa vieille calculatrice scientifique du lycée.

MySQL et php

Pour les développeurs, MySQL propose deux fonctions pour obtenir ce numéro :

  • conv(n,10,2) : convertit le nombre n, qui est en base 10, vers la base 2.
  • bin(n) : idem

Exemple :

SELECT Sosa, BIN( SosaNum ) AS Binaire_bin, CONV( SosaNum, 10, 2 ) AS Binaire_conv 
       FROM `hrnumerossosa` 
       WHERE Generation < 5
       ORDER BY SosaNum

Résultat :

Sosa Binaire_bin Binaire_conv
1 1 1
2 10 10
3 11 11
4 100 100
5 101 101
6 110 110
7 111 111
8 1000 1000
9 1001 1001
10 1010 1010
11 1011 1011
12 1100 1100
13 1101 1101
14 1110 1110
15 1111 1111

Quant à php, on utilisera la fonction decbin(n) décrite ici.

Il y a certainement d’autres manières d’exploiter ces numérotations, n’hésitez pas si vous avez d’autres idées. En attendant, une aspirine et j’y retourne :)

Taggé avec: ,

14 Commentaires

  1. Il faut *vraiment* que je change de thème WordPress. C’est très moche et pas clair du tout.

  2. Bonjour Mistike,

    Mais si c’est clair :-)
    La preuve, j’ai tout compris, et je trouve que c’est très intéressant.
    Pas sûr de m’en servir dans l’immédiat, mais je me note l’info.

    Bonne journée

    Benoît

  3. Génial !!! Et tes explications sont parfaitement claires !
    Amicalement.

  4. Excellent, les explications sont très claires – mais si mais si – la petite fonction pour convertir j’adore …. mais comme Heredis ne sait pas faire, et que je n’ai pas envie de changer – pour l’instant – de logiciel, je vais garder mes Sosa décimaux betes …. mais ca me plait vraiment

    Merci :)

  5. Bonjour Mistike

    Super intéressant et très clair !!
    C’est vrai que de retrouver toutes ces infos grâce au numéro d’un ancêtre, c’est très intéressant !
    Par contre, effectivement très grand nombre plus on avance dans les générations … mais est ce vraiment handicapant avec la somme d’information que cela nous fournit

    Biz

  6. Salut,

    Si si très intéressant comme article. J’ai tout compris ça devait donc être très clair :-) )
    Moi je dis que C’EST la solution pour se repérer mais par contre difficile à gérer pour des ancêtres du 17eme.
    Une astuce existe peut être pour comprimer le chiffre (comme pour les chiffres romains lool)
    Benoit

  7. Bonjour Mistike,

    Merci pour l’article très intéressant !

    Est-ce que les logiciels/services web de généalogie intègre la gestion des SOSA au format binaire ?
    Est-ce que cela pourrais t’intéresser ?

    Je met de côté ton article pour voir comment l’intégrer à mon projet de généalogie.

    Bonne continuation,
    Pierre

    • Bonjour Pierre,

      Non pas à ma connaissance, bien que certains s’en servent peut-être dans leurs algorithmes. Je ne pense pas que ca arrive un jour dans les interfaces utilisateur. Ca n’aurait qu’un intérêt limité (déjà que je suis sûre que très peu de gens utilisent le numéro SOSA autrement que comme un « marqueur d’ancêtre direct ». Et ce, d’autant plus que le numéro en lui-même devient très vite ingérable quand on atteint plusieurs générations.

      Ca n’a vraiment d’intérêt que pour faire des calculs (calculs générationnels, parenté, etc), des rapports, ou manipuler les données (extraire une branche par exemple). Bref, c’est plus un outil informatique que purement généalogique.

      Personnellement je vais m’en servir dans des projets persos à côté de mon logiciel. J’avoue que ca simplifie grandement les traitements.

  8. Intéressant, mais je suis pratiquement sûr que l’on obtient les mêmes résultats (et plus peut-être) avec les logarithmes et les exponentielles avec des notations classiques.

    Par contre, il faudrait voir si le système bibinaire du regretté et génial Bobby Lapointe ne pourrait pas apporter un plus (j’en ai un vague souvenir et il me semble bien que la notation était plus compacte que le système binaire).

    Mais respect pour l’effort!

    Amicalement

    • Il est certainement possible d’obtenir la même chose avec les logarithmes, mais personnellement je trouve ca encore plus compliqué. Ne pas oublier qu’on parle de logarithme de base 2, pas de base 10 (celui qu’on apprend au lycée et en fac hors fac de maths).

      Et puis… ca fonctionne en binaire justement parce que chaque personne a 2 parents, et non pas 10. Utiliser le log2 du numéro sosa, ca revient au même que convertir en binaire (philosophiquement parlant)…

  9. Inattendu & limpide !

    Pour le thème Wordpres, je le trouve chouette.., c’est juste le pp qui me heurte mais c’est probablement parce que je n’aime pas la couleur bleue ;)

    Je pense que la couleur douce du « istike.com » dans ton logo ferait l’affaire pour valoriser ta page mais je ne suis pas un expert et je rencontre les mêmes problèmes.

    Bonne continuation
    A1 2 C4

  10. Que c’est beau !

    Et ça donne l’impression que les heures passées en cours de Math peuvent encore servir … :twisted:

    Perso, j’utilise principalement les numéros de sosa (sous excel) pour repérer mes cousins généalogiques, je m’explique: j’ai laborieusement saisi tous mes cousins avec les numéros de sosa (ceux dans mon arbre) correspondant à nos couples en commun.
    Du coup, quand je découvre un cousin ou que j’ai une info sympa à partager, je sais retrouver facilement qui pourrait être intéressé (typiquement les descendants aussi du même sosa).
    Bon, je ne passe pas par une représentation binaire alors je suis un peu hors sujet (et je n’ai même pas été jusqu’aux macros excel alors c’est même parfois un peu bourrin) mais c’est une fonctionnalité « collaborative » qui serait appréciable si ça existait, par exemple sur geneanet …