Skip to content

Feature Request: Track “completeness” of paper‑citation subgraphs #24

@tjkerby

Description

@tjkerby

🚀 Feature Request: Track “completeness” of paper‑citation subgraphs

❓ Background

Right now, when you add a paper to your Knowledge Graph we:

  1. Automatically create nodes for the paper’s authors, venue/journal, etc.
  2. Do not automatically fetch or add the papers it cites (or is cited by).

If you manually click “Add References” on a paper, we’ll:

  • Add nodes for each cited paper
  • Draw edges linking your paper → each cited paper

However, we do not:

  • Add edges between those newly added cited papers (even when they cite each other)
  • Mark when a paper’s local neighborhood is “finished” or complete

This can lead to confusion: you might see two papers in your graph that you know cite one another, but there’s no edge between them unless you explicitly click “Add References” on each of them in turn. Worse, there’s no visual cue telling you whether you’ve already pulled in all citations for a given paper.


🐞 Current Behavior

  1. No inter‑citation edges: A → B and A → C edges are added, but B ↔ C is never added automatically even if B cites C or vice versa.
  2. No completeness flag: Users can’t tell at a glance whether a node’s citations have all been imported.

🎯 Desired Behavior

  1. Complete subgraph import: If I “Add References” for paper A, then after fetching A → {B, C, D}, automatically detect and add any edges among {B, C, D} that exist in the semantic data.

  2. “complete” attribute on nodes: Each paper‐node should have a boolean flag (e.g. node.complete = true/false) that flips to true only once:

    • All of its citations and references‐by have been fetched
    • All inter‑citation edges among its immediate neighbors have been added

💡 Proposed Solution

  1. On “Add References” action for node A:

    • Fetch citation list for A → build edges A → X for each X.
    • Then issue a batch query for all pairs (X, Y) where X, Y ∈ citations(A), to see if X cites Y or vice versa; add those edges too.
  2. Marking completeness:

    • Initialize node.complete = false at creation.
    • After performing both steps above for node A, set node.complete = true.
    • Surface this property in the UI (e.g. a checkmark icon, grayed‑out “Add References” button, or tooltip).

✔ Acceptance Criteria

  • When I click “Add References” on paper A, I see not only A → {citations} but also edges among those citations if they cite each other.
  • The UI clearly indicates for each paper‐node whether its local citation graph is “complete” or still partial.
  • Exported graph (e.g. via JSON/GraphML) carries the complete attribute so downstream tools can detect incomplete subgraphs.

🤔 Alternatives Considered

  • On‑demand neighbor expansion: Require users to click “Expand” on each cited paper to see its edges. (Reject: too many clicks.)
  • Global batch completeness: Periodically scan all nodes in the graph, but this can be expensive for large graphs. Better to do it lazily per‑node.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions