@wentorai/research-plugins 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/curated/analysis/README.md +64 -0
- package/curated/domains/README.md +104 -0
- package/curated/literature/README.md +53 -0
- package/curated/research/README.md +62 -0
- package/curated/tools/README.md +87 -0
- package/curated/writing/README.md +61 -0
- package/index.ts +39 -0
- package/mcp-configs/academic-db/ChatSpatial.json +17 -0
- package/mcp-configs/academic-db/academia-mcp.json +17 -0
- package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
- package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
- package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
- package/mcp-configs/academic-db/all-in-mcp.json +17 -0
- package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
- package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
- package/mcp-configs/academic-db/biomcp.json +17 -0
- package/mcp-configs/academic-db/biothings-mcp.json +17 -0
- package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
- package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
- package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
- package/mcp-configs/academic-db/dicom-mcp.json +17 -0
- package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp.json +19 -0
- package/mcp-configs/academic-db/gget-mcp.json +17 -0
- package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
- package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
- package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
- package/mcp-configs/academic-db/lex.json +17 -0
- package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
- package/mcp-configs/ai-platform/ai-counsel.json +17 -0
- package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
- package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
- package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
- package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
- package/mcp-configs/browser/decipher-research-agent.json +17 -0
- package/mcp-configs/browser/deep-research.json +17 -0
- package/mcp-configs/browser/everything-claude-code.json +17 -0
- package/mcp-configs/browser/gpt-researcher.json +17 -0
- package/mcp-configs/browser/heurist-agent-framework.json +17 -0
- package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
- package/mcp-configs/data-platform/context-keeper.json +17 -0
- package/mcp-configs/data-platform/context7.json +19 -0
- package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
- package/mcp-configs/data-platform/email-mcp.json +17 -0
- package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
- package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
- package/mcp-configs/note-knowledge/agent-memory.json +17 -0
- package/mcp-configs/note-knowledge/aimemo.json +17 -0
- package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
- package/mcp-configs/note-knowledge/cognee.json +17 -0
- package/mcp-configs/note-knowledge/context-awesome.json +17 -0
- package/mcp-configs/note-knowledge/context-mcp.json +17 -0
- package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
- package/mcp-configs/note-knowledge/cortex.json +17 -0
- package/mcp-configs/note-knowledge/devrag.json +17 -0
- package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
- package/mcp-configs/note-knowledge/engram.json +17 -0
- package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
- package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
- package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
- package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
- package/mcp-configs/reference-mgr/chiken.json +17 -0
- package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
- package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
- package/mcp-configs/registry.json +447 -0
- package/openclaw.plugin.json +21 -0
- package/package.json +61 -0
- package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
- package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
- package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
- package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
- package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
- package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
- package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
- package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
- package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
- package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
- package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
- package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
- package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
- package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
- package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
- package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
- package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
- package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
- package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
- package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
- package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
- package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
- package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
- package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
- package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
- package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
- package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
- package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
- package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
- package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
- package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
- package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
- package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
- package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
- package/skills/domains/cs/dblp-api/SKILL.md +129 -0
- package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
- package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
- package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
- package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
- package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
- package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
- package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
- package/skills/domains/economics/fred-api/SKILL.md +189 -0
- package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
- package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
- package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
- package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
- package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
- package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
- package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
- package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
- package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
- package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
- package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
- package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
- package/skills/domains/math/oeis-api/SKILL.md +158 -0
- package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
- package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
- package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
- package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
- package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
- package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
- package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
- package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
- package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
- package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
- package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
- package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
- package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
- package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
- package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
- package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
- package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
- package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
- package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
- package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
- package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
- package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
- package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
- package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
- package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
- package/skills/literature/search/arxiv-api/SKILL.md +95 -0
- package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
- package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
- package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
- package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
- package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
- package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
- package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
- package/skills/literature/search/openalex-api/SKILL.md +134 -0
- package/skills/literature/search/pubmed-api/SKILL.md +130 -0
- package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
- package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
- package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
- package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
- package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
- package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
- package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
- package/skills/research/deep-research/research-cog/SKILL.md +153 -0
- package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
- package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
- package/skills/research/funding/figshare-api/SKILL.md +163 -0
- package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
- package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
- package/skills/research/funding/open-science-guide/SKILL.md +255 -0
- package/skills/research/funding/zenodo-api/SKILL.md +174 -0
- package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
- package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
- package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
- package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
- package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
- package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
- package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
- package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
- package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
- package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
- package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
- package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
- package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
- package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
- package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
- package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
- package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
- package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
- package/skills/tools/document/anystyle-api/SKILL.md +199 -0
- package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
- package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
- package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
- package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
- package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
- package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
- package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
- package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
- package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
- package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
- package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
- package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
- package/skills/writing/citation/zotero-api/SKILL.md +188 -0
- package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
- package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
- package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
- package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
- package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
- package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
- package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
- package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
- package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
- package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
- package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
- package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
- package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
- package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
- package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
- package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
- package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
- package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
- package/src/tools/arxiv.ts +131 -0
- package/src/tools/crossref.ts +112 -0
- package/src/tools/openalex.ts +174 -0
- package/src/tools/pubmed.ts +166 -0
- package/src/tools/semantic-scholar.ts +108 -0
- package/src/tools/unpaywall.ts +58 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: citation-chaining-guide
|
|
3
|
+
description: "Forward and backward citation chaining techniques for literature search"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "chain"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "search"
|
|
9
|
+
keywords: ["citation tracking", "advanced search", "search strategy", "literature search"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Citation Chaining Guide
|
|
14
|
+
|
|
15
|
+
Master forward and backward citation chaining to systematically discover relevant literature by following the threads of scholarly communication.
|
|
16
|
+
|
|
17
|
+
## What Is Citation Chaining?
|
|
18
|
+
|
|
19
|
+
Citation chaining (also called citation tracking, pearl growing, or snowball searching) exploits the connections between papers through their references and citations. Starting from one or more "seed" papers, you trace connections in two directions:
|
|
20
|
+
|
|
21
|
+
- **Backward chaining**: Examine the reference list of a paper to find older, foundational works it builds upon.
|
|
22
|
+
- **Forward chaining**: Find newer papers that have cited the seed paper, discovering subsequent developments.
|
|
23
|
+
|
|
24
|
+
This approach is especially powerful when keyword searches fail (e.g., when terminology varies across subfields or when concepts predate standardized vocabulary).
|
|
25
|
+
|
|
26
|
+
## Step-by-Step Workflow
|
|
27
|
+
|
|
28
|
+
### Step 1: Identify Seed Papers
|
|
29
|
+
|
|
30
|
+
Select 3-5 highly relevant papers that are central to your research question. Good seed papers are:
|
|
31
|
+
|
|
32
|
+
- Frequently cited review articles or seminal original research
|
|
33
|
+
- Papers whose methodology or framework aligns closely with your work
|
|
34
|
+
- Recent papers in top venues for your field
|
|
35
|
+
|
|
36
|
+
### Step 2: Backward Chaining (Reference Mining)
|
|
37
|
+
|
|
38
|
+
Examine the reference list of each seed paper and identify which cited works are relevant.
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
import requests
|
|
42
|
+
|
|
43
|
+
def get_references(paper_id, limit=100):
|
|
44
|
+
"""Get all references of a paper via Semantic Scholar."""
|
|
45
|
+
url = f"https://api.semanticscholar.org/graph/v1/paper/{paper_id}/references"
|
|
46
|
+
response = requests.get(url, params={
|
|
47
|
+
"fields": "title,year,citationCount,externalIds,abstract",
|
|
48
|
+
"limit": limit
|
|
49
|
+
})
|
|
50
|
+
refs = response.json().get("data", [])
|
|
51
|
+
return [r["citedPaper"] for r in refs if r["citedPaper"].get("title")]
|
|
52
|
+
|
|
53
|
+
# Get references of a seed paper
|
|
54
|
+
seed_doi = "DOI:10.1038/s41586-021-03819-2"
|
|
55
|
+
references = get_references(seed_doi)
|
|
56
|
+
|
|
57
|
+
# Sort by citation count to find the most influential foundations
|
|
58
|
+
references.sort(key=lambda p: p.get("citationCount", 0), reverse=True)
|
|
59
|
+
for ref in references[:15]:
|
|
60
|
+
print(f"[{ref.get('year', '?')}] {ref['title']} ({ref.get('citationCount', 0)} citations)")
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Step 3: Forward Chaining (Citation Tracking)
|
|
64
|
+
|
|
65
|
+
Find all papers that have cited your seed paper.
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
def get_citations(paper_id, limit=200):
|
|
69
|
+
"""Get papers citing a given paper via Semantic Scholar."""
|
|
70
|
+
url = f"https://api.semanticscholar.org/graph/v1/paper/{paper_id}/citations"
|
|
71
|
+
all_citations = []
|
|
72
|
+
offset = 0
|
|
73
|
+
while offset < limit:
|
|
74
|
+
response = requests.get(url, params={
|
|
75
|
+
"fields": "title,year,citationCount,externalIds,abstract",
|
|
76
|
+
"limit": min(100, limit - offset),
|
|
77
|
+
"offset": offset
|
|
78
|
+
})
|
|
79
|
+
data = response.json().get("data", [])
|
|
80
|
+
if not data:
|
|
81
|
+
break
|
|
82
|
+
all_citations.extend([c["citingPaper"] for c in data if c["citingPaper"].get("title")])
|
|
83
|
+
offset += len(data)
|
|
84
|
+
return all_citations
|
|
85
|
+
|
|
86
|
+
citations = get_citations(seed_doi)
|
|
87
|
+
# Filter for recent, well-cited papers
|
|
88
|
+
recent_impactful = [c for c in citations if c.get("year", 0) >= 2022 and c.get("citationCount", 0) >= 5]
|
|
89
|
+
recent_impactful.sort(key=lambda p: p.get("citationCount", 0), reverse=True)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Step 4: Co-Citation and Bibliographic Coupling
|
|
93
|
+
|
|
94
|
+
Two advanced techniques extend basic citation chaining:
|
|
95
|
+
|
|
96
|
+
| Technique | Definition | What It Reveals |
|
|
97
|
+
|-----------|-----------|-----------------|
|
|
98
|
+
| **Co-citation** | Two papers are frequently cited together by the same set of subsequent papers | Conceptual proximity: these works form a shared intellectual foundation |
|
|
99
|
+
| **Bibliographic coupling** | Two papers share many of the same references | Methodological or topical similarity at the time of writing |
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
def find_co_cited_papers(paper_ids, min_co_citation_count=3):
|
|
103
|
+
"""Find papers frequently co-cited with the given papers."""
|
|
104
|
+
from collections import Counter
|
|
105
|
+
reference_counts = Counter()
|
|
106
|
+
|
|
107
|
+
for pid in paper_ids:
|
|
108
|
+
refs = get_references(pid)
|
|
109
|
+
for ref in refs:
|
|
110
|
+
ref_id = ref.get("paperId")
|
|
111
|
+
if ref_id and ref_id not in paper_ids:
|
|
112
|
+
reference_counts[ref_id] += 1
|
|
113
|
+
|
|
114
|
+
# Papers cited by multiple seeds are co-cited candidates
|
|
115
|
+
co_cited = [(pid, count) for pid, count in reference_counts.items()
|
|
116
|
+
if count >= min_co_citation_count]
|
|
117
|
+
co_cited.sort(key=lambda x: x[1], reverse=True)
|
|
118
|
+
return co_cited
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Step 5: Iterative Expansion
|
|
122
|
+
|
|
123
|
+
Repeat the process with the most relevant papers discovered in each round:
|
|
124
|
+
|
|
125
|
+
1. **Round 1**: Start with 3-5 seed papers
|
|
126
|
+
2. **Round 2**: Run backward + forward chaining on seeds, identify 10-15 new relevant papers
|
|
127
|
+
3. **Round 3**: Run chaining on the new papers from Round 2
|
|
128
|
+
4. **Saturation**: Stop when new rounds yield diminishing returns (i.e., the same papers keep appearing)
|
|
129
|
+
|
|
130
|
+
## Tools for Citation Chaining
|
|
131
|
+
|
|
132
|
+
| Tool | Method | Cost |
|
|
133
|
+
|------|--------|------|
|
|
134
|
+
| Google Scholar "Cited by" | Forward chaining | Free |
|
|
135
|
+
| Web of Science "Cited References" / "Times Cited" | Both directions | Subscription |
|
|
136
|
+
| Scopus "References" / "Cited by" | Both directions | Subscription |
|
|
137
|
+
| Semantic Scholar API | Programmatic, both directions | Free |
|
|
138
|
+
| Connected Papers (connectedpapers.com) | Visual co-citation graph | Free (limited) |
|
|
139
|
+
| Litmaps (litmaps.com) | Visual citation network | Free tier |
|
|
140
|
+
| CoCites (cocites.com) | Co-citation analysis | Free |
|
|
141
|
+
| Citation Gecko | Seed-based discovery | Free |
|
|
142
|
+
|
|
143
|
+
## Common Pitfalls
|
|
144
|
+
|
|
145
|
+
- **Citation bias**: Highly cited papers are not always the best or most relevant. Pay attention to less-cited but methodologically sound papers.
|
|
146
|
+
- **Recency bias**: Forward chaining favors recent papers with fewer citations. Allow time for citation accumulation or use Mendeley readership as a proxy.
|
|
147
|
+
- **Field boundaries**: Citation chains tend to stay within disciplinary silos. Combine with keyword searches in adjacent-field databases to break out.
|
|
148
|
+
- **Incomplete coverage**: No single database indexes all citations. Cross-check with at least two sources (e.g., Semantic Scholar + Google Scholar).
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: database-comparison-guide
|
|
3
|
+
description: "Compare major academic databases and when to use each for research"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "db"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "search"
|
|
9
|
+
keywords: ["academic database search", "scholarly database", "search strategy", "field-specific search"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Database Comparison Guide
|
|
14
|
+
|
|
15
|
+
A comprehensive reference for choosing and querying the right academic database for your research domain, including coverage details, advanced operators, and cross-database strategies.
|
|
16
|
+
|
|
17
|
+
## Overview of Major Academic Databases
|
|
18
|
+
|
|
19
|
+
| Database | Coverage | Disciplines | Access Model | Unique Strength |
|
|
20
|
+
|----------|----------|-------------|--------------|-----------------|
|
|
21
|
+
| Web of Science | 1900-present, 21,000+ journals | Multidisciplinary | Subscription | Citation indexing, Journal Impact Factor |
|
|
22
|
+
| Scopus | 1970-present, 27,000+ journals | Multidisciplinary | Subscription | Largest abstract/citation DB, CiteScore |
|
|
23
|
+
| PubMed | 1946-present, 35M+ records | Biomedical, life sciences | Free | MeSH controlled vocabulary, clinical filters |
|
|
24
|
+
| IEEE Xplore | 1872-present, 6M+ docs | Engineering, CS | Subscription | Conference proceedings, standards |
|
|
25
|
+
| Google Scholar | Broad, undisclosed | All fields | Free | Widest coverage, full-text indexing |
|
|
26
|
+
| JSTOR | Historical archives | Humanities, social sciences | Subscription | Historical journal runs, primary sources |
|
|
27
|
+
| arXiv | 1991-present, 2.4M+ papers | Physics, CS, Math, Bio | Free | Preprints, no peer-review delay |
|
|
28
|
+
| SSRN | 1994-present | Social sciences, law | Free | Working papers, early-stage research |
|
|
29
|
+
|
|
30
|
+
## Field-Specific Database Selection
|
|
31
|
+
|
|
32
|
+
### STEM Fields
|
|
33
|
+
|
|
34
|
+
For physics, computer science, and mathematics, combine arXiv preprints with Web of Science indexed journals:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
# arXiv API query for recent ML papers
|
|
38
|
+
curl "http://export.arxiv.org/api/query?search_query=cat:cs.LG+AND+ti:transformer&start=0&max_results=25&sortBy=submittedDate&sortOrder=descending"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
For biomedical research, PubMed with MeSH terms provides the most precise retrieval:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
# PubMed E-utilities search with MeSH
|
|
45
|
+
curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=%22machine+learning%22[MeSH]+AND+%22drug+discovery%22[MeSH]&retmax=50&sort=date"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Social Sciences and Humanities
|
|
49
|
+
|
|
50
|
+
- **Economics/Business**: Scopus + SSRN + RePEc (for working papers)
|
|
51
|
+
- **Psychology**: PsycINFO (APA) + PubMed
|
|
52
|
+
- **Law**: Westlaw + SSRN + HeinOnline
|
|
53
|
+
- **History/Literature**: JSTOR + Project MUSE + MLA International Bibliography
|
|
54
|
+
|
|
55
|
+
## Advanced Search Operators by Database
|
|
56
|
+
|
|
57
|
+
### Web of Science
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
TS=("deep learning" AND "drug discovery") AND PY=(2020-2025)
|
|
61
|
+
# TS = Topic (title + abstract + keywords)
|
|
62
|
+
# PY = Publication Year
|
|
63
|
+
# Use NEAR/x for proximity: TS=("climate" NEAR/3 "adaptation")
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Scopus
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
TITLE-ABS-KEY("deep learning" AND "drug discovery") AND PUBYEAR > 2019
|
|
70
|
+
# Additional operators:
|
|
71
|
+
# AUTHLASTNAME(smith) AND AUTHFIRST(j*)
|
|
72
|
+
# AFFIL("MIT" OR "Massachusetts Institute of Technology")
|
|
73
|
+
# REF("seminal paper title")
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### PubMed
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
"deep learning"[Title/Abstract] AND "drug discovery"[Title/Abstract]
|
|
80
|
+
AND ("2020/01/01"[Date - Publication] : "2025/12/31"[Date - Publication])
|
|
81
|
+
# Use filters: Clinical Trial[pt], Review[pt], Free Full Text[Filter]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Cross-Database Search Strategy
|
|
85
|
+
|
|
86
|
+
A robust literature search should query multiple databases to maximize recall:
|
|
87
|
+
|
|
88
|
+
1. **Define your research question** using PICO (Population, Intervention, Comparison, Outcome) or PCC (Population, Concept, Context) frameworks.
|
|
89
|
+
2. **Identify controlled vocabulary** for each database (MeSH for PubMed, Emtree for Embase, Thesaurus for PsycINFO).
|
|
90
|
+
3. **Build search strings** combining controlled vocabulary with free-text synonyms using Boolean operators.
|
|
91
|
+
4. **Execute searches** across at least 2-3 databases relevant to your field.
|
|
92
|
+
5. **Deduplicate results** using reference managers (Zotero, EndNote) or tools like Covidence.
|
|
93
|
+
6. **Document your search** with database, date, exact query string, and result count for reproducibility.
|
|
94
|
+
|
|
95
|
+
## Practical Tips
|
|
96
|
+
|
|
97
|
+
- **Scopus vs. Web of Science**: Scopus has broader coverage (especially post-2000 and non-English journals); WoS has deeper historical archives and the Journal Impact Factor.
|
|
98
|
+
- **Google Scholar** finds the most results but lacks advanced filtering. Use it for snowball searches and finding grey literature, not as your primary systematic search tool.
|
|
99
|
+
- **API access**: PubMed (E-utilities), Semantic Scholar, OpenAlex, and Crossref all offer free APIs for programmatic searching. Scopus and WoS require institutional API keys.
|
|
100
|
+
- **Alert services**: Set up saved search alerts on PubMed, Scopus, and Google Scholar to stay current in fast-moving fields.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: europe-pmc-api
|
|
3
|
+
description: "Search biomedical and life sciences literature via Europe PMC"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🔍"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "search"
|
|
9
|
+
keywords: ["academic database search", "literature search", "citation tracking", "field-specific search"]
|
|
10
|
+
source: "https://europepmc.org/RestfulWebService"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Europe PMC API Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Europe PMC (PubMed Central) is a free, comprehensive biomedical literature database maintained by the European Bioinformatics Institute (EMBL-EBI) as part of a network of 32 European funders. It provides access to over 40 million biomedical and life sciences publications, including abstracts from PubMed/MEDLINE, full-text articles from PubMed Central, patents from the European Patent Office, and preprints from biomedical preprint servers.
|
|
18
|
+
|
|
19
|
+
Europe PMC extends beyond PubMed by integrating additional European content, preprints, and rich text-mined annotations. It provides links to biological databases (UniProt, Protein Data Bank, etc.), grant information from funders, and citation data. The annotation features include gene/protein mentions, disease names, organism identifiers, and chemical entities extracted via machine learning.
|
|
20
|
+
|
|
21
|
+
The API is free, requires no authentication, and supports 10 requests per second. It returns JSON or XML and offers advanced query syntax with field-specific searches, boolean operators, and date range filters.
|
|
22
|
+
|
|
23
|
+
## Authentication
|
|
24
|
+
|
|
25
|
+
No authentication required. The Europe PMC API is fully open. No API key, registration, or email is needed. The API enforces a rate limit of 10 requests per second per IP address. Including a descriptive User-Agent header is considered good practice.
|
|
26
|
+
|
|
27
|
+
## Core Endpoints
|
|
28
|
+
|
|
29
|
+
### Search: Full-Text Literature Search
|
|
30
|
+
|
|
31
|
+
- **URL**: `GET https://www.ebi.ac.uk/europepmc/webservices/rest/search`
|
|
32
|
+
- **Parameters**:
|
|
33
|
+
| Param | Type | Required | Description |
|
|
34
|
+
|-------|------|----------|-------------|
|
|
35
|
+
| query | string | Yes | Search query (supports field codes: TITLE, AUTH, JOURNAL, DOI, etc.) |
|
|
36
|
+
| format | string | No | Response format: json (default) or xml |
|
|
37
|
+
| resultType | string | No | lite (default) or core (includes full abstract and metadata) |
|
|
38
|
+
| pageSize | integer | No | Results per page (default: 25, max: 1000) |
|
|
39
|
+
| cursorMark | string | No | Cursor for deep pagination (use nextCursorMark from response) |
|
|
40
|
+
| sort | string | No | Sort field: RELEVANCE, CITED, DATE (default: RELEVANCE) |
|
|
41
|
+
| synonym | boolean | No | Enable MeSH synonym expansion (default: true) |
|
|
42
|
+
- **Example**:
|
|
43
|
+
```bash
|
|
44
|
+
curl "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=CRISPR+AND+cancer&format=json&resultType=core&pageSize=10&sort=CITED+desc"
|
|
45
|
+
```
|
|
46
|
+
- **Response**: JSON with `hitCount`, `nextCursorMark`, and `resultList.result` array. Each result contains `id`, `source` (MED, PMC, PPR, PAT), `pmid`, `pmcid`, `doi`, `title`, `authorString`, `journalTitle`, `pubYear`, `abstractText`, `citedByCount`, `isOpenAccess`, and `fullTextUrlList`.
|
|
47
|
+
|
|
48
|
+
### Citations: Papers Citing a Publication
|
|
49
|
+
|
|
50
|
+
- **URL**: `GET https://www.ebi.ac.uk/europepmc/webservices/rest/{source}/{id}/citations`
|
|
51
|
+
- **Parameters**:
|
|
52
|
+
| Param | Type | Required | Description |
|
|
53
|
+
|-------|------|----------|-------------|
|
|
54
|
+
| source | string | Yes | Source database: MED (PubMed), PMC, PPR (preprint), PAT (patent) |
|
|
55
|
+
| id | string | Yes | The publication ID (PMID, PMCID, etc.) |
|
|
56
|
+
| format | string | No | json or xml |
|
|
57
|
+
| page | integer | No | Page number (default: 1) |
|
|
58
|
+
| pageSize | integer | No | Results per page (default: 25) |
|
|
59
|
+
- **Example**:
|
|
60
|
+
```bash
|
|
61
|
+
curl "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/citations?format=json&pageSize=10"
|
|
62
|
+
```
|
|
63
|
+
- **Response**: JSON with `hitCount` and `citationList.citation` array containing citing publication metadata.
|
|
64
|
+
|
|
65
|
+
### References: Papers Cited by a Publication
|
|
66
|
+
|
|
67
|
+
- **URL**: `GET https://www.ebi.ac.uk/europepmc/webservices/rest/{source}/{id}/references`
|
|
68
|
+
- **Parameters**:
|
|
69
|
+
| Param | Type | Required | Description |
|
|
70
|
+
|-------|------|----------|-------------|
|
|
71
|
+
| source | string | Yes | Source database |
|
|
72
|
+
| id | string | Yes | The publication ID |
|
|
73
|
+
| format | string | No | json or xml |
|
|
74
|
+
| page | integer | No | Page number |
|
|
75
|
+
| pageSize | integer | No | Results per page |
|
|
76
|
+
- **Example**:
|
|
77
|
+
```bash
|
|
78
|
+
curl "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/references?format=json&pageSize=50"
|
|
79
|
+
```
|
|
80
|
+
- **Response**: JSON with `referenceList.reference` array containing reference metadata.
|
|
81
|
+
|
|
82
|
+
## Rate Limits
|
|
83
|
+
|
|
84
|
+
The API enforces a rate limit of 10 requests per second per IP address. There is no daily request cap. Exceeding the rate limit returns HTTP 429. For bulk data access, Europe PMC provides OAI-PMH harvesting, FTP bulk downloads, and SPARQL endpoint access. Cursor-based pagination (using `cursorMark`) is required for retrieving beyond the first 10,000 results.
|
|
85
|
+
|
|
86
|
+
## Common Patterns
|
|
87
|
+
|
|
88
|
+
### Systematic Review Search
|
|
89
|
+
|
|
90
|
+
Perform a structured biomedical search with MeSH terms and date filters:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=(TITLE:immunotherapy+AND+TITLE:melanoma)+AND+(PUB_YEAR:[2022+TO+2026])&format=json&resultType=core&pageSize=25&sort=CITED+desc" | jq '.resultList.result[] | {title: .title, journal: .journalTitle, year: .pubYear, citations: .citedByCount, oa: .isOpenAccess}'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Find Preprints Related to a Topic
|
|
97
|
+
|
|
98
|
+
Search specifically in the preprint sources indexed by Europe PMC:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=(SRC:PPR)+AND+large+language+models+AND+biology&format=json&pageSize=10" | jq '.resultList.result[] | {title: .title, source: .source, year: .pubYear, doi: .doi}'
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Build a Citation Map for a Key Paper
|
|
105
|
+
|
|
106
|
+
Retrieve both citations and references to map a paper's scholarly context:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Get papers that cite the target
|
|
110
|
+
curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/citations?format=json&pageSize=50" | jq '.citationList.citation | length'
|
|
111
|
+
|
|
112
|
+
# Get papers referenced by the target
|
|
113
|
+
curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33116299/references?format=json&pageSize=100" | jq '.referenceList.reference | length'
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## References
|
|
117
|
+
|
|
118
|
+
- Official documentation: https://europepmc.org/RestfulWebService
|
|
119
|
+
- Europe PMC search syntax: https://europepmc.org/searchsyntax
|
|
120
|
+
- Europe PMC annotations API: https://europepmc.org/AnnotationsApi
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: google-scholar-guide
|
|
3
|
+
description: "Advanced Google Scholar search techniques for comprehensive literature discovery"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "mag_right"
|
|
7
|
+
category: "literature"
|
|
8
|
+
subcategory: "search"
|
|
9
|
+
keywords: ["academic database search", "search strategy", "Boolean search", "advanced search", "Google Scholar"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Google Scholar Guide
|
|
14
|
+
|
|
15
|
+
A skill for leveraging Google Scholar's full capabilities for academic literature search. Covers advanced search operators, citation tracking, alert configuration, and strategies for systematic and comprehensive retrieval.
|
|
16
|
+
|
|
17
|
+
## Advanced Search Operators
|
|
18
|
+
|
|
19
|
+
### Core Operators
|
|
20
|
+
|
|
21
|
+
| Operator | Syntax | Example | Effect |
|
|
22
|
+
|----------|--------|---------|--------|
|
|
23
|
+
| Exact phrase | `"..."` | `"machine learning"` | Matches exact phrase |
|
|
24
|
+
| OR | `OR` | `"deep learning" OR "neural network"` | Matches either term |
|
|
25
|
+
| Exclude | `-` | `transformer -electrical` | Excludes term |
|
|
26
|
+
| Author | `author:` | `author:"Y LeCun"` | Filter by author |
|
|
27
|
+
| Source | `source:` | `source:"Nature"` | Filter by journal |
|
|
28
|
+
| Title only | `intitle:` | `intitle:"attention mechanism"` | Search in title only |
|
|
29
|
+
| Date range | Custom range | Via Advanced Search UI | Limit publication years |
|
|
30
|
+
| File type | `filetype:` | `filetype:pdf` | Specific file formats |
|
|
31
|
+
|
|
32
|
+
### Constructing Effective Queries
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
def build_scholar_query(concepts: list[list[str]], exclude: list[str] = None,
|
|
36
|
+
title_only: bool = False, author: str = None,
|
|
37
|
+
source: str = None) -> str:
|
|
38
|
+
"""
|
|
39
|
+
Build a structured Google Scholar query from concept groups.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
concepts: List of concept groups, each a list of synonyms
|
|
43
|
+
Groups are ANDed together, synonyms are ORed
|
|
44
|
+
exclude: Terms to exclude
|
|
45
|
+
title_only: Search in title only
|
|
46
|
+
author: Author name filter
|
|
47
|
+
source: Journal/source filter
|
|
48
|
+
Returns:
|
|
49
|
+
Formatted Google Scholar query string
|
|
50
|
+
"""
|
|
51
|
+
# Build concept groups with OR
|
|
52
|
+
groups = []
|
|
53
|
+
for concept_group in concepts:
|
|
54
|
+
if len(concept_group) == 1:
|
|
55
|
+
groups.append(f'"{concept_group[0]}"')
|
|
56
|
+
else:
|
|
57
|
+
terms = ' OR '.join(f'"{term}"' for term in concept_group)
|
|
58
|
+
groups.append(f'({terms})')
|
|
59
|
+
|
|
60
|
+
# AND the concept groups together
|
|
61
|
+
query = ' '.join(groups)
|
|
62
|
+
|
|
63
|
+
# Apply title restriction
|
|
64
|
+
if title_only:
|
|
65
|
+
query = f'intitle:{query}'
|
|
66
|
+
|
|
67
|
+
# Add exclusions
|
|
68
|
+
if exclude:
|
|
69
|
+
for term in exclude:
|
|
70
|
+
query += f' -{term}'
|
|
71
|
+
|
|
72
|
+
# Add author filter
|
|
73
|
+
if author:
|
|
74
|
+
query += f' author:"{author}"'
|
|
75
|
+
|
|
76
|
+
# Add source filter
|
|
77
|
+
if source:
|
|
78
|
+
query += f' source:"{source}"'
|
|
79
|
+
|
|
80
|
+
return query
|
|
81
|
+
|
|
82
|
+
# Example: find papers on transfer learning for medical imaging
|
|
83
|
+
query = build_scholar_query(
|
|
84
|
+
concepts=[
|
|
85
|
+
["transfer learning", "domain adaptation", "fine-tuning"],
|
|
86
|
+
["medical imaging", "radiology", "pathology images"],
|
|
87
|
+
["deep learning", "convolutional neural network"]
|
|
88
|
+
],
|
|
89
|
+
exclude=["survey", "review"],
|
|
90
|
+
title_only=False
|
|
91
|
+
)
|
|
92
|
+
print(query)
|
|
93
|
+
# Output: ("transfer learning" OR "domain adaptation" OR "fine-tuning")
|
|
94
|
+
# ("medical imaging" OR "radiology" OR "pathology images")
|
|
95
|
+
# ("deep learning" OR "convolutional neural network") -survey -review
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Citation Tracking Strategies
|
|
99
|
+
|
|
100
|
+
### Forward and Backward Citation Chaining
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Seed Paper (a highly relevant paper you already know)
|
|
104
|
+
|
|
|
105
|
+
+--> "Cited by" link -> Forward citation tracking
|
|
106
|
+
| (who cited this paper? newer related work)
|
|
107
|
+
|
|
|
108
|
+
+--> Reference list -> Backward citation tracking
|
|
109
|
+
(what did this paper cite? foundational work)
|
|
110
|
+
|
|
111
|
+
Repeat for each highly relevant paper found.
|
|
112
|
+
Stop when you reach saturation (no new relevant papers appearing).
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Identifying Key Papers
|
|
116
|
+
|
|
117
|
+
Use citation metrics strategically:
|
|
118
|
+
|
|
119
|
+
```python
|
|
120
|
+
def identify_key_papers(search_results: list[dict],
|
|
121
|
+
min_citations: int = 10) -> list[dict]:
|
|
122
|
+
"""
|
|
123
|
+
Identify key papers from search results using citation analysis.
|
|
124
|
+
|
|
125
|
+
Args:
|
|
126
|
+
search_results: List of papers with 'title', 'year', 'citations'
|
|
127
|
+
min_citations: Minimum citation threshold
|
|
128
|
+
"""
|
|
129
|
+
import datetime
|
|
130
|
+
current_year = datetime.datetime.now().year
|
|
131
|
+
|
|
132
|
+
for paper in search_results:
|
|
133
|
+
age = max(1, current_year - paper['year'])
|
|
134
|
+
paper['citations_per_year'] = paper['citations'] / age
|
|
135
|
+
|
|
136
|
+
# Classify influence
|
|
137
|
+
if paper['citations_per_year'] > 50:
|
|
138
|
+
paper['influence'] = 'landmark'
|
|
139
|
+
elif paper['citations_per_year'] > 20:
|
|
140
|
+
paper['influence'] = 'highly_influential'
|
|
141
|
+
elif paper['citations_per_year'] > 5:
|
|
142
|
+
paper['influence'] = 'influential'
|
|
143
|
+
else:
|
|
144
|
+
paper['influence'] = 'standard'
|
|
145
|
+
|
|
146
|
+
# Filter and sort
|
|
147
|
+
filtered = [p for p in search_results if p['citations'] >= min_citations]
|
|
148
|
+
return sorted(filtered, key=lambda x: x['citations_per_year'], reverse=True)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Google Scholar Alerts
|
|
152
|
+
|
|
153
|
+
Set up alerts to stay current:
|
|
154
|
+
|
|
155
|
+
1. Go to Google Scholar and run your search query
|
|
156
|
+
2. Click "Create alert" in the left sidebar
|
|
157
|
+
3. Configure email frequency (as-it-happens or weekly digest)
|
|
158
|
+
4. Use the same carefully constructed query from your search strategy
|
|
159
|
+
|
|
160
|
+
Best practices for alerts:
|
|
161
|
+
- Create separate alerts for each major concept group
|
|
162
|
+
- Use narrow, specific queries to reduce noise (10-20 results per alert is ideal)
|
|
163
|
+
- Review and refine alert queries quarterly
|
|
164
|
+
|
|
165
|
+
## Google Scholar Profiles
|
|
166
|
+
|
|
167
|
+
### Leveraging Author Profiles
|
|
168
|
+
|
|
169
|
+
- Follow prolific researchers in your field to get notifications of their new publications
|
|
170
|
+
- Use the "Related articles" feature on author profile pages
|
|
171
|
+
- Check co-author networks to discover related research groups
|
|
172
|
+
- The h-index and i10-index on profiles can help gauge researcher impact, but use with caution across different fields
|
|
173
|
+
|
|
174
|
+
## Limitations and Complementary Databases
|
|
175
|
+
|
|
176
|
+
Google Scholar has known limitations:
|
|
177
|
+
- No controlled vocabulary or MeSH terms (unlike PubMed)
|
|
178
|
+
- Cannot filter by study design or methodology
|
|
179
|
+
- Includes non-peer-reviewed sources (preprints, theses, slides)
|
|
180
|
+
- Citation counts may include self-citations and non-scholarly citations
|
|
181
|
+
|
|
182
|
+
For systematic reviews, always supplement Google Scholar with structured databases: PubMed/MEDLINE, Web of Science, Scopus, and domain-specific databases (e.g., IEEE Xplore, PsycINFO, EconLit). Document the number of results from each database for your PRISMA flow diagram.
|