claudeers.

🔓 unclaimed — this page was auto-generated from GitHub. Are you the creator?

Claim this page →
// Other

scholar-lab-radar

Profile a research lab over the last N years — collect every paper from OpenAlex, build a temporal knowledge graph (ontology), and synthesize a grounded evol…

Actively maintained
100/100
last commit 8 days ago
last release 8 days ago
releases 9
open issues 0
// install
git clone https://github.com/TaewoooPark/scholar-lab-radar

scholar-lab-radar

Profile a research lab over the last N years for Claude Code.
One skill that collects every paper from OpenAlex, structures it into a temporal knowledge graph (ontology), and synthesizes a grounded report of the lab's evolution.

한국어 README  ·  SKILL.md  ·  Ontology


One sentence: name a professor (or a school/department), and get back a temporal knowledge graph of their lab's papers plus a grounded report of what they work on, who the members are, and how the focus has shifted.

  • 🛰️ Whole lab in one sweep — every paper by the confirmed PI over the chosen years, from OpenAlex (free, no key), deduped with abstracts, topics, citations, references, and authorships.
  • 🕸️ Temporal knowledge graph (ontology) — typed entities (Paper · Researcher · Topic · Theme · Method · Venue · Institution · Funder) and time-stamped relations, so trends and lineage are graph queries, not flat tags.
  • 📈 Focus-shift detection (기조 변화) — topic × year matrix with emerging / declining research lines, every claim grounded in paper counts.
  • 👥 Member roster & roles — co-authorship reveals likely members, long-term collaborators, and rising first-authors (current students/stars) — inferred and labeled honestly.
  • 🧩 Two-layer design — deterministic Python builds the graph + metrics (reproducible); the LLM only names research themes/methods and writes the narrative, always grounded.
  • 🎞️ Interactive graph, played over time — a self-contained graph.html: click any node for its details, filter by type, and drag a year slider (or hit ▶ play) to watch the lab's graph assemble year by year.
  • 🧭 Modesprofessor, lab, department, compare (two labs), applicant (lab × your interests).

Why It Exists

Sizing up a lab is tedious and shallow. You skim a Google Scholar profile (a flat list), maybe an OpenAlex page (metrics), and try to guess from titles what the group actually works on now, whether it has pivoted, and who the key people are. A prospective student comparing advisors, a researcher scouting collaborators, or a PI writing a tenure packet all hit the same wall.

scholar-lab-radar treats "understand this lab" as a graph problem: resolve the PI, collect the whole corpus, and structure it into a temporal ontology where Topics, Themes, Methods, members, and citations are typed and dated. The output isn't a chat reply — it's a knowledge graph on disk plus a report whose every trend ("ethics of AI rose from 1% to 9% of output") is backed by counts you can audit.

How It Works

scholar-lab-radar pipeline: resolve PI (human-confirm) → collect.py (OpenAlex sweep) → build_graph.py (ontology) → analyze.py (metrics + focus shift) → LLM tag themes/methods → synthesize report

The data layer is deterministic Python over OpenAlex; the semantic layer (research themes, methods, datasets, and the prose narrative) is the only part the LLM touches, and it is grounded in the graph's counts.

The ontology

OpenAlex's 4-level Topic taxonomy is the spine (a controlled vocabulary that stops the LLM from drifting); lab-specific Themes are layered on top. Every relation carries a year, so the graph is a time series — focus shift, theme lineage, and method diffusion are all queries over it. See references/ontology.md.

Focus-shift detection

analyze.py splits the year span in half and compares each topic's share of primary-topic papers, early vs late. Topics whose share grows are emerging; those that shrink are declining — reported with the raw paper counts so a reader can judge the signal.

A typical run

A 5-year sweep on a single PI looks roughly like this (illustrative):

lab: "Yoshua Bengio" (ORCID 0000-0002-9322-3515), 2020–2024
  works:     213 unique          researchers: ~1000 distinct co-authors
  graph:     ~3,800 relations    topics: 12 primary lines tracked
  emerging:  Ethics & Social Impacts of AI  1% → 9%   (1 → 5 papers)
  declining: Domain Adaptation / Few-Shot   11% → 2%  (17 → 1 papers)
  output:    ./labs/yoshua-bengio_2020-2024/

A full worked example (Geoffrey Hinton, 2020–2024 — graph, metrics, per-paper cards, and the synthesized narrative) is committed under examples/geoffrey-hinton_2020-2024/.

Install

git clone https://github.com/TaewoooPark/scholar-lab-radar.git
cd scholar-lab-radar
bash setup/install.sh [email protected]      # email used for the OpenAlex polite pool

The script installs the skill into ~/.claude/skills/. The scripts are standard-library Python only — no venv, no keys, no MCP required.

Requirements

Python3.9+ (standard library only)
Networkaccess to api.openalex.org
Claude Codethe skill is triggered from within a session

Usage

Inside Claude Code, trigger the skill in natural language:

profile Yoshua Bengio's lab over the last 5 years
이 교수 연구실 최근 10년 논문 흐름이랑 기조 변화 분석해줘

Or invoke it as a slash command — pass the PI, optionally an ORCID / institution / year range / mode:

/scholar-lab-radar Geoffrey Hinton orcid=... years=2015-2025
/scholar-lab-radar compare "Lab A" vs "Lab B"
/scholar-lab-radar applicant <professor> interests="diffusion models, RL"

Or run the scripts directly:

S=~/.claude/skills/scholar-lab-radar/scripts
python3 $S/resolve.py author "Yoshua Bengio" --orcid 0000-0002-9322-3515 --mailto you@x
python3 $S/collect.py --author A5086198262 --from 2020 --to 2024 -o ./labs/bengio --mailto you@x
python3 $S/build_graph.py ./labs/bengio
python3 $S/analyze.py ./labs/bengio

Modes

ModeCorpusStatus
professor (default)the confirmed PI's authored works✅ v0.1.0
labPI + inferred members' works✅ recipe (v0.3.0)
comparetwo labs side by side (advisor comparison)✅ v0.3.0 (compare.py)
applicanta lab × your interests → alignment + who to contact✅ recipe (v0.3.0)
departmentan institution + topic scopingdocumented

Outputs

Everything lands under ./labs/<slug>/ in the working directory:

labs/<slug>/
├── works.jsonl              # normalized corpus (one work per line)
├── meta.json               # run params + counts
├── graph/
│   ├── entities.jsonl      # typed nodes: Paper, Researcher, Topic, Venue, …
│   └── relations.jsonl     # typed, time-stamped edges
├── data/
│   ├── topics_by_year.csv  # topic × year matrix
│   └── roster.csv          # member roster with roles + active spans
├── papers/<year>-<slug>.md  # per-paper tagged metadata (semantic layer)
├── index.md                # structured dashboard
├── report.md               # synthesized lab report
└── graph.html              # interactive graph — click nodes, filter by type, year-slider time-lapse

Ontology

A live slice of the scholar-lab-radar ontology in the graph.html viewer: Geoffrey Hinton 2011-2026, 413 typed nodes colored by type with a year slider, and the detail panel showing the Geoffrey Hinton Researcher node — role PI, 113 papers, and collaborates_with / authored_by relations

A live slice of the ontology — the interactive graph.html viewer (Geoffrey Hinton, 2011–2026): nodes typed & colored, the year slider that grows the graph over time, and a node's full ontology record (attributes + typed relations) in the detail panel.

EntityKey attributes
Papertitle, year, venue, doi, citations, oa, pi_position
Researchername, orcid, role, active span, first/last-author counts
TopicOpenAlex taxonomy: domain → field → subfield → topic (the spine)
Themelab-specific research thread (LLM, on top of Topics)
Method / Datasetnormalized, LLM-extracted
Venue · Institution · Fundermetadata nodes
Relations → o
authored_byPaper → Researcher (+ position)
has_topic · exploresPaper → Topic / Theme
uses_method · evaluates_onPaper → Method / Dataset
published_in · funded_byPaper → Venue / Funder
citesPaper → Paper (internal lineage)
collaborates_withResearcher → Researcher (PI ego network)
advised_by · evolved_from · diffused_toinferred (member / theme / method)

