@wentorai/research-plugins 1.1.0 → 1.2.1
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
- package/src/tools/arxiv.ts +17 -10
- package/src/tools/crossref.ts +17 -10
- package/src/tools/openalex.ts +25 -17
- package/src/tools/pubmed.ts +19 -12
- package/src/tools/semantic-scholar.ts +20 -12
- package/src/tools/unpaywall.ts +12 -6
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: papers-chat-guide
|
|
3
|
+
description: "Conversational interface for querying and discussing papers"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "💬"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "search"
|
|
9
|
+
keywords: ["paper chat", "conversational search", "paper QA", "document QA", "RAG papers", "literature chat"]
|
|
10
|
+
source: "https://github.com/paperswithcode/galai"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Papers Chat Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Papers Chat systems provide conversational interfaces for querying, discussing, and understanding academic papers. Instead of keyword searches, researchers ask natural language questions and get answers grounded in specific papers with citations. This guide covers building and using RAG-based paper chat systems — from local document Q&A to multi-paper discussion interfaces. Useful for literature comprehension, paper comparison, and research exploration.
|
|
18
|
+
|
|
19
|
+
## Architecture
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
User Question
|
|
23
|
+
↓
|
|
24
|
+
Query Understanding (expand, decompose)
|
|
25
|
+
↓
|
|
26
|
+
Retrieval (vector search over paper chunks)
|
|
27
|
+
↓
|
|
28
|
+
Re-ranking (cross-encoder relevance scoring)
|
|
29
|
+
↓
|
|
30
|
+
Answer Generation (grounded in retrieved passages)
|
|
31
|
+
↓
|
|
32
|
+
Response + Citations + Follow-up Suggestions
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Local Paper Chat
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from papers_chat import PaperChat
|
|
39
|
+
|
|
40
|
+
chat = PaperChat(
|
|
41
|
+
llm_provider="anthropic",
|
|
42
|
+
embedding_model="all-MiniLM-L6-v2",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# Index papers
|
|
46
|
+
chat.add_papers([
|
|
47
|
+
"papers/attention_is_all_you_need.pdf",
|
|
48
|
+
"papers/bert.pdf",
|
|
49
|
+
"papers/gpt3.pdf",
|
|
50
|
+
])
|
|
51
|
+
|
|
52
|
+
# Ask questions
|
|
53
|
+
response = chat.ask(
|
|
54
|
+
"How does the attention mechanism in Transformers differ "
|
|
55
|
+
"from the attention used in earlier seq2seq models?"
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
print(response.answer)
|
|
59
|
+
for cite in response.citations:
|
|
60
|
+
print(f" [{cite.paper}] p.{cite.page}: {cite.excerpt[:80]}...")
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Multi-Paper Discussion
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
# Compare across papers
|
|
67
|
+
response = chat.ask(
|
|
68
|
+
"Compare the pre-training objectives of BERT and GPT-3. "
|
|
69
|
+
"What are the trade-offs?"
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
# Follow-up in conversation
|
|
73
|
+
response = chat.follow_up(
|
|
74
|
+
"Which approach works better for few-shot learning?"
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
# Paper-specific questions
|
|
78
|
+
response = chat.ask(
|
|
79
|
+
"What is the computational complexity of multi-head attention?",
|
|
80
|
+
scope=["attention_is_all_you_need.pdf"],
|
|
81
|
+
)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Building a Paper Index
|
|
85
|
+
|
|
86
|
+
```python
|
|
87
|
+
from papers_chat import PaperIndex
|
|
88
|
+
|
|
89
|
+
index = PaperIndex(
|
|
90
|
+
embedding_model="all-MiniLM-L6-v2",
|
|
91
|
+
chunk_size=512,
|
|
92
|
+
chunk_overlap=64,
|
|
93
|
+
storage_path="./paper_index",
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# Add individual paper
|
|
97
|
+
index.add_paper(
|
|
98
|
+
path="paper.pdf",
|
|
99
|
+
metadata={
|
|
100
|
+
"title": "Attention Is All You Need",
|
|
101
|
+
"authors": ["Vaswani et al."],
|
|
102
|
+
"year": 2017,
|
|
103
|
+
"venue": "NeurIPS",
|
|
104
|
+
},
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
# Add directory of papers
|
|
108
|
+
index.add_directory(
|
|
109
|
+
"papers/",
|
|
110
|
+
extract_metadata=True, # Auto-extract from PDF
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
# Search
|
|
114
|
+
results = index.search("positional encoding", top_k=5)
|
|
115
|
+
for r in results:
|
|
116
|
+
print(f"[{r.paper_title}] (score: {r.score:.3f})")
|
|
117
|
+
print(f" {r.text[:120]}...")
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## RAG Pipeline Configuration
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
from papers_chat import RAGConfig
|
|
124
|
+
|
|
125
|
+
chat = PaperChat(
|
|
126
|
+
llm_provider="anthropic",
|
|
127
|
+
rag_config=RAGConfig(
|
|
128
|
+
# Retrieval
|
|
129
|
+
retrieval_top_k=20,
|
|
130
|
+
rerank_top_k=5,
|
|
131
|
+
reranker="cross-encoder/ms-marco-MiniLM-L-6-v2",
|
|
132
|
+
|
|
133
|
+
# Chunking
|
|
134
|
+
chunk_size=512,
|
|
135
|
+
chunk_overlap=64,
|
|
136
|
+
chunk_by="paragraph", # paragraph, sentence, fixed
|
|
137
|
+
|
|
138
|
+
# Generation
|
|
139
|
+
citation_style="inline", # inline, footnote, endnote
|
|
140
|
+
max_answer_length=500,
|
|
141
|
+
include_quotes=True,
|
|
142
|
+
),
|
|
143
|
+
)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Batch Question Answering
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
# Process a list of research questions
|
|
150
|
+
questions = [
|
|
151
|
+
"What datasets are used for evaluating language models?",
|
|
152
|
+
"How is perplexity calculated and what are its limitations?",
|
|
153
|
+
"What are the main approaches to reducing model size?",
|
|
154
|
+
]
|
|
155
|
+
|
|
156
|
+
results = chat.batch_ask(questions)
|
|
157
|
+
|
|
158
|
+
for q, r in zip(questions, results):
|
|
159
|
+
print(f"Q: {q}")
|
|
160
|
+
print(f"A: {r.answer[:200]}...")
|
|
161
|
+
print(f"Sources: {[c.paper for c in r.citations]}")
|
|
162
|
+
print()
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Table and Figure Extraction
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
# Query specific paper elements
|
|
169
|
+
response = chat.ask(
|
|
170
|
+
"What are the BLEU scores reported in Table 2?",
|
|
171
|
+
scope=["attention_is_all_you_need.pdf"],
|
|
172
|
+
include_tables=True,
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
# Extract all tables from a paper
|
|
176
|
+
tables = chat.extract_tables("paper.pdf")
|
|
177
|
+
for table in tables:
|
|
178
|
+
print(f"Table {table.number}: {table.caption}")
|
|
179
|
+
print(table.to_dataframe())
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Use Cases
|
|
183
|
+
|
|
184
|
+
1. **Literature comprehension**: Ask clarifying questions about papers
|
|
185
|
+
2. **Paper comparison**: Cross-paper analysis and synthesis
|
|
186
|
+
3. **Research exploration**: Discover connections across literature
|
|
187
|
+
4. **Study groups**: Collaborative paper discussion
|
|
188
|
+
5. **Quick reference**: Find specific results, methods, or citations
|
|
189
|
+
|
|
190
|
+
## References
|
|
191
|
+
|
|
192
|
+
- [Galactica](https://github.com/paperswithcode/galai) — Language model for science
|
|
193
|
+
- [LangChain RAG](https://python.langchain.com/docs/use_cases/question_answering/)
|
|
194
|
+
- [LlamaIndex](https://www.llamaindex.ai/) — Data framework for LLM applications
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plos-open-access-api
|
|
3
|
+
description: "Search PLOS open access journals with full-text Solr-powered API"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🔬"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "search"
|
|
9
|
+
keywords: ["PLOS", "open access", "biomedical", "Solr search", "full text", "peer reviewed"]
|
|
10
|
+
source: "https://api.plos.org/"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PLOS Search API
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
PLOS (Public Library of Science) publishes 7 peer-reviewed open access journals covering biology, medicine, genetics, and more. The Search API provides Solr-powered full-text search across all PLOS content — 350K+ articles, all freely available under CC-BY licenses. No authentication required. Particularly valuable for biomedical and life sciences systematic reviews.
|
|
18
|
+
|
|
19
|
+
## API Endpoint
|
|
20
|
+
|
|
21
|
+
### Base URL
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
https://api.plos.org/search
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Search Examples
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Basic keyword search
|
|
31
|
+
curl "https://api.plos.org/search?q=CRISPR+gene+editing&rows=20&wt=json"
|
|
32
|
+
|
|
33
|
+
# Search in specific fields
|
|
34
|
+
curl "https://api.plos.org/search?q=title:\"machine learning\"+AND+abstract:biomarker&wt=json"
|
|
35
|
+
|
|
36
|
+
# Filter by journal
|
|
37
|
+
curl "https://api.plos.org/search?q=microbiome&fq=journal:\"PLOS ONE\"&wt=json"
|
|
38
|
+
|
|
39
|
+
# Filter by date range
|
|
40
|
+
curl "https://api.plos.org/search?q=COVID-19+vaccine&\
|
|
41
|
+
fq=publication_date:[2024-01-01T00:00:00Z TO 2026-12-31T23:59:59Z]&wt=json"
|
|
42
|
+
|
|
43
|
+
# Filter by article type
|
|
44
|
+
curl "https://api.plos.org/search?q=climate+change&fq=article_type:\"Research Article\"&wt=json"
|
|
45
|
+
|
|
46
|
+
# Return specific fields only
|
|
47
|
+
curl "https://api.plos.org/search?q=deep+learning&fl=id,title,author,publication_date,score&wt=json"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Search Fields
|
|
51
|
+
|
|
52
|
+
| Field | Description | Example |
|
|
53
|
+
|-------|-------------|---------|
|
|
54
|
+
| `title` | Article title | `title:"attention mechanism"` |
|
|
55
|
+
| `abstract` | Abstract text | `abstract:neural+network` |
|
|
56
|
+
| `body` | Full text body | `body:transformer` |
|
|
57
|
+
| `author` | Author name | `author:"Vaswani"` |
|
|
58
|
+
| `subject` | Subject area | `subject:"Neuroscience"` |
|
|
59
|
+
| `journal` | Journal name | `journal:"PLOS Medicine"` |
|
|
60
|
+
|
|
61
|
+
### Query Parameters
|
|
62
|
+
|
|
63
|
+
| Parameter | Description | Default |
|
|
64
|
+
|-----------|-------------|---------|
|
|
65
|
+
| `q` | Solr query (supports AND/OR/NOT) | Required |
|
|
66
|
+
| `fq` | Filter query (narrows without affecting score) | None |
|
|
67
|
+
| `fl` | Fields to return (comma-separated) | All |
|
|
68
|
+
| `rows` | Results per page (max 999) | 10 |
|
|
69
|
+
| `start` | Pagination offset | 0 |
|
|
70
|
+
| `sort` | Sort order | `score desc` |
|
|
71
|
+
| `wt` | Format: `json` or `xml` | `xml` |
|
|
72
|
+
| `hl` | Enable highlighting | `false` |
|
|
73
|
+
|
|
74
|
+
### Available Return Fields
|
|
75
|
+
|
|
76
|
+
| Field | Type | Description |
|
|
77
|
+
|-------|------|-------------|
|
|
78
|
+
| `id` | string | DOI |
|
|
79
|
+
| `title` | string | Article title |
|
|
80
|
+
| `author` | array | Author names |
|
|
81
|
+
| `abstract` | string | Abstract text |
|
|
82
|
+
| `body` | string | Full text (large) |
|
|
83
|
+
| `publication_date` | date | Publication date |
|
|
84
|
+
| `journal` | string | Journal name |
|
|
85
|
+
| `article_type` | string | Article type |
|
|
86
|
+
| `subject` | array | Subject categories |
|
|
87
|
+
| `score` | float | Relevance score |
|
|
88
|
+
|
|
89
|
+
### PLOS Journals
|
|
90
|
+
|
|
91
|
+
| Journal | Scope |
|
|
92
|
+
|---------|-------|
|
|
93
|
+
| PLOS ONE | Multidisciplinary |
|
|
94
|
+
| PLOS Biology | Life sciences |
|
|
95
|
+
| PLOS Medicine | Clinical medicine |
|
|
96
|
+
| PLOS Genetics | Genetics and genomics |
|
|
97
|
+
| PLOS Computational Biology | Computational biology |
|
|
98
|
+
| PLOS Pathogens | Infectious disease |
|
|
99
|
+
| PLOS Neglected Tropical Diseases | Tropical medicine |
|
|
100
|
+
|
|
101
|
+
## Python Usage
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
import requests
|
|
105
|
+
|
|
106
|
+
BASE_URL = "https://api.plos.org/search"
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def search_plos(query: str, rows: int = 20,
|
|
110
|
+
journal: str = None,
|
|
111
|
+
from_date: str = None,
|
|
112
|
+
fields: str = None) -> list:
|
|
113
|
+
"""Search PLOS open access articles."""
|
|
114
|
+
params = {
|
|
115
|
+
"q": query,
|
|
116
|
+
"wt": "json",
|
|
117
|
+
"rows": rows,
|
|
118
|
+
"fl": fields or "id,title,author,abstract,publication_date,journal,score",
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
fq_parts = []
|
|
122
|
+
if journal:
|
|
123
|
+
fq_parts.append(f'journal:"{journal}"')
|
|
124
|
+
if from_date:
|
|
125
|
+
fq_parts.append(
|
|
126
|
+
f"publication_date:[{from_date}T00:00:00Z TO NOW]"
|
|
127
|
+
)
|
|
128
|
+
if fq_parts:
|
|
129
|
+
params["fq"] = " AND ".join(fq_parts)
|
|
130
|
+
|
|
131
|
+
resp = requests.get(BASE_URL, params=params)
|
|
132
|
+
resp.raise_for_status()
|
|
133
|
+
data = resp.json()
|
|
134
|
+
|
|
135
|
+
results = []
|
|
136
|
+
for doc in data.get("response", {}).get("docs", []):
|
|
137
|
+
results.append({
|
|
138
|
+
"doi": doc.get("id"),
|
|
139
|
+
"title": doc.get("title"),
|
|
140
|
+
"authors": doc.get("author", []),
|
|
141
|
+
"date": doc.get("publication_date", "")[:10],
|
|
142
|
+
"journal": doc.get("journal"),
|
|
143
|
+
"abstract": (doc.get("abstract", [""])[0])[:300]
|
|
144
|
+
if isinstance(doc.get("abstract"), list)
|
|
145
|
+
else (doc.get("abstract", ""))[:300],
|
|
146
|
+
})
|
|
147
|
+
return results
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def get_full_text(doi: str) -> str:
|
|
151
|
+
"""Retrieve full text body of a PLOS article."""
|
|
152
|
+
params = {
|
|
153
|
+
"q": f'id:"{doi}"',
|
|
154
|
+
"fl": "body",
|
|
155
|
+
"wt": "json",
|
|
156
|
+
}
|
|
157
|
+
resp = requests.get(BASE_URL, params=params)
|
|
158
|
+
resp.raise_for_status()
|
|
159
|
+
docs = resp.json().get("response", {}).get("docs", [])
|
|
160
|
+
return docs[0].get("body", "") if docs else ""
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# Example: search PLOS Computational Biology
|
|
164
|
+
papers = search_plos(
|
|
165
|
+
"protein structure prediction",
|
|
166
|
+
journal="PLOS Computational Biology",
|
|
167
|
+
from_date="2024-01-01",
|
|
168
|
+
)
|
|
169
|
+
for p in papers:
|
|
170
|
+
print(f"[{p['date']}] {p['title']}")
|
|
171
|
+
print(f" DOI: {p['doi']}")
|
|
172
|
+
|
|
173
|
+
# Example: full-text search across all PLOS
|
|
174
|
+
papers = search_plos("body:reinforcement+learning AND title:robot")
|
|
175
|
+
for p in papers:
|
|
176
|
+
print(f"{p['title']} — {p['journal']}")
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Advanced Solr Queries
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# Phrase proximity search (words within 5 of each other)
|
|
183
|
+
q=abstract:"machine learning"~5
|
|
184
|
+
|
|
185
|
+
# Boosted field search
|
|
186
|
+
q=title:"CRISPR"^2 OR abstract:"CRISPR"
|
|
187
|
+
|
|
188
|
+
# Wildcard search
|
|
189
|
+
q=title:neuro*
|
|
190
|
+
|
|
191
|
+
# Range query on dates
|
|
192
|
+
fq=publication_date:[2024-01-01T00:00:00Z TO 2024-12-31T23:59:59Z]
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Rate Limits
|
|
196
|
+
|
|
197
|
+
No formal rate limit, but PLOS requests courtesy delays of 1 request per second for bulk operations. No authentication needed.
|
|
198
|
+
|
|
199
|
+
## References
|
|
200
|
+
|
|
201
|
+
- [PLOS API Documentation](https://api.plos.org/)
|
|
202
|
+
- [PLOS Search Tips](https://journals.plos.org/plosone/s/search)
|
|
203
|
+
- [Solr Query Syntax](https://solr.apache.org/guide/solr/latest/query-guide/standard-query-parser.html)
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scielo-api
|
|
3
|
+
description: "Access Latin American and developing world research via SciELO API"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🌎"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "search"
|
|
9
|
+
keywords: ["SciELO", "Latin America", "open access journals", "developing countries", "Brazilian research", "Spanish research"]
|
|
10
|
+
source: "https://wiki.scielo.org/"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# SciELO API
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
SciELO (Scientific Electronic Library Online) is the primary open access platform for scholarly journals in Latin America, the Caribbean, Spain, Portugal, and South Africa. It indexes 1,800+ peer-reviewed journals and 900K+ articles, many not indexed elsewhere. All content is open access. The API provides article search, journal metadata, and bibliometric indicators. Free, no authentication required.
|
|
18
|
+
|
|
19
|
+
## API Endpoints
|
|
20
|
+
|
|
21
|
+
### ArticleMeta API
|
|
22
|
+
|
|
23
|
+
Search and retrieve articles:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Search articles by keyword
|
|
27
|
+
curl "https://articlemeta.scielo.org/api/v1/article/?collection=scl&q=machine+learning"
|
|
28
|
+
|
|
29
|
+
# Get article by PID (SciELO identifier)
|
|
30
|
+
curl "https://articlemeta.scielo.org/api/v1/article/?code=S0100-204X2024000100001"
|
|
31
|
+
|
|
32
|
+
# Filter by collection (country)
|
|
33
|
+
curl "https://articlemeta.scielo.org/api/v1/article/?collection=esp&q=climate+change"
|
|
34
|
+
|
|
35
|
+
# Filter by journal ISSN
|
|
36
|
+
curl "https://articlemeta.scielo.org/api/v1/article/?issn=0100-204X&from_date=2024-01-01"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Collection Codes
|
|
40
|
+
|
|
41
|
+
| Code | Country/Region |
|
|
42
|
+
|------|---------------|
|
|
43
|
+
| `scl` | Brazil |
|
|
44
|
+
| `esp` | Spain |
|
|
45
|
+
| `mex` | Mexico |
|
|
46
|
+
| `col` | Colombia |
|
|
47
|
+
| `chl` | Chile |
|
|
48
|
+
| `arg` | Argentina |
|
|
49
|
+
| `cub` | Cuba |
|
|
50
|
+
| `ven` | Venezuela |
|
|
51
|
+
| `prt` | Portugal |
|
|
52
|
+
| `zaf` | South Africa |
|
|
53
|
+
|
|
54
|
+
### Journal Metadata
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# List journals in a collection
|
|
58
|
+
curl "https://articlemeta.scielo.org/api/v1/journal/?collection=scl"
|
|
59
|
+
|
|
60
|
+
# Get journal by ISSN
|
|
61
|
+
curl "https://articlemeta.scielo.org/api/v1/journal/?issn=0100-204X"
|
|
62
|
+
|
|
63
|
+
# Journal indicators
|
|
64
|
+
curl "https://analytics.scielo.org/api/v1/journal/?issn=0100-204X"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### SciELO Search API
|
|
68
|
+
|
|
69
|
+
Full-text search with facets:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Full-text search
|
|
73
|
+
curl "https://search.scielo.org/?q=biodiversity+conservation&format=json&count=20"
|
|
74
|
+
|
|
75
|
+
# Filter by subject area
|
|
76
|
+
curl "https://search.scielo.org/?q=neural+networks&filter[subject_area]=Computer+Science&format=json"
|
|
77
|
+
|
|
78
|
+
# Filter by year range
|
|
79
|
+
curl "https://search.scielo.org/?q=CRISPR&filter[year_cluster]=2023-2026&format=json"
|
|
80
|
+
|
|
81
|
+
# Filter by language
|
|
82
|
+
curl "https://search.scielo.org/?q=epidemiology&filter[la]=en&format=json"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Query Parameters
|
|
86
|
+
|
|
87
|
+
| Parameter | Description | Example |
|
|
88
|
+
|-----------|-------------|---------|
|
|
89
|
+
| `q` | Free-text query | `q=tropical+ecology` |
|
|
90
|
+
| `collection` | Country code | `collection=scl` |
|
|
91
|
+
| `issn` | Journal ISSN | `issn=0100-204X` |
|
|
92
|
+
| `from_date` | Articles from date | `from_date=2024-01-01` |
|
|
93
|
+
| `until_date` | Articles until date | `until_date=2026-12-31` |
|
|
94
|
+
| `format` | Response format | `json`, `xml` |
|
|
95
|
+
| `count` | Results per page | `count=50` |
|
|
96
|
+
| `offset` | Pagination offset | `offset=20` |
|
|
97
|
+
|
|
98
|
+
## Python Usage
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
import requests
|
|
102
|
+
|
|
103
|
+
ARTICLE_API = "https://articlemeta.scielo.org/api/v1"
|
|
104
|
+
SEARCH_API = "https://search.scielo.org"
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def search_scielo(query: str, collection: str = None,
|
|
108
|
+
count: int = 20) -> list:
|
|
109
|
+
"""Search SciELO articles."""
|
|
110
|
+
params = {"q": query, "format": "json", "count": count}
|
|
111
|
+
if collection:
|
|
112
|
+
params["collection"] = collection
|
|
113
|
+
|
|
114
|
+
resp = requests.get(f"{SEARCH_API}/", params=params)
|
|
115
|
+
resp.raise_for_status()
|
|
116
|
+
data = resp.json()
|
|
117
|
+
|
|
118
|
+
results = []
|
|
119
|
+
for doc in data.get("docs", data.get("results", [])):
|
|
120
|
+
results.append({
|
|
121
|
+
"title": doc.get("title", {}).get("en", doc.get("title", "")),
|
|
122
|
+
"authors": doc.get("authors", []),
|
|
123
|
+
"journal": doc.get("journal_title", ""),
|
|
124
|
+
"year": doc.get("publication_year", ""),
|
|
125
|
+
"doi": doc.get("doi", ""),
|
|
126
|
+
"pid": doc.get("pid", ""),
|
|
127
|
+
"language": doc.get("la", []),
|
|
128
|
+
"url": f"https://scielo.org/article/{doc.get('pid', '')}",
|
|
129
|
+
})
|
|
130
|
+
return results
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def get_article(pid: str) -> dict:
|
|
134
|
+
"""Get full article metadata by SciELO PID."""
|
|
135
|
+
resp = requests.get(
|
|
136
|
+
f"{ARTICLE_API}/article/",
|
|
137
|
+
params={"code": pid, "format": "json"},
|
|
138
|
+
)
|
|
139
|
+
resp.raise_for_status()
|
|
140
|
+
return resp.json()
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def list_journals(collection: str = "scl") -> list:
|
|
144
|
+
"""List journals in a SciELO collection."""
|
|
145
|
+
resp = requests.get(
|
|
146
|
+
f"{ARTICLE_API}/journal/",
|
|
147
|
+
params={"collection": collection, "format": "json"},
|
|
148
|
+
)
|
|
149
|
+
resp.raise_for_status()
|
|
150
|
+
return resp.json()
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
# Example: find Brazilian ecology research
|
|
154
|
+
papers = search_scielo("Amazon deforestation biodiversity", collection="scl")
|
|
155
|
+
for p in papers:
|
|
156
|
+
print(f"[{p['year']}] {p['title']} — {p['journal']}")
|
|
157
|
+
|
|
158
|
+
# Example: find Spanish medical research
|
|
159
|
+
papers = search_scielo("diabetes treatment", collection="esp")
|
|
160
|
+
for p in papers:
|
|
161
|
+
print(f"{p['title']} (DOI: {p['doi']})")
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Subject Areas Covered
|
|
165
|
+
|
|
166
|
+
- Agricultural Sciences, Biological Sciences, Health Sciences
|
|
167
|
+
- Engineering, Exact Sciences, Earth Sciences
|
|
168
|
+
- Human Sciences, Social Sciences, Linguistics/Arts
|
|
169
|
+
|
|
170
|
+
## Unique Value
|
|
171
|
+
|
|
172
|
+
- **Regional focus**: Primary index for Latin American and Iberian research
|
|
173
|
+
- **Language diversity**: Portuguese, Spanish, English content
|
|
174
|
+
- **100% open access**: All indexed content freely available
|
|
175
|
+
- **Underrepresented research**: Many journals not in Scopus/WoS
|
|
176
|
+
|
|
177
|
+
## References
|
|
178
|
+
|
|
179
|
+
- [SciELO](https://scielo.org/)
|
|
180
|
+
- [SciELO Analytics](https://analytics.scielo.org/)
|
|
181
|
+
- [ArticleMeta API](https://articlemeta.scielo.org/)
|
|
182
|
+
- [SciELO Developer Wiki](https://wiki.scielo.org/)
|