MCPcopy Index your code
hub / github.com/context-labs/aella-data-explorer

github.com/context-labs/aella-data-explorer @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
251 symbols 740 edges 96 files 36 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Aella Science Dataset Explorer

Interactive visualization and exploration of scientific papers from the Aella open science dataset.

This project is a collaboration between Inference.net and LAION. LAION curated the original dataset which is about ~100m scrapped scientific and research articles and Inference.net fine-tuned a custom model to extract structured summaries from the articles. This repo contains a visual explorer for a small subset of the extracted dataset.

View the live explorer at https://aella.inference.net.

Overview

A web application for exploring scientific papers with semantic embeddings, dimensionality reduction, and clustering visualizations.

Architecture

  • Frontend: React + TypeScript + Vite with D3.js for interactive visualizations
  • Backend: Python FastAPI serving data from SQLite (D1 in production)
  • Storage: SQLite locally, Cloudflare D1 + R2 in production

Prerequisites

You'll need the following tools installed:

Setup

Install all dependencies:

task setup

This will install both backend and frontend dependencies.

Quick Start

1. Get the Database

Download the database from R2:

task db:setup

This will download the SQLite database to backend/data/db.sqlite.

2. Run the Application

Run the backend and frontend in separate terminals:

Backend (Terminal 1):

task backend:dev

Frontend (Terminal 2):

task frontend:dev

The application will be available at:

  • Frontend: http://localhost:5173
  • API: http://localhost:8787
  • API Docs: http://localhost:8787/docs

Data Pipeline

The code for the data pipeline that we used to construct this dataset is not yet open source, mostly because it was setup for a one-time process and not production-ready.

However, the general process was:

  1. Initial data extraction and filtering

  2. Ran a pipeline to generate the summaries

  3. Excluded specific non-scientific content and failed summaries
  4. Compiled results for further processing

  5. Semantic Embedding

  6. Generates 768-dimensional embeddings using SPECTER2 (allenai/specter2_base)

  7. Processes papers in batches with GPU acceleration support
  8. Stores embeddings as binary blobs for similarity search

  9. Visualization & Clustering

  10. Reduces embeddings to 2D coordinates using UMAP with cosine distance

  11. Applies K-Means clustering with automatic optimization (20-60 clusters via silhouette scores)
  12. Generates initial cluster labels using TF-IDF analysis of titles and fields

  13. LLM-Curated Labels

  14. Applies manually reviewed, domain-specific cluster labels

  15. Improves interpretability over automated TF-IDF labels

Deployment

Deploy to Cloudflare:

task deploy

This will prompt you to deploy the backend API and/or frontend.

Contributing

We welcome contributions to this project! Here's what you should know:

Bug Fixes & Minor Improvements

  • Bug fixes are always welcome! Please submit a PR with a clear description of the issue and fix.
  • Minor improvements to documentation, code quality, or performance are appreciated.

New Features

  • This project is intentionally scoped as a one-time preview of this dataset.
  • We are generally not planning to greatly expand the functionality beyond its current scope.
  • If you want to add significant new features, we encourage you to fork the project and build on it!

Before Submitting a PR

  • Ensure your code passes linting and formatting checks: bash task check
  • Keep changes focused and well-documented.
  • Test your changes with sample data when applicable.

License

MIT License - see LICENSE file for details.

Extension points exported contracts — how you extend this code

ImportMetaEnv (Interface)
(no doc)
frontend/src/vite-env.d.ts
ImportMeta (Interface)
(no doc)
frontend/src/vite-env.d.ts
PaperSummary (Interface)
(no doc)
frontend/src/types/index.ts
PaperDetail (Interface)
(no doc)
frontend/src/types/index.ts
ClusterInfo (Interface)
(no doc)
frontend/src/types/index.ts

Core symbols most depended-on inside this repo

cn
called by 167
frontend/src/ui/lib/utils.ts
useTheme
called by 12
frontend/src/ui/providers/ThemeProvider.tsx
getApiUrl
called by 10
frontend/src/utils/api.ts
fetch_all
called by 9
backend/src/worker.py
get_database
called by 9
backend/src/worker.py
fetch_one
called by 6
backend/src/worker.py
dispatch
called by 5
frontend/src/ui/hooks/useToast.hook.ts
getValidNumber
called by 4
frontend/src/ui/components/ui/DateTimePicker.tsx

Shape

Function 187
Interface 28
Class 14
Route 11
Method 10
Enum 1

Languages

TypeScript78%
Python22%

Modules by API surface

backend/src/worker.py41 symbols
frontend/src/ui/components/ui/DateTimePicker.tsx30 symbols
frontend/src/components/ForceDirectedCluster.tsx14 symbols
frontend/src/types/index.ts12 symbols
frontend/src/LaionApp.tsx12 symbols
frontend/src/utils/layoutTransforms.ts10 symbols
backend/src/models.py10 symbols
frontend/src/ui/hooks/useToast.hook.ts8 symbols
frontend/src/ui/components/custom/WorkerLogsTerminal.tsx8 symbols
frontend/src/components/ClusterVisualization.tsx7 symbols
frontend/src/components/PaperSampleViewer.tsx6 symbols
frontend/src/ui/providers/ThemeProvider.tsx5 symbols

For agents

$ claude mcp add aella-data-explorer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact