glam/schemas/20251121/QUICK_REFERENCE_REGENERATION.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

3.8 KiB

Quick Reference: Regenerating RDF & UML

Last Generated: 2025-11-22 15:53:19 (Timestamp: 20251122_155319)

One-Command Regeneration

# Set timestamp
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# 1. Generate all RDF formats
cd schemas/20251121/linkml && \
gen-owl -f ttl 01_custodian_name_modular.yaml 2>/dev/null > ../rdf/custodian_multi_aspect_${TIMESTAMP}.owl.ttl && \
cd ../rdf && \
rdfpipe custodian_multi_aspect_${TIMESTAMP}.owl.ttl -o nt 2>/dev/null > custodian_multi_aspect_${TIMESTAMP}.nt && \
rdfpipe custodian_multi_aspect_${TIMESTAMP}.owl.ttl -o json-ld 2>/dev/null > custodian_multi_aspect_${TIMESTAMP}.jsonld && \
rdfpipe custodian_multi_aspect_${TIMESTAMP}.owl.ttl -o xml 2>/dev/null > custodian_multi_aspect_${TIMESTAMP}.rdf && \
cd ../../.. && \
echo "✅ RDF generated: $TIMESTAMP"

# 2. Generate UML visualizations
python3 scripts/owl_to_plantuml.py \
  schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.owl.ttl \
  schemas/20251121/uml/plantuml/custodian_multi_aspect_${TIMESTAMP}.puml && \
python3 scripts/owl_to_mermaid.py \
  schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.owl.ttl \
  schemas/20251121/uml/mermaid/custodian_multi_aspect_${TIMESTAMP}.mmd && \
cd schemas/20251121/uml/plantuml && \
plantuml custodian_multi_aspect_${TIMESTAMP}.puml && \
plantuml -tsvg custodian_multi_aspect_${TIMESTAMP}.puml && \
cd ../../../.. && \
echo "✅ UML generated: $TIMESTAMP"

# 3. Verify
ls -lh schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.* && \
ls -lh schemas/20251121/uml/*/custodian_multi_aspect_${TIMESTAMP}.*

Individual Commands

Generate RDF Only

TIMESTAMP=$(date +%Y%m%d_%H%M%S)
cd schemas/20251121/linkml
gen-owl -f ttl 01_custodian_name_modular.yaml 2>/dev/null \
  > ../rdf/custodian_multi_aspect_${TIMESTAMP}.owl.ttl

Convert RDF Formats

cd schemas/20251121/rdf
rdfpipe custodian_multi_aspect_${TIMESTAMP}.owl.ttl -o nt 2>/dev/null \
  > custodian_multi_aspect_${TIMESTAMP}.nt
rdfpipe custodian_multi_aspect_${TIMESTAMP}.owl.ttl -o json-ld 2>/dev/null \
  > custodian_multi_aspect_${TIMESTAMP}.jsonld
rdfpipe custodian_multi_aspect_${TIMESTAMP}.owl.ttl -o xml 2>/dev/null \
  > custodian_multi_aspect_${TIMESTAMP}.rdf

Generate UML Only

# PlantUML
python3 scripts/owl_to_plantuml.py \
  schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.owl.ttl \
  schemas/20251121/uml/plantuml/custodian_multi_aspect_${TIMESTAMP}.puml

cd schemas/20251121/uml/plantuml
plantuml custodian_multi_aspect_${TIMESTAMP}.puml
plantuml -tsvg custodian_multi_aspect_${TIMESTAMP}.puml

# Mermaid
python3 scripts/owl_to_mermaid.py \
  schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.owl.ttl \
  schemas/20251121/uml/mermaid/custodian_multi_aspect_${TIMESTAMP}.mmd

Expected Output

  • 4 RDF files (~1.3MB total): .owl.ttl, .nt, .jsonld, .rdf
  • 4 UML files: .puml, .png, .svg, .mmd

Troubleshooting

"gen-owl: command not found"

pip install linkml

"rdfpipe: command not found"

pip install rdflib

"plantuml: command not found"

brew install plantuml  # macOS
# or download from https://plantuml.com

JSON-LD file is 0 bytes

Use json-ld (hyphenated) not jsonld:

rdfpipe input.ttl -o json-ld > output.jsonld

Validation

# Check file sizes (should be non-zero)
ls -lh schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.*

# Count RDF triples (should be ~3,027)
wc -l schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.nt

# Validate RDF syntax (optional, requires rapper)
rapper -i turtle -c schemas/20251121/rdf/custodian_multi_aspect_${TIMESTAMP}.owl.ttl

Documentation

  • Full guide: RDF_UML_GENERATION_COMPLETE_20251122_155319.md
  • RDF usage: RDF_GENERATION_SUMMARY.md
  • Schema rules: .opencode/SCHEMA_GENERATION_RULES.md