Back to Blog
AI/ML

Knowledge Graphs and Scientific Discovery: Connecting the Dots in Research

How semantic knowledge graphs enable breakthrough discoveries by revealing hidden connections across millions of research papers.

Ankita Choudhary
December 12, 2025
18 min read

Nobody is reading it all

PubMed took in 1,567,478 citations in fiscal 2023, according to the National Library of Medicine's own production statistics - roughly 4,300 a day, every day, in biomedicine alone. Annual intake has sat between 1.5 and 1.7 million since 2020.

Put a number on what that means for a person. A researcher who read one paper an hour, eight hours a day, without weekends or holidays, would finish about 2,900 in a year. That is under two tenths of one percent of a single year's additions to a single database.

So the familiar complaint that "you can't keep up with the literature" is not a complaint about effort or time management. Keeping up has been arithmetically impossible for a long time, and the interesting question is what you build once you accept that.

This creates a paradox: we have more knowledge than ever, but it's increasingly difficult to find relevant information and make connections across disciplines.

19500.2M19701.1M19904M20008M201020M202040M202550MA researcher reads on the order of 250 papers a year. The gap is the problem.
Annual publication volume has outrun human reading capacity

What is a Knowledge Graph?

A knowledge graph represents information as a network of entities (nodes) and relationships (edges). Unlike traditional databases, knowledge graphs capture semantic meaning and enable complex queries across interconnected data.

encodesassociated_withinteracts_withinvolved_intreated_bytargetsparticipates_inBRCA1GeneBRCA1ProteinBreast cancerDiseaseRAD51ProteinOlaparibDrugDNA repairProcessPARP1Protein
A fragment of the BRCA1 knowledge graph

BioAgents Knowledge Extraction Pipeline

Our BioAgents system transforms unstructured research papers into structured knowledge graphs through a multi-stage pipeline:

STAGE 1 -DOCUMENT PROCESSINGGROBID parseSection detectReference extractFigure extractSTAGE 2 -ENTITY RECOGNITIONBioBERT NERPubMed taggerChemNERDisease taggerSTAGE 3 -RELATIONSHIP EXTRACTIONDependency parsePattern matchNeural REConfidence scoreSTAGE 4 -GRAPH CONSTRUCTIONEntity linkingOntology mappingRDF triplesGraph storeparsed textentitiestyped relations
The four-stage BioAgents extraction pipeline

Ontology Integration

BioAgents maps extracted entities to established biomedical ontologies:

OntologyCoverageEntities
Gene Ontology (GO)Biological processes, molecular functions45,000+
Human Phenotype Ontology (HPO)Clinical phenotypes16,000+
ChEBIChemical entities170,000+
Disease Ontology (DO)Human diseases12,000+
Protein Ontology (PRO)Protein forms40,000+

Example: Entity Linking

typescript
// Raw text extraction
const rawEntity = "BRCA1 gene";

// Entity linking result
const linkedEntity = {
  text: "BRCA1 gene",
  type: "Gene",
  ontologyMappings: [
    { ontology: "HGNC", id: "HGNC:1100", label: "BRCA1" },
    { ontology: "NCBI Gene", id: "672", label: "BRCA1" },
    { ontology: "UniProt", id: "P38398", label: "BRCA1_HUMAN" }
  ],
  confidence: 0.98
};

SPARQL Queries for Discovery

Knowledge graphs enable powerful semantic queries that would be impossible with traditional search:

Query 1: Find Drug Repurposing Candidates

sparql
PREFIX bio: <http://bio-ontology.org/>
PREFIX drug: <http://drugbank.org/>

SELECT ?drug ?originalIndication ?newTarget ?disease
WHERE {
  ?drug a drug:Drug ;
        drug:indication ?originalIndication ;
        drug:target ?target .
  
  ?target bio:associatedWith ?pathway .
  ?pathway bio:involvedIn ?disease .
  
  FILTER NOT EXISTS {
    ?drug drug:indication ?disease
  }
  
  FILTER (?disease != ?originalIndication)
}
ORDER BY DESC(?confidence)
LIMIT 100

Query 2: Discover Hidden Gene Disease Connections

sparql
PREFIX bio: <http://bio-ontology.org/>

SELECT ?gene ?disease (COUNT(?pathway) as ?sharedPathways)
WHERE {
  ?gene bio:participatesIn ?pathway .
  ?pathway bio:associatedWith ?disease .
  
  FILTER NOT EXISTS {
    ?gene bio:directlyAssociatedWith ?disease
  }
}
GROUP BY ?gene ?disease
HAVING (COUNT(?pathway) >= 3)
ORDER BY DESC(?sharedPathways)

