omniseek_field_skeleton
Generate a citation-neighborhood map of a research field from seeds or query, exposing foundational vs frontier works. Use the raw graph to cluster, detect gaps, and judge relevance.
Instructions
Map a research field's shape — use WHEN you need its citation neighborhood (foundational core by citations vs frontier by date) to cluster yourself, from a topic or seed papers.
A thin graph primitive, NO judgment: given query (auto-picks top-relevance seeds) or
seeds (OpenAlex work-ids YOU chose as anchors — preferred once you know the field), it
returns the field's complete citation neighborhood: every node with raw metadata, date,
and ONE signal in_degree (how many in-field papers cite it).
YOU are the cartographer — do ALL the intelligence over this raw data:
• SEEDS: if the auto-seeds are off (e.g. a generic survey crept in), re-call with
seeds=[...] you pick from the nodes.
• SOURCE: source="openalex" (default, rich for established fields) or source="s2"
(Semantic Scholar — far better arXiv coverage + accurate citation counts; use it for
recent/bleeding-edge fields where OpenAlex's graph is sparse). s2 nodes also carry
influential (S2 flags the citation link to a seed as substantive, not a drive-by) and
intent (methodology/background/result, when S2 classified it): strong cues for what
to read first, and contexts ([{snippet, intents}]: the RAW citing SENTENCE(s) S2
extracted). READ a snippet to judge a citation's POLARITY yourself (does the citer
SUPPORT, CONTRAST/refute, or merely MENTION the seed): OmniSeek exposes the sentence, YOU
classify; S2 has no polarity field and OmniSeek makes no such judgment. contexts is empty
when S2 never parsed the citing PDF. For a young/hot field the best "graph" is often a
human-curated survey/awesome-list, fetch that yourself instead.
• FOUNDATIONAL vs FRONTIER: high in_degree = the foundational core; recent date
(filter it yourself) + your relevance read = the frontier. There is no frontier flag —
you judge it.
• DATA HYGIENE: OpenAlex occasionally has a poisoned title (e.g. a 14k-citation paper titled
"AI Consciousness" by T.B. Brown IS a corrupted GPT-3 record). You recognize these — no
code does. Use a node's url to verify / omniseek_read to read the real paper.
• Cluster + narrate relevance and sub-fields from titles + concept + your knowledge.
• GAP DETECTION (your seed set's blind spots): each non-seed node carries seed_ref_freq (how many
of YOUR seeds reference it = a foundational ref your reading list is MISSING) and seed_cite_freq
(how many seeds it cites = a frontier citer you are MISSING). Sort non-seed nodes by these to find
what your input lacks. edges (the in-corpus [citer, cited] citation DAG) lets you build the
citation / co-citation / bibliographic-coupling maps yourself (co-authorship: use omniseek_coauthors).
• BUDGET: there is an overall wall-clock cap (deadline_s, ~25s default). On a slow/throttling
S2 the assemble bails early with a PARTIAL map (_meta.deadline_hit: true) rather than
hanging — retry shortly, raise deadline_s, or use source=openalex.
Returns: {seeds, n_nodes, n_edges, edges:[[citer_id, cited_id]], nodes:[{id, title, year, date, cited_by, in_degree, concept, first_author, doi, url, is_seed, seed_ref_freq, seed_cite_freq}]} (sorted by in_degree as a default view only; seed_ref_freq/seed_cite_freq on non-seed nodes). _meta carries seed_titles + seed_note (auto-seed drift check), degraded, deadline_hit, partial.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fresh | No | ||
| query | No | ||
| seeds | No | ||
| source | No | openalex | |
| n_seeds | No | ||
| max_nodes | No | ||
| deadline_s | No | ||
| citers_per_seed | No |