ResearchTwin
Federated research discovery with S-Index metrics across a network of digital twins.
Ask AI about ResearchTwin
Powered by Claude Β· Grounded in docs
I know everything about ResearchTwin. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
ResearchTwin: Federated Agentic Web of Research Knowledge
ResearchTwin is an open-source, federated platform that transforms a researcher's publications, datasets, and code repositories into a conversational Digital Twin. Built on a Bimodal Glial-Neural Optimization (BGNO) architecture, it enables dual-discovery where both humans and AI agents collaborate to accelerate scientific discovery.
Live at researchtwin.net | Join the Network
Project Vision
The exponential growth of scientific outputs has created a "discovery bottleneck." Traditional static PDFs and siloed repositories limit knowledge synthesis and reuse. ResearchTwin addresses this by:
- Integrating multi-modal research artifacts from Semantic Scholar, Google Scholar, GitHub, and Figshare
- Computing a real-time S-Index metric (Quality Γ Impact Γ Collaboration) across all output types
- Providing a conversational chatbot interface for interactive research exploration
- Exposing an Inter-Agentic Discovery API with Schema.org types for machine-to-machine research discovery
- Enabling a federated, Discord-like architecture supporting local nodes, hubs, and hosted edges
Architecture Overview
BGNO (Bimodal Glial-Neural Optimization)
Data Sources Glial Layer Neural Layer Interface
ββββββββββββββββ βββββββββββββββ ββββββββββββββββ ββββββββββββββ
βSemantic ScholarβββββΆβ β β β β Web Chat β
βGoogle Scholar βββββΆβ SQLite βββββΆβ RAG with βββββΆβ Discord β
βGitHub API βββββΆβ Cache + β β Claude API β β Agent API β
βFigshare API βββββΆβ Rate Limit β β β β Embed β
ββββββββββββββββ βββββββββββββββ ββββββββββββββββ ββββββββββββββ
- Connector Layer: Pulls papers (S2+GS with deduplication), repos (GitHub), datasets (Figshare), and ORCID metadata
- Glial Layer: SQLite caching with 24h TTL, rate limiting, S2+GS title-similarity merge (0.85 threshold)
- Neural Layer: RAG with Claude β context assembly, prompt engineering, conversational synthesis
- Interface Layer: D3.js knowledge graph, chat widget, Discord bot, REST API
Federated Network Tiers
| Tier | Name | Description | Status |
|---|---|---|---|
| Tier 1 | Local Nodes | Researchers run python run_node.py locally | Live |
| Tier 2 | Hubs | Lab aggregators federating multiple nodes | Planned |
| Tier 3 | Hosted Edges | Cloud-hosted at researchtwin.net | Live |
Inter-Agentic Discovery API
Machine-readable endpoints with Schema.org @type annotations:
| Endpoint | Schema.org Type | Purpose |
|---|---|---|
GET /api/researcher/{slug}/profile | Person | Researcher profile with HATEOAS links |
GET /api/researcher/{slug}/papers | ItemList of ScholarlyArticle | Papers with citations |
GET /api/researcher/{slug}/datasets | ItemList of Dataset | Datasets with QIC scores |
GET /api/researcher/{slug}/repos | ItemList of SoftwareSourceCode | Repos with QIC scores |
GET /api/discover?q=keyword&type=paper | SearchResultSet | Cross-researcher search |
Getting Started
Hosted (Tier 3) β Zero Setup
- Visit researchtwin.net/join.html
- Register with your name, email, and research identifiers
- Your Digital Twin is live immediately
Local Node (Tier 1) β Full Control
git clone https://github.com/martinfrasch/researchtwin.git
cd researchtwin
pip install -r backend/requirements.txt
cp node_config.json.example node_config.json
# Edit node_config.json with your details
python run_node.py --config node_config.json
Docker Deployment
cp .env.example .env # Add your API keys
docker-compose up -d --build
Required API keys: ANTHROPIC_API_KEY (for Claude RAG)
Optional: S2_API_KEY, GITHUB_TOKEN, DISCORD_BOT_TOKEN, SMTP credentials
Repository Structure
researchtwin/
βββ backend/
β βββ main.py # FastAPI endpoints (REST + Discovery API)
β βββ researchers.py # SQLite researcher CRUD + token management
β βββ database.py # SQLite schema, WAL mode, migrations
β βββ models.py # Pydantic models for all endpoints
β βββ rag.py # RAG context assembly for Claude
β βββ qic_index.py # S-Index / QIC computation engine
β βββ email_service.py # SMTP service for profile update codes
β βββ connectors/ # Data source connectors
β β βββ semantic_scholar.py
β β βββ scholarly_lib.py # Google Scholar via scholarly
β β βββ github_connector.py
β β βββ figshare.py
β βββ discord_bot/ # Discord bot with /research and /sindex
βββ frontend/
β βββ index.html # Main dashboard with D3.js knowledge graph
β βββ join.html # Self-registration page
β βββ update.html # Email-verified profile updates
β βββ privacy.html # Privacy policy
β βββ widget-loader.js # Embeddable chat widget
βββ run_node.py # Tier 1 local node launcher
βββ node_config.json.example # Local node configuration template
βββ docker-compose.yml # Docker orchestration
βββ nginx/ # Nginx reverse proxy + SSL
βββ whitepaper.tex # LaTeX manuscript
Ecosystem
This repository is part of the ResearchTwin Ecosystem project:
| Repository | Description |
|---|---|
| researchtwin | Federated platform (this repo) |
| s-index | S-Index formal specification and reference implementation |
Embeddable S-Index Widget
Show your S-Index on your lab website, Google Sites page, or personal homepage:
<iframe
src="https://researchtwin.net/embed.html?slug=YOUR-SLUG"
width="440" height="180"
style="border:none; border-radius:12px;"
loading="lazy">
</iframe>
Replace YOUR-SLUG with your researcher slug (e.g. martin-frasch).
Google Sites: Edit page > Insert > Embed > "By URL" tab > paste https://researchtwin.net/embed.html?slug=YOUR-SLUG
WordPress: Add a Custom HTML block and paste the iframe code.
The widget displays the researcher's name, S-Index score, h-index, citation count, and paper count. Data updates automatically from live API sources.
See it in action | Full embed instructions
Documentation
| Document | Description |
|---|---|
| API Reference | Full REST API documentation with schemas and examples |
| Self-Hosting Guide | Tier 1 Local Node setup and configuration |
| Hub Federation Guide | Tier 2 Hub architecture and setup (planned) |
| Security Policy | Vulnerability reporting and security best practices |
Contributing
Contributions welcome! See the project board for tracked issues.
- New connectors (ORCID enrichment, PubMed, OpenAlex)
- Affiliation-based geographic mapping
- MCP server for inter-agentic discovery
- UI/UX improvements
- Bug fixes and optimizations
License
MIT License. See LICENSE.
Contact
- Platform: researchtwin.net
- Email: martin@researchtwin.net
- Issues: GitHub Issues
Empowering researchers and AI agents to discover, collaborate, and innovate together.
