@wentorai/research-plugins 1.3.2 → 1.4.2

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 (266) hide show
  1. package/README.md +32 -56
  2. package/curated/analysis/README.md +1 -13
  3. package/curated/domains/README.md +1 -5
  4. package/curated/literature/README.md +3 -12
  5. package/curated/research/README.md +1 -18
  6. package/curated/tools/README.md +1 -12
  7. package/curated/writing/README.md +2 -6
  8. package/index.ts +88 -5
  9. package/openclaw.plugin.json +3 -12
  10. package/package.json +3 -5
  11. package/skills/analysis/statistics/SKILL.md +1 -1
  12. package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +1 -1
  13. package/skills/domains/ai-ml/SKILL.md +3 -2
  14. package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +1 -0
  15. package/skills/domains/ai-ml/huggingface-api/SKILL.md +251 -0
  16. package/skills/domains/biomedical/SKILL.md +9 -2
  17. package/skills/domains/biomedical/alphafold-api/SKILL.md +227 -0
  18. package/skills/domains/biomedical/biothings-api/SKILL.md +296 -0
  19. package/skills/domains/biomedical/clinicaltrials-api-v2/SKILL.md +216 -0
  20. package/skills/domains/biomedical/enrichr-api/SKILL.md +264 -0
  21. package/skills/domains/biomedical/ensembl-rest-api/SKILL.md +204 -0
  22. package/skills/domains/biomedical/medical-data-api/SKILL.md +197 -0
  23. package/skills/domains/biomedical/pdb-structure-api/SKILL.md +219 -0
  24. package/skills/domains/business/SKILL.md +2 -3
  25. package/skills/domains/chemistry/SKILL.md +3 -2
  26. package/skills/domains/chemistry/catalysis-hub-api/SKILL.md +171 -0
  27. package/skills/domains/education/SKILL.md +2 -3
  28. package/skills/domains/law/SKILL.md +3 -2
  29. package/skills/domains/law/uk-legislation-api/SKILL.md +179 -0
  30. package/skills/literature/discovery/SKILL.md +1 -1
  31. package/skills/literature/discovery/citation-alert-guide/SKILL.md +2 -2
  32. package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +2 -2
  33. package/skills/literature/discovery/literature-mapping-guide/SKILL.md +1 -1
  34. package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +8 -14
  35. package/skills/literature/discovery/rss-paper-feeds/SKILL.md +20 -14
  36. package/skills/literature/discovery/semantic-paper-radar/SKILL.md +8 -8
  37. package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +103 -86
  38. package/skills/literature/fulltext/SKILL.md +3 -2
  39. package/skills/literature/fulltext/arxiv-latex-source/SKILL.md +195 -0
  40. package/skills/literature/fulltext/open-access-guide/SKILL.md +1 -1
  41. package/skills/literature/fulltext/open-access-mining-guide/SKILL.md +5 -5
  42. package/skills/literature/metadata/citation-network-guide/SKILL.md +3 -3
  43. package/skills/literature/metadata/h-index-guide/SKILL.md +0 -27
  44. package/skills/literature/search/SKILL.md +3 -4
  45. package/skills/literature/search/citation-chaining-guide/SKILL.md +42 -32
  46. package/skills/literature/search/database-comparison-guide/SKILL.md +1 -1
  47. package/skills/literature/search/semantic-scholar-api/SKILL.md +56 -53
  48. package/skills/research/automation/SKILL.md +2 -3
  49. package/skills/research/automation/datagen-research-guide/SKILL.md +1 -0
  50. package/skills/research/automation/mle-agent-guide/SKILL.md +1 -0
  51. package/skills/research/automation/paper-to-agent-guide/SKILL.md +2 -1
  52. package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +1 -0
  53. package/skills/research/deep-research/in-depth-research-guide/SKILL.md +1 -1
  54. package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +3 -3
  55. package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +1 -1
  56. package/skills/research/deep-research/local-deep-research-guide/SKILL.md +6 -6
  57. package/skills/research/deep-research/open-researcher-guide/SKILL.md +3 -3
  58. package/skills/research/deep-research/tongyi-deep-research-guide/SKILL.md +4 -4
  59. package/skills/research/methodology/SKILL.md +1 -1
  60. package/skills/research/methodology/claude-scientific-guide/SKILL.md +1 -0
  61. package/skills/research/methodology/grad-school-guide/SKILL.md +1 -1
  62. package/skills/research/methodology/qualitative-research-guide/SKILL.md +1 -1
  63. package/skills/research/paper-review/SKILL.md +1 -1
  64. package/skills/research/paper-review/automated-review-guide/SKILL.md +1 -1
  65. package/skills/research/paper-review/peer-review-guide/SKILL.md +1 -1
  66. package/skills/tools/diagram/excalidraw-diagram-guide/SKILL.md +1 -1
  67. package/skills/tools/diagram/mermaid-architect-guide/SKILL.md +1 -1
  68. package/skills/tools/diagram/plantuml-guide/SKILL.md +1 -1
  69. package/skills/tools/document/grobid-pdf-parsing/SKILL.md +1 -1
  70. package/skills/tools/document/paper-parse-guide/SKILL.md +2 -2
  71. package/skills/tools/knowledge-graph/SKILL.md +2 -3
  72. package/skills/tools/knowledge-graph/citation-network-builder/SKILL.md +5 -5
  73. package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +1 -1
  74. package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +1 -0
  75. package/skills/tools/scraping/academic-web-scraping/SKILL.md +1 -2
  76. package/skills/tools/scraping/google-scholar-scraper/SKILL.md +7 -7
  77. package/skills/writing/citation/SKILL.md +1 -1
  78. package/skills/writing/citation/academic-citation-manager/SKILL.md +20 -17
  79. package/skills/writing/citation/citation-assistant-skill/SKILL.md +72 -58
  80. package/skills/writing/citation/obsidian-citation-guide/SKILL.md +1 -0
  81. package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +1 -0
  82. package/skills/writing/citation/onecite-reference-guide/SKILL.md +1 -1
  83. package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +1 -0
  84. package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +1 -0
  85. package/skills/writing/citation/zotero-reference-guide/SKILL.md +2 -1
  86. package/skills/writing/citation/zotero-scholar-guide/SKILL.md +1 -1
  87. package/skills/writing/composition/scientific-writing-resources/SKILL.md +1 -0
  88. package/skills/writing/latex/latex-drawing-collection/SKILL.md +1 -0
  89. package/skills/writing/latex/latex-templates-collection/SKILL.md +1 -0
  90. package/skills/writing/templates/novathesis-guide/SKILL.md +1 -0
  91. package/src/tools/arxiv.ts +81 -30
  92. package/src/tools/biorxiv.ts +158 -0
  93. package/src/tools/crossref.ts +63 -22
  94. package/src/tools/datacite.ts +191 -0
  95. package/src/tools/dblp.ts +125 -0
  96. package/src/tools/doaj.ts +82 -0
  97. package/src/tools/europe-pmc.ts +159 -0
  98. package/src/tools/hal.ts +118 -0
  99. package/src/tools/inspire-hep.ts +165 -0
  100. package/src/tools/openaire.ts +158 -0
  101. package/src/tools/openalex.ts +26 -15
  102. package/src/tools/opencitations.ts +112 -0
  103. package/src/tools/orcid.ts +139 -0
  104. package/src/tools/osf-preprints.ts +104 -0
  105. package/src/tools/pubmed.ts +22 -13
  106. package/src/tools/ror.ts +118 -0
  107. package/src/tools/unpaywall.ts +15 -6
  108. package/src/tools/util.ts +141 -0
  109. package/src/tools/zenodo.ts +157 -0
  110. package/mcp-configs/academic-db/ChatSpatial.json +0 -17
  111. package/mcp-configs/academic-db/academia-mcp.json +0 -17
  112. package/mcp-configs/academic-db/academic-paper-explorer.json +0 -17
  113. package/mcp-configs/academic-db/academic-search-mcp-server.json +0 -17
  114. package/mcp-configs/academic-db/agentinterviews-mcp.json +0 -17
  115. package/mcp-configs/academic-db/all-in-mcp.json +0 -17
  116. package/mcp-configs/academic-db/alphafold-mcp.json +0 -20
  117. package/mcp-configs/academic-db/apple-health-mcp.json +0 -17
  118. package/mcp-configs/academic-db/arxiv-latex-mcp.json +0 -17
  119. package/mcp-configs/academic-db/arxiv-mcp-server.json +0 -17
  120. package/mcp-configs/academic-db/bgpt-mcp.json +0 -17
  121. package/mcp-configs/academic-db/biomcp.json +0 -17
  122. package/mcp-configs/academic-db/biothings-mcp.json +0 -17
  123. package/mcp-configs/academic-db/brightspace-mcp.json +0 -21
  124. package/mcp-configs/academic-db/catalysishub-mcp-server.json +0 -17
  125. package/mcp-configs/academic-db/climatiq-mcp.json +0 -20
  126. package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +0 -17
  127. package/mcp-configs/academic-db/deep-research-mcp.json +0 -17
  128. package/mcp-configs/academic-db/dicom-mcp.json +0 -17
  129. package/mcp-configs/academic-db/enrichr-mcp-server.json +0 -17
  130. package/mcp-configs/academic-db/fec-mcp-server.json +0 -17
  131. package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +0 -17
  132. package/mcp-configs/academic-db/fhir-mcp.json +0 -19
  133. package/mcp-configs/academic-db/gget-mcp.json +0 -17
  134. package/mcp-configs/academic-db/gibs-mcp.json +0 -20
  135. package/mcp-configs/academic-db/gis-mcp-server.json +0 -22
  136. package/mcp-configs/academic-db/google-earth-engine-mcp.json +0 -21
  137. package/mcp-configs/academic-db/google-researcher-mcp.json +0 -17
  138. package/mcp-configs/academic-db/idea-reality-mcp.json +0 -17
  139. package/mcp-configs/academic-db/legiscan-mcp.json +0 -19
  140. package/mcp-configs/academic-db/lex.json +0 -17
  141. package/mcp-configs/academic-db/m4-clinical-mcp.json +0 -21
  142. package/mcp-configs/academic-db/medical-mcp.json +0 -21
  143. package/mcp-configs/academic-db/nexonco-mcp.json +0 -20
  144. package/mcp-configs/academic-db/omop-mcp.json +0 -20
  145. package/mcp-configs/academic-db/onekgpd-mcp.json +0 -20
  146. package/mcp-configs/academic-db/openedu-mcp.json +0 -20
  147. package/mcp-configs/academic-db/opengenes-mcp.json +0 -20
  148. package/mcp-configs/academic-db/openstax-mcp.json +0 -21
  149. package/mcp-configs/academic-db/openstreetmap-mcp.json +0 -21
  150. package/mcp-configs/academic-db/opentargets-mcp.json +0 -21
  151. package/mcp-configs/academic-db/pdb-mcp.json +0 -21
  152. package/mcp-configs/academic-db/smithsonian-mcp.json +0 -20
  153. package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +0 -17
  154. package/mcp-configs/ai-platform/ai-counsel.json +0 -17
  155. package/mcp-configs/ai-platform/atlas-mcp-server.json +0 -17
  156. package/mcp-configs/ai-platform/counsel-mcp.json +0 -17
  157. package/mcp-configs/ai-platform/cross-llm-mcp.json +0 -17
  158. package/mcp-configs/ai-platform/gptr-mcp.json +0 -17
  159. package/mcp-configs/ai-platform/magi-researchers.json +0 -21
  160. package/mcp-configs/ai-platform/mcp-academic-researcher.json +0 -22
  161. package/mcp-configs/ai-platform/open-paper-machine.json +0 -21
  162. package/mcp-configs/ai-platform/paper-intelligence.json +0 -21
  163. package/mcp-configs/ai-platform/paper-reader.json +0 -21
  164. package/mcp-configs/ai-platform/paperdebugger.json +0 -21
  165. package/mcp-configs/browser/decipher-research-agent.json +0 -17
  166. package/mcp-configs/browser/deep-research.json +0 -17
  167. package/mcp-configs/browser/everything-claude-code.json +0 -17
  168. package/mcp-configs/browser/exa-mcp.json +0 -20
  169. package/mcp-configs/browser/gpt-researcher.json +0 -17
  170. package/mcp-configs/browser/heurist-agent-framework.json +0 -17
  171. package/mcp-configs/browser/mcp-searxng.json +0 -21
  172. package/mcp-configs/browser/mcp-webresearch.json +0 -20
  173. package/mcp-configs/cloud-docs/confluence-mcp.json +0 -37
  174. package/mcp-configs/cloud-docs/google-drive-mcp.json +0 -35
  175. package/mcp-configs/cloud-docs/notion-mcp.json +0 -29
  176. package/mcp-configs/communication/discord-mcp.json +0 -29
  177. package/mcp-configs/communication/discourse-mcp.json +0 -21
  178. package/mcp-configs/communication/slack-mcp.json +0 -29
  179. package/mcp-configs/communication/telegram-mcp.json +0 -28
  180. package/mcp-configs/data-platform/4everland-hosting-mcp.json +0 -17
  181. package/mcp-configs/data-platform/automl-stat-mcp.json +0 -21
  182. package/mcp-configs/data-platform/context-keeper.json +0 -17
  183. package/mcp-configs/data-platform/context7.json +0 -19
  184. package/mcp-configs/data-platform/contextstream-mcp.json +0 -17
  185. package/mcp-configs/data-platform/email-mcp.json +0 -17
  186. package/mcp-configs/data-platform/jefferson-stats-mcp.json +0 -22
  187. package/mcp-configs/data-platform/mcp-excel-server.json +0 -21
  188. package/mcp-configs/data-platform/mcp-stata.json +0 -21
  189. package/mcp-configs/data-platform/mcpstack-jupyter.json +0 -21
  190. package/mcp-configs/data-platform/ml-mcp.json +0 -21
  191. package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +0 -20
  192. package/mcp-configs/data-platform/numpy-mcp.json +0 -21
  193. package/mcp-configs/database/neo4j-mcp.json +0 -37
  194. package/mcp-configs/database/postgres-mcp.json +0 -28
  195. package/mcp-configs/database/sqlite-mcp.json +0 -29
  196. package/mcp-configs/dev-platform/geogebra-mcp.json +0 -21
  197. package/mcp-configs/dev-platform/github-mcp.json +0 -31
  198. package/mcp-configs/dev-platform/gitlab-mcp.json +0 -34
  199. package/mcp-configs/dev-platform/latex-mcp-server.json +0 -21
  200. package/mcp-configs/dev-platform/manim-mcp.json +0 -20
  201. package/mcp-configs/dev-platform/mcp-echarts.json +0 -20
  202. package/mcp-configs/dev-platform/panel-viz-mcp.json +0 -20
  203. package/mcp-configs/dev-platform/paperbanana.json +0 -20
  204. package/mcp-configs/dev-platform/texflow-mcp.json +0 -20
  205. package/mcp-configs/dev-platform/texmcp.json +0 -20
  206. package/mcp-configs/dev-platform/typst-mcp.json +0 -21
  207. package/mcp-configs/dev-platform/vizro-mcp.json +0 -20
  208. package/mcp-configs/email/email-mcp.json +0 -40
  209. package/mcp-configs/email/gmail-mcp.json +0 -37
  210. package/mcp-configs/note-knowledge/ApeRAG.json +0 -17
  211. package/mcp-configs/note-knowledge/In-Memoria.json +0 -17
  212. package/mcp-configs/note-knowledge/agent-memory.json +0 -17
  213. package/mcp-configs/note-knowledge/aimemo.json +0 -17
  214. package/mcp-configs/note-knowledge/biel-mcp.json +0 -19
  215. package/mcp-configs/note-knowledge/cognee.json +0 -17
  216. package/mcp-configs/note-knowledge/context-awesome.json +0 -17
  217. package/mcp-configs/note-knowledge/context-mcp.json +0 -17
  218. package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +0 -17
  219. package/mcp-configs/note-knowledge/cortex.json +0 -17
  220. package/mcp-configs/note-knowledge/devrag.json +0 -17
  221. package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +0 -17
  222. package/mcp-configs/note-knowledge/engram.json +0 -17
  223. package/mcp-configs/note-knowledge/gnosis-mcp.json +0 -17
  224. package/mcp-configs/note-knowledge/graphlit-mcp-server.json +0 -19
  225. package/mcp-configs/note-knowledge/local-faiss-mcp.json +0 -21
  226. package/mcp-configs/note-knowledge/mcp-memory-service.json +0 -21
  227. package/mcp-configs/note-knowledge/mcp-obsidian.json +0 -23
  228. package/mcp-configs/note-knowledge/mcp-ragdocs.json +0 -20
  229. package/mcp-configs/note-knowledge/mcp-summarizer.json +0 -21
  230. package/mcp-configs/note-knowledge/mediawiki-mcp.json +0 -21
  231. package/mcp-configs/note-knowledge/openzim-mcp.json +0 -20
  232. package/mcp-configs/note-knowledge/zettelkasten-mcp.json +0 -21
  233. package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +0 -20
  234. package/mcp-configs/reference-mgr/academix.json +0 -20
  235. package/mcp-configs/reference-mgr/arxiv-cli.json +0 -17
  236. package/mcp-configs/reference-mgr/arxiv-research-mcp.json +0 -21
  237. package/mcp-configs/reference-mgr/arxiv-search-mcp.json +0 -17
  238. package/mcp-configs/reference-mgr/chiken.json +0 -17
  239. package/mcp-configs/reference-mgr/claude-scholar.json +0 -17
  240. package/mcp-configs/reference-mgr/devonthink-mcp.json +0 -17
  241. package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +0 -19
  242. package/mcp-configs/reference-mgr/google-scholar-mcp.json +0 -20
  243. package/mcp-configs/reference-mgr/mcp-paperswithcode.json +0 -21
  244. package/mcp-configs/reference-mgr/mcp-scholarly.json +0 -20
  245. package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +0 -20
  246. package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +0 -20
  247. package/mcp-configs/reference-mgr/mcp-zotero.json +0 -21
  248. package/mcp-configs/reference-mgr/mendeley-mcp.json +0 -20
  249. package/mcp-configs/reference-mgr/ncbi-mcp-server.json +0 -22
  250. package/mcp-configs/reference-mgr/onecite.json +0 -21
  251. package/mcp-configs/reference-mgr/paper-search-mcp.json +0 -21
  252. package/mcp-configs/reference-mgr/pubmed-search-mcp.json +0 -21
  253. package/mcp-configs/reference-mgr/scholar-mcp.json +0 -21
  254. package/mcp-configs/reference-mgr/scholar-multi-mcp.json +0 -21
  255. package/mcp-configs/reference-mgr/seerai.json +0 -21
  256. package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +0 -21
  257. package/mcp-configs/reference-mgr/sourcelibrary.json +0 -20
  258. package/mcp-configs/registry.json +0 -476
  259. package/mcp-configs/repository/dataverse-mcp.json +0 -33
  260. package/mcp-configs/repository/huggingface-mcp.json +0 -29
  261. package/skills/domains/business/xpert-bi-guide/SKILL.md +0 -84
  262. package/skills/domains/education/edumcp-guide/SKILL.md +0 -74
  263. package/skills/literature/search/paper-search-mcp-guide/SKILL.md +0 -107
  264. package/skills/research/automation/mcp-server-guide/SKILL.md +0 -211
  265. package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +0 -84
  266. package/src/tools/semantic-scholar.ts +0 -66
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: uk-legislation-api
3
+ description: "Access UK laws and statutory instruments via the Legislation.gov.uk API"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "⚖️"
7
+ category: "domains"
8
+ subcategory: "law"
9
+ keywords: ["UK law", "legislation", "statutory instruments", "legal research", "Parliament", "regulatory analysis"]
10
+ source: "https://www.legislation.gov.uk"
11
+ ---
12
+
13
+ # UK Legislation API (legislation.gov.uk)
14
+
15
+ ## Overview
16
+
17
+ The Legislation.gov.uk API, maintained by The National Archives, provides open access to the full text of UK legislation from 1267 to the present day. The database covers over 100,000 items including Acts of Parliament, Statutory Instruments, Scottish and Welsh legislation, and Northern Ireland statutes. All data is available as structured XML with Dublin Core metadata, Atom feeds, and HTML. The API supports point-in-time versions showing how legislation read at any given date, plus amendment tracking.
18
+
19
+ ## Authentication
20
+
21
+ No authentication or API key is required. The API is fully open. Respect rate limits by adding reasonable delays between bulk requests.
22
+
23
+ ## URL Structure
24
+
25
+ All legislation follows the pattern:
26
+
27
+ ```
28
+ https://www.legislation.gov.uk/{type}/{year}/{number}
29
+ ```
30
+
31
+ ### Legislation Types
32
+
33
+ | Type Code | Description | Example |
34
+ |-----------|-------------|---------|
35
+ | `ukpga` | UK Public General Act | `/ukpga/2010/15` (Equality Act 2010) |
36
+ | `uksi` | UK Statutory Instrument | `/uksi/2020/1374` |
37
+ | `asp` | Act of Scottish Parliament | `/asp/2020/13` |
38
+ | `asc` | Act of Senedd Cymru (Wales) | `/asc/2021/4` |
39
+ | `nia` | Northern Ireland Act | `/nia/2022/2` |
40
+ | `ukla` | UK Local Act | `/ukla/2008/1` |
41
+ | `ukdsi` | UK Draft Statutory Instrument | `/ukdsi/2023/123` |
42
+ | `eur` | Retained EU Legislation | `/eur/2016/679` (GDPR) |
43
+
44
+ ## Core Endpoints
45
+
46
+ ### Full Legislation Text (XML)
47
+
48
+ ```bash
49
+ # Fetch the Equality Act 2010 — returns structured XML with Dublin Core metadata
50
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/data.xml"
51
+ # Response: <Legislation DocumentURI="http://www.legislation.gov.uk/ukpga/2010/15"
52
+ # NumberOfProvisions="564">
53
+ # <dc:title>Equality Act 2010</dc:title>
54
+ # <dc:description>An Act to make provision to require Ministers...</dc:description>
55
+
56
+ # Fetch Data Protection Act 2018
57
+ curl "https://www.legislation.gov.uk/ukpga/2018/12/data.xml"
58
+ # Response: <dc:title>Data Protection Act 2018</dc:title>
59
+ # NumberOfProvisions="1181"
60
+
61
+ # Fetch a Statutory Instrument
62
+ curl "https://www.legislation.gov.uk/uksi/2020/1374/data.xml"
63
+ # Response: <dc:title>The Health Protection (Coronavirus, Restric...</dc:title>
64
+ ```
65
+
66
+ ### Specific Sections
67
+
68
+ ```bash
69
+ # Fetch a single section
70
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/section/1/data.xml"
71
+
72
+ # Fetch table of contents
73
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/contents/data.xml"
74
+
75
+ # Fetch a specific Part
76
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/part/1/data.xml"
77
+
78
+ # Fetch a Schedule
79
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/schedule/1/data.xml"
80
+ ```
81
+
82
+ ### Search and Discovery
83
+
84
+ ```bash
85
+ # Search by title — returns HTTP 300 with multiple matches
86
+ curl "https://www.legislation.gov.uk/id?title=equality+act"
87
+
88
+ # Browse by type, title keyword, and year
89
+ curl "https://www.legislation.gov.uk/ukpga?title=data+protection&year=2018"
90
+
91
+ # List recent Acts via Atom feed
92
+ curl "https://www.legislation.gov.uk/new/ukpga/data.feed"
93
+ # Response: <openSearch:totalResults> with <entry> elements per Act
94
+ ```
95
+
96
+ ### Amendment Tracking
97
+
98
+ ```bash
99
+ # Changes affecting a specific Act (Atom feed, paginated)
100
+ curl "https://www.legislation.gov.uk/changes/affected/ukpga/2010/15/data.feed"
101
+ # Response: <title>Changes to Legislation</title>
102
+ # <leg:totalPages>25</leg:totalPages>
103
+ # Each <entry> describes one amendment with source and target provisions
104
+
105
+ # Changes made BY a specific Act
106
+ curl "https://www.legislation.gov.uk/changes/affecting/ukpga/2010/15/data.feed"
107
+ ```
108
+
109
+ ### Point-in-Time Versions
110
+
111
+ ```bash
112
+ # Legislation as it stood on a specific date
113
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/2015-01-01/data.xml"
114
+
115
+ # Enacted (original) version
116
+ curl "https://www.legislation.gov.uk/ukpga/2010/15/enacted/data.xml"
117
+ ```
118
+
119
+ ## Data Formats
120
+
121
+ | Suffix | Format | Content-Type |
122
+ |--------|--------|-------------|
123
+ | `/data.xml` | Legislation XML (CLML) | `application/xml` |
124
+ | `/data.feed` | Atom feed | `application/atom+xml` |
125
+ | `/data.csv` | CSV export | `text/csv` |
126
+ | (none) | HTML rendering | `text/html` |
127
+
128
+ The primary XML format uses the Crown Legislation Markup Language (CLML) schema with namespaces for `legislation`, `ukm:Metadata`, and Dublin Core (`dc:`, `dct:`) elements. Each document includes `NumberOfProvisions`, `RestrictExtent` (geographic applicability like `E+W+S+N.I.`), and `RestrictStartDate`.
129
+
130
+ ## Academic Use Cases
131
+
132
+ - **Legislative history**: Track how a statute has evolved using point-in-time versions and amendment feeds
133
+ - **Policy analysis**: Compare regulatory regimes across UK jurisdictions (England, Scotland, Wales, NI)
134
+ - **Corpus linguistics**: Build legislative text corpora from XML for NLP analysis of legal language
135
+ - **Regulatory impact studies**: Use the changes feed to measure legislative amendment frequency
136
+ - **Comparative law**: Contrast UK statutory instruments with primary legislation structure
137
+ - **Brexit research**: Analyse retained EU legislation (type `eur`) and its UK modifications
138
+
139
+ ## Python Usage
140
+
141
+ ```python
142
+ import requests
143
+ from xml.etree import ElementTree as ET
144
+
145
+ BASE = "https://www.legislation.gov.uk"
146
+ NS = {"leg": "http://www.legislation.gov.uk/namespaces/legislation",
147
+ "ukm": "http://www.legislation.gov.uk/namespaces/metadata",
148
+ "dc": "http://purl.org/dc/elements/1.1/",
149
+ "atom": "http://www.w3.org/2005/Atom"}
150
+
151
+ def get_legislation(leg_type: str, year: int, number: int) -> dict:
152
+ """Fetch UK legislation metadata and full XML."""
153
+ url = f"{BASE}/{leg_type}/{year}/{number}/data.xml"
154
+ resp = requests.get(url)
155
+ resp.raise_for_status()
156
+ root = ET.fromstring(resp.content)
157
+ meta = root.find(".//ukm:Metadata", NS)
158
+ return {
159
+ "title": meta.findtext("dc:title", namespaces=NS),
160
+ "description": meta.findtext("dc:description", namespaces=NS),
161
+ "provisions": root.attrib.get("NumberOfProvisions"),
162
+ "extent": root.attrib.get("RestrictExtent"),
163
+ "uri": root.attrib.get("DocumentURI"),
164
+ "xml": resp.content
165
+ }
166
+
167
+ # Example: fetch the Equality Act 2010
168
+ act = get_legislation("ukpga", 2010, 15)
169
+ print(f"{act['title']} — {act['provisions']} provisions, extent: {act['extent']}")
170
+ # Output: Equality Act 2010 — 564 provisions, extent: E+W+S+N.I.
171
+ ```
172
+
173
+ ## References
174
+
175
+ - [Legislation.gov.uk API Documentation](https://www.legislation.gov.uk/developer)
176
+ - [CLML Schema Documentation](https://legislation.github.io/clml-schema/)
177
+ - [Legislation.gov.uk URI Scheme](https://www.legislation.gov.uk/developer/uris)
178
+ - [The National Archives](https://www.nationalarchives.gov.uk/)
179
+ - [Atom Feed Specification](https://www.legislation.gov.uk/developer/formats/atom)
@@ -16,5 +16,5 @@ Select the skill matching the user's need, then `read` its SKILL.md.
16
16
  | [papers-we-love-guide](./papers-we-love-guide/SKILL.md) | Community-curated directory of influential CS research papers |
17
17
  | [rss-paper-feeds](./rss-paper-feeds/SKILL.md) | Set up RSS feeds and alerts to track new publications in your research area |
18
18
  | [semantic-paper-radar](./semantic-paper-radar/SKILL.md) | Semantic literature discovery and synthesis using embeddings |
19
- | [semantic-scholar-recs-guide](./semantic-scholar-recs-guide/SKILL.md) | Using Semantic Scholar recommendations API for paper discovery |
19
+ | [semantic-scholar-recs-guide](./semantic-scholar-recs-guide/SKILL.md) | Paper discovery via recommendation APIs (OpenAlex, CrossRef citation networks) |
20
20
  | [zotero-arxiv-daily-guide](./zotero-arxiv-daily-guide/SKILL.md) | Guide to Zotero arXiv Daily for personalized daily paper recommendations |
@@ -24,7 +24,7 @@ A skill for setting up automated citation alerts and tracking systems that notif
24
24
  | Web of Science | Citation alert, search alert, journal ToC | WoS-indexed journals | Institutional |
25
25
  | Scopus | Citation alert, search alert, author alert | Scopus-indexed journals | Institutional |
26
26
  | PubMed | Email alert (My NCBI) | Biomedical literature | Free |
27
- | Semantic Scholar | Paper alert, author alert, topic feed | CS, biomedical, broad | Free |
27
+ | OpenAlex | Work tracking, author profiles, concept feeds | All disciplines | Free |
28
28
  | ResearchGate | Author follow, recommendation | Member-uploaded papers | Free |
29
29
 
30
30
  ### Setting Up Google Scholar Alerts
@@ -76,7 +76,7 @@ def design_alert_system(research_topics: list[str],
76
76
  "frequency": "weekly"
77
77
  },
78
78
  "author_alerts": {
79
- "platform": "Semantic Scholar + Scopus",
79
+ "platform": "OpenAlex + Scopus",
80
80
  "authors": key_authors,
81
81
  "frequency": "monthly"
82
82
  },
@@ -36,7 +36,7 @@ Strategy 1 - Search by conference name:
36
36
  DBLP: Browse conference page -> search within proceedings
37
37
 
38
38
  Strategy 2 - Search by topic across all venues:
39
- Semantic Scholar: Filter by "Conference Paper" venue type
39
+ OpenAlex: Filter by type "proceedings-article"
40
40
  Google Scholar: Use keywords, then check venue names in results
41
41
 
42
42
  Strategy 3 - Track specific conferences:
@@ -101,7 +101,7 @@ Tiers vary by subfield. Always check the ranking relevant to your specific area.
101
101
  3. OpenReview: NeurIPS, ICLR, and others host papers with reviews
102
102
  4. Institutional repository: Check the authors' university repository
103
103
  5. Conference website: Some conferences offer free proceedings
104
- 6. Semantic Scholar: Aggregates PDFs from multiple open sources
104
+ 6. OpenAlex: Aggregates metadata and OA links from multiple sources
105
105
  ```
106
106
 
107
107
  ### Workshop Papers vs. Main Conference
@@ -51,7 +51,7 @@ How to use:
51
51
  Litmaps (litmaps.com) creates dynamic, multi-seed citation maps that update as new papers are published.
52
52
 
53
53
  Workflow:
54
- 1. Add one or more seed papers via DOI, title, or Semantic Scholar ID
54
+ 1. Add one or more seed papers via DOI, title, or OpenAlex ID
55
55
  2. The tool builds a citation graph showing how the papers are connected
56
56
  3. Add "discover" nodes to expand the map with algorithmically suggested papers
57
57
  4. Create "collections" to organize maps by topic
@@ -22,22 +22,16 @@ Whether you are entering a new field and need foundational papers, tracking the
22
22
 
23
23
  ## Algorithmic Recommendation Services
24
24
 
25
- ### Semantic Scholar Recommendations
25
+ ### OpenAlex Related Works
26
26
 
27
- Semantic Scholar provides a free recommendation API that suggests papers based on a set of seed papers you provide:
27
+ OpenAlex provides concept-based and citation-based discovery for 250M+ works across all disciplines:
28
28
 
29
29
  ```bash
30
- # Get recommendations based on positive and negative example papers
31
- curl -X POST "https://api.semanticscholar.org/recommendations/v1/papers/" \
32
- -H "Content-Type: application/json" \
33
- -d '{
34
- "positivePaperIds": ["CorpusId:12345", "CorpusId:67890"],
35
- "negativePaperIds": ["CorpusId:11111"],
36
- "fields": "title,authors,year,citationCount,url"
37
- }'
30
+ # Find works related to a specific paper via its concepts and citations
31
+ curl "https://api.openalex.org/works?filter=cites:W2741809807&sort=cited_by_count:desc&per_page=10"
38
32
  ```
39
33
 
40
- The positive/negative seed approach lets you steer recommendations toward the specific intersection of topics you care about. Start with 3-5 highly relevant papers as positive seeds and 1-2 off-topic papers as negative seeds.
34
+ Use OpenAlex's concept graph to find related work by browsing papers tagged with the same research concepts, or trace citation networks to find derivative and foundational papers.
41
35
 
42
36
  ### Connected Papers
43
37
 
@@ -70,7 +64,7 @@ Research Rabbit (researchrabbitapp.com) lets you build collections of papers and
70
64
  When algorithmic tools are insufficient, manual citation-based techniques remain powerful:
71
65
 
72
66
  ### Forward Citation Chaining
73
- Start with a foundational paper. Find all papers that cite it (using Google Scholar, Semantic Scholar, or Web of Science). Screen these citing papers by title and abstract to find relevant descendants. Repeat for the most important descendants.
67
+ Start with a foundational paper. Find all papers that cite it (using Google Scholar, OpenAlex, or Web of Science). Screen these citing papers by title and abstract to find relevant descendants. Repeat for the most important descendants.
74
68
 
75
69
  ### Backward Citation Mining
76
70
  Read the reference list of a key paper. Identify and retrieve the most important cited works. This traces the intellectual lineage of ideas and helps you find the seminal papers in a subfield.
@@ -89,7 +83,7 @@ A sustainable paper discovery practice requires more than one-off searches. Buil
89
83
 
90
84
  1. **Check preprint alerts**: Review your arXiv, bioRxiv, or SSRN email alerts or RSS feeds (15 min).
91
85
  2. **Scan citation alerts**: Review Google Scholar citation alerts for new papers citing your key references (10 min).
92
- 3. **Process recommendation queue**: Review suggestions from Semantic Scholar, Research Rabbit, or Connected Papers for any recently added seed papers (10 min).
86
+ 3. **Process recommendation queue**: Review suggestions from OpenAlex, Research Rabbit, or Connected Papers for any recently added seed papers (10 min).
93
87
  4. **Social signals**: Scan academic Twitter/Mastodon, relevant subreddits, or lab group Slack channels for shared papers (10 min).
94
88
  5. **Triage and queue**: Add promising papers to your "to read" queue with a priority tag (high/medium/low) and the reason you flagged them.
95
89
 
@@ -113,7 +107,7 @@ Finding papers outside your primary field is particularly challenging because yo
113
107
 
114
108
  ## References
115
109
 
116
- - Semantic Scholar API: https://api.semanticscholar.org
110
+ - OpenAlex API: https://api.openalex.org
117
111
  - Connected Papers: https://www.connectedpapers.com
118
112
  - Research Rabbit: https://www.researchrabbitapp.com
119
113
  - Paper Recommendation: https://github.com/pengzhenghao/paper-recommendation
@@ -95,34 +95,40 @@ Recommended: Set alerts for:
95
95
  - Key competitor or collaborator publications
96
96
  ```
97
97
 
98
- ### Semantic Scholar Alerts API
98
+ ### OpenAlex Citation Tracking
99
99
 
100
100
  ```python
101
101
  import requests
102
102
 
103
- def setup_semantic_scholar_alert(paper_id: str, email: str) -> dict:
103
+ def track_citations_openalex(work_id: str) -> dict:
104
104
  """
105
- Monitor citations for a specific paper via Semantic Scholar.
105
+ Monitor citations for a specific paper via OpenAlex.
106
106
 
107
107
  Args:
108
- paper_id: Semantic Scholar paper ID or DOI
109
- email: Email for notifications
108
+ work_id: OpenAlex work ID (e.g., 'W2741809807') or DOI
110
109
  """
111
- # Fetch current citation count for baseline
110
+ headers = {"User-Agent": "ResearchPlugins/1.0 (https://wentor.ai)"}
112
111
  response = requests.get(
113
- f"https://api.semanticscholar.org/graph/v1/paper/{paper_id}",
114
- params={'fields': 'title,citationCount,citations.title,citations.year'}
112
+ f"https://api.openalex.org/works/{work_id}",
113
+ headers=headers
115
114
  )
116
115
  data = response.json()
117
116
 
117
+ # Get recent citing works
118
+ citing_resp = requests.get(
119
+ "https://api.openalex.org/works",
120
+ params={"filter": f"cites:{work_id}", "sort": "publication_date:desc", "per_page": 10},
121
+ headers=headers
122
+ )
123
+ citing = citing_resp.json().get("results", [])
124
+
118
125
  return {
119
126
  'paper': data.get('title', ''),
120
- 'current_citations': data.get('citationCount', 0),
121
- 'recent_citations': [
122
- c for c in data.get('citations', [])
123
- if c.get('year', 0) >= datetime.now().year - 1
124
- ][:10],
125
- 'alert_email': email,
127
+ 'current_citations': data.get('cited_by_count', 0),
128
+ 'recent_citing_works': [
129
+ {'title': c.get('title'), 'year': c.get('publication_year')}
130
+ for c in citing
131
+ ],
126
132
  'status': 'configured'
127
133
  }
128
134
  ```
@@ -31,16 +31,16 @@ Key components:
31
31
  - **Vector database**: Stores and indexes embeddings for fast similarity search. Options include ChromaDB (local), Qdrant, Pinecone, or Weaviate.
32
32
  - **Similarity metric**: Cosine similarity is standard for comparing text embeddings.
33
33
 
34
- ### Using Semantic Scholar's Embedding Search
34
+ ### Using OpenAlex's Search API
35
35
 
36
- Semantic Scholar provides pre-computed SPECTER embeddings for millions of papers. You can use their search API for semantic queries:
36
+ OpenAlex indexes 250M+ works and supports search queries across all disciplines:
37
37
 
38
38
  ```bash
39
- # Semantic search via the Semantic Scholar API
40
- curl "https://api.semanticscholar.org/graph/v1/paper/search?query=attention+mechanisms+for+graph+neural+networks&fields=title,abstract,year,citationCount&limit=20"
39
+ # Search works via the OpenAlex API
40
+ curl "https://api.openalex.org/works?search=attention+mechanisms+for+graph+neural+networks&per_page=20"
41
41
  ```
42
42
 
43
- The search endpoint uses semantic matching, not just keyword matching. A query like "methods for handling missing values in longitudinal studies" will find papers about imputation techniques, dropout analysis, and panel data methods even if they do not use the phrase "missing values."
43
+ The search endpoint uses relevance-ranked matching. Combine with concept filters and citation data for more targeted discovery. For true semantic matching, build a local embedding index (see below).
44
44
 
45
45
  ### Building a Personal Semantic Index
46
46
 
@@ -84,7 +84,7 @@ This local index lets you search across all papers you have collected using natu
84
84
  Use semantic search to expand your awareness beyond your current reading:
85
85
 
86
86
  1. **Seed**: Take the abstract of your current paper (or a paragraph describing your research question).
87
- 2. **Search**: Run it as a semantic query against a large corpus (Semantic Scholar, OpenAlex, or your local index).
87
+ 2. **Search**: Run it as a semantic query against a large corpus (OpenAlex, CrossRef, or your local index).
88
88
  3. **Filter**: Remove papers you have already read. Sort by a combination of semantic similarity and recency.
89
89
  4. **Cluster**: Group the top 50 results into thematic clusters using k-means or HDBSCAN on their embeddings.
90
90
  5. **Explore clusters**: Each cluster represents a related subtopic. Read the most-cited paper in each cluster to understand the connection to your work.
@@ -103,7 +103,7 @@ Semantic search excels at finding papers from other fields that address similar
103
103
  Set up periodic semantic searches to detect new papers in your area:
104
104
 
105
105
  1. Define 3-5 "concept vectors" by encoding descriptions of your core research interests.
106
- 2. Weekly, search against newly published papers (last 7 days) from arXiv or Semantic Scholar.
106
+ 2. Weekly, search against newly published papers (last 7 days) from arXiv or OpenAlex.
107
107
  3. Rank new papers by maximum similarity to any of your concept vectors.
108
108
  4. Papers above your similarity threshold enter your reading queue automatically.
109
109
 
@@ -137,7 +137,7 @@ Compare your research question against the semantic landscape of existing work.
137
137
 
138
138
  ## References
139
139
 
140
- - Semantic Scholar API: https://api.semanticscholar.org
140
+ - OpenAlex API: https://api.openalex.org
141
141
  - SPECTER2 model: https://huggingface.co/allenai/specter2
142
142
  - ChromaDB: https://www.trychroma.com
143
143
  - ResearchGPT: https://github.com/mukulpatnaik/researchgpt