Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
# deepevents.ai
deepevents.ai main codebase

## Scientific Knowledge Graph Integration

- `negative-evidence-replication-graph/` adds a self-contained #17 slice for failed replications, null results, and inconclusive studies as first-class knowledge-graph signals.
32 changes: 32 additions & 0 deletions negative-evidence-replication-graph/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Negative Evidence Replication Graph

This module is a focused Scientific Knowledge Graph Integration slice for SCIBASE issue #17. It treats failed replications, null results, and inconclusive studies as first-class graph signals instead of leaving them as unstructured notes attached to a paper.

## What It Adds

- Typed graph nodes for claims, concepts, methods, datasets, protocols, papers, and replication signals.
- Deterministic scoring for positive support and negative replication pressure.
- Recommendation treatments that promote replicated claims, show uncertain claims with caution, or suppress recommendations when failed replication evidence is strong.
- Entity-page packets with schema.org-compatible JSON-LD and reviewer-visible replication actions.
- Publication-bias alerts when a domain has confident claims but no registered negative-result records.
- Offline JSON and SVG demo output generated from synthetic data.

## Why This Is Distinct

Existing submissions for #17 cover broad extraction/navigation, link audits, ontology drift, conflict arbitration, author disambiguation, artifact reuse lineage, evidence freshness, reproducibility routes, and visibility filtering. This slice focuses specifically on negative evidence: failed replication attempts, null results, and inconclusive runs that should change graph navigation and AI recommendations before researchers rely on a claim.

## Run

```bash
node negative-evidence-replication-graph/test.js
node negative-evidence-replication-graph/demo.js
```

The demo writes:

- `negative-evidence-replication-graph/demo-output.json`
- `negative-evidence-replication-graph/demo.svg`

## Core Policy

