@wentorai/research-plugins 1.1.0 → 1.2.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.
- package/README.md +18 -18
- package/curated/analysis/README.md +12 -1
- package/curated/domains/README.md +48 -1
- package/curated/literature/README.md +46 -1
- package/curated/research/README.md +16 -1
- package/curated/tools/README.md +20 -1
- package/curated/writing/README.md +13 -1
- package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
- package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
- package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
- package/mcp-configs/academic-db/gibs-mcp.json +20 -0
- package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
- package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
- package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
- package/mcp-configs/academic-db/medical-mcp.json +21 -0
- package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
- package/mcp-configs/academic-db/omop-mcp.json +20 -0
- package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
- package/mcp-configs/academic-db/openedu-mcp.json +20 -0
- package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
- package/mcp-configs/academic-db/openstax-mcp.json +21 -0
- package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
- package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
- package/mcp-configs/academic-db/pdb-mcp.json +21 -0
- package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
- package/mcp-configs/ai-platform/magi-researchers.json +21 -0
- package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
- package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
- package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
- package/mcp-configs/ai-platform/paper-reader.json +21 -0
- package/mcp-configs/ai-platform/paperdebugger.json +21 -0
- package/mcp-configs/browser/exa-mcp.json +20 -0
- package/mcp-configs/browser/mcp-searxng.json +21 -0
- package/mcp-configs/browser/mcp-webresearch.json +20 -0
- package/mcp-configs/communication/discourse-mcp.json +21 -0
- package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
- package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
- package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
- package/mcp-configs/data-platform/mcp-stata.json +21 -0
- package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
- package/mcp-configs/data-platform/ml-mcp.json +21 -0
- package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
- package/mcp-configs/data-platform/numpy-mcp.json +21 -0
- package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
- package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
- package/mcp-configs/dev-platform/manim-mcp.json +20 -0
- package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
- package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
- package/mcp-configs/dev-platform/paperbanana.json +20 -0
- package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
- package/mcp-configs/dev-platform/texmcp.json +20 -0
- package/mcp-configs/dev-platform/typst-mcp.json +21 -0
- package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
- package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
- package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
- package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
- package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
- package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
- package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
- package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
- package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
- package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
- package/mcp-configs/reference-mgr/academix.json +20 -0
- package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
- package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
- package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
- package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
- package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
- package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
- package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
- package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
- package/mcp-configs/reference-mgr/onecite.json +21 -0
- package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
- package/mcp-configs/reference-mgr/seerai.json +21 -0
- package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
- package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +2 -2
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
- package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +2 -2
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
- package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +2 -2
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
- package/skills/analysis/econometrics/python-causality-guide/SKILL.md +2 -2
- package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
- package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
- package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
- package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
- package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
- package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +2 -2
- package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
- package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
- package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
- package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
- package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
- package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
- package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
- package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
- package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
- package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
- package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
- package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
- package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
- package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
- package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
- package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
- package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
- package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
- package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
- package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
- package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
- package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
- package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
- package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
- package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
- package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
- package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
- package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
- package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
- package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
- package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
- package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
- package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
- package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
- package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
- package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
- package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +2 -2
- package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
- package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
- package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
- package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
- package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
- package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
- package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
- package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
- package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
- package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
- package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
- package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
- package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
- package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
- package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
- package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
- package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
- package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
- package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
- package/skills/literature/search/base-academic-search/SKILL.md +196 -0
- package/skills/literature/search/chatpaper-guide/SKILL.md +2 -2
- package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
- package/skills/literature/search/deepgit-search-guide/SKILL.md +2 -2
- package/skills/literature/search/eric-education-api/SKILL.md +199 -0
- package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
- package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
- package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
- package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
- package/skills/literature/search/open-library-api/SKILL.md +196 -0
- package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
- package/skills/literature/search/openaire-api/SKILL.md +141 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
- package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +2 -2
- package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
- package/skills/literature/search/scielo-api/SKILL.md +182 -0
- package/skills/literature/search/share-research-api/SKILL.md +129 -0
- package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
- package/skills/research/automation/aim-experiment-guide/SKILL.md +2 -2
- package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
- package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
- package/skills/research/automation/datagen-research-guide/SKILL.md +2 -2
- package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
- package/skills/research/automation/kedro-pipeline-guide/SKILL.md +2 -2
- package/skills/research/automation/mle-agent-guide/SKILL.md +2 -2
- package/skills/research/automation/paper-to-agent-guide/SKILL.md +2 -2
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +2 -2
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
- package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
- package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
- package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
- package/skills/research/methodology/claude-scientific-guide/SKILL.md +2 -2
- package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
- package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
- package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
- package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
- package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
- package/skills/tools/document/docsgpt-guide/SKILL.md +2 -2
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
- package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
- package/skills/tools/document/weknora-guide/SKILL.md +216 -0
- package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
- package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
- package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
- package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +2 -2
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
- package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
- package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
- package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
- package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
- package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
- package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +2 -2
- package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +2 -2
- package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +2 -2
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
- package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
- package/skills/writing/citation/jabref-reference-guide/SKILL.md +2 -2
- package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +2 -2
- package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
- package/skills/writing/citation/obsidian-citation-guide/SKILL.md +2 -2
- package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +2 -2
- package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
- package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +2 -2
- package/skills/writing/citation/papis-cli-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-gpt-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-mcp-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotero-reference-guide/SKILL.md +2 -2
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +2 -2
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +2 -2
- package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
- package/skills/writing/composition/scientific-writing-resources/SKILL.md +2 -2
- package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
- package/skills/writing/latex/latex-drawing-collection/SKILL.md +2 -2
- package/skills/writing/latex/latex-templates-collection/SKILL.md +2 -2
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
- package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
- package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
- package/skills/writing/templates/novathesis-guide/SKILL.md +2 -2
- package/skills/writing/templates/sjtuthesis-guide/SKILL.md +2 -2
- package/skills/writing/templates/thuthesis-guide/SKILL.md +2 -2
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dataverse-api
|
|
3
|
+
description: "Deposit and discover research datasets via Harvard Dataverse API"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🗄️"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "fulltext"
|
|
9
|
+
keywords: ["Dataverse", "research data", "data repository", "Harvard", "dataset deposit", "data sharing"]
|
|
10
|
+
source: "https://dataverse.org/"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Harvard Dataverse API
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Dataverse is an open-source research data repository platform developed by Harvard IQSS, hosting 150K+ datasets across 80+ installations worldwide. The Harvard Dataverse alone has 130K+ datasets covering social science, natural science, and humanities. The API supports search, metadata retrieval, file download, and dataset deposit. Free, no authentication for read access.
|
|
18
|
+
|
|
19
|
+
## API Endpoints
|
|
20
|
+
|
|
21
|
+
### Base URL
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
https://dataverse.harvard.edu/api
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Search
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Search datasets
|
|
31
|
+
curl "https://dataverse.harvard.edu/api/search?q=climate+change&type=dataset&per_page=20"
|
|
32
|
+
|
|
33
|
+
# Search files within datasets
|
|
34
|
+
curl "https://dataverse.harvard.edu/api/search?q=temperature+data&type=file&per_page=20"
|
|
35
|
+
|
|
36
|
+
# Filter by subject
|
|
37
|
+
curl "https://dataverse.harvard.edu/api/search?q=survey+data&type=dataset&\
|
|
38
|
+
fq=subject_ss:\"Social Sciences\""
|
|
39
|
+
|
|
40
|
+
# Filter by publication date
|
|
41
|
+
curl "https://dataverse.harvard.edu/api/search?q=genomics&type=dataset&\
|
|
42
|
+
fq=dateSort:[2024-01-01T00:00:00Z TO *]"
|
|
43
|
+
|
|
44
|
+
# Sort by relevance or date
|
|
45
|
+
curl "https://dataverse.harvard.edu/api/search?q=machine+learning&type=dataset&\
|
|
46
|
+
sort=date&order=desc"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Get Dataset Metadata
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# By persistent ID (DOI)
|
|
53
|
+
curl "https://dataverse.harvard.edu/api/datasets/:persistentId/?persistentId=doi:10.7910/DVN/EXAMPLE"
|
|
54
|
+
|
|
55
|
+
# By dataset ID
|
|
56
|
+
curl "https://dataverse.harvard.edu/api/datasets/12345"
|
|
57
|
+
|
|
58
|
+
# Get dataset versions
|
|
59
|
+
curl "https://dataverse.harvard.edu/api/datasets/:persistentId/versions?persistentId=doi:10.7910/DVN/EXAMPLE"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Download Files
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Download a specific file by ID
|
|
66
|
+
curl -O "https://dataverse.harvard.edu/api/access/datafile/67890"
|
|
67
|
+
|
|
68
|
+
# Download with original format
|
|
69
|
+
curl -O "https://dataverse.harvard.edu/api/access/datafile/67890?format=original"
|
|
70
|
+
|
|
71
|
+
# Download all files in a dataset (as zip)
|
|
72
|
+
curl -O "https://dataverse.harvard.edu/api/access/dataset/:persistentId/?persistentId=doi:10.7910/DVN/EXAMPLE"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Query Parameters (Search)
|
|
76
|
+
|
|
77
|
+
| Parameter | Description | Example |
|
|
78
|
+
|-----------|-------------|---------|
|
|
79
|
+
| `q` | Search query | `q=voter+turnout` |
|
|
80
|
+
| `type` | Item type | `dataset`, `file`, `dataverse` |
|
|
81
|
+
| `per_page` | Results per page (max 1000) | `per_page=50` |
|
|
82
|
+
| `start` | Pagination offset | `start=50` |
|
|
83
|
+
| `sort` | Sort field | `name`, `date` |
|
|
84
|
+
| `order` | Sort order | `asc`, `desc` |
|
|
85
|
+
| `fq` | Filter query (Solr) | `fq=subject_ss:"Medicine"` |
|
|
86
|
+
|
|
87
|
+
## Response Structure
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"status": "OK",
|
|
92
|
+
"data": {
|
|
93
|
+
"q": "climate change",
|
|
94
|
+
"total_count": 2450,
|
|
95
|
+
"items": [
|
|
96
|
+
{
|
|
97
|
+
"name": "Global Temperature Dataset 2024",
|
|
98
|
+
"type": "dataset",
|
|
99
|
+
"url": "https://doi.org/10.7910/DVN/EXAMPLE",
|
|
100
|
+
"global_id": "doi:10.7910/DVN/EXAMPLE",
|
|
101
|
+
"description": "Monthly global temperature anomalies...",
|
|
102
|
+
"published_at": "2024-03-15",
|
|
103
|
+
"publisher": "Harvard Dataverse",
|
|
104
|
+
"subjects": ["Earth and Environmental Sciences"],
|
|
105
|
+
"fileCount": 12,
|
|
106
|
+
"citation": "Smith, J. (2024). Global Temperature Dataset..."
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Python Usage
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
import requests
|
|
117
|
+
|
|
118
|
+
BASE_URL = "https://dataverse.harvard.edu/api"
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def search_datasets(query: str, per_page: int = 20,
|
|
122
|
+
subject: str = None) -> list:
|
|
123
|
+
"""Search Harvard Dataverse for datasets."""
|
|
124
|
+
params = {
|
|
125
|
+
"q": query,
|
|
126
|
+
"type": "dataset",
|
|
127
|
+
"per_page": per_page,
|
|
128
|
+
"sort": "date",
|
|
129
|
+
"order": "desc",
|
|
130
|
+
}
|
|
131
|
+
if subject:
|
|
132
|
+
params["fq"] = f'subject_ss:"{subject}"'
|
|
133
|
+
|
|
134
|
+
resp = requests.get(f"{BASE_URL}/search", params=params)
|
|
135
|
+
resp.raise_for_status()
|
|
136
|
+
data = resp.json()
|
|
137
|
+
|
|
138
|
+
results = []
|
|
139
|
+
for item in data.get("data", {}).get("items", []):
|
|
140
|
+
results.append({
|
|
141
|
+
"name": item.get("name"),
|
|
142
|
+
"doi": item.get("global_id"),
|
|
143
|
+
"description": item.get("description", "")[:300],
|
|
144
|
+
"published": item.get("published_at"),
|
|
145
|
+
"subjects": item.get("subjects", []),
|
|
146
|
+
"files": item.get("fileCount", 0),
|
|
147
|
+
"url": item.get("url"),
|
|
148
|
+
})
|
|
149
|
+
return results
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def get_dataset_files(doi: str) -> list:
|
|
153
|
+
"""List files in a dataset."""
|
|
154
|
+
resp = requests.get(
|
|
155
|
+
f"{BASE_URL}/datasets/:persistentId/",
|
|
156
|
+
params={"persistentId": doi},
|
|
157
|
+
)
|
|
158
|
+
resp.raise_for_status()
|
|
159
|
+
data = resp.json().get("data", {})
|
|
160
|
+
|
|
161
|
+
files = []
|
|
162
|
+
version = data.get("latestVersion", {})
|
|
163
|
+
for f in version.get("files", []):
|
|
164
|
+
df = f.get("dataFile", {})
|
|
165
|
+
files.append({
|
|
166
|
+
"id": df.get("id"),
|
|
167
|
+
"filename": df.get("filename"),
|
|
168
|
+
"size": df.get("filesize"),
|
|
169
|
+
"content_type": df.get("contentType"),
|
|
170
|
+
"md5": df.get("md5"),
|
|
171
|
+
})
|
|
172
|
+
return files
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
def download_file(file_id: int, output_path: str):
|
|
176
|
+
"""Download a file from Dataverse."""
|
|
177
|
+
resp = requests.get(
|
|
178
|
+
f"{BASE_URL}/access/datafile/{file_id}",
|
|
179
|
+
stream=True,
|
|
180
|
+
)
|
|
181
|
+
resp.raise_for_status()
|
|
182
|
+
with open(output_path, "wb") as f:
|
|
183
|
+
for chunk in resp.iter_content(chunk_size=8192):
|
|
184
|
+
f.write(chunk)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
# Example: find social science datasets
|
|
188
|
+
datasets = search_datasets("income inequality",
|
|
189
|
+
subject="Social Sciences")
|
|
190
|
+
for ds in datasets:
|
|
191
|
+
print(f"[{ds['published']}] {ds['name']} ({ds['files']} files)")
|
|
192
|
+
print(f" DOI: {ds['doi']}")
|
|
193
|
+
|
|
194
|
+
# Example: list files in a dataset
|
|
195
|
+
# files = get_dataset_files("doi:10.7910/DVN/EXAMPLE")
|
|
196
|
+
# for f in files:
|
|
197
|
+
# print(f" {f['filename']} ({f['size']} bytes)")
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Other Dataverse Installations
|
|
201
|
+
|
|
202
|
+
| Installation | URL | Focus |
|
|
203
|
+
|-------------|-----|-------|
|
|
204
|
+
| Harvard Dataverse | dataverse.harvard.edu | Multi-discipline |
|
|
205
|
+
| UNC Dataverse | dataverse.unc.edu | Social science |
|
|
206
|
+
| AUSSDA | data.aussda.at | Austrian social science |
|
|
207
|
+
| Borealis (Canada) | borealisdata.ca | Canadian research |
|
|
208
|
+
| DataverseNL | dataverse.nl | Dutch research |
|
|
209
|
+
|
|
210
|
+
## References
|
|
211
|
+
|
|
212
|
+
- [Harvard Dataverse](https://dataverse.harvard.edu/)
|
|
213
|
+
- [Dataverse API Guide](https://guides.dataverse.org/en/latest/api/)
|
|
214
|
+
- [Dataverse Project](https://dataverse.org/)
|
|
215
|
+
- King, G. (2007). "An Introduction to the Dataverse Network." *Sociological Methods & Research* 36(2).
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hal-archive-api
|
|
3
|
+
description: "Access French and European research via the HAL open archive API"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🇫🇷"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "fulltext"
|
|
9
|
+
keywords: ["HAL", "French research", "open archive", "CNRS", "European research", "institutional repository"]
|
|
10
|
+
source: "https://api.archives-ouvertes.fr/"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# HAL Open Archive API
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
HAL (Hyper Articles en Ligne) is France's national open archive for scholarly deposits. Managed by CNRS, it hosts 4M+ full-text documents from French research institutions and international collaborators. The API provides Solr-based search with full metadata, PDF links, and OAI-PMH harvesting. Free, no authentication required.
|
|
18
|
+
|
|
19
|
+
## API Endpoints
|
|
20
|
+
|
|
21
|
+
### Search API
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Keyword search
|
|
25
|
+
curl "https://api.archives-ouvertes.fr/search/?q=machine+learning&rows=20&wt=json"
|
|
26
|
+
|
|
27
|
+
# Search specific fields
|
|
28
|
+
curl "https://api.archives-ouvertes.fr/search/?q=title_s:\"deep learning\"&wt=json"
|
|
29
|
+
|
|
30
|
+
# Filter by document type
|
|
31
|
+
curl "https://api.archives-ouvertes.fr/search/?q=neural+networks&\
|
|
32
|
+
fq=docType_s:ART&rows=20&wt=json"
|
|
33
|
+
|
|
34
|
+
# Filter by year and language
|
|
35
|
+
curl "https://api.archives-ouvertes.fr/search/?q=climate+change&\
|
|
36
|
+
fq=producedDateY_i:[2023 TO 2026]&fq=language_s:en&wt=json"
|
|
37
|
+
|
|
38
|
+
# Filter by institution
|
|
39
|
+
curl "https://api.archives-ouvertes.fr/search/?q=robotics&\
|
|
40
|
+
fq=structId_i:441569&wt=json"
|
|
41
|
+
|
|
42
|
+
# Return specific fields
|
|
43
|
+
curl "https://api.archives-ouvertes.fr/search/?q=CRISPR&\
|
|
44
|
+
fl=halId_s,title_s,authFullName_s,producedDateY_i,uri_s,files_s&wt=json"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Search Fields
|
|
48
|
+
|
|
49
|
+
| Field | Description | Example |
|
|
50
|
+
|-------|-------------|---------|
|
|
51
|
+
| `title_s` | Title | `title_s:"attention mechanism"` |
|
|
52
|
+
| `authFullName_s` | Author name | `authFullName_s:"Yann LeCun"` |
|
|
53
|
+
| `abstract_s` | Abstract | `abstract_s:transformer` |
|
|
54
|
+
| `keyword_s` | Keywords | `keyword_s:"natural language"` |
|
|
55
|
+
| `producedDateY_i` | Year | `producedDateY_i:2024` |
|
|
56
|
+
| `docType_s` | Document type | `docType_s:ART` |
|
|
57
|
+
| `language_s` | Language | `language_s:en` |
|
|
58
|
+
| `domain_s` | Domain/subject | `domain_s:info.info-ai` |
|
|
59
|
+
| `journalTitle_s` | Journal name | `journalTitle_s:"Nature"` |
|
|
60
|
+
| `structId_i` | Institution ID | Lab/university ID |
|
|
61
|
+
|
|
62
|
+
### Document Types
|
|
63
|
+
|
|
64
|
+
| Code | Type |
|
|
65
|
+
|------|------|
|
|
66
|
+
| `ART` | Journal article |
|
|
67
|
+
| `COMM` | Conference paper |
|
|
68
|
+
| `THESE` | PhD thesis |
|
|
69
|
+
| `HDR` | Habilitation thesis |
|
|
70
|
+
| `REPORT` | Report |
|
|
71
|
+
| `COUV` | Book chapter |
|
|
72
|
+
| `OUV` | Book |
|
|
73
|
+
| `POSTER` | Poster |
|
|
74
|
+
| `UNDEFINED` | Preprint/other |
|
|
75
|
+
|
|
76
|
+
### Query Parameters
|
|
77
|
+
|
|
78
|
+
| Parameter | Description |
|
|
79
|
+
|-----------|-------------|
|
|
80
|
+
| `q` | Solr query |
|
|
81
|
+
| `fq` | Filter query |
|
|
82
|
+
| `fl` | Fields to return |
|
|
83
|
+
| `rows` | Results per page (max 10000) |
|
|
84
|
+
| `start` | Pagination offset |
|
|
85
|
+
| `sort` | Sort order (e.g., `producedDateY_i desc`) |
|
|
86
|
+
| `wt` | Format: `json`, `xml`, `csv` |
|
|
87
|
+
|
|
88
|
+
## Response Structure
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"response": {
|
|
93
|
+
"numFound": 12500,
|
|
94
|
+
"start": 0,
|
|
95
|
+
"docs": [
|
|
96
|
+
{
|
|
97
|
+
"halId_s": "hal-01234567",
|
|
98
|
+
"title_s": ["Deep Learning for Climate Modeling"],
|
|
99
|
+
"authFullName_s": ["Marie Dupont", "Jean Martin"],
|
|
100
|
+
"producedDateY_i": 2024,
|
|
101
|
+
"docType_s": "ART",
|
|
102
|
+
"journalTitle_s": "Environmental Modelling",
|
|
103
|
+
"uri_s": "https://hal.science/hal-01234567",
|
|
104
|
+
"files_s": ["https://hal.science/hal-01234567/document"],
|
|
105
|
+
"domain_s": ["sde.es", "info.info-ai"],
|
|
106
|
+
"abstract_s": ["We propose a novel deep learning approach..."],
|
|
107
|
+
"language_s": ["en"]
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Python Usage
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
import requests
|
|
118
|
+
|
|
119
|
+
BASE_URL = "https://api.archives-ouvertes.fr/search/"
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def search_hal(query: str, rows: int = 20,
|
|
123
|
+
doc_type: str = None, from_year: int = None,
|
|
124
|
+
language: str = None) -> list:
|
|
125
|
+
"""Search HAL open archive."""
|
|
126
|
+
params = {
|
|
127
|
+
"q": query,
|
|
128
|
+
"wt": "json",
|
|
129
|
+
"rows": rows,
|
|
130
|
+
"fl": "halId_s,title_s,authFullName_s,producedDateY_i,"
|
|
131
|
+
"uri_s,files_s,docType_s,journalTitle_s,abstract_s",
|
|
132
|
+
"sort": "producedDateY_i desc",
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
fq = []
|
|
136
|
+
if doc_type:
|
|
137
|
+
fq.append(f"docType_s:{doc_type}")
|
|
138
|
+
if from_year:
|
|
139
|
+
fq.append(f"producedDateY_i:[{from_year} TO 2030]")
|
|
140
|
+
if language:
|
|
141
|
+
fq.append(f"language_s:{language}")
|
|
142
|
+
if fq:
|
|
143
|
+
params["fq"] = fq
|
|
144
|
+
|
|
145
|
+
resp = requests.get(BASE_URL, params=params)
|
|
146
|
+
resp.raise_for_status()
|
|
147
|
+
data = resp.json()
|
|
148
|
+
|
|
149
|
+
results = []
|
|
150
|
+
for doc in data.get("response", {}).get("docs", []):
|
|
151
|
+
title = doc.get("title_s", [""])[0] if isinstance(
|
|
152
|
+
doc.get("title_s"), list) else doc.get("title_s", "")
|
|
153
|
+
results.append({
|
|
154
|
+
"hal_id": doc.get("halId_s"),
|
|
155
|
+
"title": title,
|
|
156
|
+
"authors": doc.get("authFullName_s", []),
|
|
157
|
+
"year": doc.get("producedDateY_i"),
|
|
158
|
+
"type": doc.get("docType_s"),
|
|
159
|
+
"journal": doc.get("journalTitle_s"),
|
|
160
|
+
"url": doc.get("uri_s"),
|
|
161
|
+
"pdf": doc.get("files_s", [None])[0],
|
|
162
|
+
})
|
|
163
|
+
return results
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def search_theses(topic: str, from_year: int = 2020) -> list:
|
|
167
|
+
"""Find French PhD theses on a topic."""
|
|
168
|
+
return search_hal(topic, rows=50, doc_type="THESE",
|
|
169
|
+
from_year=from_year)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def get_institution_publications(struct_id: int,
|
|
173
|
+
from_year: int = 2023) -> list:
|
|
174
|
+
"""Get publications from a specific institution."""
|
|
175
|
+
params = {
|
|
176
|
+
"q": "*:*",
|
|
177
|
+
"fq": [f"structId_i:{struct_id}",
|
|
178
|
+
f"producedDateY_i:[{from_year} TO 2030]"],
|
|
179
|
+
"wt": "json",
|
|
180
|
+
"rows": 100,
|
|
181
|
+
"fl": "halId_s,title_s,authFullName_s,producedDateY_i,docType_s",
|
|
182
|
+
"sort": "producedDateY_i desc",
|
|
183
|
+
}
|
|
184
|
+
resp = requests.get(BASE_URL, params=params)
|
|
185
|
+
resp.raise_for_status()
|
|
186
|
+
return resp.json().get("response", {}).get("docs", [])
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
# Example: find recent French AI research
|
|
190
|
+
papers = search_hal("intelligence artificielle", from_year=2024)
|
|
191
|
+
for p in papers:
|
|
192
|
+
pdf = " [PDF]" if p["pdf"] else ""
|
|
193
|
+
print(f"[{p['year']}] {p['title']}{pdf}")
|
|
194
|
+
|
|
195
|
+
# Example: find PhD theses on NLP
|
|
196
|
+
theses = search_theses("natural language processing")
|
|
197
|
+
for t in theses:
|
|
198
|
+
print(f"{t['title']} — {', '.join(t['authors'][:2])}")
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## HAL Domains
|
|
202
|
+
|
|
203
|
+
| Code | Domain |
|
|
204
|
+
|------|--------|
|
|
205
|
+
| `info` | Computer Science |
|
|
206
|
+
| `math` | Mathematics |
|
|
207
|
+
| `phys` | Physics |
|
|
208
|
+
| `sde` | Environmental Sciences |
|
|
209
|
+
| `sdv` | Life Sciences |
|
|
210
|
+
| `shs` | Social Sciences & Humanities |
|
|
211
|
+
| `chim` | Chemistry |
|
|
212
|
+
| `spi` | Engineering Sciences |
|
|
213
|
+
|
|
214
|
+
## References
|
|
215
|
+
|
|
216
|
+
- [HAL Open Archive](https://hal.science/)
|
|
217
|
+
- [HAL API Documentation](https://api.archives-ouvertes.fr/docs)
|
|
218
|
+
- [HAL Search Guide](https://doc.archives-ouvertes.fr/en/)
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: osf-api
|
|
3
|
+
description: "Manage open science projects and preprints via the OSF REST API"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🔓"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "fulltext"
|
|
9
|
+
keywords: ["OSF", "Open Science Framework", "preprints", "open data", "reproducibility", "COS"]
|
|
10
|
+
source: "https://osf.io/"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# OSF (Open Science Framework) API
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
The Open Science Framework by the Center for Open Science provides infrastructure for the entire research lifecycle — project management, file storage, preprint hosting, and registrations. The API enables search, project creation, file management, and preprint discovery across OSF Preprints, PsyArXiv, SocArXiv, and 25+ community preprint servers. Free, no auth for read access.
|
|
18
|
+
|
|
19
|
+
## API Endpoints
|
|
20
|
+
|
|
21
|
+
### Base URL
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
https://api.osf.io/v2
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Search
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Search across all OSF content
|
|
31
|
+
curl "https://api.osf.io/v2/search/?q=replication+crisis&page[size]=20"
|
|
32
|
+
|
|
33
|
+
# Search preprints
|
|
34
|
+
curl "https://api.osf.io/v2/preprints/?filter[q]=machine+learning&page[size]=20"
|
|
35
|
+
|
|
36
|
+
# Filter by preprint provider
|
|
37
|
+
curl "https://api.osf.io/v2/preprints/?filter[provider]=psyarxiv&filter[q]=cognitive+bias"
|
|
38
|
+
|
|
39
|
+
# Search registrations (pre-registered studies)
|
|
40
|
+
curl "https://api.osf.io/v2/registrations/?filter[q]=randomized+controlled+trial"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Projects
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Get public projects
|
|
47
|
+
curl "https://api.osf.io/v2/nodes/?filter[public]=true&filter[q]=neuroimaging"
|
|
48
|
+
|
|
49
|
+
# Get project details
|
|
50
|
+
curl "https://api.osf.io/v2/nodes/{node_id}/"
|
|
51
|
+
|
|
52
|
+
# Get project files
|
|
53
|
+
curl "https://api.osf.io/v2/nodes/{node_id}/files/"
|
|
54
|
+
|
|
55
|
+
# Get project contributors
|
|
56
|
+
curl "https://api.osf.io/v2/nodes/{node_id}/contributors/"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Preprint Providers
|
|
60
|
+
|
|
61
|
+
| Provider | Filter | Disciplines |
|
|
62
|
+
|----------|--------|-------------|
|
|
63
|
+
| OSF Preprints | `osf` | Multidisciplinary |
|
|
64
|
+
| PsyArXiv | `psyarxiv` | Psychology |
|
|
65
|
+
| SocArXiv | `socarxiv` | Social sciences |
|
|
66
|
+
| EarthArXiv | `eartharxiv` | Earth sciences |
|
|
67
|
+
| BioHackrXiv | `biohackrxiv` | Bioinformatics |
|
|
68
|
+
| engrXiv | `engrxiv` | Engineering |
|
|
69
|
+
| MedArXiv | `medarxiv` | Medical sciences |
|
|
70
|
+
| NutriXiv | `nutrixiv` | Nutrition |
|
|
71
|
+
|
|
72
|
+
### Query Parameters
|
|
73
|
+
|
|
74
|
+
| Parameter | Description | Example |
|
|
75
|
+
|-----------|-------------|---------|
|
|
76
|
+
| `filter[q]` | Text search | `filter[q]=open+data` |
|
|
77
|
+
| `filter[provider]` | Preprint server | `filter[provider]=psyarxiv` |
|
|
78
|
+
| `filter[subjects]` | Subject filter | Subject taxonomy ID |
|
|
79
|
+
| `filter[date_created]` | Date filter | `filter[date_created][gte]=2024-01-01` |
|
|
80
|
+
| `page[size]` | Results per page (max 100) | `page[size]=50` |
|
|
81
|
+
| `page` | Page number | `page=2` |
|
|
82
|
+
|
|
83
|
+
## Response Structure (Preprint)
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"data": [
|
|
88
|
+
{
|
|
89
|
+
"id": "abc12",
|
|
90
|
+
"type": "preprints",
|
|
91
|
+
"attributes": {
|
|
92
|
+
"title": "Replication of the Ego Depletion Effect",
|
|
93
|
+
"description": "We attempted to replicate...",
|
|
94
|
+
"date_created": "2024-06-15T10:00:00Z",
|
|
95
|
+
"date_published": "2024-06-16T08:00:00Z",
|
|
96
|
+
"doi": "10.31234/osf.io/abc12",
|
|
97
|
+
"is_published": true,
|
|
98
|
+
"subjects": [["Social and Behavioral Sciences", "Psychology"]],
|
|
99
|
+
"tags": ["replication", "ego depletion"]
|
|
100
|
+
},
|
|
101
|
+
"relationships": {
|
|
102
|
+
"contributors": {"links": {"related": {"href": "..."}}},
|
|
103
|
+
"primary_file": {"links": {"related": {"href": "..."}}}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Python Usage
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
import requests
|
|
114
|
+
|
|
115
|
+
BASE_URL = "https://api.osf.io/v2"
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def search_preprints(query: str, provider: str = None,
|
|
119
|
+
page_size: int = 20) -> list:
|
|
120
|
+
"""Search OSF preprints across providers."""
|
|
121
|
+
params = {
|
|
122
|
+
"filter[q]": query,
|
|
123
|
+
"page[size]": page_size,
|
|
124
|
+
}
|
|
125
|
+
if provider:
|
|
126
|
+
params["filter[provider]"] = provider
|
|
127
|
+
|
|
128
|
+
resp = requests.get(f"{BASE_URL}/preprints/", params=params)
|
|
129
|
+
resp.raise_for_status()
|
|
130
|
+
data = resp.json()
|
|
131
|
+
|
|
132
|
+
results = []
|
|
133
|
+
for item in data.get("data", []):
|
|
134
|
+
attrs = item.get("attributes", {})
|
|
135
|
+
results.append({
|
|
136
|
+
"id": item.get("id"),
|
|
137
|
+
"title": attrs.get("title"),
|
|
138
|
+
"description": (attrs.get("description") or "")[:300],
|
|
139
|
+
"doi": attrs.get("doi"),
|
|
140
|
+
"date": attrs.get("date_published", "")[:10],
|
|
141
|
+
"tags": attrs.get("tags", []),
|
|
142
|
+
"url": f"https://osf.io/{item.get('id')}/",
|
|
143
|
+
})
|
|
144
|
+
return results
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def search_registrations(query: str,
|
|
148
|
+
page_size: int = 20) -> list:
|
|
149
|
+
"""Search pre-registered studies on OSF."""
|
|
150
|
+
params = {
|
|
151
|
+
"filter[q]": query,
|
|
152
|
+
"page[size]": page_size,
|
|
153
|
+
}
|
|
154
|
+
resp = requests.get(f"{BASE_URL}/registrations/", params=params)
|
|
155
|
+
resp.raise_for_status()
|
|
156
|
+
data = resp.json()
|
|
157
|
+
|
|
158
|
+
results = []
|
|
159
|
+
for item in data.get("data", []):
|
|
160
|
+
attrs = item.get("attributes", {})
|
|
161
|
+
results.append({
|
|
162
|
+
"id": item.get("id"),
|
|
163
|
+
"title": attrs.get("title"),
|
|
164
|
+
"description": (attrs.get("description") or "")[:300],
|
|
165
|
+
"date_registered": attrs.get("date_registered", "")[:10],
|
|
166
|
+
"registration_schema": attrs.get("registration_supplement"),
|
|
167
|
+
})
|
|
168
|
+
return results
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def get_project_files(node_id: str) -> list:
|
|
172
|
+
"""List files in an OSF project."""
|
|
173
|
+
resp = requests.get(f"{BASE_URL}/nodes/{node_id}/files/")
|
|
174
|
+
resp.raise_for_status()
|
|
175
|
+
data = resp.json()
|
|
176
|
+
|
|
177
|
+
providers = []
|
|
178
|
+
for item in data.get("data", []):
|
|
179
|
+
attrs = item.get("attributes", {})
|
|
180
|
+
providers.append({
|
|
181
|
+
"provider": attrs.get("provider"),
|
|
182
|
+
"name": attrs.get("name"),
|
|
183
|
+
})
|
|
184
|
+
return providers
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
# Example: search psychology preprints
|
|
188
|
+
preprints = search_preprints("cognitive load", provider="psyarxiv")
|
|
189
|
+
for p in preprints[:5]:
|
|
190
|
+
print(f"[{p['date']}] {p['title']}")
|
|
191
|
+
print(f" DOI: {p['doi']}")
|
|
192
|
+
|
|
193
|
+
# Example: find pre-registered clinical trials
|
|
194
|
+
regs = search_registrations("randomized placebo")
|
|
195
|
+
for r in regs[:5]:
|
|
196
|
+
print(f"[{r['date_registered']}] {r['title']}")
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Use Cases
|
|
200
|
+
|
|
201
|
+
1. **Preprint discovery**: Search across 25+ preprint servers
|
|
202
|
+
2. **Pre-registration search**: Find registered study protocols
|
|
203
|
+
3. **Open data access**: Download shared research datasets
|
|
204
|
+
4. **Reproducibility**: Access materials, data, and code for published studies
|
|
205
|
+
5. **Project management**: Programmatic project and file management
|
|
206
|
+
|
|
207
|
+
## References
|
|
208
|
+
|
|
209
|
+
- [OSF](https://osf.io/)
|
|
210
|
+
- [OSF API Documentation](https://developer.osf.io/)
|
|
211
|
+
- [OSF Preprints](https://osf.io/preprints/)
|
|
212
|
+
- [Center for Open Science](https://cos.io/)
|