Décisions · Modèle de données

Quatre types, un seul graphe

Avant les briques, il y a des faits : une langue, un mot, un préfixe, un suffixe, et les relations qui les relient. Ce schéma relationnel les décrit sans choisir de base de données.

Voir aussiADR 0013 : le schémaADR 0009 : faits et équilibrageModèle détaillé (Markdown)

Type 01Langue

grec ancien

Le contexte d’une forme. Elle a une filiation (le français descend du latin) et un nom affiché dans chaque langue d’interface.

Sur la table
Jamais
Dans le codex
Une carte par langue
Type 02Mot

géologie

Un lexème autonome. Il est le résultat d’une composition, et peut redevenir un ingrédient : biologie + -iste.

Sur la table
Oui, une fois découvert
Dans le codex
Une carte
Type 03Préfixe

géo-

Un élément placé en tête. C’est une unité du français, reliée à son étymon, le grec γῆ (gê) « terre ».

Sur la table
Oui
Dans le codex
Une carte
Type 04Suffixe

-logie

Un élément placé en fin de mot. Même structure que le préfixe : seule la position change, et elle vient du type, pas du texte.

Sur la table
Oui
Dans le codex
Une carte

Six principes

  1. Des identifiants opaques. Corriger un accent ne crée jamais une nouvelle brique.
  2. Une unité lexicale pour les mots, préfixes et suffixes : tout se relie à la même cible.
  3. La langue n’est pas une unité. Aucune langue ne peut donc devenir une brique.
  4. Pas de type « étymon ». Un étymon est simplement une unité d’une langue source.
  5. Une forme sans trait d’union. La position vient du type ; le rendu montre une brique.
  6. Tout ce qui est affirmé est un fait, avec sa confiance, sa relecture et ses sources.
Modèle · Schéma

Des tables, pas des chaînes

Quatre blocs de faits et un bloc de jeu. Touchez une clé étrangère pour rejoindre la table qu’elle référence.

PKclé primaire UKunique FKréférence

Bloc 1

Langues et écritures

Grec ancien, latin, français, et les langues d’emprunt qu’un mot publié demande (ADR 0058), toujours sans variété.

langue

  • idPK
  • code_interneUKjamais affiché
  • langue_parente_idlangue
  • periode_debutperiode_fin
  • systeme_ecriture_defaut_idsysteme_ecriture

langue_libelle

  • langue_idPKlangue
  • localePKlangue d’interface
  • nom« grec ancien »
  • description

systeme_ecriture

  • idPK
  • code_iso15924UK
  • directiongauche à droite ou inverse
Bloc 2

Unités, formes et sens

Un supertype, deux sous-types exclusifs. Une unité s’écrit par ses formes et signifie par ses sens.

unite_lexicale

  • idPKfait
  • naturemot, préfixe ou suffixe
  • langue_idlangue

affixe

  • unite_idPKunite_lexicale
  • naturepréfixe ou suffixe
  • statutaffixe ou élément de composition

forme

  • idPKfait
  • unite_idunite_lexicale
  • texteUnicode, sans trait d’union
  • cle_normaliseeNFC, pour comparer
  • systeme_ecriture_idsysteme_ecriture
  • rolecanonique, allomorphe, graphie ancienne

translitteration

  • forme_idPKforme
  • convention_idPKconvention déclarée
  • texte« gê »

sens_libelle

  • sens_idPKsens
  • localePK
  • glose« terre »
  • definitionsens actuel
Bloc 3

Compositions et relations

Une composition découpe un mot en parties ordonnées. Une relation relie deux unités.

composition

  • idPKfait
  • mot_idmot
  • forme_resultat_idforme
  • type_analysesynchronique ou historique
  • prefereeanalyse affichée

composition_libelle

  • composition_idPKcomposition
  • localePK
  • sens_litteral« étude de la terre »
  • explication_courteexplication_detaillee

transformation

  • idPK
  • composition_idcomposition
  • rang_partieou toute la composition
  • type_codeélision, allomorphie…
Relations héritageempruntdérivationforme de compositionadaptationapparentement « Ressemble à » n’est pas une relation.
Bloc 4

Socle éditorial

Unités, formes, sens, compositions et relations partagent l’identifiant d’un fait. Un seul lien suffit pour sourcer n’importe quelle affirmation.

fait

  • idPK
  • confianceétablie, probable, discutée, non retenue
  • etat_relecture
  • note_internejamais publiée

