babylon.models.entities.consciousness
Ternary consciousness model (Feature 034).
Replaces the stipulated scalar CommunityConsciousness with a 2-simplex model
where r + l + f = 1.0. Old fields become computed properties, preserving
full backward compatibility (SC-005).
Theoretical basis: George Jackson’s Blood in My Eye — revolutionary consciousness is qualitatively different from the liberal-fascist spectrum. The height above the base (r) measures distance from assimilation.
See also
babylon.models.entities.community: CommunityConsciousness alias.
babylon.formulas.consciousness: Computation function.
specs/034-ternary-consciousness/spec.md: Feature specification.
Classes
|
An organization's weighted contribution to community consciousness. |
|
Data quality indicator for substrate floor computation. |
|
Per-community-type minimum revolutionary consciousness with provenance. |
|
A point in the 2-simplex representing community consciousness. |
- class babylon.models.entities.consciousness.OrgContribution(**data)[source]
Bases:
BaseModelAn organization’s weighted contribution to community consciousness.
Used as input to the compute_ternary_consciousness function.
- Parameters:
tendency (ConsciousnessTendency) – Which vertex this org pulls toward.
membership_density (Annotated[float, Ge(ge=0.0), Le(le=1.0), AfterValidator(func=~babylon.utils.math.quantize)]) – Members in community / community population [0, 1].
cadre_level (Annotated[float, Ge(ge=0.0), Le(le=1.0), AfterValidator(func=~babylon.utils.math.quantize)]) – Organizational development level [0, 1].
cohesion (Annotated[float, Ge(ge=0.0), Le(le=1.0), AfterValidator(func=~babylon.utils.math.quantize)]) – Internal organizational cohesion [0, 1].
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tendency: ConsciousnessTendency
- membership_density: Probability
- cadre_level: Probability
- cohesion: Probability
- class babylon.models.entities.consciousness.ProvenanceLevel(*values)[source]
Bases:
StrEnumData quality indicator for substrate floor computation.
- Values:
HIGH: Derived from 2+ independent proxy data sources. MEDIUM: Derived from 1 proxy data source. LOW: Estimated from related data, not direct proxy. SYNTHETIC: Stipulated placeholder with no data path.
- HIGH = 'high'
- MEDIUM = 'medium'
- LOW = 'low'
- SYNTHETIC = 'synthetic'
- class babylon.models.entities.consciousness.SubstrateFloor(**data)[source]
Bases:
BaseModelPer-community-type minimum revolutionary consciousness with provenance.
The substrate floor is consciousness that persists even when all organizations are destroyed — the grandmother teaching not to talk to cops, survival knowledge transmitted through socialization.
- Parameters:
community_type (CommunityType) – Which community this floor applies to.
floor_value (Annotated[float, Ge(ge=0.0), Le(le=1.0), AfterValidator(func=~babylon.utils.math.quantize)]) – Minimum r regardless of org landscape [0, 1].
confidence (ProvenanceLevel) – Data quality indicator.
computation_method (str) – How floor was derived from proxies.
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- community_type: CommunityType
- floor_value: Probability
- confidence: ProvenanceLevel
- data_sources: list[str]
- computation_method: str
- class babylon.models.entities.consciousness.TernaryConsciousness(**data)[source]
Bases:
BaseModelA point in the 2-simplex representing community consciousness.
Three components (r, l, f) sum to 1.0: - r: Revolutionary consciousness (distance from assimilation). - l: Liberal consciousness (reform within existing order). - f: Fascist consciousness (exclusionary reaction).
Supports two construction paths: 1. Native:
TernaryConsciousness(r=0.5, l=0.3, f=0.2)2. Legacy: ``TernaryConsciousness(collective_identity=0.5,dominant_tendency=LIBERAL, ideological_contestation=0.4)``
Both produce valid simplex points with backward-compatible properties.
- Parameters:
r (Annotated[float, Ge(ge=0.0), Le(le=1.0), AfterValidator(func=~babylon.utils.math.quantize)]) – Revolutionary component [0, 1].
l (Annotated[float, Ge(ge=0.0), Le(le=1.0), AfterValidator(func=~babylon.utils.math.quantize)]) – Liberal component [0, 1].
f (Annotated[float, Ge(ge=0.0), Le(le=1.0), AfterValidator(func=~babylon.utils.math.quantize)]) – Fascist component [0, 1].
contestation_stored (float | None) – Preserved legacy contestation value, or None for natively constructed instances (uses Shannon entropy).
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- r: Probability
- l: Probability
- f: Probability
- contestation_stored: float | None
- property collective_identity: float
Oppositional consciousness [0, 1]. Equals r component.
- Returns:
The revolutionary component, semantically identical to the old CommunityConsciousness.collective_identity.
- property dominant_tendency: ConsciousnessTendency
Prevailing ideological direction (argmax of r, l, f).
Ties are broken in favor of liberal (structural advantage of the status quo — you have to actively organize to leave liberalism).
- Returns:
ConsciousnessTendency corresponding to the largest component.
- property ideological_contestation: float
Active debate between tendencies [0, 1].
If contestation_stored is set (legacy construction), returns that value for backward compatibility. Otherwise computes normalized Shannon entropy of (r, l, f): H(r,l,f) / log(3).
- Returns:
Contestation level. 0 = monopoly, 1 = maximum contestation.