Skip to main content

Knowledge graph

Chive uses a community-curated knowledge graph to classify and connect scholarly works. This Wikipedia-style approach allows the research community to build and maintain a structured taxonomy of academic fields.

Overview

The knowledge graph serves three purposes:

  1. Discovery: Find related eprints through field classifications
  2. Context: Understand how a work fits into broader research areas
  3. Navigation: Browse eprints by field, subfield, or topic

Field nodes

A field node represents an academic discipline, subdiscipline, or topic. Each field has:

PropertyDescription
labelHuman-readable name (e.g., "Algebraic Geometry")
descriptionBrief explanation of the field's scope
alternateLabelsAlternative names (e.g., "Algebraic Geometry" = "AG")
externalIdsLinks to Wikidata, Library of Congress, etc.

Hierarchical and associative relationships are represented as edges rather than embedded arrays:

Edge RelationDescription
broaderParent categories this field belongs to
narrowerChild specializations within this field
relatedFields with conceptual overlap

Field relationships

Fields connect through three relationship types:

PMEST classification

Beyond hierarchical fields, Chive uses PMEST (Personality, Matter, Energy, Space, Time) faceted classification. This system allows filtering across orthogonal dimensions:

FacetMeaningExample
PersonalityCore subject"Quantum mechanics"
MatterMaterial or substance"Carbon nanotubes"
EnergyProcess or action"Oxidation"
SpaceGeographic scope"Arctic regions"
TimeTemporal scope"Holocene"

A single eprint can be classified across multiple facets:

Eprint: "Climate-Driven Carbon Nanotube Degradation in Arctic Soils"

Facets:
Personality: Environmental Chemistry, Materials Science
Matter: Carbon nanotubes, Soil
Energy: Degradation, Climate change
Space: Arctic
Time: Contemporary (2020-present)

Users can combine facets to narrow searches:

GET /xrpc/pub.chive.graph.browseFaceted?
personality=materials-science&
matter=carbon-nanotubes&
space=arctic

Authority records

Authority records ensure consistency across the knowledge graph. They're like library catalog entries for concepts, represented as pub.chive.graph.node:

// Example: "Quantum Computing" node
{
"$type": "pub.chive.graph.node",
"id": "quantum-computing",
"kind": "object",
"subkind": "field",
"label": "Quantum Computing",
"alternateLabels": [
"Quantum Computation",
"QC"
],
"description": "Computational paradigm using quantum-mechanical phenomena",
"externalIds": [
{ "source": "wikidata", "value": "Q339" },
{ "source": "lcsh", "value": "sh2008010405" },
{ "source": "viaf", "value": "168470861" }
],
"status": "established",
"createdAt": "2025-01-15T10:30:00Z"
}

// Relationships are stored as separate edge records
// pub.chive.graph.edge with relationSlug: "broader" → "Computer Science", "Quantum Mechanics"
// pub.chive.graph.edge with relationSlug: "narrower" → "Quantum Error Correction", "Quantum Algorithms"
// pub.chive.graph.edge with relationSlug: "related" → "Quantum Information Theory"

Authority records link to external controlled vocabularies:

VocabularyPurpose
WikidataMultilingual structured knowledge
LCSHLibrary of Congress Subject Headings
VIAFVirtual International Authority File
FASTFaceted Application of Subject Terminology

Reconciliation

When users tag eprints, Chive reconciles tags against authority records:

This prevents fragmentation ("quantum computing" vs "Quantum Computation" vs "QC" all map to the same concept).

Community governance

The knowledge graph uses Wikipedia-style moderation. Users can:

  1. Propose new fields or changes
  2. Discuss proposals in threaded comments
  3. Vote on whether to accept proposals

Proposal types

TypeWhat it doesApproval threshold
Create fieldAdd a new field to the taxonomy67% with 5+ votes
Update fieldModify name, description, or relationships60% with 3+ votes
Merge fieldsCombine redundant fields67% with 5+ votes
Deprecate fieldMark a field as obsolete75% with 7+ votes
Authority changeUpdate authority records75% with 7+ votes

Voter tiers

Not all votes carry equal weight. Expertise in the relevant field increases vote weight:

TierVote weightCriteria
Community member1.0xAny authenticated user
Trusted editor2.0xConsistent quality contributions
Graph editor3.0xCan modify knowledge graph nodes
Domain expert3.0xPublications in the field
Administrator5.0xPlatform administrators (veto power)

Proposal workflow

User tags vs. authority terms

Chive distinguishes between user-generated tags and authority-controlled terms:

User tagsAuthority terms
Free-form textControlled vocabulary
Personal organizationCommunity consensus
No voting requiredProposal + voting
May be reconciledCanonical concepts

Users can tag eprints freely. Popular tags may be promoted to authority terms through a two-stage process:

  1. Automatic nomination: Tag used on 10+ eprints by 3+ users
  2. Community vote: Standard proposal process

Graph algorithms

The knowledge graph enables advanced discovery features:

Citation analysis

Find papers that:
- Cite foundational works in the field
- Bridge multiple subfields
- Introduce new connections

Semantic similarity

Given an eprint about "quantum error correction":
- Find semantically similar eprints
- Suggest related fields to explore
- Identify key authors in adjacent areas

Field evolution

Track how fields change over time:
- New subfields emerging
- Fields merging or splitting
- Terminology shifts

The knowledge graph enhances search in several ways:

Expansion

A search for "machine learning" automatically includes:

  • Narrow terms: "deep learning", "neural networks"
  • Related terms: "artificial intelligence", "statistical learning"

Disambiguation

A search for "network" prompts:

  • Computer networks?
  • Neural networks?
  • Social networks?
  • Network science?

Faceted browsing

Filter results by any PMEST dimension while staying within a field:

Field: Machine Learning
Filter by Matter: Medical imaging
Filter by Time: Last 5 years
Filter by Space: [any]

Wikidata integration

Chive synchronizes with Wikidata to:

  1. Import established classifications
  2. Link local concepts to global identifiers
  3. Contribute new academic concepts back
# Example SPARQL query to find related concepts
SELECT ?item ?itemLabel WHERE {
wd:Q339 wdt:P279* ?item . # Q339 = Quantum computing
?item wdt:P31 wd:Q11862829 . # Instance of academic discipline
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

API endpoints

EndpointPurpose
pub.chive.graph.getNodeGet node details by ID
pub.chive.graph.listNodesList nodes (paginated, filtered)
pub.chive.graph.searchNodesSearch nodes by label
pub.chive.graph.getFieldGet field details (convenience)
pub.chive.graph.listFieldsList fields (paginated)
pub.chive.graph.listEdgesList edges for a node
pub.chive.graph.browseFacetedFaceted search
pub.chive.graph.getFieldEprintsEprints in a field

Next steps