source

  • idPK
  • roleréférence ou repérage
  • reference
  • editionou date de l’import
  • licence

fait_source

  • fait_idPKfait
  • source_idPKsource
  • localisationentrée, page
Couche ludique · esquisse

Briques et recettes

Le jeu référence les faits, jamais l’inverse. La rareté vit ici, jamais le niveau de confiance.

recette

  • idPK
  • composition_idcomposition
  • emplacementsdeux, ordonnés, briques acceptées

fascicule

  • idPK
  • numeroUK
  • publicationenviron tous les 30 jours

fascicule_unite

exclusion

  • idPK
  • fascicule_idfascicule
  • combinaisonpaire ordonnée de briques
  • raisonarchaïque, rare, offensant, analyse non établie

carte du codex

Calculée, jamais stockée. Une unité a sa carte si elle est une brique ou le résultat d’une recette.

Modèle · Exemple

Suivre géologie

Cinq unités, deux relations et une composition suffisent à expliquer le mot, à le surligner morceau par morceau et à remplir le verso de sa carte.

Voir aussiLa carte « géologie »La filiation

Étymons · grec ancien
unt_01 · motγῆgê · « terre »
unt_03 · suffixeλογίαlogía · « étude »
forme de compositionemprunt
Briques · français
unt_02 · préfixegéo-« terre »
unt_04 · suffixe-logie« étude »
composition
Résultat · français
unt_05 · mot · cmp_01 géologie rang 1 : segment [0, 3) · rang 2 : segment [3, 8) sens littéral : « étude de la terre »

Les étymons n’ont pas de carte propre : γῆ et λογία apparaissent au verso de géo- et de -logie, et sur la carte « grec ancien ». Exemples à vérifier et à sourcer avant publication.

Modèle · Sources et fascicules

Repérer, puis attester

Le Wiktionnaire propose des pistes ; seules les sources de référence permettent de publier. Le contenu arrive par fascicules, environ tous les 30 jours.

Voir aussiADR 0014 : sources et fasciculesADR 0005 : circuit de publicationADR 0017 : licences

Repérage

Wiktionnaire

Couverture très large, données structurées (Wiktextract, kaikki.org). Sert à proposer des unités, des formes, des relations et des combinaisons candidates.

  • Aucun texte copié : étymologies rarement sourcées
  • Ne suffit jamais pour publier
  • Import daté, gardé hors du catalogue
Référence

Dictionnaires et ouvrages savants

Français
TLFi, Académie française (9ᵉ édition), Littré
Latin
Gaffiot, Ernout-Meillet
Grec ancien
Bailly, LSJ, Chantraine

Citées avec l’entrée et l’édition consultées, jamais recopiées. Les textes du jeu sont rédigés par l’équipe.

Confiance

Ce qu’il faut pour publier

Établie
une source de référence l’affirme
Probable
une source de référence en fait une hypothèse
Discutée
deux sources de référence sont en désaccord
Non retenue
jamais publiée comme solution
  1. ImportUne version datée du Wiktionnaire, comparée à la précédente.
  2. Choix20 à 30 mots, et les préfixes et suffixes qui les forment.
  3. FermetureUn script cherche les mots croisés avec les briques des anciens fascicules.
  4. RecoupementChaque fait est vérifié dans une source de référence.
  5. RédactionGloses, définitions, sens littéraux et explications écrits par l’équipe.
  6. PublicationNouvelle version validée ; les briques entrent dans les plis.
Fascicule 1

bio-géo--logie

biologiegéologie

Fascicule 2 · trois briques nouvelles

philo--sophie-graphie

philosophiephilologiebiographiegéographie

Soulignés : mots croisés, qui associent une brique nouvelle à une brique du fascicule 1. La fermeture les impose ; ils appartiennent au fascicule 2 et comptent dans ses 20 à 30 mots. philo- + -graphie ne forme aucun mot attesté : rien à publier. Exemples à vérifier.

Modèle · Stockage

Où vivent les données

Le catalogue est publié en fichiers statiques, lus par tous. L’état du joueur reste dans une base privée, que seul le serveur modifie. Le reste vit à part.

Voir aussiADR 0027 : catalogue statiqueADR 0024 : hébergementADR 0025 : parution programméeADR 0026 : dépôt privéADR 0029 : parution par préfixe

Public

Stockage des assets

