searching-academic-outputs-with-dimensions
Overview
Query the Dimensions academic database to find publications, grants, patents, clinical trials, and researchers using the shortwing CLI.
Queries use the Dimensions Search Language (DSL) piped to shortwing.
Reference Documentation:
- dsl-reference.md — Full DSL syntax, operators, fields, and example queries
Authentication: Requires API key from https://app.dimensions.ai/account/tokens. Configure credentials in ~/.dimensions/dsl.ini or use environment variables (DIMENSIONS_KEY, DIMENSIONS_ENDPOINT). See Authentication section in dsl-reference.md for details.
Quick Start
# Search publications
echo 'search publications for "machine learning" return publications limit 10' | shortwing
# Search grants
echo 'search grants for "artificial intelligence" return grants[title+funding_usd] limit 10' | shortwing
# Find researchers
echo 'search researchers for "John Smith" return researchers[first_name+last_name+current_research_org] limit 10' | shortwing
Query Structure
search <source> [for "<terms>"] [where <filters>] return <result> [limit N]
Available Sources
| Source | Description |
|---|---|
publications |
Research papers, articles, books |
grants |
Research funding awards |
patents |
Patent applications and grants |
clinical_trials |
Clinical trial records |
researchers |
Researcher profiles |
datasets |
Research datasets |
Common Query Patterns
| Task | Query |
|---|---|
| Search by keyword | search publications for "CRISPR" return publications limit 20 |
| Filter by year | search publications where year=2024 return publications limit 10 |
| Search title only | search publications in title_only for "climate change" return publications limit 10 |
| Highly cited papers | search publications for "AI" where times_cited>100 return publications sort by times_cited desc limit 10 |
| Grants by funder | search grants where funders.name~"NIH" return grants[title+funding_usd] limit 10 |
| Recent patents | search patents where filing_year>=2023 return patents[title+assignees] limit 10 |
| Clinical trials | search clinical_trials for "diabetes" return clinical_trials[title+phase] limit 10 |
| Aggregations | search publications for "robotics" return research_orgs aggregate count sort by count desc limit 10 |
Return Specific Fields
Use + to combine fields:
echo 'search publications for "quantum" return publications[id+title+doi+year+times_cited] limit 10' | shortwing
Filter Operators
| Operator | Example |
|---|---|
= equals |
year=2024 |
> greater than |
times_cited>100 |
~ contains |
journal.title~"Nature" |
in range |
year in [2020:2024] |
and/or combine |
year=2024 and type="article" |
Boolean Search Operators
Boolean operators in search terms must be UPPERCASE and inside the quotes:
| Pattern | Example |
|---|---|
| AND (both required) | for "machine learning AND healthcare" |
| OR (either matches) | for "python OR java" |
| NOT (exclude) | for "AI NOT robotics" |
| Grouped | for "(cancer OR tumor) AND treatment" |
| Exact phrase | for "\"peer feedback\"" (escaped quotes) |
| Proximity | for "\"formal model\"~10" (within 10 words) |
Important: Lowercase and/or in the where clause combines filters, but search terms require UPPERCASE AND/OR/NOT.
Tips for Precise Results
-
Use targeted search indexes for relevant results:
# Most specific - title only echo 'search publications in title_only for "machine learning" return publications limit 20' | shortwing # Good balance - title and abstract echo 'search publications in title_abstract_only for "peer feedback AND writing" return publications limit 20' | shortwing -
Use phrase searches for exact multi-word terms:
echo 'search publications in title_abstract_only for "\"formative assessment\" AND \"higher education\"" return publications limit 20' | shortwing -
Combine search with filters to narrow scope:
echo 'search publications in title_abstract_only for "\"peer review\"" where year>=2020 and times_cited>10 return publications[title+doi+times_cited+year] limit 20' | shortwing -
Filter by citation count to find influential papers:
echo 'search publications for "cognitive load" where times_cited>50 return publications sort by times_cited desc limit 10' | shortwing
General Tips
- Always use double quotes around search terms:
for "search term" - Use
~for partial string matching:where journal.title~"Nature" - Use
limitto control result size - See dsl-reference.md for complete syntax and all available fields
Error Handling
| Error | Solution |
|---|---|
| shortwing not found | Install from ~/aves/shortwing: cd ~/aves/shortwing && uv pip install . |
| Configuration error (exit code 2) | Set DIMENSIONS_KEY env var or create ~/.dimensions/dsl.ini |
| Invalid credentials | Get new key from https://app.dimensions.ai/account/tokens |
| Query syntax error (exit code 1) | Check DSL syntax in dsl-reference.md |