- 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.
85 lines
2.3 KiB
Bash
Executable file
85 lines
2.3 KiB
Bash
Executable file
#!/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 "=================================================="
|