citation_lineage
Trace a seed paper's citation lineage forward (who cites it) or backward (its references) across up to three generations, deduplicating papers and returning a JSON corpus with inline summary.
Instructions
Walk the citation lineage of a seed paper across multiple generations. Forward: generation 1 = papers that cite the seed; generation 2 = papers that cite those; up to 3 generations. Backward: walks cited references. All papers are deduplicated globally. Output: corpus written to disk as JSON plus compact inline summary; the corpus is also returned inline as base64 so sandboxed callers can inspect it. Use sort='citedby' (default for forward) to collect the most-cited citers first, which gives a meaningful citation-backbone; sort='coverDate' collects the most recent citers first (which can produce a recency-dominated walk). source='openalex' walks OpenAlex instead (no Scopus entitlement; node IDs are OpenAlex work IDs; reference lists are thinner and absent for AIS eLibrary papers). Server version is included in every response.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | How to rank citing papers before the max_per_node cap is applied (forward direction only; ignored for backward). 'citedby' (default): highest citation count first — captures the high-flow backbone. 'coverDate': most recent first — captures the current fringe but may produce a recency-dominated walk on high-citation seeds. 'relevancy': Scopus relevance score (Scopus only). | citedby |
| scope | No | Forward walks only: keep citing papers from these journals (ISSN list, or 'basket_of_eight'/'ais8'). The filter goes into the search, so max_per_node counts in-scope papers only. Restrict to journals, by ISSN: a list of ISSNs, or a basket name ('basket_of_eight' / 'ais8': the AIS Senior Scholars' Basket of Eight). ISSNs are used rather than journal names, which Scopus spells inconsistently. | |
| source | No | Data source. 'scopus' (default) needs subscriber entitlement for search, citations and references. 'openalex' needs none: IDs may be DOIs, OpenAlex work IDs (W...), or Scopus IDs (resolved to a DOI via Scopus metadata), and results carry OpenAlex IDs. Never mix sources within one analysis. | scopus |
| seed_id | Yes | Scopus ID or EID of the seed paper. With source='openalex', a DOI or OpenAlex work ID also works. | |
| direction | No | 'forward' (default): walk citing papers via search_all + REF(). Fan-out can be large; use max_per_node to bound quota. 'backward': walk cited references via get_references, up to max_per_node per paper; references with no ID are skipped. | forward |
| min_citing | No | Only expand papers that have at least this many citing papers (default 0 = expand all up to max_per_node). Pruning high values avoids exploding on trivially-cited nodes. Ignored for backward direction. | |
| generations | No | Number of generations to walk (default 1, max 3). | |
| max_per_node | No | Cap on citing papers fetched per paper per generation (default 200). |