When negative replication pressure is high, the module returns `suppress_recommendation` and requires curator review plus a visible entity-page replication note. When evidence is inconclusive, the module keeps the claim discoverable but requires method detail before it is promoted in recommendation digests.
216 changes: 216 additions & 0 deletions negative-evidence-replication-graph/demo-output.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
{
"summary": {
"nodeCount": 21,
"edgeCount": 27,
"claimCount": 3,
"replicationSignalCount": 4,
"suppressedRecommendations": 1,
"cautionRecommendations": 1
},
"suppressedRecommendations": [
{
"claimId": "claim:beta-organoid-rescue",
"title": "Beta compound rescues organoid viability at low dose",
"domain": "organoid-pharmacology",
"referenceScore": 0.541,
"positiveSupport": 0,
"negativePressure": 1.227,
"netScore": -0.502,
"treatment": "suppress_recommendation",
"signals": [
{
"id": "rep:beta-null-dose",
"outcome": "negative_result",
"strength": -0.427,
"quality": 0.776,
"lab": "Organoid Core West",
"reportedAt": "2026-04-21"
},
{
"id": "rep:beta-failed-media",
"outcome": "failed_replication",
"strength": -0.8,
"quality": 0.8,
"lab": "Consortium Lab 4",
"reportedAt": "2026-05-02"
}
],
"requiredActions": [
"open_curator_review",
"attach_failed_replication_to_entity_page",
"remove_from_ai_recommendation_digest"
]
}
],
"cautionRecommendations": [
{
"claimId": "claim:graphene-ultra-sensitive",
"title": "Graphene biosensor detects femtomolar protein concentrations",
"domain": "materials-biosensing",
"referenceScore": 0.671,
"positiveSupport": 0,
"negativePressure": 0.066,
"netScore": 0.615,
"treatment": "show_with_replication_caution",
"signals": [
{
"id": "rep:graphene-inconclusive",
"outcome": "inconclusive",
"strength": -0.066,
"quality": 0.439,
"lab": "Materials Lab North",
"reportedAt": "2026-05-05"
}
],
"requiredActions": [
"request_method_detail_before_digesting"
]
}
],
"exampleEntityPage": {
"id": "claim:beta-organoid-rescue",
"title": "Beta compound rescues organoid viability at low dose",
"type": "ScientificClaim",
"domain": "organoid-pharmacology",
"treatment": "suppress_recommendation",
"replicationScore": -0.502,
"requiredActions": [
"open_curator_review",
"attach_failed_replication_to_entity_page",
"remove_from_ai_recommendation_digest"
],
"relationships": [
{
"id": "signal:rep:beta-null-dose:evaluates_claim:claim:beta-organoid-rescue:5",
"from": "signal:rep:beta-null-dose",
"to": "claim:beta-organoid-rescue",
"type": "evaluates_claim",
"evidence": {
"outcome": "negative_result",
"quality": 0.776,
"strength": -0.427
}
},
{
"id": "signal:rep:beta-failed-media:evaluates_claim:claim:beta-organoid-rescue:9",
"from": "signal:rep:beta-failed-media",
"to": "claim:beta-organoid-rescue",
"type": "evaluates_claim",
"evidence": {
"outcome": "failed_replication",
"quality": 0.8,
"strength": -0.8
}
},
{
"id": "paper:beta-2025:asserts_claim:claim:beta-organoid-rescue:21",
"from": "paper:beta-2025",
"to": "claim:beta-organoid-rescue",
"type": "asserts_claim",
"evidence": {}
},
{
"id": "claim:beta-organoid-rescue:mentions_concept:concept:organoid-dose-response:22",
"from": "claim:beta-organoid-rescue",
"to": "concept:organoid-dose-response",
"type": "mentions_concept",
"evidence": {}
},
{
"id": "claim:beta-organoid-rescue:uses_method:method:live-cell-imaging:23",
"from": "claim:beta-organoid-rescue",
"to": "method:live-cell-imaging",
"type": "uses_method",
"evidence": {}
},
{
"id": "claim:beta-organoid-rescue:uses_dataset:dataset:beta-organoid-v2:24",
"from": "claim:beta-organoid-rescue",
"to": "dataset:beta-organoid-v2",
"type": "uses_dataset",
"evidence": {}
}
],
"replicationSignals": [
{
"id": "signal:rep:beta-null-dose",
"type": "replication_signal",
"title": "Low-dose beta rescue not observed in blinded run",
"outcome": "negative_result",
"lab": "Organoid Core West",
"reportedAt": "2026-04-21",
"quality": 0.776,
"strength": -0.427,
"tags": [
"replication",
"negative_result"
]
},
{
"id": "signal:rep:beta-failed-media",
"type": "replication_signal",
"title": "Beta compound failed replication under matched media",
"outcome": "failed_replication",
"lab": "Consortium Lab 4",
"reportedAt": "2026-05-02",
"quality": 0.8,
"strength": -0.8,
"tags": [
"replication",
"failed_replication"
]
}
],
"jsonLd": {
"@context": "https://schema.org",
"@type": "ScholarlyArticle",
"identifier": "claim:beta-organoid-rescue",
"headline": "Beta compound rescues organoid viability at low dose",
"about": [
"concept:organoid-dose-response"
],
"isBasedOn": [
"dataset:beta-organoid-v2"
],
"measurementTechnique": [
"method:live-cell-imaging"
],
"additionalProperty": [
{
"@type": "PropertyValue",
"name": "SCIBASE replication treatment",
"value": "suppress_recommendation"
},
{
"@type": "PropertyValue",
"name": "SCIBASE replication score",
"value": -0.502
}
]
}
},
"recommendationDigest": [
{
"claimId": "claim:alpha-inflammatory-drop",
"title": "Alpha pathway editing lowers IL-6 release in microglia",
"treatment": "promote_as_replicated",
"netScore": 1,
"rationale": "0.832 positive replication support; no negative signal"
},
{
"claimId": "claim:graphene-ultra-sensitive",
"title": "Graphene biosensor detects femtomolar protein concentrations",
"treatment": "show_with_replication_caution",
"netScore": 0.615,
"rationale": "0.066 negative replication pressure; 0 positive support"
},
{
"claimId": "claim:beta-organoid-rescue",
"title": "Beta compound rescues organoid viability at low dose",
"treatment": "suppress_recommendation",
"netScore": -0.502,
"rationale": "1.227 negative replication pressure; 0 positive support"
}
],
"publicationBiasAlerts": []
}
31 changes: 31 additions & 0 deletions negative-evidence-replication-graph/demo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
"use strict";

const fs = require("node:fs");
const path = require("node:path");
const {
buildReplicationSignalGraph,
createEntityPage,
queryGraph,
renderGraphSvg
} = require("./index");
const sampleData = require("./sample-data");

const outDir = __dirname;
const graph = buildReplicationSignalGraph(sampleData);
const suppressed = queryGraph(graph, { treatment: "suppress_recommendation" });
const cautious = queryGraph(graph, { treatment: "show_with_replication_caution" });
const betaEntityPage = createEntityPage(graph, "claim:beta-organoid-rescue");

const output = {
summary: graph.stats,
suppressedRecommendations: suppressed.results,
cautionRecommendations: cautious.results,
exampleEntityPage: betaEntityPage,
recommendationDigest: graph.recommendationDigest,
publicationBiasAlerts: graph.publicationBiasAlerts
};

fs.writeFileSync(path.join(outDir, "demo-output.json"), `${JSON.stringify(output, null, 2)}\n`);
fs.writeFileSync(path.join(outDir, "demo.svg"), renderGraphSvg(graph));

console.log(JSON.stringify(output, null, 2));
Binary file added negative-evidence-replication-graph/demo.mp4
Binary file not shown.
1 change: 1 addition & 0 deletions negative-evidence-replication-graph/demo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading