@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,148 @@
1
+ ---
2
+ name: citation-chaining-guide
3
+ description: "Forward and backward citation chaining techniques for literature search"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "chain"
7
+ category: "literature"
8
+ subcategory: "search"
9
+ keywords: ["citation tracking", "advanced search", "search strategy", "literature search"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # Citation Chaining Guide
14
+
15
+ Master forward and backward citation chaining to systematically discover relevant literature by following the threads of scholarly communication.
16
+
17
+ ## What Is Citation Chaining?
18
+
19
+ Citation chaining (also called citation tracking, pearl growing, or snowball searching) exploits the connections between papers through their references and citations. Starting from one or more "seed" papers, you trace connections in two directions:
20
+
21
+ - **Backward chaining**: Examine the reference list of a paper to find older, foundational works it builds upon.
22
+ - **Forward chaining**: Find newer papers that have cited the seed paper, discovering subsequent developments.
23
+
24
+ This approach is especially powerful when keyword searches fail (e.g., when terminology varies across subfields or when concepts predate standardized vocabulary).
25
+
26
+ ## Step-by-Step Workflow
27
+
28
+ ### Step 1: Identify Seed Papers
29
+
30
+ Select 3-5 highly relevant papers that are central to your research question. Good seed papers are:
31
+
32
+ - Frequently cited review articles or seminal original research
33
+ - Papers whose methodology or framework aligns closely with your work
34
+ - Recent papers in top venues for your field
35
+
36
+ ### Step 2: Backward Chaining (Reference Mining)
37
+
38
+ Examine the reference list of each seed paper and identify which cited works are relevant.
39
+
40
+ ```python
41
+ import requests
42
+
43
+ def get_references(paper_id, limit=100):
44
+ """Get all references of a paper via Semantic Scholar."""
45
+ url = f"https://api.semanticscholar.org/graph/v1/paper/{paper_id}/references"
46
+ response = requests.get(url, params={
47
+ "fields": "title,year,citationCount,externalIds,abstract",
48
+ "limit": limit
49
+ })
50
+ refs = response.json().get("data", [])
51
+ return [r["citedPaper"] for r in refs if r["citedPaper"].get("title")]
52
+
53
+ # Get references of a seed paper
54
+ seed_doi = "DOI:10.1038/s41586-021-03819-2"
55
+ references = get_references(seed_doi)
56
+
57
+ # Sort by citation count to find the most influential foundations
58
+ references.sort(key=lambda p: p.get("citationCount", 0), reverse=True)
59
+ for ref in references[:15]:
60
+ print(f"[{ref.get('year', '?')}] {ref['title']} ({ref.get('citationCount', 0)} citations)")
61
+ ```
62
+
63
+ ### Step 3: Forward Chaining (Citation Tracking)
64
+
65
+ Find all papers that have cited your seed paper.
66
+
67
+ ```python
68
+ def get_citations(paper_id, limit=200):
69
+ """Get papers citing a given paper via Semantic Scholar."""
70
+ url = f"https://api.semanticscholar.org/graph/v1/paper/{paper_id}/citations"
71
+ all_citations = []
72
+ offset = 0
73
+ while offset < limit:
74
+ response = requests.get(url, params={
75
+ "fields": "title,year,citationCount,externalIds,abstract",
76
+ "limit": min(100, limit - offset),
77
+ "offset": offset
78
+ })
79
+ data = response.json().get("data", [])
80
+ if not data:
81
+ break
82
+ all_citations.extend([c["citingPaper"] for c in data if c["citingPaper"].get("title")])
83
+ offset += len(data)
84
+ return all_citations
85
+
86
+ citations = get_citations(seed_doi)
87
+ # Filter for recent, well-cited papers
88
+ recent_impactful = [c for c in citations if c.get("year", 0) >= 2022 and c.get("citationCount", 0) >= 5]
89
+ recent_impactful.sort(key=lambda p: p.get("citationCount", 0), reverse=True)
90
+ ```
91
+
92
+ ### Step 4: Co-Citation and Bibliographic Coupling
93
+
94
+ Two advanced techniques extend basic citation chaining:
95
+
96
+ | Technique | Definition | What It Reveals |
97
+ |-----------|-----------|-----------------|
98
+ | **Co-citation** | Two papers are frequently cited together by the same set of subsequent papers | Conceptual proximity: these works form a shared intellectual foundation |
99
+ | **Bibliographic coupling** | Two papers share many of the same references | Methodological or topical similarity at the time of writing |
100
+
101
+ ```python
102
+ def find_co_cited_papers(paper_ids, min_co_citation_count=3):
103
+ """Find papers frequently co-cited with the given papers."""
104
+ from collections import Counter
105
+ reference_counts = Counter()
106
+
107
+ for pid in paper_ids:
108
+ refs = get_references(pid)
109
+ for ref in refs:
110
+ ref_id = ref.get("paperId")
111
+ if ref_id and ref_id not in paper_ids:
112
+ reference_counts[ref_id] += 1
113
+
114
+ # Papers cited by multiple seeds are co-cited candidates
115
+ co_cited = [(pid, count) for pid, count in reference_counts.items()
116
+ if count >= min_co_citation_count]
117
+ co_cited.sort(key=lambda x: x[1], reverse=True)
118
+ return co_cited
119
+ ```
120
+
121
+ ### Step 5: Iterative Expansion
122
+
123
+ Repeat the process with the most relevant papers discovered in each round:
124
+
125
+ 1. **Round 1**: Start with 3-5 seed papers
126
+ 2. **Round 2**: Run backward + forward chaining on seeds, identify 10-15 new relevant papers
127
+ 3. **Round 3**: Run chaining on the new papers from Round 2
128
+ 4. **Saturation**: Stop when new rounds yield diminishing returns (i.e., the same papers keep appearing)
129
+
130
+ ## Tools for Citation Chaining
131
+
132
+ | Tool | Method | Cost |
133
+ |------|--------|------|
134
+ | Google Scholar "Cited by" | Forward chaining | Free |
135
+ | Web of Science "Cited References" / "Times Cited" | Both directions | Subscription |
136
+ | Scopus "References" / "Cited by" | Both directions | Subscription |
137
+ | Semantic Scholar API | Programmatic, both directions | Free |
138
+ | Connected Papers (connectedpapers.com) | Visual co-citation graph | Free (limited) |
139
+ | Litmaps (litmaps.com) | Visual citation network | Free tier |
140
+ | CoCites (cocites.com) | Co-citation analysis | Free |
141
+ | Citation Gecko | Seed-based discovery | Free |
142
+
143
+ ## Common Pitfalls
144
+
145
+ - **Citation bias**: Highly cited papers are not always the best or most relevant. Pay attention to less-cited but methodologically sound papers.
146
+ - **Recency bias**: Forward chaining favors recent papers with fewer citations. Allow time for citation accumulation or use Mendeley readership as a proxy.
147
+ - **Field boundaries**: Citation chains tend to stay within disciplinary silos. Combine with keyword searches in adjacent-field databases to break out.
148
+ - **Incomplete coverage**: No single database indexes all citations. Cross-check with at least two sources (e.g., Semantic Scholar + Google Scholar).
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: database-comparison-guide
3
+ description: "Compare major academic databases and when to use each for research"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "db"
7
+ category: "literature"
8
+ subcategory: "search"
9
+ keywords: ["academic database search", "scholarly database", "search strategy", "field-specific search"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # Database Comparison Guide
14
+
15
+ A comprehensive reference for choosing and querying the right academic database for your research domain, including coverage details, advanced operators, and cross-database strategies.
16
+
17
+ ## Overview of Major Academic Databases
18
+
19
+ | Database | Coverage | Disciplines | Access Model | Unique Strength |
20
+ |----------|----------|-------------|--------------|-----------------|
21
+ | Web of Science | 1900-present, 21,000+ journals | Multidisciplinary | Subscription | Citation indexing, Journal Impact Factor |
22
+ | Scopus | 1970-present, 27,000+ journals | Multidisciplinary | Subscription | Largest abstract/citation DB, CiteScore |
23
+ | PubMed | 1946-present, 35M+ records | Biomedical, life sciences | Free | MeSH controlled vocabulary, clinical filters |
24
+ | IEEE Xplore | 1872-present, 6M+ docs | Engineering, CS | Subscription | Conference proceedings, standards |
25
+ | Google Scholar | Broad, undisclosed | All fields | Free | Widest coverage, full-text indexing |
26
+ | JSTOR | Historical archives | Humanities, social sciences | Subscription | Historical journal runs, primary sources |
27
+ | arXiv | 1991-present, 2.4M+ papers | Physics, CS, Math, Bio | Free | Preprints, no peer-review delay |
28
+ | SSRN | 1994-present | Social sciences, law | Free | Working papers, early-stage research |
29
+
30
+ ## Field-Specific Database Selection
31
+
32
+ ### STEM Fields
33
+
34
+ For physics, computer science, and mathematics, combine arXiv preprints with Web of Science indexed journals:
35
+
36
+ ```
37
+ # arXiv API query for recent ML papers
38
+ curl "http://export.arxiv.org/api/query?search_query=cat:cs.LG+AND+ti:transformer&start=0&max_results=25&sortBy=submittedDate&sortOrder=descending"
39
+ ```
40
+
41
+ For biomedical research, PubMed with MeSH terms provides the most precise retrieval:
42
+
43
+ ```
44
+ # PubMed E-utilities search with MeSH
45
+ curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=%22machine+learning%22[MeSH]+AND+%22drug+discovery%22[MeSH]&retmax=50&sort=date"
46
+ ```
47
+
48
+ ### Social Sciences and Humanities
49
+
50
+ - **Economics/Business**: Scopus + SSRN + RePEc (for working papers)
51
+ - **Psychology**: PsycINFO (APA) + PubMed
52
+ - **Law**: Westlaw + SSRN + HeinOnline
53
+ - **History/Literature**: JSTOR + Project MUSE + MLA International Bibliography
54
+
55
+ ## Advanced Search Operators by Database
56
+
57
+ ### Web of Science
58
+
59
+ ```
60
+ TS=("deep learning" AND "drug discovery") AND PY=(2020-2025)
61
+ # TS = Topic (title + abstract + keywords)
62
+ # PY = Publication Year
63
+ # Use NEAR/x for proximity: TS=("climate" NEAR/3 "adaptation")
64
+ ```
65
+
66
+ ### Scopus
67
+
68
+ ```
69
+ TITLE-ABS-KEY("deep learning" AND "drug discovery") AND PUBYEAR > 2019
70
+ # Additional operators:
71
+ # AUTHLASTNAME(smith) AND AUTHFIRST(j*)
72
+ # AFFIL("MIT" OR "Massachusetts Institute of Technology")
73
+ # REF("seminal paper title")
74
+ ```
75
+
76
+ ### PubMed
77
+
78
+ ```
79
+ "deep learning"[Title/Abstract] AND "drug discovery"[Title/Abstract]
80
+ AND ("2020/01/01"[Date - Publication] : "2025/12/31"[Date - Publication])
81
+ # Use filters: Clinical Trial[pt], Review[pt], Free Full Text[Filter]
82
+ ```
83
+
84
+ ## Cross-Database Search Strategy
85
+
86
+ A robust literature search should query multiple databases to maximize recall:
87
+
88
+ 1. **Define your research question** using PICO (Population, Intervention, Comparison, Outcome) or PCC (Population, Concept, Context) frameworks.
89
+ 2. **Identify controlled vocabulary** for each database (MeSH for PubMed, Emtree for Embase, Thesaurus for PsycINFO).
90
+ 3. **Build search strings** combining controlled vocabulary with free-text synonyms using Boolean operators.
91
+ 4. **Execute searches** across at least 2-3 databases relevant to your field.
92
+ 5. **Deduplicate results** using reference managers (Zotero, EndNote) or tools like Covidence.
93
+ 6. **Document your search** with database, date, exact query string, and result count for reproducibility.
94
+
95
+ ## Practical Tips
96
+
97
+ - **Scopus vs. Web of Science**: Scopus has broader coverage (especially post-2000 and non-English journals); WoS has deeper historical archives and the Journal Impact Factor.
98
+ - **Google Scholar** finds the most results but lacks advanced filtering. Use it for snowball searches and finding grey literature, not as your primary systematic search tool.
99
+ - **API access**: PubMed (E-utilities), Semantic Scholar, OpenAlex, and Crossref all offer free APIs for programmatic searching. Scopus and WoS require institutional API keys.
100
+ - **Alert services**: Set up saved search alerts on PubMed, Scopus, and Google Scholar to stay current in fast-moving fields.
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: europe-pmc-api
3
+ description: "Search biomedical and life sciences literature via Europe PMC"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🔍"
7
+ category: "literature"
8
+ subcategory: "search"
9
+ keywords: ["academic database search", "literature search", "citation tracking", "field-specific search"]
10
+ source: "https://europepmc.org/RestfulWebService"
11
+ ---
12
+
13
+ # Europe PMC API Guide
14
+
15
+ ## Overview
16
+
17
+ Europe PMC (PubMed Central) is a free, comprehensive biomedical literature database maintained by the European Bioinformatics Institute (EMBL-EBI) as part of a network of 32 European funders. It provides access to over 40 million biomedical and life sciences publications, including abstracts from PubMed/MEDLINE, full-text articles from PubMed Central, patents from the European Patent Office, and preprints from biomedical preprint servers.
18
+
19
+ Europe PMC extends beyond PubMed by integrating additional European content, preprints, and rich text-mined annotations. It provides links to biological databases (UniProt, Protein Data Bank, etc.), grant information from funders, and citation data. The annotation features include gene/protein mentions, disease names, organism identifiers, and chemical entities extracted via machine learning.
20
+
21
+ The API is free, requires no authentication, and supports 10 requests per second. It returns JSON or XML and offers advanced query syntax with field-specific searches, boolean operators, and date range filters.
22
+
23
+ ## Authentication
24
+
25
+ No authentication required. The Europe PMC API is fully open. No API key, registration, or email is needed. The API enforces a rate limit of 10 requests per second per IP address. Including a descriptive User-Agent header is considered good practice.
26
+
27
+ ## Core Endpoints
28
+
29
+ ### Search: Full-Text Literature Search
30
+
31
+ - **URL**: `GET https://www.ebi.ac.uk/europepmc/webservices/rest/search`
32
+ - **Parameters**:
33
+ | Param | Type | Required | Description |
34
+ |-------|------|----------|-------------|
35
+ | query | string | Yes | Search query (supports field codes: TITLE, AUTH, JOURNAL, DOI, etc.) |
36
+ | format | string | No | Response format: json (default) or xml |
37
+ | resultType | string | No | lite (default) or core (includes full abstract and metadata) |
38
+ | pageSize | integer | No | Results per page (default: 25, max: 1000) |
39
+ | cursorMark | string | No | Cursor for deep pagination (use nextCursorMark from response) |
40
+ | sort | string | No | Sort field: RELEVANCE, CITED, DATE (default: RELEVANCE) |
41
+ | synonym | boolean | No | Enable MeSH synonym expansion (default: true) |
42
+ - **Example**:
43
+ ```bash
44
+ curl "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=CRISPR+AND+cancer&format=json&resultType=core&pageSize=10&sort=CITED+desc"
45
+ ```
46
+ - **Response**: JSON with `hitCount`, `nextCursorMark`, and `resultList.result` array. Each result contains `id`, `source` (MED, PMC, PPR, PAT), `pmid`, `pmcid`, `doi`, `title`, `authorString`, `journalTitle`, `pubYear`, `abstractText`, `citedByCount`, `isOpenAccess`, and `fullTextUrlList`.
47
+
48
+ ### Citations: Papers Citing a Publication
49
+
50
+ - **URL**: `GET https://www.ebi.ac.uk/europepmc/webservices/rest/{source}/{id}/citations`
51
+ - **Parameters**:
52
+ | Param | Type | Required | Description |
53
+ |-------|------|----------|-------------|
54
+ | source | string | Yes | Source database: MED (PubMed), PMC, PPR (preprint), PAT (patent) |
55
+ | id | string | Yes | The publication ID (PMID, PMCID, etc.) |
56
+ | format | string | No | json or xml |
57
+ | page | integer | No | Page number (default: 1) |
58
+ | pageSize | integer | No | Results per page (default: 25) |
59
+ - **Example**:
60
+ ```bash
61
+ curl "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/citations?format=json&pageSize=10"
62
+ ```
63
+ - **Response**: JSON with `hitCount` and `citationList.citation` array containing citing publication metadata.
64
+
65
+ ### References: Papers Cited by a Publication
66
+
67
+ - **URL**: `GET https://www.ebi.ac.uk/europepmc/webservices/rest/{source}/{id}/references`
68
+ - **Parameters**:
69
+ | Param | Type | Required | Description |
70
+ |-------|------|----------|-------------|
71
+ | source | string | Yes | Source database |
72
+ | id | string | Yes | The publication ID |
73
+ | format | string | No | json or xml |
74
+ | page | integer | No | Page number |
75
+ | pageSize | integer | No | Results per page |
76
+ - **Example**:
77
+ ```bash
78
+ curl "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/references?format=json&pageSize=50"
79
+ ```
80
+ - **Response**: JSON with `referenceList.reference` array containing reference metadata.
81
+
82
+ ## Rate Limits
83
+
84
+ The API enforces a rate limit of 10 requests per second per IP address. There is no daily request cap. Exceeding the rate limit returns HTTP 429. For bulk data access, Europe PMC provides OAI-PMH harvesting, FTP bulk downloads, and SPARQL endpoint access. Cursor-based pagination (using `cursorMark`) is required for retrieving beyond the first 10,000 results.
85
+
86
+ ## Common Patterns
87
+
88
+ ### Systematic Review Search
89
+
90
+ Perform a structured biomedical search with MeSH terms and date filters:
91
+
92
+ ```bash
93
+ curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=(TITLE:immunotherapy+AND+TITLE:melanoma)+AND+(PUB_YEAR:[2022+TO+2026])&format=json&resultType=core&pageSize=25&sort=CITED+desc" | jq '.resultList.result[] | {title: .title, journal: .journalTitle, year: .pubYear, citations: .citedByCount, oa: .isOpenAccess}'
94
+ ```
95
+
96
+ ### Find Preprints Related to a Topic
97
+
98
+ Search specifically in the preprint sources indexed by Europe PMC:
99
+
100
+ ```bash
101
+ curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=(SRC:PPR)+AND+large+language+models+AND+biology&format=json&pageSize=10" | jq '.resultList.result[] | {title: .title, source: .source, year: .pubYear, doi: .doi}'
102
+ ```
103
+
104
+ ### Build a Citation Map for a Key Paper
105
+
106
+ Retrieve both citations and references to map a paper's scholarly context:
107
+
108
+ ```bash
109
+ # Get papers that cite the target
110
+ curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/citations?format=json&pageSize=50" | jq '.citationList.citation | length'
111
+
112
+ # Get papers referenced by the target
113
+ curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/references?format=json&pageSize=100" | jq '.referenceList.reference | length'
114
+ ```
115
+
116
+ ## References
117
+
118
+ - Official documentation: https://europepmc.org/RestfulWebService
119
+ - Europe PMC search syntax: https://europepmc.org/searchsyntax
120
+ - Europe PMC annotations API: https://europepmc.org/AnnotationsApi
@@ -0,0 +1,182 @@
1
+ ---
2
+ name: google-scholar-guide
3
+ description: "Advanced Google Scholar search techniques for comprehensive literature discovery"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "mag_right"
7
+ category: "literature"
8
+ subcategory: "search"
9
+ keywords: ["academic database search", "search strategy", "Boolean search", "advanced search", "Google Scholar"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Google Scholar Guide
14
+
15
+ A skill for leveraging Google Scholar's full capabilities for academic literature search. Covers advanced search operators, citation tracking, alert configuration, and strategies for systematic and comprehensive retrieval.
16
+
17
+ ## Advanced Search Operators
18
+
19
+ ### Core Operators
20
+
21
+ | Operator | Syntax | Example | Effect |
22
+ |----------|--------|---------|--------|
23
+ | Exact phrase | `"..."` | `"machine learning"` | Matches exact phrase |
24
+ | OR | `OR` | `"deep learning" OR "neural network"` | Matches either term |
25
+ | Exclude | `-` | `transformer -electrical` | Excludes term |
26
+ | Author | `author:` | `author:"Y LeCun"` | Filter by author |
27
+ | Source | `source:` | `source:"Nature"` | Filter by journal |
28
+ | Title only | `intitle:` | `intitle:"attention mechanism"` | Search in title only |
29
+ | Date range | Custom range | Via Advanced Search UI | Limit publication years |
30
+ | File type | `filetype:` | `filetype:pdf` | Specific file formats |
31
+
32
+ ### Constructing Effective Queries
33
+
34
+ ```python
35
+ def build_scholar_query(concepts: list[list[str]], exclude: list[str] = None,
36
+ title_only: bool = False, author: str = None,
37
+ source: str = None) -> str:
38
+ """
39
+ Build a structured Google Scholar query from concept groups.
40
+
41
+ Args:
42
+ concepts: List of concept groups, each a list of synonyms
43
+ Groups are ANDed together, synonyms are ORed
44
+ exclude: Terms to exclude
45
+ title_only: Search in title only
46
+ author: Author name filter
47
+ source: Journal/source filter
48
+ Returns:
49
+ Formatted Google Scholar query string
50
+ """
51
+ # Build concept groups with OR
52
+ groups = []
53
+ for concept_group in concepts:
54
+ if len(concept_group) == 1:
55
+ groups.append(f'"{concept_group[0]}"')
56
+ else:
57
+ terms = ' OR '.join(f'"{term}"' for term in concept_group)
58
+ groups.append(f'({terms})')
59
+
60
+ # AND the concept groups together
61
+ query = ' '.join(groups)
62
+
63
+ # Apply title restriction
64
+ if title_only:
65
+ query = f'intitle:{query}'
66
+
67
+ # Add exclusions
68
+ if exclude:
69
+ for term in exclude:
70
+ query += f' -{term}'
71
+
72
+ # Add author filter
73
+ if author:
74
+ query += f' author:"{author}"'
75
+
76
+ # Add source filter
77
+ if source:
78
+ query += f' source:"{source}"'
79
+
80
+ return query
81
+
82
+ # Example: find papers on transfer learning for medical imaging
83
+ query = build_scholar_query(
84
+ concepts=[
85
+ ["transfer learning", "domain adaptation", "fine-tuning"],
86
+ ["medical imaging", "radiology", "pathology images"],
87
+ ["deep learning", "convolutional neural network"]
88
+ ],
89
+ exclude=["survey", "review"],
90
+ title_only=False
91
+ )
92
+ print(query)
93
+ # Output: ("transfer learning" OR "domain adaptation" OR "fine-tuning")
94
+ # ("medical imaging" OR "radiology" OR "pathology images")
95
+ # ("deep learning" OR "convolutional neural network") -survey -review
96
+ ```
97
+
98
+ ## Citation Tracking Strategies
99
+
100
+ ### Forward and Backward Citation Chaining
101
+
102
+ ```
103
+ Seed Paper (a highly relevant paper you already know)
104
+ |
105
+ +--> "Cited by" link -> Forward citation tracking
106
+ | (who cited this paper? newer related work)
107
+ |
108
+ +--> Reference list -> Backward citation tracking
109
+ (what did this paper cite? foundational work)
110
+
111
+ Repeat for each highly relevant paper found.
112
+ Stop when you reach saturation (no new relevant papers appearing).
113
+ ```
114
+
115
+ ### Identifying Key Papers
116
+
117
+ Use citation metrics strategically:
118
+
119
+ ```python
120
+ def identify_key_papers(search_results: list[dict],
121
+ min_citations: int = 10) -> list[dict]:
122
+ """
123
+ Identify key papers from search results using citation analysis.
124
+
125
+ Args:
126
+ search_results: List of papers with 'title', 'year', 'citations'
127
+ min_citations: Minimum citation threshold
128
+ """
129
+ import datetime
130
+ current_year = datetime.datetime.now().year
131
+
132
+ for paper in search_results:
133
+ age = max(1, current_year - paper['year'])
134
+ paper['citations_per_year'] = paper['citations'] / age
135
+
136
+ # Classify influence
137
+ if paper['citations_per_year'] > 50:
138
+ paper['influence'] = 'landmark'
139
+ elif paper['citations_per_year'] > 20:
140
+ paper['influence'] = 'highly_influential'
141
+ elif paper['citations_per_year'] > 5:
142
+ paper['influence'] = 'influential'
143
+ else:
144
+ paper['influence'] = 'standard'
145
+
146
+ # Filter and sort
147
+ filtered = [p for p in search_results if p['citations'] >= min_citations]
148
+ return sorted(filtered, key=lambda x: x['citations_per_year'], reverse=True)
149
+ ```
150
+
151
+ ## Google Scholar Alerts
152
+
153
+ Set up alerts to stay current:
154
+
155
+ 1. Go to Google Scholar and run your search query
156
+ 2. Click "Create alert" in the left sidebar
157
+ 3. Configure email frequency (as-it-happens or weekly digest)
158
+ 4. Use the same carefully constructed query from your search strategy
159
+
160
+ Best practices for alerts:
161
+ - Create separate alerts for each major concept group
162
+ - Use narrow, specific queries to reduce noise (10-20 results per alert is ideal)
163
+ - Review and refine alert queries quarterly
164
+
165
+ ## Google Scholar Profiles
166
+
167
+ ### Leveraging Author Profiles
168
+
169
+ - Follow prolific researchers in your field to get notifications of their new publications
170
+ - Use the "Related articles" feature on author profile pages
171
+ - Check co-author networks to discover related research groups
172
+ - The h-index and i10-index on profiles can help gauge researcher impact, but use with caution across different fields
173
+
174
+ ## Limitations and Complementary Databases
175
+
176
+ Google Scholar has known limitations:
177
+ - No controlled vocabulary or MeSH terms (unlike PubMed)
178
+ - Cannot filter by study design or methodology
179
+ - Includes non-peer-reviewed sources (preprints, theses, slides)
180
+ - Citation counts may include self-citations and non-scholarly citations
181
+
182
+ For systematic reviews, always supplement Google Scholar with structured databases: PubMed/MEDLINE, Web of Science, Scopus, and domain-specific databases (e.g., IEEE Xplore, PsycINFO, EconLit). Document the number of results from each database for your PRISMA flow diagram.