-
Notifications
You must be signed in to change notification settings - Fork 2
Description
🚀 Feature Request: Track “completeness” of paper‑citation subgraphs
❓ Background
Right now, when you add a paper to your Knowledge Graph we:
- Automatically create nodes for the paper’s authors, venue/journal, etc.
- 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
- 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.
- No completeness flag: Users can’t tell at a glance whether a node’s citations have all been imported.
🎯 Desired Behavior
-
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.
-
“complete” attribute on nodes: Each paper‐node should have a boolean flag (e.g.
node.complete = true/false) that flips totrueonly once:- All of its citations and references‐by have been fetched
- All inter‑citation edges among its immediate neighbors have been added
💡 Proposed Solution
-
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.
-
Marking completeness:
- Initialize
node.complete = falseat 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).
- Initialize
✔ 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
completeattribute 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.