ai-repository/
db/
mcp_server/
migrations/
models/
repositories/
__init__.py
central.db
docs/
CHECKLIST.md
MIGRATION_GUIDE.md
schemas/
unified_schema.ts
scripts/
import_acdc.py
import_bdpp.py
import_bsdp.py
import_bsyp.py
import_bwcp.py
import_clmn.py
import_cops.py
import_mapd.py
import_pind.py
import_repository.py
init_database.py
transform_bwcp_example.py
transform_template.py
styles/
collection.css
filter.css
fonts.css
menu.css
perfect-scrollbar.css
theme.css
templates/
components/
loader.ts
types.ts
README.md
This package contains all necessary templates, scripts, and documentation for migrating Edition Topoi research data collections to a modern Next.js web application, along with a unified SQLAlchemy database system for cross-repository queries.
ai-repository/
├── README.md # This file
├── docs/
│ ├── MIGRATION_GUIDE.md # Comprehensive migration documentation
│ └── CHECKLIST.md # Step-by-step migration checklist
├── db/
│ ├── __init__.py # Database configuration
│ ├── central.db # Unified catalog database
│ ├── repositories/ # Per-repository databases
│ │ ├── BWCP.db, BSDP.db, etc.
│ ├── models/ # SQLAlchemy models
│ │ ├── core.py # Central catalog models
│ │ ├── bwcp.py, bsdp.py, etc. # Repository-specific models
│ └── mcp_server/ # MCP server for AI queries
│ ├── server.py # Query endpoints
│ └── tools/ # Tool descriptors
├── schemas/
│ └── unified_schema.ts # TypeScript type definitions
├── scripts/
│ ├── init_database.py # Initialize all databases
│ ├── import_repository.py # Base importer class
│ ├── import_bwcp.py # BWCP-specific importer
│ ├── import_bsdp.py # BSDP-specific importer
│ ├── import_clmn.py # CLMN-specific importer
│ ├── import_bsyp.py # BSYP-specific importer
│ ├── import_mapd.py # MAPD-specific importer
│ ├── import_bdpp.py # BDPP-specific importer
│ ├── import_cops.py # COPS-specific importer
│ ├── import_acdc.py # ACDC-specific importer
│ ├── import_pind.py # PIND-specific importer
│ ├── transform_template.py # Generic transformation script template
│ └── transform_bwcp_example.py # Working example (BWCP collection)
├── styles/
│ ├── collection.css # Collection layout and hero image
│ ├── filter.css # Filter sidebar and result grid
│ ├── theme.css # Overall theme colors
│ ├── menu.css # Navigation menu styles
│ ├── fonts.css # Font definitions
│ └── perfect-scrollbar.css # Scrollbar styling
└── templates/
├── types.ts # Data type definitions
├── loader.ts # Data loading utilities
└── components/
├── ObjectCard.tsx # Grid item card component
├── SearchResults.tsx # Search results container
└── Pagination.tsx # Pagination controls
# Locate your collection
ls /Volumes/Repository/Topoi/repositories/{COLLECTION_CODE}/
cp scripts/transform_template.py scripts/transform_{code}.py
# Edit the script to configure paths and field mappings
python3 scripts/transform_{code}.py
mkdir -p public/{CODE}
cp -R /Volumes/Repository/.../Service{CODE}/ public/{CODE}/Service{CODE}/
cp -R /Volumes/Repository/.../Repos{CODE}/ public/{CODE}/Repos{CODE}/
src/lib/data/collectionConfig.tssrc/styles/css/collection.cssThis migration pattern has been successfully applied to 9 repositories with 4,668 research objects:
| Collection | Code | Objects | Description |
|---|---|---|---|
| Berlin Waterclock Project | BWCP | 47 | Ancient water clocks and timekeeping devices |
| Berlin Sundial Project | BSDP | 724 | Ancient sundials collection |
| Column Monuments | CLMN | 123 | Ancient column monuments |
| Ancient Steelyards | BSYP | 400 | Roman steelyards and weighing devices |
| Medieval Diagrams | MAPD | 669 | Medieval astronomical planetary diagrams |
| Digital Pantheon | BDPP | 1,038 | Complete 3D scans of the Rome Pantheon |
| Copernicus Heliograph | COPS | 6 | Copernicus' heliograph panel at Olsztyn Castle |
| Construction Drawings | ACDC | 56 | Ancient Greek construction drawings |
| Rock Paintings Indonesia | PIND | 1,605 | Indonesian prehistoric rock art |
All collections use a unified data schema that standardizes:
- Object identification (obj_id)
- Filter keys for faceted search
- Thumbnail references
- Metadata organization
- Resource grouping
public/{CODE}/
├── Service{CODE}/ # Web-ready thumbnails
│ ├── {SIGNATURE}/ # Resource group folder
│ │ ├── image_tiny.jpg # Grid thumbnail (58x58)
│ │ └── image_small.jpg # Preview size
│ └── Images/
│ └── {CODE}.jpg # Hero image
└── Repos{CODE}/ # Full-resolution files
└── {SIGNATURE}/
└── image.jpg # Original file
/{CODE}/Service{CODE}/{signature}/{name}_tiny.jpg/{CODE}/Service{CODE}/{signature}/{name}_small.jpg/{CODE}/Repos{CODE}/{signature}/{name}.jpgThe package includes a unified SQLAlchemy database system:
cd /Users/friedrichstr/inqua2026/ai-repository
python3 scripts/init_database.py --reset # Create all databases
python3 scripts/import_bwcp.py # With file enumeration
python3 scripts/import_bsdp.py --skip-files # Skip file enumeration for speed
python3 scripts/import_mapd.py --skip-files
# ... etc for each repository
python3 db/mcp_server/server.py --stats # Statistics
python3 db/mcp_server/server.py --search "sundial" # Full-text search
python3 db/mcp_server/server.py --object 1 # Get object by ID
db/central.db): Unified view of all objectsdb/repositories/*.db): Full domain-specific datapip install sqlalchemy)/Volumes/Repository/Topoi/repositories/This migration package is part of the Edition Topoi project infrastructure.