Real-World Discovery: A Case Study

In 2024, researchers using knowledge graph analysis discovered a previously unknown connection between a rare metabolic disorder and a common cardiovascular drug:

Statin drugPublished 1987HMG-CoA reductasePublished 1992Mevalonate pathwayPublished 2001Rare disorderNew link, 2024
A connection hidden across three domains for twenty years

Integration with DIDs

Every knowledge graph node in Bio-DID-Seq is linked to its source via DIDs, creating a verifiable provenance chain:

json
{
  "@context": "https://schema.org",
  "@type": "BiomedicalEntity",
  "@id": "did:bio:devnet:EvFk8XrZBVPqcn8tmKtLy2gwCc7ZuWrX8Pthwix26anM",
  "name": "BRCA1 Protein",
  "derivedFrom": [
    {
      "@type": "ScholarlyArticle",
      "identifier": "did:bio:devnet:3x3wS8ym8Z4MuANdeZ6CvpjFtvo6rF2NgGw92Qq5CLkw/nature12912",
      "extractionConfidence": 0.95,
      "extractionDate": "2025-01-15"
    }
  ],
  "relationships": [
    {
      "type": "interacts_with",
      "target": "did:bio:devnet:BMJwkU9TvP9oEFSgoMs8PE1zTZf5by5obd94v58xBGAv",
      "evidence": "did:bio:devnet:6j7CC2CnktnVb3Rv55WoV26TYZYcuDjBsbYUSSfzbVSh/j.cell.2020.01.001",
      "confidence": 0.92
    }
  ]
}

Hypothesis generation, and why we have not shipped it

The obvious next move is to stop using the graph for retrieval and start using it to propose things nobody has written down: find entities two or three hops apart with no direct edge between them, and surface the gap as a candidate.

The idea is not ours and it is not new. Don Swanson did it by hand in 1986, reading two literatures that had essentially no citations between them - one on Raynaud's syndrome, one on dietary fish oil - and noticing that fish oil was reported to lower blood viscosity, reduce platelet aggregability and inhibit vascular reactivity, while Raynaud's patients were independently characterised by exactly those three things. Nobody had put the two halves together because nobody was reading both.

A double-blind trial three years later found fish oil did improve cold tolerance in patients with primary Raynaud's, though not in secondary cases. The field that grew out of this is now called literature-based discovery, and its standard formalisation - A relates to B in one literature, B to C in another, A to C proposed and untested - is a direct description of what Swanson did by reading.

What has not happened is a version of it that works reliably. The difficulty is not finding candidate gaps; a graph query does that in milliseconds and returns far too many. It is that "these two things are not connected in the literature" has many boring explanations - nobody has looked, the connection is obvious to practitioners and therefore unpublished, the two fields use different words for the same object, or one of the extracted edges was simply wrong. Ranking by "novelty" mostly surfaces extraction errors, because a spurious edge is by construction novel.

So the honest status is: the graph makes the query cheap, and the query is not the hard part. We would rather say that than ship a generateHypotheses endpoint that returns a confidence score with nothing meaningful behind it. Where the graph does earn its keep today is narrower and duller - finding the papers that connect two entities you already suspect are related, which is retrieval, and which works.

(Swanson, "Fish Oil, Raynaud's Syndrome, and Undiscovered Public Knowledge", Perspectives in Biology and Medicine 30(1):7-18, 1986; DiGiacomo, Kremer & Shah, American Journal of Medicine 86(2):158-164, 1989.)

Where this leaves us

A knowledge graph does not discover anything. It makes certain questions cheap that were previously expensive - which papers connect these two proteins, what does this compound touch three hops out, has anyone linked this gene to that phenotype - and cheap questions get asked more often. That is the entire mechanism, and it is worth stating in those terms rather than as acceleration of scientific progress.

The part that decides whether any of it is usable is provenance. An extracted edge is a claim made by a model about a sentence in a paper, and it is sometimes wrong. A graph that records which paper each edge came from, and which extraction run produced it, lets a reader check the claim and lets us retract edges when a model turns out to have been systematically confused. A graph that records only the edges is a pile of assertions with no way to audit them, which is worse than useless when the assertions are biomedical.

That is the argument for pinning entities to resolvable identifiers and extractions to content-addressed inputs. Not that it makes discovery trustworthy - it makes disagreement possible, which is a lower bar and a much more useful one.


Further reading: Gene Ontology, BioBERT, SPARQL Query Language

Ready to Get Started?

Explore our documentation to learn how to integrate Ekayana into your research workflow.