Le catalogue compilé, dans l’Object Storage public derrière le CDN : index, manifestes de fascicule, cartes, recettes, exclusions, jaquettes et silhouettes. Lu par le client comme par le serveur, sans API de contenu.

  • Fichiers statiques, en cache sans limite
  • Lecture publique de public/, sans listage
  • Fascicules à venir illisibles, sous staging/
  • Aucune note interne, aucun brouillon
Privé

Données du joueur

Réserve, codex, énergie, encre, sabliers, plis, indices, jalons et commandes. Des tables PostgreSQL, que seul le serveur lit et écrit.

  • Le serveur fait foi pour chaque règle
  • Aucune donnée personnelle
  • Aucune proposition de fusion stockée
Ailleurs

Le reste

Dépôt privé
des données seulement : sources, brouillons, notes internes, médias bruts, manifeste daté
Secret Manager
secrets du serveur, de la base et de la CI
Télémétrie
événements et journaux séparés, à durée limitée
Client
fichiers lus, état confirmé, file de commandes, réglages
Assets · trois niveaux

Un index, des fascicules, des ressources

Chaque manifeste et chaque ressource est rangé sous l’empreinte SHA-256 de son contenu : un fichier publié ne change jamais. Seul l’index global est modifiable.

index global

  • index.jsonchemin fixe, seul fichier modifiable
  • versionversion linguistique et version ludique
  • languesavec écritures, conventions et libellés
  • fasciculesnuméro, date de parution, chemin du manifeste

manifeste de fascicule

  • f/‹sha256›.jsonchemin donné par l’index
  • numero
  • parutiondate et heure
  • jaquetteasset
  • compteursmots, préfixes, suffixes, langues ; légendaires exclues
  • plibriques tirables, raretés, poids, encre
  • cartescarterôle résultat ou ingrédient, silhouette
  • languesassetsilhouette de chaque langue citée
  • recettesrecette
  • exclusionscombinaisons écartées et leur raison
  • jalonsconditions et récompenses

carte

  • r/‹sha256›.jsonune brique ou un mot
  • uniteformes, translittérations, sens, libellés
  • relationsétymons, avec forme, langue et glose
  • compositionspour un mot : parties, segments, transformations
  • briqueforme et sens affichés, rareté
  • faitsconfiance, note de simplification, sources

recette

  • r/‹sha256›.json
  • resultatcarte
  • emplacementsdeux, ordonnés, briques acceptées
  • preconditions
  • deblocages

asset

a/‹sha256›.svg : jaquette, silhouettes des cartes et des langues.

carte de langue

Pas de fichier : le client la construit à partir de l’index et des cartes découvertes.

  1. CompilationRessources et manifeste produits, empreintes vérifiées.
  2. DépôtÀ l’avance, par la CI du dépôt privé, sous staging/ : illisible avant la parution.
  3. ParutionÀ la date d’effet, une tâche planifiée copie les fichiers vers public/, applique les migrations et l’ajoute à l’index global.
  4. LectureLe client voit le fascicule à sa prochaine lecture de l’index.
  5. CorrectionNouveau hash, nouveau manifeste, nouvelle version de l’index.
Modèle · Joueur

Le serveur fait foi

Une fois le fascicule paru, ses recettes sont lisibles. En ligne, le client prévisualise la fusion ; le serveur valide la recette, vérifie la réserve, consomme les exemplaires et met à jour le codex, dans une seule transaction.

Voir aussiADR 0027 : serveur qui fait foiADR 0024 : tables PostgreSQLADR 0012 : réserveADR 0020 : énergie et sabliers

PostgreSQL · privé

L’état du joueur

Chaque ligne référence le catalogue par ses identifiants opaques. Toute variation passe par une commande idempotente et laisse un mouvement.

joueur

  • idPKaléatoire, sans donnée personnelle
  • empreinte_secret
  • version_etatdétecte un conflit
  • version_catalogue
  • derniere_activite

exemplaire

  • joueur_idPKjoueur
  • brique_idPKbrique
  • nombre0 à 5 ; 0 = épuisée, toujours connue

decouverte

energie

  • joueur_idPKjoueur
  • charges0 à 2, une toutes les 12 h
  • prochaine_chargenulle quand l’énergie est pleine

encre · sablier

  • joueur_idPKjoueur
  • gouttesjamais négatives
  • detenusjamais négatifs, sans plafond

