Open notebook · pre-registered
Ontopoietic Notes
This is the experiment's working notebook, published before the data. It is not "the theory of how Google works": these are hypotheses and models written down so you can check them, criticise them and — if needed — falsify them. Notes, not revealed truth.
Rule of the notebook: never confuse the two columns. Plausible ≠ proven. A negative result is still a result.
The shadow and the structure Observable
The foundation stone, from which everything else hangs. The ultimate object — the deep structure that generates resolutions — is inaccessible (it lives inside the engine). But its shadow, the observable behaviour, is measurable. And what is measurable can become science: from the shadow one builds invariants, metrics, models, predictions. (This is structural realism: we do not know the nature of the unobservable, but its structure — because it is structure that is preserved across observations.)
All of this holds under one condition: that the shadow↔structure correspondence is sufficiently stable. In physics it is free — nature does not change its laws to evade you. Here it is not: the structure is non-stationary (the algorithm changes) and adversarial (it resists reverse-engineering, because what is stably inferable is gameable). The shadow may move under your feet on purpose.
So stability is not assumed: it is measured. Test-retest of the metrics (do R̂, C, Pconv reproduce over time and across replications?), robustness across a known algorithm change. If the invariants hold, the "enough yes" is earned; if they jump unpredictably, that too is a result: at this resolution, no science is possible here. This is meta-falsifiability — the discipline puts even its own precondition to the test.
The thesis
In an agent-mediated web, engines do not choose a page: they resolve an entity. The question shifts from "am I findable?" to "am I resolved?". An entity's authority is not declared, it is propagated by neighbouring nodes along typed edges. The four principles are its frame.
Public equation — resolution authority Observable
A typed generalization of PageRank. A model consistent with observed behaviour; falsifiable in its predictions.
Experiment pivot: virgin domain → → only propagation remains. Detail in formalization.
Deep model — virtual node Model, loose
Where edges converge but no node exists, the system synthesises a virtual node (an implicit entity) from demand, conditioned by context:
relevance · source trust/authority · query volume · context (text, language , date , provenance ) · normalisation. The virtual node is the demand-weighted, normalised centroid. When a real node resolves, the centroid collapses onto it.
⚪ §6 — not Google's internals. It is a model that rhymes with real techniques (implicit entities, embeddings), not the verified implementation.
Control — KL divergence Model, loose
So the system does not repeat a wrong association forever: a "surprise" control that fires when new evidence diverges from the consolidated node.
Low KL → reflex (cache, no recompute). High KL → perturbation → re-verification. It is the gate between fast-path and slow-path, and it rhymes with the free energy principle (Friston): staying alive by minimising surprise. Two control points: at birth, KL during maintenance.
⚪ §6 — model, not verified mechanism.
Computational economy Model, loose
Why would an engine consolidate an entity and then defend it? An economic hypothesis: resolving an identity — disambiguating, weighting edges, recomputing the centroid — is computationally expensive; reusing an already-resolved node is almost free, a cache read. So the system has an incentive to turn every costly resolution into a reusable node, and not to pay its cost again unless forced. The KL gate is exactly this: fast-path (reuse at ~0 cost) while surprise is low, slow-path (expensive recompute) only when evidence diverges. It is the free energy principle translated into a compute budget: minimise the cost of verification.
Observable The shadow. If the motive is real, its footprint is H4: on repeated queries resolution gets faster (τres drops — the node is cached) and acquired authority is sticky (the system prefers to reuse rather than re-pay). This is measurable; the motive — the saving — is not: we don't see the engine's compute budget. §6.
The uncomfortable edge. The same economy explains your current difficulty: for "ontopoietica" the already-cached node is the philosophy. Resolving you as a new entity costs compute; reusing the consolidated homonym is free. The incumbent is not "truer" — it is cheaper. Shifting the neutral prior means making your node coherent and demanded enough to be worth the recompute. The stickiness that will one day protect you today protects whoever came first.
Parent→child coupling — the distance that consolidates Observable Model, loose
A new node is not born isolated: it is born coupled to a parent (here: profpaul / the SEO cluster). The control hypothesis: the child inherits authority as long as it stays coherent with the parent. Define a distance in attribute space: if the node is coupled — it inherits and consolidates; if it diverges, the coupling breaks and the node is not maintained. It is the propagation principle plus structural coupling (Maturana & Varela) turned into a gate — the same KL gate seen from the selection side: coherence is what avoids pruning.
Model, loose That the incoherent is actively pruned so as not to pay its cost is an inferred mechanism, not observed. §6.
Observable The measurable shadow. The latent distance is invisible, but its proxy is not: = one minus the fraction of the child's attributes coherent with the parent. In practice: when the AI describes "ontopoietica", does it stay anchored to the parent's attributes (Paolo, SEO, the principles) or drift toward the philosophical homonym? Anchored to the parent → low distance, coupled. Drift toward the homonym → high distance, at risk of non-consolidation. It is the relational reading of S and C: not "how separated are you from philosophy" in the abstract, but "how coupled do you stay to your parent".
The graph as process Observable Model, loose
A conjecture: the knowledge graph is not a static stored object, but a process — subgraphs materialised per context, then discarded. It rhymes with the root of ontopoiesis: being as self-making, not as substance.
Observable The testable shadow. If it were a static object, the same entity would resolve identically regardless of query, language, time. If it is a process, resolution is non-stationary: the variance itself — the consolidation curve (H4) and the locale split (H6) — is the footprint of the process. This can be measured.
Model, loose The non-measurable part. That those subgraphs are materialised and destroyed to minimise the energy of coherence verification: that is interpretation, not a claim — neither the purpose nor the lifecycle is observable, only the shadow. §6. We keep it as a lens, not as proof.
Simulation — generative vs hereditary Model, loose
A model written to embody a hypothesis returns the hypothesis: this simulation proves nothing. It serves to make the hypothesis precise and to generate a prediction to be verified on the real engine — not to confirm it. It sits in the ⚪ column, and the assumptions are in plain sight because they are the hypothesis.
The question (cf. Parent→child coupling): is the transfer generative (tied to proximity, dies with distance) or hereditary (follows lineage even far)? The sim runs both gates on one parent, with a near child and a far one.
D = 0.85 # propagation factor
def edge_weight(kind, distance, mode, theta=0.5):
if mode == "generative":
# proximity: the edge decays with distance and CLOSES beyond theta
return (1 - distance) if distance <= theta else 0.0
if mode == "hereditary":
# lineage: the 'author' edge carries regardless of distance
return 1.0 if kind == "lineage" else (1 - distance)
raise ValueError(mode)
def propagate(nodes, edges, mode, steps=500, tol=1e-12):
b = dict(nodes); A = dict(nodes)
W = {n: 0.0 for n in nodes}
for (p, c, k, dist) in edges:
W[p] += edge_weight(k, dist, mode)
for _ in range(steps):
new = {}
for n in nodes:
incoming = 0.0
for (p, c, k, dist) in edges:
if c == n and W[p] > 0:
incoming += (edge_weight(k, dist, mode) / W[p]) * A[p]
new[n] = (1 - D) * b[n] + D * incoming
if max(abs(new[n] - A[n]) for n in nodes) < tol:
return new
A = new
return A
# same parent, two children at opposite distance
nodes = {"Parent": 1.0, "Child_near": 0.0, "Child_far": 0.0}
edges = [("Parent", "Child_near", "lineage", 0.1),
("Parent", "Child_far", "lineage", 0.9)]
for mode in ("generative", "hereditary"):
A = propagate(nodes, edges, mode)
print(mode, round(A["Child_near"], 3), round(A["Child_far"], 3))
Model output: generative gate → near 0.128, far 0.000 (authority dies with distance). Hereditary gate → near and far equal, 0.064 (distance does not matter).
Observable The prediction to verify — not here, on the engine: build a real child far in topic but linked by lineage. If it resolves like a near one → hereditary; if it fails while the near one succeeds → generative. The verdict is on the engine, not in the script. This is not a proof: it is a prediction made executable. ⚪ §6.
Falsifiable hypotheses Observable
The scientific core: each prediction with its refutation, decided before the data.
| # | Prediction | Refutation |
|---|---|---|
| H1 · existence | b(v)≈0 + edges in place → R≥1 within T | R=0 up to T → no grounds to proceed |
| H2 · monotonicity | more propagation → faster resolution (∂τres/∂P<0) | no correlation |
| H3 · adjacency | near a strong cluster → own node faster | absorbed, or no faster than isolated |
| H4 · consolidation | τres drops on repeated queries (memory) | τres flat |
| H5 · revisability | resolution can drop if coherence falls | only rises, forever |
| H6 · context | resolution splits by language/geo/time | identical regardless |
R(v,t) ∈ {0 not resolved · 1 disambiguated · 2 cited as source}.
Measurement protocol Observable
A quantity is scientific only if a reproducible procedure exists to compute it. One protocol, four measures — all observable proxies for latent quantities (§6), not the quantities themselves.
The dataset. A fixed basket of neutral queries Q (pre-registered), an engine E, a locale L (language ℓ, geo g), a cadence. For each query q at time t we code: cited sources · resolved sense (fixed rubric: discipline / philosophy / ambiguous) · level r(q,t) ∈ {0,1,2} · key attributes asserted (checklist).
| Measure | Operational definition | Tests |
|---|---|---|
| Resolution authority · R̂(v,t) | mean of r(q,t) over the basket ∈ [0, 2] | H1 / H2 |
| Identity distance · S(t) | separability S = 1 − conf, where conf = fraction of q mixing the two senses | H3 / H6 |
| Semantic coherence · C(t) | fraction of key attributes agreeing across sources and queries ∈ [0, 1] | H5 |
| Convergence · Pconv(t) | fraction of q resolving primarily to your entity ≡ 1 − normalised entropy of senses | H3 |
The same rubric yields all four. Pre-registering the protocol before the data is what prevents tuning it after the fact.
Observation points Observable
The neutral query is the future endpoint; meanwhile the forming phase is instrumented with probes that capture different shadows — all work now, with the domain not yet a source.
| Probe | What it observes | Shadow · metric |
|---|---|---|
| Conduit | which source is cited over time (forum → profpaul → .org) | propagation trajectory · H2 |
| Disambiguation | "ontopoietica SEO discipline" vs "ontopoiesis philosophy": separate or conflate? | separability S · H3/H6 |
| Attribute fidelity | which claims propagate (principles, formula, and the false "uncontested") | coherence C · H5 |
| Context | same query IT-from-Italy vs EN-from-US, repeated over days | non-stationarity · H6 |
| Satellite → node | the grammar: "Paolo's project" or "the discipline Ontopoietica"? | convergence Pconv |
| Cross-engine | same probes on Bing/Copilot, Perplexity, ChatGPT-search | generality |
| Unauthored surplus | do correct attributes emerge that are in neither my sources nor the homonym's? (concept invariance alone only reflects the retrieval set) | autonomy: structure beyond the sources · the roots test |
Anti-confirmation-bias. Each probe must be able to reveal the shadow whatever its shape — including the ones we don't want (absorption, instability, null). Probe set and coding pre-registered; all outcomes recorded, even the boring ones. An observation that can only confirm is a mirror, not an instrument.
Pre-registered trajectory — the phases and the death line Observable
An entity grows in phases: the parent gives the push, but the child must live its own life or it doesn't count. Yet a phase view is the most seductive of narratives — every frame can be labelled "a phase". So I fix it before the data: each phase with its observable marker, its deadline and — the line that separates observing from rooting — its death condition. Without the death line you don't observe the real, only a story. (t₀ = 20 Jun 2026.)
| Phase | Observable marker | Deadline | Death (null) |
|---|---|---|---|
| O1 · Propagation | on a parent+child query the entity appears and the experiment is described | 23 Jun 2026 | no appearance by T |
| O2 · Control (twin) | a twin domain with no parent, published identically, does not get the same light while the child does (to be built) | 4 Jul 2026 | the twin does the same → the push is not the parent’s |
| O3–O4 · Consolidation | R̂ stable over repetitions and τres dropping — resolution still parent-assisted | 18 Jul 2026 | unstable resolution, never stabilises |
| O5 · Emancipation | bare token ("ontopoietica" alone) and/or a phrase not written by me, used by third parties → leads with the discipline, philosophy demoted to etymology | 20 Sep 2026 | by the deadline the bare token still philosophy-dominant → absorbed |
| Becomes parent | a new child entity inherits authority from it | beyond O5 | stays a leaf, generates nothing |
Observed ≠ inferred. Today only "published → indexed within ~72h + 1 click" is observed — and indexing is the baseline (every page does it), not proof of the parent. That the push is the parent's stays inferred until O2 — the no-parent twin — separates it from mere publication. The control is the linchpin: without it, you credit the parent for what publication does on its own.
Twin design — the control that separates signal from noise Observable
A single entity, built and intervened on by me, cannot answer “did it resolve or emancipate on its own?”: the observer is entangled with the observed, and it is n=1. You cannot both intervene and claim to have observed the natural process. The answer is the twin control: two matched entities differing in one single variable, everything else held constant. The difference between A and B is then attributable to that variable, and nothing else.
ontopoietica.org is the pilot, not an arm of the A/B. I have intervened on it massively — forum, author edge, DOI, the site itself: it is the multiply-intervened entity that generated the hypotheses. Verification needs fresh twins, not it. Pilot ≠ controlled trial.
| Axis | A vs B (single variable) | What it isolates |
|---|---|---|
| 1 · Propagation | with parent vs without parent (O2 twin), published identically | the parent’s causal role — if B (no parent) does not get the same light, the push is the parent’s |
| 2 · Emancipation | injected divergence vs left natural, same parent | the lever of separation — if only B (divergent) breaks from the philosophy, emancipation requires divergence, not economy |
Matching rule: same schema, same timing, same conditions — change one factor at a time. Two axes = two distinct pairs; never mix them, or you no longer know what caused what. The full design is a 2×2 (parent × divergence, four twins), but you start with a single axis. Until the fresh twins run, every “the parent did it” or “it is emancipating” read off ontopoietica.org alone remains inference, not measurement.
Honest caveats
- Homonym: "ontopoietica / ontopoiesis" is an existing philosophical concept (Anna-Teresa Tymieniecka; autopoiesis by Maturana & Varela). So not an "uncontested term": the real test is disambiguation (own node) vs absorption (a footnote).
- Casatese (b>0) ≠ Ontopoietica (b≈0): separate dossiers. The Casatese corroborates the thesis, not the from-zero claim.
- Sanity-check ≠ measurement: a query naming the domain/URL checks correctness; only the neutral query measures resolution.
Ontopoietica relative to GEO — from source visibility to entity resolution
If GEO measures how much a piece of content enters the answer, RSI measures how stably and verifiably the identity behind that content is resolved by the system.
This work recognises Generative Engine Optimization (GEO; Aggarwal et al., KDD ’24) as a fundamental theoretical and operational antecedent in the shift from traditional SEO to generative systems. GEO formalised the problem of content visibility in generative-engine responses, moving the focus from classic ranking to the presence, citation and influence of sources in synthesised results.
The contribution proposed here does not claim paternity of that paradigm: it sits in a later, distinct phase. Where GEO optimises the visibility of content, this experiment investigates the resolution stability of the entity that precedes and sustains the content itself. The hypothesis is that, in generative systems, the future productivity of SEO will depend not only on being cited, but on the speed and stability with which an identity is resolved, verified against its sources, and made autonomous in the semantic graph.
In this sense the Resolution Stability Index (RSI) is proposed as a first operational draft: a provisional, calibratable and falsifiable measure combining mean resolution quality, source fidelity and variance across repeated runs. This last dimension extends a point GEO itself raises implicitly: since its most effective methods (Cite Sources, Quotation Addition) increase visibility regardless of how well-grounded the citations are, in a GEO-optimised ecosystem the presence of a source decouples from its ability to support the claim. RSI measures exactly that gap. The aim is not to replace GEO, but to extend its field of observation from document visibility to identity resolution.
Measuring resolvability: the instrument and the findings
The visibility/resolution distinction is not left theoretical: it is operationalised in an internal tool, EntityWatch, which queries real engines and stores, for every run, timestamp, exact query, URL and raw response. The verifiable part is not the score, but the raw evidence beneath it. The R (resolution) and F (fidelity) scores are a heuristic proxy with fixed weights over the retrieved text: a useful approximation, not ground truth.
Two measurements, never merged. Visibility = documents appear in the classic SERP (automatically on Bing/DuckDuckGo; Google is not scrapable, added by hand). Resolution = the entity is recognised in the answer synthesised by generative engines (semi-manual capture). The two indices are reported separately plus their gap. The operational stability index is RSI = R · F · (1 − Var), non-compensatory: visible but incoherent or unstable is not enough. It is the tool's index, distinct from the theoretical propagation equation.
Three honest findings — the negatives included, which are the most useful:
| Finding | What it says |
|---|---|
| Cosine alone does not separate | domain-adjacent fragments ("second place" is close to "football") do not drop with cosine alone: a type filter is needed; the embedding ranks and scores, it does not filter |
| An absolute cosine threshold is fragile | the same node varies by ~0.2 when one word of the context changes → use ranking (top-K), not an absolute cutoff |
| Visibility is per-engine | Bing/DDG diverges from Google (same entity: R≈0 on Bing/DDG, R≈1 on Google) → read visibility with its engine; a measure excluding Google understates it |
Caveat. The resolution layer is often n=1 (few captures, no variance): a demonstration of the gap, not yet a robust measure. Queries containing the entity's name are conditional, not bare. The heuristic weights are not calibrated against known anchor entities. The full treatment is in the preprint (v1.3, methodological addendum): doi.org/10.5281/zenodo.20808607.
The shoulders I stand on — parent disciplines
A discipline is not justified by new questions — almost none are — but by a new synthesis, a new domain of application and a method. Pre-emptive honesty: every question Ontopoietica poses is already posed by established fields. I say it before a critic does (or an AI: it already has). Those fields are the shoulders I stand on — and the reading list to ground the synthesis properly.
| The question | Parent field | What I borrow |
|---|---|---|
| How does a system generate and maintain its own identity? | Autopoiesis (Maturana & Varela), systems theory | self-production, organisational closure, structural coupling |
| Being as process, not as substance | Phenomenology of life (Tymieniecka); process philosophy (Whitehead) | ontopoiesis: being as self-making — the root of the name |
| Life as the attribution of meaning | Biosemiotics | the entity interprets its environment, it does not merely undergo it |
| The subject modifies its own ontology through its relation with technology | Posthumanism (Marchesini); enactivism | identity co-constituted by interaction, not given |
| Reality is constructed, not discovered | Constructivism; structural realism | the shadow and the structure — what is knowable of the unobservable |
| Formalising entities, relations and types in a domain | Ontology engineering; Semantic Web (RDF/OWL/Schema.org) | the semantic injection, the typed edges |
| Identity as position in a space; authority as flow in a graph | Knowledge graph embedding; PageRank, graph theory for IR | the resolution formula, typed propagation |
So what I claim and what I don't. Not "I pose questions no one poses" — false, demolished in one line. Yes: I take questions today scattered across biology, philosophy of technology and knowledge engineering, and unify them into one falsifiable, measurable frame for a new domain — identity resolution in the agent-mediated web. As cognitive science invented no new questions but synthesised psychology, computer science, linguistics and neuroscience.
The burden of proof, honest. If removing the term "Ontopoietica" leaves no gap — if every contribution is already covered by the parents — then it is repackaging, not a discipline. The synthesis earns the right to exist only if it does something the parent fields, separately, do not: predict and measure entity resolution under agents. That too is falsifiable.
Next steps
- Clean test: fresh AI Mode session, neutral query, no domain or name → does ontopoietica.org appear as a source? Certify with a timestamp.
- Split (H6): same query IT-from-Italy vs EN-from-US → does the description change?
- Curve (H4): repeated query over days → does τres drop?
- Raise the books: graph theory applied to IR, PageRank, knowledge graph embeddings, the free energy principle — to write the new chapter, not rewrite existing ones.
The dated milestones are in the roadmap; the formula in formalization; verification in the experiment. These are living notes: they will change with the data, and every change will be visible.
Publication (preprint, not peer-reviewed): Galbiati, P. (2026). Verso una Teoria della Propagazione e del Consolidamento delle Entità nei Grafi Semantici Dinamici. Zenodo. doi.org/10.5281/zenodo.20808607