@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,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nasa-ads-api
|
|
3
|
+
description: "Search astrophysics and physics literature via NASA ADS bibliographic database"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🔍"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "physics"
|
|
9
|
+
keywords: ["astrophysics", "observational astronomy", "cosmology", "high energy physics"]
|
|
10
|
+
source: "https://ui.adsabs.harvard.edu/help/api/"
|
|
11
|
+
requires:
|
|
12
|
+
env: ["ADS_API_TOKEN"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# NASA ADS API Guide
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
The NASA Astrophysics Data System (ADS) is a digital library operated by the Smithsonian Astrophysical Observatory under a NASA grant. It is the primary bibliographic database for astronomy and astrophysics, also covering significant portions of physics, geophysics, and related disciplines. ADS indexes over 16 million records and provides access to full-text articles, citations, and usage metrics.
|
|
20
|
+
|
|
21
|
+
ADS is indispensable for astronomers and physicists. Nearly every paper in astrophysics is indexed in ADS, and the system provides powerful search capabilities including full-text search, citation and reference tracking, author disambiguation, and object-level queries (search by astronomical object name). The database integrates with SIMBAD, NED, and other astronomical databases to link publications to the celestial objects they study.
|
|
22
|
+
|
|
23
|
+
The ADS API requires a free API token and supports 3,000 requests per day. It returns JSON and supports a rich query language with field-specific searches, boolean operators, and positional queries.
|
|
24
|
+
|
|
25
|
+
## Authentication
|
|
26
|
+
|
|
27
|
+
Authentication is required via a free API token. Register at https://ui.adsabs.harvard.edu/user/settings/token to generate your token. Include it in every request as a header:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Authorization: Bearer YOUR_ADS_API_TOKEN
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Tokens do not expire but can be regenerated from the settings page. Each token is associated with a user account and is subject to per-account rate limits.
|
|
34
|
+
|
|
35
|
+
## Core Endpoints
|
|
36
|
+
|
|
37
|
+
### Query: Search the ADS Database
|
|
38
|
+
|
|
39
|
+
- **URL**: `GET https://api.adsabs.harvard.edu/v1/search/query`
|
|
40
|
+
- **Parameters**:
|
|
41
|
+
| Param | Type | Required | Description |
|
|
42
|
+
|-------|------|----------|-------------|
|
|
43
|
+
| q | string | Yes | Search query (ADS query syntax with field qualifiers) |
|
|
44
|
+
| fl | string | No | Fields to return (comma-separated: title, author, year, bibcode, doi, citation_count, abstract, etc.) |
|
|
45
|
+
| rows | integer | No | Results per page (default: 10, max: 2000) |
|
|
46
|
+
| start | integer | No | Pagination offset (default: 0) |
|
|
47
|
+
| sort | string | No | Sort field and order (e.g., citation_count desc, date desc) |
|
|
48
|
+
| fq | string | No | Filter queries for faceting (e.g., database:astronomy) |
|
|
49
|
+
- **Example**:
|
|
50
|
+
```bash
|
|
51
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
52
|
+
"https://api.adsabs.harvard.edu/v1/search/query?q=gravitational+waves&fl=title,author,year,bibcode,citation_count,doi&rows=10&sort=citation_count+desc"
|
|
53
|
+
```
|
|
54
|
+
- **Response**: JSON with `response.numFound` (total hits) and `response.docs` array. Each doc contains the requested fields. The `bibcode` is the unique ADS identifier (19-character string encoding journal, year, volume, and page).
|
|
55
|
+
|
|
56
|
+
### Author Search: Find Researcher Publications
|
|
57
|
+
|
|
58
|
+
- **URL**: `GET https://api.adsabs.harvard.edu/v1/search/query`
|
|
59
|
+
- **Parameters**:
|
|
60
|
+
| Param | Type | Required | Description |
|
|
61
|
+
|-------|------|----------|-------------|
|
|
62
|
+
| q | string | Yes | Author query using author: or first_author: fields |
|
|
63
|
+
| fl | string | No | Fields to return |
|
|
64
|
+
| rows | integer | No | Results per page |
|
|
65
|
+
| sort | string | No | Sort order |
|
|
66
|
+
- **Example**:
|
|
67
|
+
```bash
|
|
68
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
69
|
+
"https://api.adsabs.harvard.edu/v1/search/query?q=author:%22Hawking,+S%22&fl=title,year,bibcode,citation_count&rows=20&sort=citation_count+desc"
|
|
70
|
+
```
|
|
71
|
+
- **Response**: JSON with matching publications by the specified author.
|
|
72
|
+
|
|
73
|
+
### Object Search: Find Papers About Astronomical Objects
|
|
74
|
+
|
|
75
|
+
- **URL**: `GET https://api.adsabs.harvard.edu/v1/search/query`
|
|
76
|
+
- **Parameters**:
|
|
77
|
+
| Param | Type | Required | Description |
|
|
78
|
+
|-------|------|----------|-------------|
|
|
79
|
+
| q | string | Yes | Object query using object: field (e.g., object:"M31") |
|
|
80
|
+
| fl | string | No | Fields to return |
|
|
81
|
+
| rows | integer | No | Results per page |
|
|
82
|
+
- **Example**:
|
|
83
|
+
```bash
|
|
84
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
85
|
+
"https://api.adsabs.harvard.edu/v1/search/query?q=object:%22Sgr+A*%22&fl=title,author,year,bibcode,citation_count&rows=10&sort=date+desc"
|
|
86
|
+
```
|
|
87
|
+
- **Response**: JSON with publications related to the specified astronomical object.
|
|
88
|
+
|
|
89
|
+
### Metrics: Paper and Author Metrics
|
|
90
|
+
|
|
91
|
+
- **URL**: `POST https://api.adsabs.harvard.edu/v1/metrics`
|
|
92
|
+
- **Parameters**:
|
|
93
|
+
| Param | Type | Required | Description |
|
|
94
|
+
|-------|------|----------|-------------|
|
|
95
|
+
| bibcodes | array | Yes | Array of ADS bibcodes (JSON body) |
|
|
96
|
+
| types | array | No | Metric types: basic, citations, indicators, histograms |
|
|
97
|
+
- **Example**:
|
|
98
|
+
```bash
|
|
99
|
+
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
|
|
100
|
+
-H "Content-Type: application/json" \
|
|
101
|
+
"https://api.adsabs.harvard.edu/v1/metrics" \
|
|
102
|
+
-d '{"bibcodes": ["2016PhRvL.116f1102A"], "types": ["basic", "citations", "indicators"]}'
|
|
103
|
+
```
|
|
104
|
+
- **Response**: JSON with citation metrics, h-index, g-index, read counts, and citation histograms for the specified papers.
|
|
105
|
+
|
|
106
|
+
## Rate Limits
|
|
107
|
+
|
|
108
|
+
The API allows 3,000 requests per day (resets at midnight UTC) and 15 requests per second burst limit. If limits are exceeded, the API returns HTTP 429 with `X-RateLimit-Reset` header. For large bibliometric analyses, use the ADS bulk export or the myADS notification system. Monitor usage via `X-RateLimit-Remaining` response headers.
|
|
109
|
+
|
|
110
|
+
## Common Patterns
|
|
111
|
+
|
|
112
|
+
### Literature Review in Astrophysics
|
|
113
|
+
|
|
114
|
+
Search for recent highly-cited papers on a topic:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
118
|
+
"https://api.adsabs.harvard.edu/v1/search/query?q=dark+energy+AND+year:2023-2026&fl=title,author,year,bibcode,citation_count,doi,abstract&rows=20&sort=citation_count+desc"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Build an Author's Publication Profile
|
|
122
|
+
|
|
123
|
+
Retrieve complete publication list with metrics:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Get publications
|
|
127
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
128
|
+
"https://api.adsabs.harvard.edu/v1/search/query?q=author:%22Perlmutter,+S%22&fl=title,year,bibcode,citation_count&rows=200&sort=date+desc"
|
|
129
|
+
|
|
130
|
+
# Get aggregate metrics
|
|
131
|
+
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
|
|
132
|
+
-H "Content-Type: application/json" \
|
|
133
|
+
"https://api.adsabs.harvard.edu/v1/metrics" \
|
|
134
|
+
-d '{"bibcodes": ["1999ApJ...517..565P", "2012ApJ...746...85S"], "types": ["basic", "indicators"]}'
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Cross-Match with Astronomical Databases
|
|
138
|
+
|
|
139
|
+
Find papers about a specific object and link to SIMBAD/NED:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
curl -H "Authorization: Bearer YOUR_TOKEN" \
|
|
143
|
+
"https://api.adsabs.harvard.edu/v1/search/query?q=object:%22Crab+Nebula%22+AND+year:2024-2026&fl=title,author,year,bibcode,doi&rows=10&sort=date+desc"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## References
|
|
147
|
+
|
|
148
|
+
- Official documentation: https://ui.adsabs.harvard.edu/help/api/
|
|
149
|
+
- ADS query syntax: https://ui.adsabs.harvard.edu/help/search/
|
|
150
|
+
- ADS search fields: https://ui.adsabs.harvard.edu/help/search/search-syntax
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quantum-computing-guide
|
|
3
|
+
description: "Explore quantum computing research with Qiskit and Cirq frameworks"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "atom_symbol"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "physics"
|
|
9
|
+
keywords: ["quantum computing", "Qiskit", "Cirq", "quantum circuits", "qubit", "quantum algorithms"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Quantum Computing Guide
|
|
14
|
+
|
|
15
|
+
A skill for conducting quantum computing research using Qiskit (IBM) and Cirq (Google) frameworks. Covers quantum circuit construction, fundamental algorithms, noise simulation, and practical considerations for running experiments on quantum hardware.
|
|
16
|
+
|
|
17
|
+
## Quantum Computing Fundamentals
|
|
18
|
+
|
|
19
|
+
### Key Concepts
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Qubit: The basic unit of quantum information
|
|
23
|
+
- Superposition: A qubit can be in a state |0>, |1>, or any
|
|
24
|
+
linear combination alpha|0> + beta|1> where |alpha|^2 + |beta|^2 = 1
|
|
25
|
+
- Measurement: Collapses to |0> with probability |alpha|^2
|
|
26
|
+
or |1> with probability |beta|^2
|
|
27
|
+
|
|
28
|
+
Entanglement: Two qubits can be correlated in ways impossible classically
|
|
29
|
+
- Bell state: (|00> + |11>) / sqrt(2)
|
|
30
|
+
- Measuring one qubit instantly determines the other
|
|
31
|
+
|
|
32
|
+
Quantum gates: Unitary operations that transform qubit states
|
|
33
|
+
- Single-qubit: H (Hadamard), X (NOT), Z, S, T, Rx, Ry, Rz
|
|
34
|
+
- Two-qubit: CNOT, CZ, SWAP
|
|
35
|
+
- Multi-qubit: Toffoli (CCNOT), Fredkin (CSWAP)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Building Quantum Circuits with Qiskit
|
|
39
|
+
|
|
40
|
+
### Basic Circuit Construction
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
from qiskit import QuantumCircuit
|
|
44
|
+
from qiskit_aer import AerSimulator
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def create_bell_state() -> QuantumCircuit:
|
|
48
|
+
"""
|
|
49
|
+
Create a Bell state (maximally entangled pair).
|
|
50
|
+
"""
|
|
51
|
+
qc = QuantumCircuit(2, 2)
|
|
52
|
+
|
|
53
|
+
# Apply Hadamard to qubit 0 (creates superposition)
|
|
54
|
+
qc.h(0)
|
|
55
|
+
|
|
56
|
+
# Apply CNOT with qubit 0 as control, qubit 1 as target
|
|
57
|
+
qc.cx(0, 1)
|
|
58
|
+
|
|
59
|
+
# Measure both qubits
|
|
60
|
+
qc.measure([0, 1], [0, 1])
|
|
61
|
+
|
|
62
|
+
return qc
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def run_circuit(qc: QuantumCircuit, shots: int = 1024) -> dict:
|
|
66
|
+
"""
|
|
67
|
+
Run a quantum circuit on a simulator.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
qc: Quantum circuit to execute
|
|
71
|
+
shots: Number of measurement repetitions
|
|
72
|
+
"""
|
|
73
|
+
simulator = AerSimulator()
|
|
74
|
+
result = simulator.run(qc, shots=shots).result()
|
|
75
|
+
counts = result.get_counts()
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
"counts": counts,
|
|
79
|
+
"probabilities": {
|
|
80
|
+
state: count / shots for state, count in counts.items()
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Quantum Teleportation Circuit
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
def quantum_teleportation() -> QuantumCircuit:
|
|
89
|
+
"""
|
|
90
|
+
Implement quantum teleportation protocol.
|
|
91
|
+
Transfers the state of qubit 0 to qubit 2 using entanglement.
|
|
92
|
+
"""
|
|
93
|
+
qc = QuantumCircuit(3, 3)
|
|
94
|
+
|
|
95
|
+
# Prepare an arbitrary state on qubit 0
|
|
96
|
+
qc.rx(1.2, 0)
|
|
97
|
+
qc.rz(0.7, 0)
|
|
98
|
+
|
|
99
|
+
qc.barrier()
|
|
100
|
+
|
|
101
|
+
# Create entangled pair (qubits 1 and 2)
|
|
102
|
+
qc.h(1)
|
|
103
|
+
qc.cx(1, 2)
|
|
104
|
+
|
|
105
|
+
qc.barrier()
|
|
106
|
+
|
|
107
|
+
# Bell measurement on qubits 0 and 1
|
|
108
|
+
qc.cx(0, 1)
|
|
109
|
+
qc.h(0)
|
|
110
|
+
qc.measure([0, 1], [0, 1])
|
|
111
|
+
|
|
112
|
+
qc.barrier()
|
|
113
|
+
|
|
114
|
+
# Conditional corrections on qubit 2
|
|
115
|
+
qc.cx(1, 2)
|
|
116
|
+
qc.cz(0, 2)
|
|
117
|
+
|
|
118
|
+
qc.measure(2, 2)
|
|
119
|
+
|
|
120
|
+
return qc
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Fundamental Quantum Algorithms
|
|
124
|
+
|
|
125
|
+
### Algorithm Overview
|
|
126
|
+
|
|
127
|
+
| Algorithm | Speedup | Problem |
|
|
128
|
+
|-----------|---------|---------|
|
|
129
|
+
| Grover's | Quadratic (sqrt(N)) | Unstructured search |
|
|
130
|
+
| Shor's | Exponential | Integer factorization |
|
|
131
|
+
| VQE | Heuristic | Ground state energy |
|
|
132
|
+
| QAOA | Heuristic | Combinatorial optimization |
|
|
133
|
+
| Quantum Phase Estimation | Exponential | Eigenvalue estimation |
|
|
134
|
+
| HHL | Exponential (conditions apply) | Linear systems |
|
|
135
|
+
|
|
136
|
+
### Variational Quantum Eigensolver (VQE)
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
from qiskit.circuit.library import TwoLocal
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def build_vqe_circuit(n_qubits: int, depth: int = 2) -> dict:
|
|
143
|
+
"""
|
|
144
|
+
Build a parameterized ansatz circuit for VQE.
|
|
145
|
+
|
|
146
|
+
Args:
|
|
147
|
+
n_qubits: Number of qubits
|
|
148
|
+
depth: Circuit depth (repetitions)
|
|
149
|
+
"""
|
|
150
|
+
ansatz = TwoLocal(
|
|
151
|
+
n_qubits,
|
|
152
|
+
rotation_blocks=["ry", "rz"],
|
|
153
|
+
entanglement_blocks="cx",
|
|
154
|
+
entanglement="linear",
|
|
155
|
+
reps=depth
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
return {
|
|
159
|
+
"circuit": ansatz,
|
|
160
|
+
"n_parameters": ansatz.num_parameters,
|
|
161
|
+
"description": (
|
|
162
|
+
"VQE uses a classical optimizer to minimize "
|
|
163
|
+
"<psi(theta)|H|psi(theta)> where psi(theta) is the "
|
|
164
|
+
"parameterized quantum state and H is the Hamiltonian."
|
|
165
|
+
)
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Noise and Error Mitigation
|
|
170
|
+
|
|
171
|
+
### Simulating Realistic Noise
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
from qiskit_aer.noise import NoiseModel, depolarizing_error
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def create_noisy_simulator(error_rate: float = 0.01) -> dict:
|
|
178
|
+
"""
|
|
179
|
+
Create a noise model for realistic quantum simulation.
|
|
180
|
+
|
|
181
|
+
Args:
|
|
182
|
+
error_rate: Depolarizing error probability per gate
|
|
183
|
+
"""
|
|
184
|
+
noise_model = NoiseModel()
|
|
185
|
+
|
|
186
|
+
# Single-qubit gate error
|
|
187
|
+
error_1q = depolarizing_error(error_rate, 1)
|
|
188
|
+
noise_model.add_all_qubit_quantum_error(error_1q, ["h", "rx", "ry", "rz"])
|
|
189
|
+
|
|
190
|
+
# Two-qubit gate error (typically higher)
|
|
191
|
+
error_2q = depolarizing_error(error_rate * 10, 2)
|
|
192
|
+
noise_model.add_all_qubit_quantum_error(error_2q, ["cx"])
|
|
193
|
+
|
|
194
|
+
return {
|
|
195
|
+
"noise_model": noise_model,
|
|
196
|
+
"single_qubit_error": error_rate,
|
|
197
|
+
"two_qubit_error": error_rate * 10,
|
|
198
|
+
"mitigation_strategies": [
|
|
199
|
+
"Zero-Noise Extrapolation (ZNE)",
|
|
200
|
+
"Probabilistic Error Cancellation (PEC)",
|
|
201
|
+
"Measurement error mitigation",
|
|
202
|
+
"Dynamical decoupling",
|
|
203
|
+
"Quantum error correction (surface codes)"
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Running on Real Hardware
|
|
209
|
+
|
|
210
|
+
### Practical Considerations
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
1. Qubit connectivity:
|
|
214
|
+
Real devices have limited qubit connections (not all-to-all)
|
|
215
|
+
SWAP gates are needed to route operations -> increases circuit depth
|
|
216
|
+
|
|
217
|
+
2. Gate fidelity:
|
|
218
|
+
Single-qubit gates: ~99.9% fidelity
|
|
219
|
+
Two-qubit gates: ~99-99.5% fidelity
|
|
220
|
+
Limits useful circuit depth to ~100-1000 gates
|
|
221
|
+
|
|
222
|
+
3. Coherence times:
|
|
223
|
+
T1 (energy relaxation): 100-500 microseconds
|
|
224
|
+
T2 (dephasing): 50-200 microseconds
|
|
225
|
+
Circuit must complete before decoherence
|
|
226
|
+
|
|
227
|
+
4. Queue times:
|
|
228
|
+
Real quantum computers have job queues (minutes to hours)
|
|
229
|
+
Use simulators for development; reserve hardware for final runs
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Publishing Quantum Computing Research
|
|
233
|
+
|
|
234
|
+
Report the exact device used (name, calibration date), number of qubits and connectivity, gate set and fidelities, transpilation settings, number of shots, error mitigation techniques applied, and comparison with classical simulation where tractable. Provide Qiskit or Cirq code in a public repository for reproducibility.
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: social-research-methods
|
|
3
|
+
description: "Core methods for empirical social science research including surveys and expe..."
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "busts_in_silhouette"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "social-science"
|
|
9
|
+
keywords: ["sociology", "political science", "cognitive psychology", "social psychology", "research methodology"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Social Research Methods
|
|
14
|
+
|
|
15
|
+
A comprehensive skill for designing and conducting empirical social science research. Covers survey methodology, experimental design, qualitative methods, and mixed-methods approaches used across sociology, political science, and psychology.
|
|
16
|
+
|
|
17
|
+
## Research Design Fundamentals
|
|
18
|
+
|
|
19
|
+
### Selecting a Research Strategy
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Research Question Type -> Recommended Design
|
|
23
|
+
|
|
24
|
+
"What is the prevalence of X?" -> Cross-sectional survey
|
|
25
|
+
"Does X cause Y?" -> Randomized experiment or quasi-experiment
|
|
26
|
+
"How does X develop over time?" -> Longitudinal panel study
|
|
27
|
+
"What does X mean to participants?" -> Qualitative (interviews, ethnography)
|
|
28
|
+
"How much of Y is explained by X?" -> Correlational / regression study
|
|
29
|
+
"Does the effect hold across contexts?" -> Comparative / cross-national study
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Operationalization Framework
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
def operationalize_construct(construct: str, dimensions: list[dict]) -> dict:
|
|
36
|
+
"""
|
|
37
|
+
Create an operationalization plan for a theoretical construct.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
construct: Name of the abstract concept
|
|
41
|
+
dimensions: List of dicts with 'name', 'indicators', 'measurement_level'
|
|
42
|
+
"""
|
|
43
|
+
plan = {
|
|
44
|
+
'construct': construct,
|
|
45
|
+
'dimensions': [],
|
|
46
|
+
'total_items': 0
|
|
47
|
+
}
|
|
48
|
+
for dim in dimensions:
|
|
49
|
+
items = []
|
|
50
|
+
for indicator in dim['indicators']:
|
|
51
|
+
items.append({
|
|
52
|
+
'indicator': indicator,
|
|
53
|
+
'measurement': dim['measurement_level'],
|
|
54
|
+
'source': dim.get('data_source', 'self-report survey')
|
|
55
|
+
})
|
|
56
|
+
plan['dimensions'].append({
|
|
57
|
+
'name': dim['name'],
|
|
58
|
+
'items': items,
|
|
59
|
+
'n_items': len(items)
|
|
60
|
+
})
|
|
61
|
+
plan['total_items'] += len(items)
|
|
62
|
+
return plan
|
|
63
|
+
|
|
64
|
+
# Example: operationalize "social capital"
|
|
65
|
+
social_capital = operationalize_construct(
|
|
66
|
+
construct="Social Capital",
|
|
67
|
+
dimensions=[
|
|
68
|
+
{
|
|
69
|
+
'name': 'bonding_capital',
|
|
70
|
+
'indicators': ['close_friends_count', 'family_support_scale', 'trust_in_neighbors'],
|
|
71
|
+
'measurement_level': 'ordinal (Likert 1-5)'
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
'name': 'bridging_capital',
|
|
75
|
+
'indicators': ['diverse_network_size', 'weak_ties_count', 'civic_participation'],
|
|
76
|
+
'measurement_level': 'ratio'
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Survey Design
|
|
83
|
+
|
|
84
|
+
### Questionnaire Construction Best Practices
|
|
85
|
+
|
|
86
|
+
1. **Question wording**: Avoid double-barreled questions, leading questions, and loaded terms
|
|
87
|
+
2. **Response scales**: Use balanced Likert scales (typically 5 or 7 points)
|
|
88
|
+
3. **Question order**: Move from general to specific; place sensitive items later
|
|
89
|
+
4. **Pretesting**: Conduct cognitive interviews with 5-10 respondents before field deployment
|
|
90
|
+
|
|
91
|
+
### Sampling Methods
|
|
92
|
+
|
|
93
|
+
| Method | Description | When to Use |
|
|
94
|
+
|--------|------------|------------|
|
|
95
|
+
| Simple random | Every unit has equal probability | Small, accessible populations |
|
|
96
|
+
| Stratified | Divide into strata, sample within each | Need representation of subgroups |
|
|
97
|
+
| Cluster | Sample groups, then individuals within | Geographically dispersed populations |
|
|
98
|
+
| Quota | Non-probability; fill demographic quotas | Exploratory research, tight budgets |
|
|
99
|
+
| Snowball | Participants recruit others | Hard-to-reach populations |
|
|
100
|
+
|
|
101
|
+
### Sample Size Calculation
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
import math
|
|
105
|
+
|
|
106
|
+
def sample_size_proportion(p: float = 0.5, margin_error: float = 0.05,
|
|
107
|
+
confidence: float = 0.95, population: int = None) -> int:
|
|
108
|
+
"""
|
|
109
|
+
Calculate required sample size for estimating a proportion.
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
p: Expected proportion (use 0.5 for maximum variance)
|
|
113
|
+
margin_error: Desired margin of error
|
|
114
|
+
confidence: Confidence level
|
|
115
|
+
population: Finite population size (optional)
|
|
116
|
+
"""
|
|
117
|
+
z_scores = {0.90: 1.645, 0.95: 1.96, 0.99: 2.576}
|
|
118
|
+
z = z_scores.get(confidence, 1.96)
|
|
119
|
+
|
|
120
|
+
n = (z**2 * p * (1 - p)) / margin_error**2
|
|
121
|
+
|
|
122
|
+
# Finite population correction
|
|
123
|
+
if population:
|
|
124
|
+
n = n / (1 + (n - 1) / population)
|
|
125
|
+
|
|
126
|
+
return math.ceil(n)
|
|
127
|
+
|
|
128
|
+
print(sample_size_proportion(p=0.5, margin_error=0.03, confidence=0.95))
|
|
129
|
+
# Result: 1068
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Experimental Design in Social Science
|
|
133
|
+
|
|
134
|
+
### Between-Subjects vs. Within-Subjects
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Between-subjects:
|
|
138
|
+
+ No carryover effects
|
|
139
|
+
+ Simpler analysis
|
|
140
|
+
- Requires more participants
|
|
141
|
+
- Individual differences add noise
|
|
142
|
+
|
|
143
|
+
Within-subjects:
|
|
144
|
+
+ More statistical power
|
|
145
|
+
+ Fewer participants needed
|
|
146
|
+
- Carryover/order effects
|
|
147
|
+
- Demand characteristics
|
|
148
|
+
Solution: Counterbalance condition order (Latin square)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Randomization and Control
|
|
152
|
+
|
|
153
|
+
Always use computer-generated random assignment. Block randomization ensures balanced groups. Include manipulation checks to verify that the independent variable was perceived as intended.
|
|
154
|
+
|
|
155
|
+
## Data Analysis Workflow
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
# Standard analysis pipeline for survey data
|
|
159
|
+
import pandas as pd
|
|
160
|
+
from scipy import stats
|
|
161
|
+
|
|
162
|
+
def analyze_survey(df: pd.DataFrame, iv: str, dv: str,
|
|
163
|
+
covariates: list[str] = None) -> dict:
|
|
164
|
+
"""Run standard analytical checks on survey data."""
|
|
165
|
+
results = {}
|
|
166
|
+
|
|
167
|
+
# 1. Descriptive statistics
|
|
168
|
+
results['descriptives'] = df[[iv, dv]].describe().to_dict()
|
|
169
|
+
|
|
170
|
+
# 2. Reliability (if scale items provided)
|
|
171
|
+
# Compute Cronbach's alpha for multi-item scales
|
|
172
|
+
|
|
173
|
+
# 3. Bivariate test
|
|
174
|
+
if df[iv].nunique() == 2:
|
|
175
|
+
groups = [group[dv].dropna() for _, group in df.groupby(iv)]
|
|
176
|
+
t_stat, p_val = stats.ttest_ind(*groups)
|
|
177
|
+
d = (groups[0].mean() - groups[1].mean()) / df[dv].std() # Cohen's d
|
|
178
|
+
results['test'] = {'type': 't-test', 't': t_stat, 'p': p_val, 'cohens_d': d}
|
|
179
|
+
else:
|
|
180
|
+
# Correlation for continuous IV
|
|
181
|
+
r, p = stats.pearsonr(df[iv].dropna(), df[dv].dropna())
|
|
182
|
+
results['test'] = {'type': 'correlation', 'r': r, 'p': p}
|
|
183
|
+
|
|
184
|
+
return results
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Ethical Requirements
|
|
188
|
+
|
|
189
|
+
All social science research with human participants requires Institutional Review Board (IRB) or Ethics Committee approval. Obtain informed consent, ensure confidentiality, minimize harm, and provide debriefing for deception studies. Follow APA or ASA ethical guidelines as applicable to your discipline.
|
|
190
|
+
|
|
191
|
+
## Key References
|
|
192
|
+
|
|
193
|
+
- Creswell, J. W., & Creswell, J. D. (2018). *Research Design* (5th ed.). SAGE.
|
|
194
|
+
- Babbie, E. (2020). *The Practice of Social Research* (15th ed.). Cengage.
|