glam/frontend/OXIGRAPH_STATUS.md
kempersc 2761857b0d Add scripts for converting OWL/Turtle ontology to Mermaid and PlantUML diagrams
- Implemented `owl_to_mermaid.py` to convert OWL/Turtle files into Mermaid class diagrams.
- Implemented `owl_to_plantuml.py` to convert OWL/Turtle files into PlantUML class diagrams.
- Added two new PlantUML files for custodian multi-aspect diagrams.
2025-11-22 23:01:13 +01:00

184 lines
4.4 KiB
Markdown

# Oxigraph Installation & Setup Status
**Date**: November 22, 2025
**Status**: ⚠️ **ISSUE ENCOUNTERED** - macOS ARM compatibility
---
## Installation Summary
**Oxigraph v0.5.2 Downloaded Successfully**
- Binary location: `~/.local/bin/oxigraph_server`
- Platform: macOS ARM64 (aarch64_apple)
- Source: https://github.com/oxigraph/oxigraph/releases/tag/v0.5.2
---
## Issue Encountered
**Runtime Error on macOS ARM**:
```
thread 'main' panicked at lib/oxigraph/src/storage/rocksdb_wrapper.rs:332:56:
called `Result::unwrap()` on an `Err` value: TryFromIntError(())
```
**Cause**: Appears to be a bug in Oxigraph v0.5.2 with RocksDB on macOS ARM architecture.
**GitHub Issue**: Likely related to https://github.com/oxigraph/oxigraph/issues (check for recent ARM-related issues)
---
## Workarounds
### Option 1: Use In-Memory Mode (Recommended for Development)
The server supports in-memory storage by omitting the `--location` flag:
```bash
#!/bin/bash
# In-memory Oxigraph (data not persisted)
export PATH="$HOME/.local/bin:$PATH"
oxigraph_server serve \
--bind "127.0.0.1:7878" \
--cors
```
**Pros**:
- No database corruption issues
- Fast startup
- Good for development/testing
**Cons**:
- Data lost on restart
- Must reload data each time
### Option 2: Try Older Version
Download v0.4.8 or earlier (may not have ARM builds):
- Check: https://github.com/oxigraph/oxigraph/releases/tag/v0.4.8
### Option 3: Use Docker
Run Oxigraph in Docker (Linux container, no ARM issues):
```bash
docker run -d \
-p 7878:7878 \
-v $(pwd)/data/oxigraph-db:/data \
ghcr.io/oxigraph/oxigraph:v0.5.2 \
serve --location /data --bind 0.0.0.0:7878
```
### Option 4: Alternative Triplestores
If Oxigraph continues to have issues:
- **Apache Jena Fuseki** - Very stable, Java-based
- **Blazegraph** - Fast, used by Wikidata
- **RDF4J Server** - Lightweight, good for testing
---
## Recommended Approach for Task 7
**For initial development**, use **Option 1** (in-memory mode):
1. Start in-memory Oxigraph server
2. Load sample data on each startup
3. Test SPARQL client implementation
4. Once code is working, switch to persistent storage (Docker or fix ARM issue)
**Updated Scripts**:
`scripts/start-oxigraph-memory.sh`:
```bash
#!/bin/bash
# Start Oxigraph in-memory mode (development)
export PATH="$HOME/.local/bin:$PATH"
echo "🚀 Starting Oxigraph Server (In-Memory Mode)..."
echo "🌐 Endpoint: http://127.0.0.1:7878"
echo "⚠️ Data will be lost on restart"
echo ""
oxigraph_server serve --bind "127.0.0.1:7878" --cors
```
`scripts/load-sample-data-memory.sh`:
```bash
#!/bin/bash
# Load data into in-memory Oxigraph
# Run this AFTER starting the server
sleep 2 # Wait for server startup
echo "📥 Loading sample data..."
curl -X POST \
-H 'Content-Type: application/n-triples' \
--data-binary '@data/sample-rdf/dutch-heritage-institutions.nt' \
http://127.0.0.1:7878/store
echo "✅ Data loaded!"
```
---
## Next Steps
1. **Continue with Task 7 implementation** using in-memory mode
2. **Document the workaround** in PHASE3_TASK7_PLAN.md
3. **Implement SPARQL client** (independent of storage mode)
4. **Test with in-memory data**
5. **Investigate ARM fix** or switch to Docker for production
---
## Scripts Created
-`scripts/install-oxigraph.sh` - Download and install binary
-`scripts/start-oxigraph.sh` - Start server (currently broken on ARM)
-`scripts/load-sample-data.sh` - Load RDF data via HTTP
-**TODO**: Create in-memory variants of startup/loading scripts
---
## Sample Data Ready
`data/sample-rdf/dutch-heritage-institutions.nt` created with 6 institutions:
- Amsterdam Museum
- Rijksmuseum
- Koninklijke Bibliotheek (National Library)
- Stadsarchief Amsterdam (City Archives)
- Van Gogh Museum
- Mauritshuis
**Data includes**:
- Institution types (Museum, Library, Archive)
- Names (multilingual)
- Descriptions
- URLs
- Founding dates
- Addresses
- Wikidata links
---
## Conclusion
**Status**: Step 1 (Install Oxigraph) **PARTIALLY COMPLETE** ⚠️
- ✅ Binary installed
- ✅ Scripts created
- ✅ Sample data prepared
- ❌ Persistent storage not working on macOS ARM
-**Workaround available** (in-memory mode)
**Decision**: **Proceed with Task 7** using in-memory Oxigraph for development. Address persistence later with Docker or upstream bug fix.
---
**Updated**: November 22, 2025
**Estimated Delay**: ~30 minutes (workaround implementation)
**Impact**: Minimal - in-memory mode sufficient for development