#!/bin/bash # Combined script: Start Oxigraph in-memory + Load sample data # Ensures server is ready before loading data set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BIND_ADDRESS="127.0.0.1:7878" ENDPOINT="http://${BIND_ADDRESS}" DATA_DIR="${SCRIPT_DIR}/../data/sample-rdf" echo "==================================================" echo " Oxigraph Server: Start + Load Data" echo "==================================================" echo "" # Step 1: Start server echo "Step 1: Starting Oxigraph server (in-memory mode)..." "${SCRIPT_DIR}/start-oxigraph-memory.sh" if [ $? -ne 0 ]; then echo "❌ Failed to start server" exit 1 fi echo "" echo "Step 2: Waiting 2 seconds for server to stabilize..." sleep 2 # Step 2: Load data echo "" echo "Step 3: Loading sample RDF data..." if [ ! -d "$DATA_DIR" ]; then echo "⚠️ Sample data directory not found: $DATA_DIR" echo " Server is running but no data loaded" exit 0 fi LOADED=0 FAILED=0 for NT_FILE in "$DATA_DIR"/*.nt; do if [ ! -f "$NT_FILE" ]; then echo "⚠️ No .nt files found in $DATA_DIR" break fi FILENAME=$(basename "$NT_FILE") echo " Loading: $FILENAME" RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \ -H 'Content-Type: application/n-triples' \ --data-binary "@${NT_FILE}" \ "${ENDPOINT}/store" 2>&1) HTTP_CODE=$(echo "$RESPONSE" | tail -n 1) if [ "$HTTP_CODE" = "204" ] || [ "$HTTP_CODE" = "201" ]; then echo " ✅ Loaded successfully" LOADED=$((LOADED + 1)) else echo " ❌ Failed (HTTP $HTTP_CODE)" FAILED=$((FAILED + 1)) fi done echo "" echo "==================================================" echo " Summary" echo "==================================================" echo "Server: Running at $ENDPOINT" echo "Data: $LOADED file(s) loaded, $FAILED failed" echo "" echo "SPARQL Endpoint: ${ENDPOINT}/query" echo "" echo "Test query:" echo " curl -X POST \\" echo " -H 'Content-Type: application/sparql-query' \\" echo " -H 'Accept: application/sparql-results+json' \\" echo " --data 'SELECT * WHERE { ?s ?p ?o } LIMIT 10' \\" echo " ${ENDPOINT}/query" echo "" echo "To stop server: kill \$(cat /tmp/oxigraph-server.pid)" echo "=================================================="