用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/brycewang-stanford/Auto-Empirical-Research-Skills --skill crossref-event-data-api命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | crossref-event-data-api |
| description | Track scholarly mentions across the web via Crossref Event Data |
| metadata | {"openclaw":{"emoji":"📡","category":"literature","subcategory":"metadata","keywords":["Crossref","event data","altmetrics","social media mentions","scholarly impact","web mentions"],"source":"https://www.eventdata.crossref.org/"}} |
Crossref Event Data tracks where scholarly publications are discussed, shared, and referenced across the open web — Wikipedia citations, Twitter/X mentions, Reddit posts, blog references, policy document citations, and more. Unlike traditional citation counts, Event Data captures real-time online attention to research. Free, no authentication required.
https://api.eventdata.crossref.org/v1
# Get events for a specific DOI
curl "https://api.eventdata.crossref.org/v1/events?obj-id=10.1038/nature14539&rows=20"
# Filter by source
curl "https://api.eventdata.crossref.org/v1/events?\
obj-id=10.1038/nature14539&source=wikipedia"
# Filter by date range
curl "https://api.eventdata.crossref.org/v1/events?\
from-occurred-date=2024-01-01&until-occurred-date=2024-12-31&source=twitter&rows=100"
# Get events about a DOI prefix (publisher level)
curl "https://api.eventdata.crossref.org/v1/events?obj-id.prefix=10.1371&rows=50"
# Events from a specific source
curl "https://api.eventdata.crossref.org/v1/events?source=reddit&rows=50"
| Source | Description | What it tracks |
|---|---|---|
wikipedia | Wikipedia article references | DOIs cited in Wikipedia |
twitter | Twitter/X posts | Tweets linking to DOIs |
reddit | Reddit posts/comments | Reddit links to papers |
hypothesis | Hypothesis annotations | Web annotations on papers |
newsfeed | News articles | Media coverage of research |
stackexchange | Stack Exchange Q&A | Technical discussions |
web | General web pages | Blog posts, reports |
wordpressdotcom | WordPress blogs | Blog references |
datacite | DataCite DOIs | Dataset-paper linkages |
crossref | Crossref metadata | Reference list updates |
| Parameter | Description | Example |
|---|---|---|
obj-id | DOI of the paper | obj-id=10.1038/nature14539 |
obj-id.prefix | DOI prefix (publisher) | obj-id.prefix=10.1371 |
source | Event source | source=wikipedia |
from-occurred-date | Events from date | 2024-01-01 |
until-occurred-date | Events until date | 2024-12-31 |
rows | Results per page (max 10000) | rows=100 |
cursor | Pagination cursor | Returned in response |
{
"status": "ok",
"message-type": "event-list",
"message": {
"total-results": 245,
"events": [
{
"obj_id": "https://doi.org/10.1038/nature14539",
"source_id": "wikipedia",
"subj_id": "https://en.wikipedia.org/wiki/Deep_learning",
"relation_type_id": "references",
"occurred_at": "2024-03-15T10:30:00Z",
"subj": {
"title": "Deep learning - Wikipedia",
"url": "https://en.wikipedia.org/wiki/Deep_learning"
}
}
],
"next-cursor"
import requests
from collections import Counter
BASE_URL = "https://api.eventdata.crossref.org/v1"
def get_events(doi: str, source: str = None,
rows: int = 100) -> list:
"""Get Event Data events for a DOI."""
params = {"obj-id": doi, "rows": rows}
if source:
params["source"] = source
resp = requests.get(f"{BASE_URL}/events", params=params)
resp.raise_for_status()
data = resp.json()
events = []
for ev in data.get("message", {}).get("events", []):
events.append({
"source": ev.get("source_id"),
"subject_url": ev.get("subj_id"),
"subject_title": ev.get("subj", {}).get("title", ""),
"relation": ev.get("relation_type_id"),
"date": ev.get("occurred_at", "")[:10],
})
return events
def get_attention_summary(doi: str) -> dict:
"""Summarize online attention for a paper."""
events = get_events(doi, rows=10000)
source_counts = Counter(e[] e events)
{
: (events),
: (source_counts),
: ((e[] e events), default=),
: ((e[] e events), default=),
}
() -> :
events = get_events(doi, source=)
[
{: e[],
: e[],
: e[]}
e events
e[] ==
]
doi =
summary = get_attention_summary(doi)
()
source, count (summary[].items(),
key= x: -x[]):
()
wiki_refs = find_wikipedia_citations(doi)
ref wiki_refs:
()