@wentorai/research-plugins 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -0
  3. package/curated/analysis/README.md +64 -0
  4. package/curated/domains/README.md +104 -0
  5. package/curated/literature/README.md +53 -0
  6. package/curated/research/README.md +62 -0
  7. package/curated/tools/README.md +87 -0
  8. package/curated/writing/README.md +61 -0
  9. package/index.ts +39 -0
  10. package/mcp-configs/academic-db/ChatSpatial.json +17 -0
  11. package/mcp-configs/academic-db/academia-mcp.json +17 -0
  12. package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
  13. package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
  14. package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
  15. package/mcp-configs/academic-db/all-in-mcp.json +17 -0
  16. package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
  17. package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
  18. package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
  19. package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
  20. package/mcp-configs/academic-db/biomcp.json +17 -0
  21. package/mcp-configs/academic-db/biothings-mcp.json +17 -0
  22. package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
  23. package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
  24. package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
  25. package/mcp-configs/academic-db/dicom-mcp.json +17 -0
  26. package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
  27. package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
  28. package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
  29. package/mcp-configs/academic-db/fhir-mcp.json +19 -0
  30. package/mcp-configs/academic-db/gget-mcp.json +17 -0
  31. package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
  32. package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
  33. package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
  34. package/mcp-configs/academic-db/lex.json +17 -0
  35. package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
  36. package/mcp-configs/ai-platform/ai-counsel.json +17 -0
  37. package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
  38. package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
  39. package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
  40. package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
  41. package/mcp-configs/browser/decipher-research-agent.json +17 -0
  42. package/mcp-configs/browser/deep-research.json +17 -0
  43. package/mcp-configs/browser/everything-claude-code.json +17 -0
  44. package/mcp-configs/browser/gpt-researcher.json +17 -0
  45. package/mcp-configs/browser/heurist-agent-framework.json +17 -0
  46. package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
  47. package/mcp-configs/data-platform/context-keeper.json +17 -0
  48. package/mcp-configs/data-platform/context7.json +19 -0
  49. package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
  50. package/mcp-configs/data-platform/email-mcp.json +17 -0
  51. package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
  52. package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
  53. package/mcp-configs/note-knowledge/agent-memory.json +17 -0
  54. package/mcp-configs/note-knowledge/aimemo.json +17 -0
  55. package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
  56. package/mcp-configs/note-knowledge/cognee.json +17 -0
  57. package/mcp-configs/note-knowledge/context-awesome.json +17 -0
  58. package/mcp-configs/note-knowledge/context-mcp.json +17 -0
  59. package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
  60. package/mcp-configs/note-knowledge/cortex.json +17 -0
  61. package/mcp-configs/note-knowledge/devrag.json +17 -0
  62. package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
  63. package/mcp-configs/note-knowledge/engram.json +17 -0
  64. package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
  65. package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
  66. package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
  67. package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
  68. package/mcp-configs/reference-mgr/chiken.json +17 -0
  69. package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
  70. package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
  71. package/mcp-configs/registry.json +447 -0
  72. package/openclaw.plugin.json +21 -0
  73. package/package.json +61 -0
  74. package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
  75. package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
  76. package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
  77. package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
  78. package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
  79. package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
  80. package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
  81. package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
  82. package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
  83. package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
  84. package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
  85. package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
  86. package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
  87. package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
  88. package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
  89. package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
  90. package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
  91. package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
  92. package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
  93. package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
  94. package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
  95. package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
  96. package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
  97. package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
  98. package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
  99. package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
  100. package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
  101. package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
  102. package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
  103. package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
  104. package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
  105. package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
  106. package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
  107. package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
  108. package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
  109. package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
  110. package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
  111. package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
  112. package/skills/domains/cs/dblp-api/SKILL.md +129 -0
  113. package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
  114. package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
  115. package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
  116. package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
  117. package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
  118. package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
  119. package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
  120. package/skills/domains/economics/fred-api/SKILL.md +189 -0
  121. package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
  122. package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
  123. package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
  124. package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
  125. package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
  126. package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
  127. package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
  128. package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
  129. package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
  130. package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
  131. package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
  132. package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
  133. package/skills/domains/math/oeis-api/SKILL.md +158 -0
  134. package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
  135. package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
  136. package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
  137. package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
  138. package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
  139. package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
  140. package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
  141. package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
  142. package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
  143. package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
  144. package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
  145. package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
  146. package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
  147. package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
  148. package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
  149. package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
  150. package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
  151. package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
  152. package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
  153. package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
  154. package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
  155. package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
  156. package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
  157. package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
  158. package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
  159. package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
  160. package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
  161. package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
  162. package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
  163. package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
  164. package/skills/literature/search/arxiv-api/SKILL.md +95 -0
  165. package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
  166. package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
  167. package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
  168. package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
  169. package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
  170. package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
  171. package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
  172. package/skills/literature/search/openalex-api/SKILL.md +134 -0
  173. package/skills/literature/search/pubmed-api/SKILL.md +130 -0
  174. package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
  175. package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
  176. package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
  177. package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
  178. package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
  179. package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
  180. package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
  181. package/skills/research/deep-research/research-cog/SKILL.md +153 -0
  182. package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
  183. package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
  184. package/skills/research/funding/figshare-api/SKILL.md +163 -0
  185. package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
  186. package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
  187. package/skills/research/funding/open-science-guide/SKILL.md +255 -0
  188. package/skills/research/funding/zenodo-api/SKILL.md +174 -0
  189. package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
  190. package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
  191. package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
  192. package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
  193. package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
  194. package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
  195. package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
  196. package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
  197. package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
  198. package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
  199. package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
  200. package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
  201. package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
  202. package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
  203. package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
  204. package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
  205. package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
  206. package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
  207. package/skills/tools/document/anystyle-api/SKILL.md +199 -0
  208. package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
  209. package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
  210. package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
  211. package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
  212. package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
  213. package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
  214. package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
  215. package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
  216. package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
  217. package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
  218. package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
  219. package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
  220. package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
  221. package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
  222. package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
  223. package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
  224. package/skills/writing/citation/zotero-api/SKILL.md +188 -0
  225. package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
  226. package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
  227. package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
  228. package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
  229. package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
  230. package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
  231. package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
  232. package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
  233. package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
  234. package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
  235. package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
  236. package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
  237. package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
  238. package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
  239. package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
  240. package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
  241. package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
  242. package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
  243. package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
  244. package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
  245. package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
  246. package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
  247. package/src/tools/arxiv.ts +131 -0
  248. package/src/tools/crossref.ts +112 -0
  249. package/src/tools/openalex.ts +174 -0
  250. package/src/tools/pubmed.ts +166 -0
  251. package/src/tools/semantic-scholar.ts +108 -0
  252. package/src/tools/unpaywall.ts +58 -0