Full schema and the per-paper Markdown frontmatter are in skills/scholar-lab-radar/references/ontology.md; the exact OpenAlex queries are in references/sources.md.

Repository Layout

scholar-lab-radar/
├── README.md · README.ko.md · LICENSE
├── setup/install.sh          # installs the skill into ~/.claude/skills/
└── skills/
    └── scholar-lab-radar/    # the skill
        ├── SKILL.md
        ├── references/{ontology.md, sources.md}
        └── scripts/{resolve, collect, build_graph, analyze, tag_ingest, infer, export_jsonld, compare, viz, oa}.py

This repository contains only original MIT-licensed work. No third-party services are vendored — the scripts call OpenAlex (and optionally other open APIs) at run time.

Notes & Limitations

  • Author disambiguation is the make-or-break step. The corpus is exactly the confirmed PI author id(s); a wrong id taints the whole report. Always confirm — prefer ORCID, and merge ids when OpenAlex splits a person.
  • "Lab" is not a data entity. professor mode = the PI's authored works; members are inferred from co-authorship + affiliation and labeled as inferred, never declared.
  • OpenAlex coverage varies — older work, some fields, non-English output, and books are less complete, and abstracts can be missing. Stated in the report's caveats.
  • Small samples are noisy. Trend claims are always shown with their paper counts so a reader can judge whether a "shift" is real.
  • Honest synthesis. The report states what was actually collected and which disambiguation was chosen; nothing is invented to fill a gap.

Attribution

  • OpenAlex — the primary data source (openalex.org), a fully open index released under CC0. Cite OpenAlex when you publish derived analysis.
  • ORCID, Crossref, Unpaywall, Semantic Scholar, Papers With Code — optional enrichment via their public APIs; their data carries its own terms.

Original work in this repository is released under the MIT License — this covers our code only, not the third-party services or the data they return.

// compatibility

Platformsapi
Operating systems
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguagePython

// faq

What is scholar-lab-radar?

Profile a research lab over the last N years — collect every paper from OpenAlex, build a temporal knowledge graph (ontology), and synthesize a grounded evolution report. A Claude Code skill (sibling to scholar-megasearch).. It is open-source on GitHub.

Is scholar-lab-radar free to use?

scholar-lab-radar is open-source under the MIT license, so it is free to use.

What category does scholar-lab-radar belong to?

scholar-lab-radar is listed under other in the Claudeers registry of Claude-compatible tools.

0 views
18 stars
unclaimed
updated 7 days ago

// embed badge

scholar-lab-radar on Claudeers
[![Claudeers](https://claudeers.com/api/badge/scholar-lab-radar.svg)](https://claudeers.com/scholar-lab-radar)

// retro hit counter

scholar-lab-radar hit counter
[![Hits](https://claudeers.com/api/counter/scholar-lab-radar.svg)](https://claudeers.com/scholar-lab-radar)

// reviews

// guestbook

0/500

// related in Other

🔓

Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability.

// othermanaflow-ai/Swift23,559NOASSERTION[ claude ]
🔓

Huashu Design · HTML-native design skill for Claude Code · Claude Code 里 HTML 原生的设计 skill · 高保真原型 / 幻灯片 / 动画 + 20 设计哲学 + 5 维评审 + MP4 导出 · Agent-agnostic

// otheralchaincyf/HTML20,855MIT[ claude ]
🔓

一份通俗易懂、风趣幽默的Java学习指南,内容涵盖Java基础、Java并发编程、Java虚拟机、Java企业级开发、Java面试等核心知识点。学Java,就认准二哥的Java进阶之路😄

// otheritwanger/Java17,140[ claude ]
🔓

🎬 卡卡字幕助手 | VideoCaptioner - 基于 LLM 的智能字幕助手 - 视频字幕生成、断句、校正、字幕翻译全流程处理!- A powered tool for easy and efficient video subtitling.

// otherWEIFENG2333/Python15,241GPL-3.0[ claude ]
→ see how scholar-lab-radar connects across the ecosystem