Méthodologie#
Comment on construit les axes, comment on les note, comment on les projette. Ce document est la référence normative du projet : tout fichier d'axe doit s'y conformer.
1. Ce qu'est un « bon » axe#
Un axe candidat doit satisfaire quatre critères.
1.1 Élémentarité — il ne mélange pas deux questions#
C'est le critère central du projet. Si un axe peut être scindé en deux sans perte de sens, il doit l'être.
Cas d'école : l'axe « socialisme ↔ capitalisme ». Il confond deux questions indépendantes, comme le montre l'analyse du dirigisme gaullien (note sur les doctrines économiques) :
- qui possède les moyens de production (propriété privée ↔ propriété collective) ;
- comment sont allouées les ressources (marché ↔ planification).
Ces deux questions ne sont pas la même. La preuve : les combinaisons « hors diagonale » existent réellement et sont impossibles à placer sur un axe unique.
| Allocation par le marché | Allocation planifiée | |
|---|---|---|
| Propriété privée | Libéralisme économique, ordolibéralisme | Dirigisme gaullien, colbertisme, économie de guerre |
| Propriété collective | Socialisme de marché (Yougoslavie titiste), coopérativisme | Planification centrale soviétique |
Le dirigisme gaullien et le socialisme de marché sont exactement ce qu'un axe unique rend invisible. C'est la démonstration en miniature de la thèse du projet : une doctrine de droite (le gaullisme) et une doctrine de gauche (le titisme) partagent chacune une moitié de leur position économique avec leur prétendu opposé.
Test pratique : chercher deux doctrines réelles qui s'accordent sur une moitié de l'axe et divergent sur l'autre. Si on en trouve, l'axe doit être scindé.
1.2 Non-redondance — il n'est pas la somme de deux autres#
Un axe qui corrèle mécaniquement à d'autres pollue l'ACP en surpondérant sa dimension latente. Les composés (« nationalisme économique » = protectionnisme + nationalisme culturel) sont documentés comme combinaisons dans data/ideologies/, pas comme axes.
1.3 Discriminance — il sépare réellement des doctrines#
Un axe sur lequel toutes les doctrines françaises contemporaines se situent au même endroit n'apporte aucune variance et alourdit le questionnaire pour rien. Il peut rester dans le référentiel pour la valeur pédagogique ou historique, mais avec inclus_dans_acp: false.
1.4 Formulable sans jargon#
L'utilisateur doit pouvoir se situer sans diplôme de sciences politiques. Chaque graduation reçoit un libellé courant en plus de son nom doctrinal.
2. Normatif vs empirique — la séparation obligatoire#
Deux natures d'axes qu'on ne mélange jamais :
- Normatif — une préférence, une valeur, une fin souhaitée.
« L'État doit-il redistribuer les richesses ? » Il n'y a pas de bonne réponse.
- Empirique — une croyance sur le fonctionnement du monde, en principe
vérifiable. « Les différences de comportement entre groupes humains sont-elles principalement innées ou construites socialement ? »
Pourquoi c'est essentiel : PolitiScales place l'utilisateur sur un axe « essentialisme ↔ constructivisme » qui relève largement de l'état des connaissances scientifiques, pas de l'opinion politique. On ne note pas les gens sur des faits.
Règle : les axes empiriques sont marqués nature: empirique et exclus de l'ACP principale (inclus_dans_acp: false). Ils restent intéressants — les croyances empiriques prédisent souvent les positions normatives — mais dans une analyse séparée.
En revanche ils sont proposés dans le questionnaire (inclus_dans_questionnaire: true), dans une section distincte et signalée comme telle, accompagnés de l'état du consensus scientifique quand il existe. La section est décochée par défaut : le parcours de base ne porte que sur des valeurs, et l'on coche « Poser ces questions » pour y répondre (pour un usage en classe, par exemple).
Restitution : les axes empiriques n'entrent pas dans la position idéologique de l'utilisateur. Ils apparaissent dans une section séparée des résultats, dont l'objet est de montrer la corrélation entre croyances sur le monde et positions normatives — un enseignement en soi, à condition de ne jamais la présenter comme une causalité.
3. Typologie des axes#
Tous les axes ne sont pas des droites. Trois types, déclarés dans le front-matter.
bipolaire — continuum symétrique entre deux pôles opposés#
Échelle −100 → +100, le 0 étant une position médiane substantielle (pas une absence d'opinion). Ex. : libre-échange ↔ protectionnisme.
ordinal — paliers nommés ordonnés#
L'utilisateur se place entre des ancres doctrinales explicites. L'espacement numérique entre paliers est une convention documentée, pas une mesure. Ex. : propriété privée intégrale → propriété mixte → propriété collective généralisée.
⚠️ Traiter des paliers ordinaux comme des distances euclidiennes est une approximation. Elle est acceptable pour une ACP exploratoire à visée pédagogique, mais doit être affichée comme une limite dans les résultats.
categoriel — modalités non ordonnables sur une droite#
Ex. : le rapport entre religion et État. « Théocratie », « religion d'État », « laïcité de séparation », « neutralité bienveillante », « laïcité de combat » ne s'alignent pas : la laïcité de combat est plus interventionniste que la neutralité bienveillante, tout en étant plus sécularisante. C'est en réalité deux dimensions.
Règle : un axe catégoriel est soit décomposé en axes bipolaires sous-jacents (solution préférée, cf. §1.1), soit conservé en variable qualitative hors ACP, affichée à part.
Le cas des relations en U#
Certains axes replient les extrêmes : l'anti-étatisme de l'anarchisme et celui de l'anarcho-capitalisme se ressemblent formellement mais reposent sur des raisons opposées. Quand c'est le cas, c'est le signe qu'il manque un axe qui distingue les deux (ici : la propriété). On le note dans pieges: du fichier d'axe.
4. Position et importance#
4.1 Côté utilisateur#
Chaque axe reçoit deux valeurs de l'utilisateur :
- position — où il se situe (−100 à +100, ou l'indice du palier) ;
- importance — combien ce sujet compte pour lui, en quatre niveaux qui reprennent
les poids de la saillance des doctrines (§4.2) : ne compte pas (0), secondaire (0,5), normale (1, le défaut), structurante (1,5).
Les niveaux sont nommés plutôt que chiffrés. Un curseur de 0 à 100 % réglé par défaut à 50 % laissait croire que 100 % était la norme, alors que ce réglage pesait deux fois le défaut, plus qu'un axe structurant de doctrine. Avec les mêmes poids des deux côtés, un sujet « structurant » pour vous pèse autant qu'un axe structurant pour une doctrine.
L'importance sert à trois choses : pondérer les écarts, aux doctrines de référence comme aux voisins sur les graphiques, distinguer « je suis modéré sur ce sujet » de « ce sujet m'indiffère » (deux états très différents qu'une position seule confond au voisinage de 0), et gérer la fatigue (un axe marqué sans importance peut être passé rapidement).
Précédents : PolitiScales utilise une notion d'intensité analogue ; CHES mesure séparément la position et la salience de chaque enjeu pour chaque parti.
L'importance ne rentre pas dans l'ACP de positionnement — elle décrirait le rapport au politique, pas le contenu idéologique. Elle peut faire l'objet d'une analyse séparée (« profils de saillance »).
4.2 Côté corpus#
La règle ci-dessus valait pour l'utilisateur et pas pour le corpus, ce qui était une incohérence : le questionnaire laissait répondre « sans avis », et l'axe sortait du calcul, mais chaque doctrine était obligée d'avoir une opinion sur les vingt-deux axes. Le chargeur écarte silencieusement toute observation incomplète, donc aucune doctrine n'a jamais pu se taire.
Le résultat était mesurable. Le keynésianisme est muet sur six axes, et ses six zéros le rendaient artificiellement proche de tout profil modéré. Chaque position porte donc désormais un champ importance :
| Valeur | Ce qu'elle dit | Poids dans les comparaisons |
|---|---|---|
structurante | L'axe définit la doctrine | 1,5 |
ordinaire (défaut) | Position pleine | 1 |
peripherique | Une inclination réelle, pas une doctrine | 0,5 |
sans_position | La doctrine ne se prononce pas | 0, l'axe sort du calcul |
Une position centrale n'est pas une absence, et c'est tout l'enjeu de la distinction. La démocratie chrétienne est au centre sur l'identité nationale parce que l'universalisme chrétien et l'enracinement national se compensent ; c'est un résultat, pas un silence. Le solde proche de zéro du néoconservatisme sur l'étendue de l'État illustre même une limite de l'axe, ce qui est une information. Ces cas restent ordinaire. Seules les positions dont la justification dit elle-même qu'il n'y a pas de doctrine ont été reclassées.
Règle particulière aux personnages. Pour un positionnement de facto, ne rien faire est un acte : « aucune modification du régime des cultes » est une position tenue pendant sept ans, pas une absence. Un sans_position de facto serait donc presque toujours une erreur, et aucun personnage n'en porte. Les fiches de pays en portent, pour deux raisons où l'axe lui-même ne s'applique pas : l'anachronisme et l'occupation (section 6.3 bis).
Les poids du tableau sont une convention, et ils sont vérifiés comme tels : en les faisant varier de 1/1/1 à 2/1/0,25, le classement des cinq doctrines les plus proches ne bouge pas, sauf une inversion des deux premières dans un seul cas de figure. Ce qui décide est l'exclusion des sans_position, pas le détail des poids.
La saillance ne rentre pas non plus dans l'ACP, et pour une raison mesurée plutôt que choisie : en faire des données manquantes détruit l'analyse. Mesuré au moment de la décision, sur trente-sept observations : écarter les observations incomplètes laissait onze doctrines ; calculer les corrélations paire par paire produit une matrice non semi-définie positive, donc une ACP qui serait un artefact, et cela dès 2 % de trous à cet effectif ; imputer les trous fabrique des opinions, l'écomodernisme passant de 0 à +100 sur l'interventionnisme extérieur. La matrice reste donc complète, et le renoncement coûte peu : en retirant les six observations les plus creuses, les sous-espaces à deux et trois dimensions restaient similaires à 0,998 et 0,997.
structurante est défini mais n'est encore attribué à aucune position : il demande une méthode, et l'inventer axe par axe serait exactement le jugement non étayé que le reste du référentiel s'interdit.
4.3 Plages de valeurs#
Une valeur unique affirme une précision que le corpus n'a pas toujours. Certaines positions sont des zones : une doctrine a changé, ses variantes divergent, ou elle accepte plusieurs réponses. Une position peut donc porter une plage facultative, [min, max], avec sa propre justification.
Derrière « ça dépend », il y a pourtant plusieurs choses, et une plage sans motif les confondrait. Chaque plage déclare sa nature :
| Nature | Ce qu'elle dit | Exemple |
|---|---|---|
incertitude | On sait mal où placer l'entité ; sa position réelle est un point | un personnage peu disert sur un sujet |
variabilite | La position réelle bouge, dans le temps ou entre variantes | les politiques commerciales des théocraties historiques |
latitude | L'entité accepte plusieurs positions, sans point préféré | une doctrine indifférente à l'organisation territoriale |
La latitude reprend la latitude d'acceptation de la théorie du jugement social (Sherif et Hovland) : l'ensemble des positions qu'un acteur juge acceptables, distinct de celle qu'il préfère. Deux cas voisins ne sont pas des plages. L'absence reste sans_position (section 4.2) : une entité qui ne se prononce pas n'a pas de zone, et les deux champs sont incompatibles. Le déclaré et le de facto restent deux positionnements (section 6.3) : l'écart entre discours et pratique est un résultat, qu'une plage effacerait.
Les règles, vérifiées par outils/valider.py :
valeurreste le point de référence de tous les calculs et doit être dans la plage ;- une plage se justifie comme une valeur : ce qui la borne de chaque côté, avec ses
sources quand elles diffèrent de celles de la position ;
- au-delà de la moitié de l'échelle, une plage ne situe plus. Sur un axe
structurante, c'est une erreur : l'entité regroupe plusieurs positions, et il faut la découper plutôt que l'élargir. Sur un autre axe, c'est un avertissement ;
- quand un quart des positions d'une entité portent des plages aussi larges, le
validateur signale que l'étiquette elle-même recouvre sans doute plusieurs doctrines.
Cette dernière règle vise un risque réel : la plage peut devenir une échappatoire, où toute position difficile s'élargit jusqu'à ne plus rien dire. Un corpus flou partout ne serait pas plus honnête qu'un corpus faussement précis ; il serait seulement inutile.
Côté utilisateur, les mêmes distinctions valent, et le questionnaire les applique. « Plusieurs positions me conviennent » donne deux poignées au curseur : c'est une latitude, encodée dans l'adresse de la page comme le reste des réponses. « Je ne sais pas » efface la réponse : c'est une absence, et l'axe sort des comparaisons comme de la position. Ce n'est pas la même chose qu'une importance de 0 : là, la position existe et sert à vous placer sur les graphiques et à estimer les axes déduits ; elle sort seulement des écarts, aux doctrines comme à vos voisins sur les graphiques, où chaque axe pèse l'importance que vous lui donnez. « Ça dépend » n'est souvent ni l'un ni l'autre : c'est le signe que la question en contient deux. Le questionnaire ne propose donc pas ce bouton ; quand une plage est choisie, il renvoie aux confusions fréquentes de l'axe, qui servent à séparer les deux questions.
Une plage répondue sert comme une plage du corpus : l'écart à une doctrine se mesure entre les bandes, et les graphiques montrent le segment et la zone du point « vous ». Pour placer ce point et pour estimer les axes déduits, c'est le milieu de la plage qui compte : une déduction a besoin d'une valeur, et le milieu est la seule qui ne privilégie aucun bord. Un axe laissé à la déduction ne porte pas de plage.
L'ACP n'utilise que valeur : une matrice d'intervalles la rendrait instable, et des coefficients publiés doivent le rester. Un test de robustesse refait l'ACP en tirant chaque position dans sa plage, pour vérifier que ce choix ne décide pas des résultats (résultats de l'ACP).
Les écarts, eux, lisent les plages. Pour la distance d'un profil aux doctrines comme pour les faux voisins, l'écart sur un axe est celui des bandes : nul si elles se chevauchent, sinon la distance entre leurs bords les plus proches. Une doctrine qui accepte toute une bande n'est donc pas éloignée de quelqu'un qui s'y trouve. La même règle vaut pour les trois natures, et c'est une borne basse : pour une plage d'incertitude, la position réelle est un point quelque part dans la bande, et l'écart réel peut être plus grand.
La contrepartie est directe : plus une plage est large, plus l'entité paraît proche de tout le monde. C'est exactement l'échappatoire que la règle de largeur combat, et la raison pour laquelle une étiquette trop large se découpe au lieu de s'élargir. Sur la page de résultats, une doctrine à plages et à axes sans position doit se lire avec son nombre d'axes comparés. Sur une fiche, une bande entoure le point, et son motif dit la nature : pleine pour la variabilité, rayée pour l'incertitude, cerclée pour la latitude. Sur les graphiques, la position décrit une boîte, chaque axe parcourant sa plage pendant que les autres restent à leur valeur. Cette boîte se projette exactement : en un segment sur un axe, en un polygone sur un plan (un zonotope, somme des segments de chaque plage), en un volume dans l'espace des trois premières composantes. À l'écran, ce volume vu sous un angle donné est lui-même le zonotope plan de ses segments projetés, ce qui le rend exact sous toutes les rotations. Le graphique à un axe montre les segments d'emblée ; le plan et l'espace montrent les zones et les volumes à la demande, parce qu'ils couvrent d'autres points. La boîte suppose que les plages varient indépendamment ; quand elles varient ensemble, elle surestime la dispersion, ce qui est une raison de plus de découper une étiquette plutôt que de multiplier ses plages.
5. Réduction de dimension#
5.1 Le point crucial : une ACP a besoin d'un corpus#
Une ACP sur les 20 curseurs d'une seule personne n'a aucun sens — il n'y a qu'une observation, donc aucune variance à décomposer. Il faut un jeu de référence sur lequel ajuster les composantes, puis y projeter l'utilisateur.
Trois corpus possibles, par ordre de disponibilité :
- Doctrines de référence (
data/ideologies/) — 20 à 40 doctrines positionnées
à la main et sourcées. Disponible dès le lancement, entièrement contrôlé, pédagogiquement transparent. ⚠️ Biais assumé : les composantes reflètent nos choix de doctrines et de positionnement, pas une réalité empirique.
- Partis européens via CHES — données d'experts, échantillon large, aucun
biais de notre part. ⚠️ Demande une table de correspondance entre nos axes et les variables CHES, et ne couvre que les axes que CHES mesure.
- Réponses accumulées des visiteurs — le plus intéressant scientifiquement,
mais indisponible au lancement (démarrage à froid) et hors périmètre v1 (statique, sans backend).
Décision v1 : ajuster sur (1), valider contre (2). Si les deux ACP donnent des composantes similaires, c'est un signal fort. Si elles divergent, c'est un résultat pédagogique en soi et il faut le montrer.
5.2 Protocole#
- Standardiser chaque axe (centrer-réduire) — sans quoi les axes à forte variance
dans le corpus dominent artificiellement.
- Extraire les composantes, publier l'éboulis (variance expliquée par
composante). C'est le cœur du message pédagogique : si PC1 n'explique que 40 % de la variance, alors l'axe gauche/droite jette 60 % de l'information.
- Figer les loadings dans un JSON versionné et commenté. L'utilisateur est
projeté sur des composantes fixes — c'est reproductible, et un résultat partagé reste valable dans le temps.
- Nommer les composantes a posteriori, à partir des axes qui y pèsent le plus,
et confronter aux dimensions connues de la littérature (lrecon, galtan…).
5.3 Ne pas s'arrêter à l'ACP#
L'ACP suppose des relations linéaires et des variables continues — deux hypothèses qu'on ne satisfait qu'imparfaitement (§3). Prévoir en complément :
- matrice de corrélation entre axes, plus lisible et plus honnête que l'ACP
pour montrer « ces deux positions vont souvent ensemble, mais rien ne l'impose » ;
- distances pondérées aux doctrines de référence (le « vous êtes proche de… ») ;
- coordonnées parallèles ou radar pour voir les 20 axes sans réduction ;
- éventuellement analyse factorielle (modèle de mesure explicite) ou ACM
pour les variables catégorielles.
6. Règles de sourçage#
6.1 Une bibliographie, pas des listes de liens#
Toute source citée par un axe, une doctrine ou un personnage est une entrée de data/bibliographie.yaml, désignée par son identifiant. Le texte libre est refusé, pour trois raisons :
- une référence en texte libre ne se vérifie pas et ne se dédoublonne pas ;
- le projet est pédagogique — une source doit pouvoir être **proposée en
lecture**, ce qui suppose de savoir si elle est accessible et ce qu'elle apporte ;
- citer Wikipédia comme unique appui d'un positionnement n'est pas tenable.
Elle reste utile comme point d'entrée et comme moyen de remonter aux sources, elle n'est pas citée comme autorité.
Chaque entrée porte un champ pourquoi écrit pour le lecteur du site, pas pour l'archive : ce que la référence apporte, et pourquoi elle vaut le détour. C'est ce texte qui s'affiche en lecture complémentaire. Le champ acces dit si elle est lisible intégralement en ligne — une lecture complémentaire inaccessible n'en est pas une.
outils/verifier_urls.py contrôle que les URL répondent et que les DOI résolvent vers la bonne œuvre, via l'API Crossref. Un éditeur qui bloque les requêtes automatiques est signalé comme tel, et non compté comme lien mort.
6.2 Chaque position porte sa justification#
Une valeur seule n'est pas vérifiable : rien ne dit pourquoi le curseur est là plutôt que dix points plus loin, ni sur quoi s'appuyer pour le contester. Le schéma impose donc, par axe, un bloc :
positions:
eco-coordination:
valeur: +20
pourquoi: >-
Le Plan est indicatif et non impératif : il oriente l'investissement par la
concertation et le crédit, sans commander la production.
sources: [kuisel-capitalisme-etat]
Le champ pourquoi doit pouvoir être contredit : il cite une mesure, un texte, une pratique — pas une impression générale. outils/valider.py compte les positions non justifiées et non sourcées, et refuse les justifications trop courtes pour être discutables.
Deux champs facultatifs complètent le bloc : confiance, quand un axe est nettement mieux ou moins bien établi que le reste de la fiche, et controverse, quand les sources divergent sur cet axe précis.
6.3 Déclaré contre de facto#
Pour les personnages politiques, deux positionnements distincts :
doctrinal— ce que la personne ou son parti déclare (programmes,
discours, écrits) ;
de_facto— ce qui a été fait en exercice du pouvoir (votes, lois
promulguées, budgets exécutés, traités ratifiés).
Exigence supplémentaire sur le second : une position de facto se justifie par un acte daté, pas par un discours. C'est ce qui rend l'écart entre les deux vérifiable plutôt qu'affirmé.
6.3 bis Un pays n'est pas une doctrine#
Une doctrine a une opinion. Un pays n'en a pas : ses lois sont la résultante d'un rapport de force entre institutions et entre majorités successives, pas l'expression d'une pensée. Positionner un pays sur un axe normatif revient donc à dire ce qui a été écrit et ce qui a été fait, jamais ce qui était souhaité.
D'où deux positionnements par fiche, comme pour un personnage mais avec un autre couple :
- de jure — ce que la constitution, les lois organiques et les lois
ordinaires établissent. Se justifie par un texte, avec sa date.
- de facto — ce qui a été pratiqué : usages institutionnels, jurisprudence,
budgets exécutés, décisions répétées. Se justifie par un fait.
L'écart entre les deux est le contenu principal de la fiche. Il ne va pas toujours dans le sens attendu : sur les contre-pouvoirs, le texte de 1958 organise la primauté de l'exécutif et la pratique d'aujourd'hui est plus contrainte que lui, du fait de la question prioritaire de constitutionnalité et de la Cour européenne des droits de l'homme.
Le découpage en périodes est la difficulté centrale, et il doit être justifié dans la fiche. Une borne de période doit correspondre à un changement de règle du jeu, constitution, révision, effondrement, et non à une alternance. Sans cette contrainte, on choisit les bornes qui produisent les écarts qu'on veut montrer. Le champ decoupage est obligatoire et vérifié par outils/valider.py, qui contrôle aussi que les périodes d'un même pays ne se recouvrent pas et que la chaîne precedent ne boucle pas.
Deux champs de prose complètent la fiche, parce que les axes ne savent pas les porter. rapports_de_force dit qui décide et qui peut bloquer : deux pays aux constitutions voisines peuvent avoir des rapports de force opposés. heritage dit ce que la période reprend de la précédente et ce qu'elle en rompt, sans quoi la série n'est qu'une collection d'instantanés.
Les pays-périodes n'entrent pas dans le calcul de l'ACP tant qu'un critère fixé à l'avance n'est pas satisfait. Ajouter les périodes, en bloc ou pays par pays, ne doit pas déplacer le sous-espace des composantes davantage que le retrait d'une seule observation du corpus ne le fait déjà, c'est-à-dire que la similarité minimale du jackknife. outils/acp.py refait ce test à chaque exécution et en publie le résultat sur la page Analyses → ACP du corpus ; aucun chiffre n'en est recopié ici.
Le deuxième pays n'a pas suffi. On attendait qu'un contrepoids à la France neutralise son poids ; en réalité, les périodes laissent presque intact le plan des deux premières composantes mais réorganisent la troisième, et un pays aux périodes nombreuses et contrastées y impose sa propre histoire institutionnelle. Ce n'est pas l'effet d'une seule période extrême : retirer Vichy ne suffit pas à passer sous le seuil.
Tant que le critère échoue, les périodes sont projetées en individus supplémentaires : placées dans le plan avec le centrage, la réduction et les coefficients du corpus, sans avoir contribué à les calculer. Le verdict est publié sans être appliqué automatiquement, parce que faire entrer les périodes changerait des coefficients déjà publiés.
Deux règles de découpage se sont précisées en écrivant ces fiches. La première : une borne qui coïncide avec une alternance reste légitime si une règle change au même moment, et la fiche doit nommer cette règle. La Ve République est coupée en 1986 sur l'Acte unique européen, pas sur la cohabitation. L'unification allemande de 1990 fait exception, faute de règle institutionnelle nouvelle, et la fiche le dit.
La seconde tient aux cas où un positionnement de facto peut être sans position, contrairement à la règle posée pour les personnages. Ne rien faire reste un acte ; mais quand la question elle-même ne se pose pas, l'axe ne s'applique pas. C'est le cas de l'anachronisme, comme la transition écologique sous la IIIe République, et de l'occupation, qui n'est ni une intégration consentie ni une souveraineté exercée.
6.4 Le reste#
- Chaque graduation d'axe cite au moins une source définissant la doctrine
qu'elle nomme.
- Toute source consultée est datée. Les liens sont archivés (Wayback) quand la
source est susceptible de disparaître.
- Le désaccord entre sources se documente, il ne s'arbitre pas
silencieusement.
- Les trous restent visibles. Une affirmation non sourcée est marquée ⬜ et
comptée sur la page des sources d'axes, plutôt que présentée comme acquise.
7. Format d'un fichier d'axe#
Un fichier Markdown par axe dans axes/, avec front-matter YAML.
---
id: eco-propriete # identifiant stable, jamais réutilisé
nom: Propriété des moyens de production
famille: economique # economique | etat | culturel | international | ecologie | institutionnel | epistemique
type: ordinal # bipolaire | ordinal | categoriel
nature: normatif # normatif | empirique
statut: brouillon # brouillon | revu | stable
inclus_dans_acp: true # entre dans l'ACP principale
inclus_dans_questionnaire: true # posé par défaut ; les axes empiriques sont
# proposés dans une section à cocher,
# décochée par défaut
pole_negatif: Propriété privée intégrale
pole_positif: Propriété collective généralisée
graduations:
- valeur: -100
nom: ...
libelle_courant: ...
definition: ...
exemples: [...]
mapping:
ches: [...] # variables CHES correspondantes
marpor: [...] # catégories MARPOR correspondantes
politiscales: [...]
correlations_attendues: [...] # hypothèses à confronter aux résultats de l'ACP
lectures: [...] # ids de data/bibliographie.yaml, proposés en
# lecture complémentaire sur la page de l'axe
---
Le corps du fichier contient : l'exposé pédagogique de l'axe, le détail des graduations, les pièges et confusions fréquentes, et les sources.
Le corps de ces fichiers est du contenu publié, pas de la documentation interne. Il est rendu tel quel sur le site (cf. §8). Il s'écrit donc pour un lecteur curieux, pas pour un contributeur.
8. Restitution : le contenu est le site#
Décision d'architecture : le site est un rendu du dépôt, pas une application avec de la documentation à côté. Chaque fichier de axes/, docs/ et data/ a une page publique. Conséquences :
- Tout est consultable sans passer le questionnaire. Un visiteur peut lire le
référentiel, la méthodologie et l'état de l'art de bout en bout, comme une encyclopédie. Le test n'est qu'une des portes d'entrée.
- Les sources sont cliquables partout, y compris les mentions ⬜ « à ajouter » :
afficher ce qui n'est pas encore sourcé fait partie de l'honnêteté du projet. Chaque justification renvoie à sa référence, chaque fiche propose un bloc « Pour aller plus loin » — les sources sont un dispositif de lecture, pas un appareil de notes.
- Pas de contenu qui n'existe que dans le code. Toute explication écrite dans
un composant devrait être dans un fichier de contenu.
- Aucun chiffre n'est recopié. Les pages d'analyse lisent
data/*.json,
régénérés par les outils, et y ajoutent le commentaire écrit dans docs/. Une page de résultats transcrite à la main devient fausse au premier changement de corpus : c'est arrivé une fois ici, et une fois suffit.
Les « pièges et confusions » remontent dans l'interface#
C'est le contenu à plus forte valeur pédagogique — c'est là que vivent les cas de doctrines apparemment opposées qui partagent un composant. Il ne reste pas au fond d'une page de doc. Trois emplacements :
- pendant le questionnaire — au moment où l'utilisateur bouge un curseur, le
piège correspondant est accessible en un clic (encart repliable). Il désamorce les malentendus au moment où ils se produisent ;
- dans les résultats — les pièges des axes où l'utilisateur a une position
atypique par rapport à ses autres positions sont mis en avant : c'est là qu'ils sont les plus instructifs ;
- en parcours autonome — une page « Idées reçues » agrège tous les pièges du
référentiel, consultable sans faire le test.
Chaque piège porte un ancrage stable (#piege-N) pour être liable directement.
Carte des routes#
| Route | Source | Contenu |
|---|---|---|
/ | README.md | Présentation, entrées vers le test et le référentiel |
/test | axes/*.md | Questionnaire (curseurs, et cas concrets en option) |
/resultats | état encodé dans l'URL | Position, ACP, distances, pièges saillants |
/axes | axes/_candidats.md | Index du référentiel, par famille |
/axes/{id} | axes/{id}.md | Fiche d'axe complète |
/idees-recues | sections « Pièges » | Agrégation transversale |
/doctrines | data/ideologies/ | Corpus de référence positionné |
/personnages/ | data/personnages/ | Personnages : déclaré vs de facto |
/pays | data/pays/ | Frise des périodes couvertes, trous compris |
/pays/{id} | data/pays/{id}.yaml | Un pays sur une période : de jure vs de facto |
/methode/personnages | docs/personnages.md | Comment on positionne un personnage politique |
/methode | docs/methodologie.md | Cette page |
/methode/etat-de-l-art | docs/etat-de-l-art.md | Projets comparables, licences |
/analyses | — | Vue d'ensemble des trois analyses |
/analyses/acp | data/acp.json + docs/resultats-acp.md | Éboulis, projection, loadings, hypothèses confrontées, stabilité |
/analyses/validation-ches | data/validation-ches.json + docs/validation-ches.md | Contre-test sur les partis européens |
/analyses/deduction | data/deduction.json + docs/deduction.md | Axes posés, axes déduits, formules |
/bibliographie | data/bibliographie.yaml | Les références, groupées par thème, avec ce que chacune apporte |
/sources | sections « Sources » des axes | État du sourçage des fiches d'axes, trous compris |
9. Limites assumées#
À afficher dans l'application, pas seulement dans la documentation.
- Le choix des axes est déjà un acte politique. Décider que « propriété » et
« coordination » sont deux axes distincts, c'est adopter une grille de lecture. On rend ces choix explicites et discutables plutôt que de prétendre à la neutralité.
- Centrage français et occidental. Les axes structurants du débat français ne
sont pas universels. Assumé pour la v1 ; à traiter avant toute extension.
- Un curseur suppose une préférence stable et unidimensionnelle par sujet.
Beaucoup de positions réelles sont conditionnelles (« ça dépend du secteur », « ça dépend de la conjoncture »).
- L'espacement des paliers ordinaux est conventionnel (§3).
- L'ACP sur un corpus de doctrines choisi par nous reflète nos choix (§5.1).