@@ -0,0 +1,183 @@
1
+ ---
2
+ name: h-index-guide
3
+ description: "Understanding and calculating research impact metrics"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "medal"
7
+ category: "literature"
8
+ subcategory: "metadata"
9
+ keywords: ["h-index", "impact factor", "bibliometrics", "academic metrics", "citation statistics"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # H-Index and Research Impact Metrics Guide
14
+
15
+ Understand, calculate, and responsibly interpret bibliometric indicators including h-index, impact factor, and related metrics.
16
+
17
+ ## Core Bibliometric Indicators
18
+
19
+ ### H-Index
20
+
21
+ The h-index (Hirsch index) is defined as: a researcher has an h-index of h if h of their papers have each been cited at least h times.
22
+
23
+ **Example**: If a researcher has published 20 papers with citation counts [120, 80, 55, 40, 22, 18, 15, 12, 10, 8, 5, 3, 2, 2, 1, 1, 0, 0, 0, 0], their h-index is 10 (10 papers with at least 10 citations each).
24
+
25
+ ```python
26
+ def calculate_h_index(citation_counts):
27
+ """Calculate h-index from a list of citation counts."""
28
+ sorted_counts = sorted(citation_counts, reverse=True)
29
+ h = 0
30
+ for i, count in enumerate(sorted_counts):
31
+ if count >= i + 1:
32
+ h = i + 1
33
+ else:
34
+ break
35
+ return h
36
+
37
+ # Example
38
+ citations = [120, 80, 55, 40, 22, 18, 15, 12, 10, 8, 5, 3, 2, 2, 1, 1, 0, 0, 0, 0]
39
+ print(f"h-index: {calculate_h_index(citations)}") # Output: 10
40
+ ```
41
+
42
+ ### Related Author-Level Metrics
43
+
44
+ | Metric | Definition | Advantage |
45
+ |--------|-----------|-----------|
46
+ | **h-index** | h papers with >= h citations | Simple, robust to outliers |
47
+ | **i10-index** | Number of papers with >= 10 citations | Intuitive threshold (Google Scholar uses this) |
48
+ | **g-index** | Largest g such that top g papers have >= g^2 total citations | Rewards highly cited papers more |
49
+ | **m-quotient** | h-index divided by years since first publication | Normalizes for career length |
50
+ | **hI-norm** | h-index divided by average number of co-authors | Adjusts for team size |
51
+
52
+ ```python
53
+ def calculate_g_index(citation_counts):
54
+ """Calculate g-index from citation counts."""
55
+ sorted_counts = sorted(citation_counts, reverse=True)
56
+ cumulative = 0
57
+ g = 0
58
+ for i, count in enumerate(sorted_counts):
59
+ cumulative += count
60
+ if cumulative >= (i + 1) ** 2:
61
+ g = i + 1
62
+ return g
63
+
64
+ def calculate_i10_index(citation_counts):
65
+ """Calculate i10-index."""
66
+ return sum(1 for c in citation_counts if c >= 10)
67
+
68
+ print(f"g-index: {calculate_g_index(citations)}") # Output: 19
69
+ print(f"i10-index: {calculate_i10_index(citations)}") # Output: 10
70
+ ```
71
+
72
+ ## Journal-Level Metrics
73
+
74
+ ### Journal Impact Factor (JIF)
75
+
76
+ Published annually by Clarivate in the Journal Citation Reports (JCR). The 2-year impact factor for year Y is:
77
+
78
+ ```
79
+ JIF(Y) = (Citations in Y to articles published in Y-1 and Y-2)
80
+ / (Number of citable items published in Y-1 and Y-2)
81
+ ```
82
+
83
+ | Metric | Provider | Window | Notable Features |
84
+ |--------|----------|--------|------------------|
85
+ | Impact Factor | Clarivate (JCR) | 2-year or 5-year | Gold standard, subscription only |
86
+ | CiteScore | Scopus (Elsevier) | 4-year | Free, includes all document types |
87
+ | SJR (Scimago) | Scopus data | 3-year | Weights citations by journal prestige (PageRank-like) |
88
+ | SNIP | Scopus data | 3-year | Normalizes for citation potential of each field |
89
+ | h5-index | Google Scholar | 5-year | Free, h-index applied to a journal |
90
+
91
+ ### Looking Up Journal Metrics
92
+
93
+ ```python
94
+ import requests
95
+
96
+ # Using the OpenAlex API to get journal/source information
97
+ journal_name = "Nature"
98
+ response = requests.get(
99
+ "https://api.openalex.org/sources",
100
+ params={"filter": f"display_name.search:{journal_name}", "per_page": 5}
101
+ )
102
+ results = response.json()["results"]
103
+ for source in results:
104
+ print(f"Name: {source['display_name']}")
105
+ print(f" ISSN: {source.get('issn_l', 'N/A')}")
106
+ print(f" Works count: {source.get('works_count', 'N/A')}")
107
+ print(f" Cited by count: {source.get('cited_by_count', 'N/A')}")
108
+ print(f" h-index: {source.get('summary_stats', {}).get('h_index', 'N/A')}")
109
+ print(f" 2-year mean citedness: {source.get('summary_stats', {}).get('2yr_mean_citedness', 'N/A')}")
110
+ ```
111
+
112
+ ## Calculating Your Own H-Index
113
+
114
+ ### From Google Scholar
115
+
116
+ Google Scholar profiles automatically display h-index and i10-index. No calculation needed, but coverage is the broadest (includes non-peer-reviewed sources).
117
+
118
+ ### From Semantic Scholar API
119
+
120
+ ```python
121
+ def get_author_h_index(author_name):
122
+ """Calculate h-index for an author using Semantic Scholar."""
123
+ # Search for author
124
+ search_resp = requests.get(
125
+ "https://api.semanticscholar.org/graph/v1/author/search",
126
+ params={"query": author_name, "limit": 1}
127
+ )
128
+ authors = search_resp.json().get("data", [])
129
+ if not authors:
130
+ return None
131
+
132
+ author_id = authors[0]["authorId"]
133
+
134
+ # Get all papers with citation counts
135
+ papers_resp = requests.get(
136
+ f"https://api.semanticscholar.org/graph/v1/author/{author_id}/papers",
137
+ params={"fields": "citationCount", "limit": 1000}
138
+ )
139
+ papers = papers_resp.json().get("data", [])
140
+ citation_counts = [p.get("citationCount", 0) for p in papers]
141
+
142
+ return calculate_h_index(citation_counts)
143
+ ```
144
+
145
+ ### From OpenAlex
146
+
147
+ ```python
148
+ # OpenAlex provides h-index directly in author profiles
149
+ author_name = "Geoffrey Hinton"
150
+ response = requests.get(
151
+ "https://api.openalex.org/authors",
152
+ params={"filter": f"display_name.search:{author_name}", "per_page": 1}
153
+ )
154
+ author = response.json()["results"][0]
155
+ print(f"h-index: {author['summary_stats']['h_index']}")
156
+ print(f"i10-index: {author['summary_stats']['i10_index']}")
157
+ print(f"2-year mean citedness: {author['summary_stats']['2yr_mean_citedness']}")
158
+ ```
159
+
160
+ ## Responsible Use of Metrics
161
+
162
+ ### Known Limitations
163
+
164
+ 1. **Field dependence**: Average citation rates vary dramatically across disciplines. An h-index of 20 is excellent in mathematics but modest in biomedical sciences.
165
+ 2. **Career stage bias**: The h-index monotonically increases over time. Always compare within career stage (m-quotient helps).
166
+ 3. **Self-citation**: Some databases include self-citations in h-index calculation.
167
+ 4. **Database coverage**: Google Scholar, Scopus, and Web of Science yield different h-index values for the same author.
168
+ 5. **Gaming**: Metrics can be inflated through citation cartels, salami slicing, and excessive self-citation.
169
+
170
+ ### DORA Declaration
171
+
172
+ The San Francisco Declaration on Research Assessment (DORA) recommends:
173
+
174
+ - Do not use journal-based metrics (such as impact factor) as a surrogate measure of individual research quality.
175
+ - Assess research on its own merits rather than on the basis of the journal in which it is published.
176
+ - Use article-level metrics alongside qualitative indicators for assessment.
177
+
178
+ ### Best Practices for Reporting
179
+
180
+ - Always specify the source database and date when reporting h-index
181
+ - Report multiple metrics rather than relying on a single number
182
+ - Provide field-normalized indicators (FWCI, SNIP) when comparing across disciplines
183
+ - Include qualitative achievements alongside quantitative metrics in CVs and promotion cases
@@ -0,0 +1,188 @@
1
+ ---
2
+ name: journal-metrics-guide
3
+ description: "Understand journal impact factors, h5-index, CiteScore, and SJR"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "bar_chart"
7
+ category: "literature"
8
+ subcategory: "metadata"
9
+ keywords: ["impact factor", "journal metrics", "h5-index", "CiteScore", "SJR", "journal ranking"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # Journal Metrics Guide
14
+
15
+ A skill for understanding, comparing, and responsibly using journal-level metrics including Impact Factor, CiteScore, SJR, SNIP, h5-index, and Eigenfactor. Covers where to find each metric, how they are calculated, their limitations, and how to select appropriate journals for submission.
16
+
17
+ ## Overview of Major Metrics
18
+
19
+ ### Metric Comparison
20
+
21
+ | Metric | Provider | Formula Basis | Window | Free? |
22
+ |--------|----------|--------------|--------|-------|
23
+ | Impact Factor (JIF) | Clarivate (JCR) | Citations to articles / citable items | 2 years | No |
24
+ | 5-Year IF | Clarivate (JCR) | Same, extended window | 5 years | No |
25
+ | CiteScore | Scopus/Elsevier | Citations / documents | 4 years | Yes |
26
+ | SJR | Scopus/SCImago | Prestige-weighted citations | 3 years | Yes |
27
+ | SNIP | Scopus/CWTS | Citation potential normalized | 3 years | Yes |
28
+ | h5-index | Google Scholar | h-index of articles published in last 5 years | 5 years | Yes |
29
+ | Eigenfactor | Clarivate | Network citation influence | 5 years | Yes |
30
+
31
+ ## How Key Metrics Are Calculated
32
+
33
+ ### Journal Impact Factor
34
+
35
+ ```
36
+ JIF (2024) = Citations in 2024 to articles published in 2022-2023
37
+ -------------------------------------------------------
38
+ Number of citable items published in 2022-2023
39
+
40
+ Example:
41
+ Journal published 200 articles in 2022-2023
42
+ Those articles received 1,000 citations in 2024
43
+ JIF = 1000 / 200 = 5.0
44
+ ```
45
+
46
+ ### CiteScore
47
+
48
+ ```
49
+ CiteScore (2024) = Citations in 2021-2024 to items published in 2021-2024
50
+ -----------------------------------------------------------
51
+ Documents published in 2021-2024
52
+
53
+ Key difference from JIF:
54
+ - 4-year window (vs. 2 years)
55
+ - Includes ALL document types in denominator (not just "citable items")
56
+ - More transparent calculation
57
+ - Freely available at scopus.com/sources
58
+ ```
59
+
60
+ ### SJR (SCImago Journal Rank)
61
+
62
+ ```python
63
+ def explain_sjr() -> dict:
64
+ """
65
+ Explain the SCImago Journal Rank metric.
66
+ """
67
+ return {
68
+ "concept": (
69
+ "SJR weights citations by the prestige of the citing journal. "
70
+ "A citation from Nature counts more than a citation from a "
71
+ "low-prestige journal."
72
+ ),
73
+ "algorithm": "Based on Google PageRank applied to citation network",
74
+ "range": "Typically 0.1 to 20+; most journals 0.2-2.0",
75
+ "lookup": "scimagojr.com - free access",
76
+ "quartiles": {
77
+ "Q1": "Top 25% of journals in the subject category",
78
+ "Q2": "25th-50th percentile",
79
+ "Q3": "50th-75th percentile",
80
+ "Q4": "Bottom 25%"
81
+ }
82
+ }
83
+ ```
84
+
85
+ ## Finding Journal Metrics
86
+
87
+ ### Free Sources
88
+
89
+ ```
90
+ Google Scholar Metrics:
91
+ scholar.google.com/citations?view_op=top_venues
92
+ - h5-index and h5-median for thousands of venues
93
+ - Filtered by broad discipline or specific subcategory
94
+ - Updated annually
95
+
96
+ SCImago Journal Rank:
97
+ scimagojr.com
98
+ - SJR, h-index, total documents, total citations
99
+ - Country and subject area filtering
100
+ - Free journal comparison tool
101
+
102
+ Scopus Sources:
103
+ scopus.com/sources
104
+ - CiteScore, SJR, SNIP for all Scopus-indexed journals
105
+ - CiteScore Tracker (real-time estimate)
106
+ - Free with Scopus account
107
+ ```
108
+
109
+ ### Subscription Sources
110
+
111
+ ```
112
+ Journal Citation Reports (JCR):
113
+ Clarivate Analytics (institutional subscription)
114
+ - Impact Factor, 5-Year IF, Eigenfactor
115
+ - Journal quartile rankings by category
116
+ - Cited/citing journal networks
117
+
118
+ InCites:
119
+ Clarivate Analytics
120
+ - Normalized citation impact at journal and article level
121
+ - Benchmarking tools
122
+ ```
123
+
124
+ ## Responsible Use of Metrics
125
+
126
+ ### Limitations and Pitfalls
127
+
128
+ ```
129
+ 1. Field dependence:
130
+ - Life sciences JIF >> Computer science JIF
131
+ - Never compare JIF across disciplines
132
+
133
+ 2. Skewed distributions:
134
+ - A few highly cited papers inflate the average
135
+ - Median citations per article is more representative
136
+
137
+ 3. Gaming and manipulation:
138
+ - Excessive self-citation
139
+ - Citation cartels between journals
140
+ - Review articles inflating citation counts
141
+
142
+ 4. Not a measure of individual paper quality:
143
+ - A paper in a high-IF journal may receive zero citations
144
+ - A paper in a modest journal may become highly influential
145
+
146
+ 5. DORA declaration:
147
+ - Over 2,500 organizations signed the San Francisco
148
+ Declaration on Research Assessment (DORA)
149
+ - Recommends against using JIF as a proxy for
150
+ individual article quality in hiring, promotion,
151
+ or funding decisions
152
+ ```
153
+
154
+ ### Choosing a Journal for Submission
155
+
156
+ ```python
157
+ def evaluate_journal_fit(metrics: dict, paper_profile: dict) -> dict:
158
+ """
159
+ Evaluate journal suitability beyond just impact factor.
160
+
161
+ Args:
162
+ metrics: Journal metrics (JIF, CiteScore, acceptance rate, etc.)
163
+ paper_profile: Characteristics of your manuscript
164
+ """
165
+ criteria = {
166
+ "scope_match": "Does the journal publish papers on this topic?",
167
+ "audience": "Will the right readers see this paper here?",
168
+ "turnaround": "What is the average time from submission to decision?",
169
+ "open_access": "Does the journal offer OA options? What are the APCs?",
170
+ "acceptance_rate": "Is the acceptance rate realistic for this paper?",
171
+ "indexing": "Is the journal indexed in Scopus, WoS, PubMed?",
172
+ "prestige": "How is this journal perceived in your specific subfield?",
173
+ "ethics": "Is the journal a member of COPE? Does it follow best practices?"
174
+ }
175
+
176
+ return {
177
+ "recommendation": "Consider all factors, not just metrics",
178
+ "criteria": criteria,
179
+ "warning": (
180
+ "Avoid predatory journals. Check Beall's list and "
181
+ "verify the journal is indexed in recognized databases."
182
+ )
183
+ }
184
+ ```
185
+
186
+ ## Predatory Journal Detection
187
+
188
+ Watch for these warning signs: unsolicited email invitations to submit, very rapid peer review (days), lack of indexing in Scopus or Web of Science, vague editorial board, no clear ISSN, and APCs that seem unusually low. Use resources like "Think. Check. Submit." (thinkchecksubmit.org) to verify journal legitimacy.
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: opencitations-api
3
+ description: "Query open citation data and reference networks via OpenCitations"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🔍"
7
+ category: "literature"
8
+ subcategory: "metadata"
9
+ keywords: ["citation statistics", "citation tracking", "citation analysis", "bibliometrics", "citation network"]
10
+ source: "https://opencitations.net/index/api/v1"
11
+ ---
12
+
13
+ # OpenCitations API Guide
14
+
15
+ ## Overview
16
+
17
+ OpenCitations is an independent infrastructure organization dedicated to open scholarship and the publication of open bibliographic and citation data. Its main product, the OpenCitations Index of Crossref open DOI-to-DOI citations (COCI), contains over 1.6 billion citation relationships harvested from CrossRef metadata. This makes it the largest fully open citation dataset in the world.
18
+
19
+ The OpenCitations API allows researchers to programmatically access citation and reference data for any DOI in the index. This is valuable for citation network analysis, bibliometric research, impact assessment, and building literature discovery tools. Unlike proprietary citation databases (Web of Science, Scopus), OpenCitations data is fully open under a CC0 public domain dedication.
20
+
21
+ The API is free, requires no authentication, and has no published rate limits. It returns data in JSON or CSV format, making it easy to integrate into data analysis pipelines.
22
+
23
+ ## Authentication
24
+
25
+ No authentication required. The OpenCitations API is fully open and free. No API key, registration, or email is needed. There are no published rate limits, but users should implement reasonable request pacing for large-scale queries. For bulk data access, download the complete COCI dataset from https://opencitations.net/download.
26
+
27
+ ## Core Endpoints
28
+
29
+ ### Citations: Find Papers That Cite a DOI
30
+
31
+ - **URL**: `GET https://api.opencitations.net/index/v1/citations/{doi}`
32
+ - **Parameters**:
33
+ | Param | Type | Required | Description |
34
+ |-------|------|----------|-------------|
35
+ | doi | string | Yes | The DOI of the cited paper (URL path parameter) |
36
+ | format | string | No | Response format header: application/json or text/csv |
37
+ - **Example**:
38
+ ```bash
39
+ curl "https://api.opencitations.net/index/v1/citations/10.1038/nature12373"
40
+ ```
41
+ - **Response**: JSON array of citation objects, each containing:
42
+ - `oci`: OpenCitations Identifier for the citation link
43
+ - `citing`: DOI of the citing paper
44
+ - `cited`: DOI of the cited paper (the input DOI)
45
+ - `creation`: date the citation was first recorded
46
+ - `timespan`: time between publication of citing and cited papers
47
+ - `journal_sc`: whether citing and cited are in the same journal (self-citation indicator)
48
+ - `author_sc`: whether any author appears in both papers (author self-citation indicator)
49
+
50
+ ### References: Find Papers Cited by a DOI
51
+
52
+ - **URL**: `GET https://api.opencitations.net/index/v1/references/{doi}`
53
+ - **Parameters**:
54
+ | Param | Type | Required | Description |
55
+ |-------|------|----------|-------------|
56
+ | doi | string | Yes | The DOI of the paper whose references to retrieve |
57
+ - **Example**:
58
+ ```bash
59
+ curl "https://api.opencitations.net/index/v1/references/10.1038/nature12373"
60
+ ```
61
+ - **Response**: JSON array of reference objects with the same structure as citations, where `citing` is the input DOI and `cited` are the referenced papers.
62
+
63
+ ### Metadata: Retrieve Paper Metadata
64
+
65
+ - **URL**: `GET https://api.opencitations.net/index/v1/metadata/{doi}`
66
+ - **Parameters**:
67
+ | Param | Type | Required | Description |
68
+ |-------|------|----------|-------------|
69
+ | doi | string | Yes | The DOI to look up (supports multiple DOIs separated by __) |
70
+ - **Example**:
71
+ ```bash
72
+ curl "https://api.opencitations.net/index/v1/metadata/10.1038/nature12373"
73
+ ```
74
+ - **Response**: JSON array with metadata including `title`, `author`, `year`, `source_title` (journal), `volume`, `issue`, `page`, `doi`, `citation_count`, and `reference`.
75
+
76
+ ### Citation Count: Quick Count Lookup
77
+
78
+ - **URL**: `GET https://api.opencitations.net/index/v1/citation-count/{doi}`
79
+ - **Parameters**:
80
+ | Param | Type | Required | Description |
81
+ |-------|------|----------|-------------|
82
+ | doi | string | Yes | The DOI to check |
83
+ - **Example**:
84
+ ```bash
85
+ curl "https://api.opencitations.net/index/v1/citation-count/10.1038/nature12373"
86
+ ```
87
+ - **Response**: JSON with `count` field indicating the number of citations in the index.
88
+
89
+ ## Rate Limits
90
+
91
+ No published rate limits. OpenCitations does not enforce strict API quotas. The service runs on academic infrastructure, so users should be respectful. Best practices include pacing requests to 1-5 per second for sustained queries, caching results, and using the bulk dataset download for large-scale network analyses. The API may return HTTP 503 under heavy load.
92
+
93
+ ## Common Patterns
94
+
95
+ ### Build a Citation Network
96
+
97
+ Map the citation relationships around a seminal paper:
98
+
99
+ ```bash
100
+ # Get all papers citing the target paper
101
+ curl -s "https://api.opencitations.net/index/v1/citations/10.1145/3292500.3330672" | jq '.[].citing'
102
+
103
+ # Get all papers referenced by the target paper
104
+ curl -s "https://api.opencitations.net/index/v1/references/10.1145/3292500.3330672" | jq '.[].cited'
105
+ ```
106
+
107
+ ### Detect Self-Citations
108
+
109
+ Filter out self-citations when computing impact metrics:
110
+
111
+ ```bash
112
+ curl -s "https://api.opencitations.net/index/v1/citations/10.1038/nature12373" | jq '[.[] | select(.author_sc == "no")] | length'
113
+ ```
114
+
115
+ ### Compare Citation Counts Across Papers
116
+
117
+ Retrieve citation counts for multiple papers in a batch:
118
+
119
+ ```bash
120
+ # Multiple DOIs separated by double underscore
121
+ curl -s "https://api.opencitations.net/index/v1/metadata/10.1038/nature12373__10.1126/science.aaa8685__10.1016/j.cell.2015.05.002" | jq '.[] | {doi: .doi, title: .title, citations: .citation_count}'
122
+ ```
123
+
124
+ ## References
125
+
126
+ - Official documentation: https://opencitations.net/index/api/v1
127
+ - OpenCitations data model: https://opencitations.net/model
128
+ - COCI dataset download: https://opencitations.net/download
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: orcid-api
3
+ description: "Look up researcher profiles and academic identities via the ORCID registry"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🔍"
7
+ category: "literature"
8
+ subcategory: "metadata"
9
+ keywords: ["researcher ID", "ORCID", "academic identity", "academic metrics"]
10
+ source: "https://info.orcid.org/documentation/api-tutorial/"
11
+ requires:
12
+ env: ["ORCID_ACCESS_TOKEN"]
13
+ ---
14
+
15
+ # ORCID API Guide
16
+
17
+ ## Overview
18
+
19
+ ORCID (Open Researcher and Contributor ID) is a nonprofit organization that provides unique, persistent digital identifiers to researchers worldwide. With over 18 million registered researchers, ORCID has become the standard for disambiguating author identities across the scholarly ecosystem. Publishers, funders, and institutions use ORCID to reliably connect researchers with their works, grants, and affiliations.
20
+
21
+ The ORCID Public API provides read access to public data in ORCID records. This includes biographical information, employment history, education, works (publications), funding, and peer review activities. The API is essential for building research information systems, verifying researcher identities, and integrating with institutional repositories.
22
+
23
+ Authentication is required. The public API uses OAuth 2.0 with a client credentials grant, which provides a bearer token for read-only access to public data. Registration is free and tokens can be obtained programmatically.
24
+
25
+ ## Authentication
26
+
27
+ The ORCID Public API requires an OAuth 2.0 access token. Register for free API credentials at https://orcid.org/developer-tools and obtain a token:
28
+
29
+ ```bash
30
+ curl -X POST "https://orcid.org/oauth/token" \
31
+ -H "Accept: application/json" \
32
+ -d "client_id=YOUR_CLIENT_ID" \
33
+ -d "client_secret=YOUR_CLIENT_SECRET" \
34
+ -d "grant_type=client_credentials" \
35
+ -d "scope=/read-public"
36
+ ```
37
+
38
+ Include the token in all API requests:
39
+
40
+ ```
41
+ Authorization: Bearer YOUR_ACCESS_TOKEN
42
+ ```
43
+
44
+ Tokens are long-lived (typically 20 years) and can be reused across sessions.
45
+
46
+ ## Core Endpoints
47
+
48
+ ### Record: Retrieve Full ORCID Profile
49
+
50
+ - **URL**: `GET https://pub.orcid.org/v3.0/{orcid-id}/record`
51
+ - **Parameters**:
52
+ | Param | Type | Required | Description |
53
+ |-------|------|----------|-------------|
54
+ | orcid-id | string | Yes | The 16-digit ORCID iD (e.g., 0000-0002-1825-0097) |
55
+ | Accept | header | No | Response format: application/json, application/xml |
56
+ - **Example**:
57
+ ```bash
58
+ curl -H "Authorization: Bearer YOUR_TOKEN" \
59
+ -H "Accept: application/json" \
60
+ "https://pub.orcid.org/v3.0/0000-0002-1825-0097/record"
61
+ ```
62
+ - **Response**: JSON with complete ORCID record including `person` (name, biography, emails, addresses), `activities-summary` (works, funding, employment, education, peer reviews).
63
+
64
+ ### Works: Retrieve Publication List
65
+
66
+ - **URL**: `GET https://pub.orcid.org/v3.0/{orcid-id}/works`
67
+ - **Parameters**:
68
+ | Param | Type | Required | Description |
69
+ |-------|------|----------|-------------|
70
+ | orcid-id | string | Yes | The ORCID iD |
71
+ - **Example**:
72
+ ```bash
73
+ curl -H "Authorization: Bearer YOUR_TOKEN" \
74
+ -H "Accept: application/json" \
75
+ "https://pub.orcid.org/v3.0/0000-0002-1825-0097/works"
76
+ ```
77
+ - **Response**: JSON with `group` array of work summaries, each containing `title`, `external-ids` (DOI, PMID, etc.), `type`, `publication-date`, and `journal-title`.
78
+
79
+ ### Search: Find Researchers
80
+
81
+ - **URL**: `GET https://pub.orcid.org/v3.0/search`
82
+ - **Parameters**:
83
+ | Param | Type | Required | Description |
84
+ |-------|------|----------|-------------|
85
+ | q | string | Yes | Lucene query syntax (e.g., family-name:Einstein, affiliation-org-name:MIT) |
86
+ | start | integer | No | Pagination offset (default: 0) |
87
+ | rows | integer | No | Results per page (default: 100, max: 200) |
88
+ - **Example**:
89
+ ```bash
90
+ curl -H "Authorization: Bearer YOUR_TOKEN" \
91
+ -H "Accept: application/json" \
92
+ "https://pub.orcid.org/v3.0/search?q=family-name:Hinton+AND+affiliation-org-name:Toronto&rows=10"
93
+ ```
94
+ - **Response**: JSON with `result` array containing `orcid-identifier` (ORCID iD and URI) for each matching researcher.
95
+
96
+ ## Rate Limits
97
+
98
+ The public API allows 24 requests per second and 40 burst requests. The member API has higher limits. If limits are exceeded, the API returns HTTP 503 with a `Retry-After` header. For bulk data access, ORCID provides annual data dumps and a Lambda file for incremental updates. Rate limits apply per access token.
99
+
100
+ ## Common Patterns
101
+
102
+ ### Verify Researcher Identity
103
+
104
+ Confirm that a researcher's ORCID is valid and retrieve their public profile:
105
+
106
+ ```bash
107
+ curl -H "Authorization: Bearer YOUR_TOKEN" \
108
+ -H "Accept: application/json" \
109
+ "https://pub.orcid.org/v3.0/0000-0001-5109-3700/person"
110
+ ```
111
+
112
+ ### Build a Complete Publication List
113
+
114
+ Retrieve all works associated with an ORCID profile and extract DOIs:
115
+
116
+ ```bash
117
+ curl -H "Authorization: Bearer YOUR_TOKEN" \
118
+ -H "Accept: application/json" \
119
+ "https://pub.orcid.org/v3.0/0000-0002-1825-0097/works" | jq '.group[].work-summary[0] | {title: .title.title.value, doi: (.["external-ids"]["external-id"][] | select(.["external-id-type"] == "doi") | .["external-id-value"])}'
120
+ ```
121
+
122
+ ### Find Researchers at an Institution
123
+
124
+ Search for ORCID profiles affiliated with a specific organization:
125
+
126
+ ```bash
127
+ curl -H "Authorization: Bearer YOUR_TOKEN" \
128
+ -H "Accept: application/json" \
129
+ "https://pub.orcid.org/v3.0/search?q=affiliation-org-name:Stanford+AND+current-institution-affiliation-name:Stanford&rows=50"
130
+ ```
131
+
132
+ ## References
133
+
134
+ - Official documentation: https://info.orcid.org/documentation/api-tutorial/
135
+ - API reference: https://pub.orcid.org/v3.0/
136
+ - ORCID integration guide: https://info.orcid.org/documentation/integration-guide/