compteur_pli

  • joueur_idPKjoueur
  • fascicule_idPKfascicule
  • plis_sans_nouveautegarantie au 6ᵉ pli
  • plis_sans_utilitefilet au 5ᵉ pli
  • plis_sans_legendairelégendaire garantie au 100ᵉ pli

ouverture_pli

  • idPK
  • fascicule_idfascicule
  • brique_idbrique
  • resultatnouvelle, doublon, réserve pleine
  • regletirage, garantie, filet, garantie des légendaires, déterministe

indice · jalon_atteint · reglage · migration

Un niveau d’indice par recette, un jalon atteint, une préférence énumérée ou une migration de version par ligne.

quete_du_jour · carte_lecteur · palier_atteint · quete_initiale

Les trois quêtes du jour, les tampons de la carte de lecteur (un par jour au plus, 7 par carte), les paliers des quêtes au long cours et le cadeau de bienvenue avec les quêtes initiales. Chaque récompense se récupère une fois et n’expire jamais.

ricochet

  • joueur_idPKjoueur
  • unite_idPKune carte trouvée
  • niveau0 à 3 ; maîtrisée au niveau 3 après trois bonnes réponses, perdue à une erreur
  • prochaine_revisiondans 1, 3, puis 7 jours

commande

  • joueur_idPKjoueur
  • idPKclé d’idempotence du client
  • typefusion, ouvrir un pli, sablier, indice…
  • reponserejouée à l’identique, purgée après 30 jours

mouvement

  • commande_idtrace, sans clé étrangère
  • ressourceexemplaire, encre, sablier, charge
  • deltaajout seul ; la somme égale le solde
  • motif

✓Le serveur vérifie

  1. La recette appartient à un fascicule paru, dans le bon ordre, préconditions remplies.
  2. La réserve contient un exemplaire de chaque brique utilisée.
  3. Consommation, découverte et récompenses réussissent ou échouent ensemble.
  4. Énergie, plis, encre, sabliers, indices et jalons suivent leurs plafonds.
  5. Une commande rejouée renvoie la même réponse, sans rien changer.

✗Jamais stocké

  1. Les propositions de fusion : échecs, « presque », recettes déjà connues.
  2. Un nom, une adresse électronique, une adresse réseau.
  3. Un texte libre saisi par le joueur.
  4. Les exemplaires réservés sur la table : ils restent locaux.
Modèle · Décisions

Quatre cas, quatre règles

Les cas limites ont fixé la forme du schéma. Chacun est tranché dans l’ADR 0013.

Voir aussiADR 0013ADR 0003 : transformations

Règle 01

Une brique par unité

Un allomorphe n’est jamais une brique à part. Pour philanthrope, le joueur pose philo- : la recette déclare que le o tombe devant une voyelle.

Règle 02

Des langues sans variété

Grec ancien, latin et français, plus une langue d’emprunt (anglais, allemand…) quand un mot publié passe par elle (ADR 0058). Une forme tardive ou médiévale reste dans sa langue ; la précision va dans l’explication.

Règle 03

Pas de carte d’étymon

Le grec phílos relie philo- et -phile, mais il n’a pas de carte : il vit au verso de ses descendants.

Règle 04

Deux homographes, deux cartes

Aucun numéro : la glose et l’étymon les distinguent. Le validateur refuse deux homographes indiscernables.

a-« sans » · greca-« vers » · latin

✓Vérifié à la publication

  1. Chaque unité a un seul sous-type, au moins un sens et une seule forme canonique.
  2. Une forme ne commence ni ne finit par un trait d’union.
  3. Une composition a au moins deux parties, dans l’ordre, sans cycle ; un préfixe n’est jamais en dernier, un suffixe jamais en premier.
  4. Une relation relie deux unités différentes ; héritage et emprunt ne forment pas de cycle.
  5. Tout fait publié est relu et sourcé ; « non retenue » n’est jamais une solution.

?Encore ouvert

  1. Compter les segments en points de code ou en graphèmes ?
  2. Les familles : regroupement éditorial ou notion dérivée des relations ?
  3. Une locale de référence unique pour les gloses et définitions ?
  4. Que dit le jeu devant une combinaison attestée mais exclue ?
  5. Le mauvais homographe sur la table : échec neutre, ou indice « même forme, autre sens » ?
  6. Dans une petite brique en ligne, comment distinguer deux homographes ?
  7. Combien de temps garder un profil invité inactif, et une version remplacée du catalogue ?