Repository navigation
Scientific Methodology and Limitations
Author: Ciprian Ștefan Pleșca
OpenLongevity's documentation is unusually direct about the boundary between what its software demonstrably does and what a reader might be tempted to infer from it. This page consolidates that boundary into a single reference, organized as a set of claims paired with their explicit scope limits, so that anyone building on top of the project — or citing it — can state precisely what a given result establishes.
flowchart TD
A["A component executes correctly"] -.does NOT imply.-> B["A scientific claim is validated"]
C["A source adapter retrieves metadata"] -.does NOT imply.-> D["A trustworthy finding was extracted"]
E["A database preserves revisions"] -.does NOT imply.-> F["A tamper-proof review history exists"]
G["A graph endpoint returns an edge"] -.does NOT imply.-> H["Biological causation is supported"]
I["Type-checking passes on the frontend"] -.does NOT imply.-> J["A production website has been verified"]
These four pairs are drawn directly from the project's own README and represent the architectural philosophy underlying every module documented elsewhere in this wiki: correctness of execution and validity of scientific content are independent axes, and the system is built to keep them visibly separate rather than let one imply the other.
| Component | What a successful call demonstrates | What it does not demonstrate |
|---|---|---|
/api/v1/publications/* (API-Reference) |
A publication record was retrieved from, or persisted to, PostgreSQL with intact provenance | That the underlying publication's findings are accurate, unretracted in practice, or clinically meaningful |
/api/v1/evidence* |
Software correctly filtered and graded a synthetic fixture | Anything about real-world evidence for the queried topic — the fixture set has exactly one record |
/api/v1/research-gaps (Research-Gap-Detection) |
The six gap heuristics ran correctly against the fixture set | That these are the actual research gaps in the live literature for that topic |
/api/v1/graph |
The graph response shape renders correctly | Any biological relationship — the nodes and edge are explicitly illustrative strings |
EvidenceEngine.score() (Evidence-Grading-Engine) |
A transparent, reproducible arithmetic combination of study design, confidence, replication, sample size, and recency | A probability of truth, a treatment effect size, or a validated evidence-certainty scale |
BiologicalAgeModel (Analysis-Toolkit) |
An ordinary-least-squares fit on the features and targets supplied by the caller | Clinical validity of "biological age" as a construct, or of any specific feature set used to estimate it |
kaplan_meier() |
Correct point estimates of a survival curve given event/censoring data | Confidence intervals, group comparisons, or handling of competing risks |
enrich_gene_set() |
A hypergeometric p-value and a BH-style adjustment over the pathways that passed the overlap filter | A complete multiple-testing correction over the originally supplied pathway set (see Analysis-Toolkit for the exact limitation) |
apps/web TypeScript shell |
The frontend type-checks and its build/lint/test scripts execute | A deployed, accessibility-reviewed, browser-tested production application |
As detailed in Evidence-Grading-Engine, the letter grade assigned to a record reflects study design category — it is "not a claim that every review is stronger than every experiment or a substitute for evaluating bias and relevance." The implementation itself acknowledges a specific sharp edge here: retracted records are mapped to grade G alongside genuinely computational work, so any client displaying grades must also surface retraction_status separately, or risk implying that a retracted RCT and an exploratory simulation are the same kind of "low-grade" evidence.
The project's README lays out a disciplined research workflow, which this wiki reproduces here because it directly governs how the software's outputs should be used:
flowchart TD
S1["1. Formulate a question with clear\npopulation, measurement, and inference target"]
S1 --> S2["2. Retrieve and log:\nprovider, query, retrieval time, IDs, pagination.\nReport incomplete retrieval as incomplete — never as exhaustive."]
S2 --> S3["3. Inspect normalized metadata against\nthe original provider record.\nA missing abstract is missing information,\nnot a negative finding."]
S3 --> S4["4. Only then consider a structured\nEvidenceRecord — with its own provenance\nand review decision, distinct from the\npublication's bibliographic envelope."]
Each stage has a corresponding module in this codebase — provider adapters for stage 2 (Literature-Provider-Adapters), the persistence layer's provenance requirements for stage 3 (Persistence-and-Data-Governance), and the EvidenceRecord/ReviewStatus types for stage 4 (Domain-Model) — but the workflow discipline itself is a human responsibility that no amount of correct software enforces automatically.
-
Always state the mode. Every relevant API response already carries
mode: "persisted"ormode: "fixture-only"— preserve that distinction in any downstream report, chart, or publication. - Never present a navigation score as a probability. State it as "OpenLongevity navigation score: 0.88," not "88% likely to be true."
- Report retraction status alongside grade, not instead of it. A grade of G alone loses the distinction between "retracted" and "computational."
- Treat analysis-toolkit outputs as inputs to further scrutiny, not conclusions. A Kaplan–Meier curve, an OLS fit, or an enrichment p-value from this toolkit is a calculation on the data supplied — its scientific weight depends entirely on the quality and provenance of that data, which the toolkit itself does not assess.
- Distinguish software capability claims from research claims when describing the project. "OpenLongevity can retrieve and normalize PubMed records with provenance" is a verifiable software claim; "OpenLongevity has identified evidence for a given longevity intervention" is not currently a claim the implementation supports.
Return to Home for the full page index, or see Contribution-and-Governance-Model for how these standards are enforced in review.
© 2026 Ciprian Ștefan Pleșca. All rights reserved.
Licensed under the Apache License 2.0 — see LICENSE in the repository root.
OpenLongevity is research software. It does not provide medical advice, diagnosis, or clinical treatment recommendations.