Léa prépare une petite table pour un livre privé inventé. Chaque ligne associe un nom, un cahier et une rubrique. Simon souhaite imprimer ces renseignements dans deux listes plus étroites, puis reconstruire la table lorsqu’une lectrice demandera les trois champs ensemble. La commande ne lui permet ni de perdre une ligne ni d’en ajouter une. Les noms, les cahiers et les règles sont créés pour ce cas ; aucune archive ni aucun logiciel n’est testé. La séparation doit donc être jugée par ce qu’elle permet effectivement de retrouver, pas seulement par le nombre de colonnes qu’elle économise.
Trois notices du Met identifient des dessins. Aucune image ni aucun procédé de ces objets ne fournit les lignes, les dépendances ou les règles de reconstruction de notre table créée.
La notice 337238 classe son objet parmi les dessins.
La notice 337239 classe son objet parmi les dessins.
La notice 337240 classe son objet parmi les dessins.
Une valeur commune ne conserve pas toujours la bonne association
Léa donne d’abord deux lignes : Ana, Bleu, Récits ; Basile, Vert, Récits. Deux règles accompagnent cette table et toutes ses modifications autorisées : chaque nom ne peut désigner qu’un cahier, et chaque cahier ne peut désigner qu’une rubrique. Plusieurs noms peuvent partager un cahier ; plusieurs cahiers peuvent partager une rubrique. Il faut donc garder le sens de chaque règle. Dire que la rubrique serait unique pour un cahier n’impose pas que ce cahier soit unique pour la rubrique. Les deux cahiers distincts Bleu et Vert portent ici précisément la même rubrique Récits.
Simon prépare une liste nom–rubrique : Ana, Récits ; Basile, Récits. Il prépare aussi une liste cahier–rubrique : Bleu, Récits ; Vert, Récits. Chaque ligne de ces deux listes provient bien de la table donnée. Pour reconstruire, il propose de réunir une ligne de la première et une ligne de la seconde lorsqu’elles possèdent la même rubrique. Les deux noms rencontrent alors chacun les deux cahiers, puisque les quatre lignes séparées portent Récits. Le résultat ne possède plus les deux associations reçues : il en possède quatre.
Les lignes ajoutées sont Ana, Vert, Récits et Basile, Bleu, Récits. Les lignes originales Ana, Bleu, Récits et Basile, Vert, Récits sont encore présentes, mais cette présence ne suffit pas à satisfaire la commande. La reconstruction devait être exacte, et non contenir l’original parmi d’autres possibilités. Simon peut montrer d’où vient chacun des morceaux de la ligne Ana, Vert, Récits ; il ne peut pas montrer une ligne reçue qui réunissait ces morceaux. La rubrique commune avait conservé une propriété partagée des deux cahiers, sans conserver quel nom appartenait à chacun.
Paul propose de retirer deux lignes de ce résultat afin de retrouver la règle « un cahier par nom ». Simon vérifie ce que cette règle permet réellement. Il pourrait garder les deux lignes originales, mais aussi Ana, Vert, Récits et Basile, Bleu, Récits. Cette seconde table respecte elle aussi un seul cahier par nom et une seule rubrique par cahier. Ses deux listes séparées sont exactement celles que Simon vient d’imprimer. Les contraintes ne départagent donc pas les deux tables possibles. Choisir les anciennes associations parce qu’il les connaît encore ne serait pas les reconstruire à partir des seules listes remises.
Léa refuse cette séparation pour la copie active. Le défaut n’est pas résolu en annotant le résultat « deux lignes seulement » : cette annotation ne dit pas lesquelles. Elle ne peut pas non plus imposer un cahier unique par rubrique pour départager après coup, puisque sa table initiale donne déjà Bleu et Vert sous Récits. Il faut conserver une association supplémentaire ou choisir d’autres colonnes communes avant la remise. Simon reprend donc les trois champs disponibles ; il n’invente pas une préférence entre Ana et Bleu pour remplacer l’information perdue.
Partager le champ qui détermine le troisième peut permettre la reconstruction
Il imprime maintenant les couples nom–cahier : Ana, Bleu ; Basile, Vert. La seconde liste reste cahier–rubrique : Bleu, Récits ; Vert, Récits. Le champ commun n’est plus Récits, mais le cahier. Réunir Ana, Bleu à une ligne de la seconde liste oblige à prendre Bleu, Récits. Vert, Récits ne peut pas lui être associé, puisque sa première valeur ne correspond pas au cahier de la ligne d’Ana. Le résultat donne Ana, Bleu, Récits, puis Basile, Vert, Récits. Les deux lignes sont retrouvées sans les deux croisements supplémentaires.
Simon veut une justification qui ne se limite pas à ces deux noms. Pour toute table satisfaisant la règle « un cahier ne désigne qu’une rubrique », une ligne reconstruite nom–cahier–rubrique a deux témoins dans la table originale. Son couple nom–cahier provient d’une ligne possédant une certaine rubrique ; son couple cahier–rubrique provient d’une autre ligne possédant le même cahier. La règle impose que ces deux rubriques soient identiques. Le premier témoin était donc déjà la ligne complète reconstruite. Aucune ligne supplémentaire ne peut apparaître par cette réunion.
Dans l’autre sens, chaque ligne originale fournit son couple nom–cahier et son couple cahier–rubrique. Le cahier commun les réunit toujours. Aucune ligne originale ne peut donc manquer au résultat. Les deux arguments ferment l’égalité des tables : toute ligne reconstruite existait déjà, toute ligne originale est reconstruite. La règle sur un seul cahier par nom n’a pas été nécessaire à cette preuve. Elle reste une contrainte du dossier, mais c’est la rubrique unique pour le cahier commun qui protège cette séparation précise. Simon conserve cette distinction lorsqu’il note la raison de son choix.
Léa accepte les deux listes avec cette règle attachée. Elle ne donne pas pour autant le droit de la supprimer lors d’une modification future. Le contrôle de reconstruction porte sur toutes les tables admises par la règle, tandis que l’essai précédent ne montrait que deux lignes actuelles. Une future table pourra contenir de nouveaux noms et cahiers sans casser la preuve si la rubrique reste unique pour chaque cahier. La petite vérification n’a donc pas seulement comparé deux nombres de lignes ; elle a identifié quelle obligation rend la comparaison valable au-delà de l’exemple donné.
Quand le champ commun ne détermine plus la fin de la ligne
Un dossier distinct contient Ana, Bleu, Récits et Basile, Bleu, Lettres. Chaque nom possède encore un seul cahier, mais Bleu possède maintenant deux rubriques. Simon ne peut pas l’ajouter à la première famille sans signaler que sa seconde règle est violée. Léa autorise cette nouvelle table sous une autre permission : un cahier peut y comporter plusieurs rubriques. Elle maintient pourtant la demande de reconstruction exacte. La séparation qui avait été sûre doit donc être contrôlée sous cette permission différente, sans retirer silencieusement la ligne Lettres.
Les couples nom–cahier deviennent Ana, Bleu et Basile, Bleu ; les couples cahier–rubrique deviennent Bleu, Récits et Bleu, Lettres. Réunir sur Bleu produit de nouveau quatre lignes. Ana reçoit aussi Lettres et Basile aussi Récits, associations absentes du dossier. Le fait que chaque nom ait un cahier unique n’empêche pas ces rubriques supplémentaires : cette première règle porte sur nom et cahier, pas sur le choix de rubrique lorsque plusieurs sont admises pour ce cahier. Simon conserve donc le contre-exemple auprès de la preuve précédente, avec la règle qui a effectivement cessé de s’appliquer.
Léa peut garder la table à trois colonnes. Elle autorise aussi une séparation utilisant un repère de ligne ajouté pendant la préparation, lorsque la table complète est encore disponible. Simon attribue U à la première ligne et V à la seconde. Sa liste gauche porte U, Ana, Bleu puis V, Basile, Bleu ; sa liste droite porte U, Récits puis V, Lettres. Il réunit cette fois sur U ou V, pas sur Bleu. Chaque repère retrouve exactement les deux portions de sa ligne. U n’établit aucune identité ancienne d’Ana : c’est une liaison de copie créée pour garder cette association pendant la séparation.
Cette remise demande des contrôles précis sur les repères. Chaque ligne doit posséder un repère unique et chaque repère doit être présent dans les deux listes. Si Simon oublie V à droite, la réunion perd la seconde ligne ; si U reçoit deux rubriques à droite, elle ajoute une seconde ligne pour Ana. La simple présence d’une colonne de repères ne suffit donc pas. Simon vérifie U et V une fois dans chacune des listes et conserve leurs deux correspondances. Il peut alors retirer ces repères de la table affichée après réunion, puisque les trois champs remis retrouvent les deux lignes reçues.
Paul suggère d’ajouter U et V seulement après la première séparation perdante. Simon refuse de présenter cela comme une récupération de l’information. Les listes nom–rubrique et cahier–rubrique du début admettaient deux associations différentes ; attribuer des repères à ces morceaux ne dira pas laquelle était donnée avant leur séparation. La liaison protège ce que Simon connaît au moment où il la crée. Elle ne remonte pas à un lien effacé sans autre renseignement. Les avertissements généraux sur l’identité des documents avaient déjà été traités ailleurs ; la correction ici porte sur le moment précis où une association complète peut encore être copiée dans les deux listes.
Le choix des colonnes change avec les règles permises
Léa ouvre une dernière famille de tables. Les champs restent un nom, un cahier et une rubrique, mais les contraintes changent. Un couple nom–cahier ne peut désigner qu’une rubrique ; une rubrique ne peut désigner qu’un cahier. Un nom seul peut en revanche apparaître avec plusieurs cahiers, et un cahier avec plusieurs rubriques. Le second dossier ne doit donc pas reprendre la règle « un cahier par nom » du premier. Simon nomme les champs A pour le nom, B pour le cahier et C pour la rubrique, afin de distinguer les couples AB et AC d’un champ isolé.
La table contient Ana, Bleu, R1 ; Basile, Bleu, R1 ; Ana, Vert, R2 ; Diane, Bleu, R3. R1 et R3 désignent chacune Bleu ; R2 désigne Vert. Le même cahier Bleu possède donc deux rubriques, tandis que le nom Ana possède deux cahiers. Chaque couple nom–cahier donné n’a toutefois qu’une rubrique : Ana–Bleu mène à R1, Ana–Vert à R2, Basile–Bleu à R1 et Diane–Bleu à R3. La table satisfait bien les deux nouvelles contraintes, sans satisfaire les deux règles plus fortes que Paul aurait pu importer du dossier précédent.
Simon cherche quels champs suffisent à retrouver les trois valeurs d’une ligne sans ambiguïté. AB donne C par la première règle. AC donne B par la seconde, puisque C désigne un seul cahier. Les couples AB et AC suffisent donc chacun. C seul ne suffit pas : R1 figure avec Ana et Basile. A seul ne suffit pas pour Ana, et B seul ne suffit pas pour Bleu. Le fait qu’une rubrique désigne son cahier n’en fait pas un repère unique de toute la ligne. Simon garde les deux couples utiles comme moyens de contrôler une ligne complète, sans remplacer une dépendance de champ par une identité de document.
Pour éviter de recopier Bleu auprès de chaque nom sous R1, il sépare les couples nom–rubrique et rubrique–cahier. La première liste contient Ana–R1, Basile–R1, Ana–R2 et Diane–R3. La seconde contient R1–Bleu, R2–Vert et R3–Bleu. Réunir sur la rubrique redonne les quatre lignes de la table. Cette fois, la séparation que le premier dossier avait refusée fonctionne : C désigne maintenant un B unique. Simon n’a pas rendu la rubrique unique par une légende après le calcul. La contrainte de cette nouvelle famille l’imposait avant la séparation, et les lignes l’ont effectivement respectée.
Il vérifie la preuve pour cette famille comme il avait vérifié l’autre. Un couple nom–rubrique reçu contient une ligne originale avec un cahier ; le couple rubrique–cahier associé provient d’une ligne portant la même rubrique. La règle C désigne un seul B oblige ces cahiers à coïncider. La ligne réunie était donc déjà celle du premier couple. Toute ligne originale fournit aussi ses deux couples et revient par la rubrique commune. La reconstruction est exacte pour toutes les tables respectant cette règle. Le critère n’est pas le nom « rubrique » ou « cahier », mais ce que le champ commun détermine dans la famille active.
Une reconstruction exacte ne dispense pas d’un contrôle traversant les listes
Paul souhaite maintenant valider chaque modification en regardant seulement les listes séparément. La liste rubrique–cahier vérifie qu’une rubrique ne porte pas deux cahiers. La liste nom–rubrique vérifie que chaque couple apparaît une seule fois dans cet ensemble. Il voudrait conclure que toutes les contraintes de Léa sont ainsi contrôlées. Simon cherche pourtant où le couple nom–cahier, qui doit fixer sa rubrique, apparaît au complet. Le nom se trouve dans la première liste et le cahier dans la seconde. Ce couple traverse la séparation ; aucune ligne locale ne porte à elle seule ses deux valeurs et les rubriques qu’elles autorisent.
Léa crée une demande d’ajout : Ana doit aussi être inscrite sous R3. R3 existe déjà dans la liste des rubriques et désigne Bleu. Simon peut donc ajouter le couple Ana–R3 à la liste nom–rubrique sans y répéter un couple existant. La liste rubrique–cahier n’a aucune modification et conserve sa rubrique unique pour chaque ligne. Ces deux contrôles locaux réussissent. Ils ne contrôlent pas encore si Ana possédait déjà une autre rubrique pour ce même cahier Bleu. Simon reçoit l’ajout comme proposition à vérifier, sans lui donner une approbation issue des seules colonnes présentes sur sa feuille locale.
Après réunion, Ana–R3 produit Ana, Bleu, R3. La ligne Ana, Bleu, R1 est toujours présente. Le même couple Ana–Bleu désigne maintenant R1 et R3, ce que la première règle interdit. La table reconstruite n’a pourtant pas ajouté cette ligne par erreur : le nouveau couple Ana–R3 avait été expressément demandé. L’information a été conservée correctement, mais la demande était incompatible avec une contrainte globale. Simon refuse donc l’ajout dans l’état actif. Il ne répare pas la situation en accusant la réunion de créer une ligne absente de la nouvelle liste : son résultat est exactement ce que cette liste lui demandait de construire.
La distinction change le contrôle à conserver. Dans le premier dossier perdant, les listes ne permettaient plus de savoir quelles associations étaient originales. Dans cette dernière séparation, la rubrique détermine encore son cahier et la réunion retrouve sans ambiguïté toute la table portée par les listes. La contrainte du couple nom–cahier peut donc être vérifiée, mais il faut regarder les associations réunies ou garder un contrôle équivalent qui traverse les deux listes. Simon ne prétend pas que cette contrainte serait devenue impossible à contrôler. Elle a perdu sa vérification locale immédiate, pas l’information nécessaire à sa vérification.
Il prépare un contrôle concret avant chaque remise : pour chaque couple nom–cahier de la table réunie, il rassemble les rubriques qui lui correspondent. Un couple possédant une seule rubrique convient ; un couple en possédant deux ne convient pas. Dans la proposition nouvelle, Ana–Bleu reçoit l’ensemble R1, R3 et déclenche le refus. Ana–Vert ne porte encore que R2, et Diane–Bleu que R3. La présence de deux noms dans Bleu n’est pas interdite ; la présence de deux rubriques pour le même nom dans le même cahier l’est. Le contrôle garde donc le couple complet, plutôt qu’une interdiction excessive sur toutes les répétitions de Bleu.
Paul propose une règle locale plus forte : un nom ne devrait jamais apparaître avec deux rubriques dans la première liste. Elle refuserait bien Ana–R3, mais elle refuserait aussi Ana–R1 avec Ana–R2, déjà permises dans la table initiale parce qu’elles conduisent à deux cahiers différents. Une règle plus sévère n’a pas seulement trouvé le défaut recherché ; elle a retiré un état que Léa avait autorisé. Simon conserve donc le contrôle du couple après réunion. Il ne prend pas une restriction facile à vérifier pour une traduction exacte de la règle qui traverse les listes.
Une autre restriction locale ferait désigner une seule rubrique par cahier dans la seconde liste. Elle supprimerait le partage de Bleu entre R1 et R3 et retirerait Diane–Bleu–R3 de la table initiale, alors que ce couple nom–cahier possède bien une rubrique unique. Simon refuse aussi cette nouvelle obligation. Les deux contraintes de Léa permettent plusieurs rubriques dans Bleu lorsqu’elles ne donnent pas deux réponses au même couple nom–Bleu. L’exemple exige donc de contrôler les noms avec les cahiers reconstruits, non d’inventer un cahier distinct pour chaque rubrique afin de rendre le contrôle local plus commode.
Léa conserve finalement les deux listes compactes et le contrôle transversal. Ana–R3 reste une proposition refusée, tandis qu’Ana–R1, Basile–R1, Ana–R2 et Diane–R3 restent la liste remise. La reconstruction retrouve leurs quatre lignes et le contrôle ne trouve qu’une rubrique par couple nom–cahier. Simon joint la règle C désigne un B unique comme raison de la reconstruction exacte, et la vérification des couples AB comme raison de la conformité. Il n’imprime pas « chaque liste correcte, donc ensemble correct » : les deux reçus portent sur deux propriétés distinctes.
Garder tous les couples ne garde pas nécessairement chaque trio
Paul essaie une autre permission, sans les deux contraintes de la dernière famille : il conserve les trois sortes de couples, nom–cahier, nom–rubrique et cahier–rubrique. Il pense qu’aucune association ne pourra alors manquer. Léa donne un nouveau dossier de trois lignes, à conserver exactement : Ana, Bleu, R1 ; Ana, Vert, R2 ; Basile, Bleu, R2. Simon doit contrôler cette troisième liste avant de l’accepter comme protection générale.
Les couples nom–cahier sont Ana–Bleu, Ana–Vert et Basile–Bleu. Les couples nom–rubrique sont Ana–R1, Ana–R2 et Basile–R2. Les couples cahier–rubrique sont Bleu–R1, Vert–R2 et Bleu–R2. Simon teste la ligne Ana, Bleu, R2 : son premier couple Ana–Bleu existe, son deuxième Ana–R2 existe et son troisième Bleu–R2 existe également. La ligne passe donc les trois contrôles, mais elle n’appartenait pas au dossier. Les trois témoins viennent de trois lignes différentes. Ajouter cette quatrième ligne au dossier ne change aucune des trois listes de couples, puisque chacun de ses couples y figurait déjà. Les listes ne peuvent donc pas distinguer le dossier à trois lignes du dossier augmenté ; l’ambiguïté ne provenait pas seulement du choix d’oublier une sorte de couple.
Simon refuse cette nouvelle séparation pour la demande de restitution exacte sans contrainte supplémentaire. Il garde les trois lignes complètes, ou leurs repères de ligne communs, afin de préserver les trios réellement donnés. Il ne retire pas les deux couples Ana–R2 et Bleu–R2 pour bloquer le croisement : ils appartiennent aux deuxième et troisième lignes qu’il doit conserver. Une restriction portant sur un seul couple détruirait une donnée reçue pour exclure une association complète qui, elle, n’a pas été reçue. Le contrôle nécessaire doit donc pouvoir refuser Ana–Bleu–R2 tout en gardant ces deux couples. La réunion des trois listes avait perdu précisément cette information de présence simultanée. Simon joint ce contre-exemple à la proposition de Paul plutôt qu’une promesse selon laquelle multiplier les petites listes finirait forcément par garder toute la table.
La table de notre livre peut ainsi être partagée sans faire oublier ce que chaque partage conserve. Un champ commun trop faible ajoute des associations ; un champ qui détermine la portion manquante protège la reconstruction. Même dans ce dernier cas, une contrainte peut demander de réunir les listes pour être contrôlée. Léa remet les colonnes choisies avec leurs règles et le contrôle effectivement réalisé, sans attribuer à une présentation plus courte la promesse de préserver automatiquement tous les liens entre les champs.
Les Éditions privées donnent une forme aux voix, aux archives et aux histoires que vous souhaitez transmettre.
Découvrir Codex de Maison →