Agent Skills
FundingNIH
Skill: Funding Trend Forecaster
AIPOCH
Predict funding trend shifts using NLP analysis of grant abstracts from NIH, NSF, and Horizon Europe
153
0
FILES
funding-trend-forecaster/
skill.md
scripts
main.py
SKILL.md
Skill: Funding Trend Forecaster
ID: 200
Version: 1.0.0
Author: OpenClaw Agent
License: MIT
Overview
Funding Trend Forecaster is an intelligent analysis tool that uses Natural Language Processing (NLP) technology to analyze awarded project abstracts from major global research funding agencies (NIH, NSF, Horizon Europe) and predict funding preference shift trends for the next 3-5 years.
Features
- Multi-source Data Collection: Automatically fetches awarded project data from NIH, NSF, Horizon Europe
- NLP Deep Analysis: Uses advanced text mining techniques to extract topics, keywords, and research trends
- Trend Prediction Model: Predicts funding direction changes based on time series analysis and topic modeling
- Visualized Reports: Generates charts and trend reports for intuitive display of analysis results
- Field Segmentation: Categorized analysis by medicine, engineering, natural sciences, and other fields
Installation
# Enter skill directory
cd skills/funding-trend-forecaster
# Install dependencies
pip install -r requirements.txt
# Download NLTK data
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords'); nltk.download('wordnet')"
Dependencies
requests>=2.28.0
beautifulsoup4>=4.11.0
pandas>=1.5.0
numpy>=1.23.0
scikit-learn>=1.1.0
textblob>=0.17.1
nltk>=3.7
matplotlib>=3.6.0
seaborn>=0.12.0
wordcloud>=1.8.0
python-dateutil>=2.8.0
Usage
Command Line Interface
# Run full analysis workflow
python scripts/main.py --analyze-all --output report.json
# Analyze specific agency only
python scripts/main.py --source nih --months 6
# Generate visualization report
python scripts/main.py --visualize --input data.json --output charts/
# View trend forecast
python scripts/main.py --forecast --years 5 --output forecast.json
API Call
from scripts.main import FundingTrendForecaster
# Initialize forecaster
forecaster = FundingTrendForecaster()
# Collect data
forecaster.collect_data(sources=['nih', 'nsf', 'horizon_europe'], months=6)
# Execute analysis
results = forecaster.analyze_trends()
# Generate forecast
forecast = forecaster.predict_trends(years=5)
# Export report
forecaster.export_report(output_path='report.pdf', format='pdf')
Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
--analyze-all | flag | false | No | Run full analysis workflow on all sources |
--source | string | - | No | Specific agency to analyze (nih, nsf, horizon_europe) |
--months | int | 6 | No | Number of months of historical data to analyze |
--years | int | 5 | No | Years ahead for trend prediction |
--visualize | flag | false | No | Generate visualization charts |
--forecast | flag | false | No | Generate trend forecast |
--input, -i | string | - | No | Input data file path (for visualization/forecast) |
--output, -o | string | - | No | Output file path |
--config | string | config.json | No | Path to configuration file |
Data Sources
| Agency | Data Source URL | Update Frequency |
|---|---|---|
| NIH | https://reporter.nih.gov/ | Daily |
| NSF | https://www.nsf.gov/awardsearch/ | Daily |
| Horizon Europe | https://ec.europa.eu/info/funding-tenders/opportunities/ | Weekly |
Configuration
Create config.json file to customize analysis parameters:
{
"sources": {
"nih": {
"enabled": true,
"base_url": "https://reporter.nih.gov/",
"max_results": 1000
},
"nsf": {
"enabled": true,
"base_url": "https://www.nsf.gov/awardsearch/",
"max_results": 1000
},
"horizon_europe": {
"enabled": true,
"base_url": "https://ec.europa.eu/info/funding-tenders/",
"max_results": 500
}
},
"nlp": {
"language": "en",
"min_word_length": 3,
"max_topics": 20,
"stop_words": ["research", "study", "project"]
},
"forecast": {
"method": "lda_trend",
"confidence_level": 0.95,
"years_ahead": 5
}
}
Output Format
JSON Report Structure
{
"metadata": {
"generated_at": "2024-01-15T10:30:00Z",
"data_period": "2023-07-01 to 2024-01-01",
"sources": ["nih", "nsf", "horizon_europe"],
"total_projects": 15420
},
"trend_analysis": {
"top_keywords": [
{"term": "artificial intelligence", "frequency": 342, "growth": 0.45},
{"term": "climate change", "frequency": 298, "growth": 0.32}
],
"emerging_topics": [
{"topic": "Large Language Models", "projects": 89, "trend": "rising"},
{"topic": "Carbon Capture", "projects": 156, "trend": "stable"}
],
"funding_shifts": {
"increasing": ["AI/ML", "Climate Tech", "Quantum Computing"],
"decreasing": ["Traditional Materials", "Fossil Fuels Research"]
}
},
"forecast": {
"2025": {
"predicted_hot_topics": ["Generative AI", "Gene Editing", "Fusion Energy"],
"confidence": 0.87
},
"2026-2029": {
"long_term_trends": ["AGI Safety", "Personalized Medicine", "Space Mining"],
"confidence": 0.72
}
}
}
Architecture
funding-trend-forecaster/
├── scripts/
│ ├── main.py # Main entry
│ ├── collectors/ # Data collection module
│ │ ├── __init__.py
│ │ ├── nih_collector.py
│ │ ├── nsf_collector.py
│ │ └── horizon_collector.py
│ ├── analyzers/ # NLP analysis module
│ │ ├── __init__.py
│ │ ├── text_processor.py
│ │ ├── topic_modeler.py
│ │ └── trend_detector.py
│ ├── predictors/ # Prediction module
│ │ ├── __init__.py
│ │ └── trend_forecaster.py
│ └── utils/ # Utility module
│ ├── __init__.py
│ ├── config.py
│ └── visualizer.py
├── data/ # Data storage
│ ├── raw/
│ └── processed/
├── output/ # Output directory
├── config.json # Configuration file
├── requirements.txt # Python dependencies
└── SKILL.md # This document
Roadmap
- Basic architecture design
- Core analysis module
- More data source support (Wellcome Trust, JSPS, etc.)
- Real-time data stream processing
- Interactive web interface
- Machine learning model optimization
License
MIT License - See LICENSE file in project root directory
Generated by OpenClaw Agent | Skill ID: 200
Risk Assessment
| Risk Indicator | Assessment | Level |
|---|---|---|
| Code Execution | Python scripts with tools | High |
| Network Access | External API calls | High |
| File System Access | Read/write data | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Data handled securely | Medium |
Security Checklist
- No hardcoded credentials or API keys
- No unauthorized file system access (../)
- Output does not expose sensitive information
- Prompt injection protections in place
- API requests use HTTPS only
- Input validated against allowed patterns
- API timeout and retry mechanisms implemented
- Output directory restricted to workspace
- Script execution in sandboxed environment
- Error messages sanitized (no internal paths exposed)
- Dependencies audited
- No exposure of internal service architecture
Prerequisites
# Python dependencies
pip install -r requirements.txt
Evaluation Criteria
Success Metrics
- Successfully executes main functionality
- Output meets quality standards
- Handles edge cases gracefully
- Performance is acceptable
Test Cases
- Basic Functionality: Standard input → Expected output
- Edge Case: Invalid input → Graceful error handling
- Performance: Large dataset → Acceptable processing time
Lifecycle Status
- Current Stage: Draft
- Next Review Date: 2026-03-06
- Known Issues: None
- Planned Improvements:
- Performance optimization
- Additional feature support