Schema Conversion Orchestrator is a Flask-based schema conversion service. It builds a conversion graph across multiple schema languages and can route conversions through built-in Python converters plus external Java, Node.js, and ROBOT converter subprocesses.
- Dynamic conversion graph and multi-hop path discovery
- Python, Java, Node.js, and ROBOT-based converters
- HTTP API for schema conversion
- Diagram/report generation for available conversion paths
- Unit tests that run without heavy external converter dependencies
src/schema_conversion_orchestrator/ Python package
external_converters/ Java, Node.js, and ROBOT converter assets
deploy/docker/ Dockerfile and compose files
requirements/ Python runtime and test requirements
scripts/ Build, run, test, and utility scripts
tests/ Pytest suite and fixtures
eval/ Evaluation schemas and generated eval outputs
artifacts/ Ignored generated diagrams/reports
Install Python runtime dependencies:
pip install -r requirements/runtime.txtInstall lightweight test dependencies:
pip install -r requirements/dev.txtBuild all external converter subpackages:
scripts/build_subpackages.shExpected build outputs:
external_converters/java/converter.jar
external_converters/node/dist/index.js
scripts/run.shThe service listens on http://localhost:5002.
Health check:
curl http://localhost:5002/healthRun unit tests:
python3 -m pytestRun a manual conversion request against a running local service:
python3 scripts/send_test_request.pyRun the local Docker integration check:
scripts/run_local_docker_test.sh --downBuild and run with compose:
docker compose -f deploy/docker/docker-compose.yml up -d --buildStandalone HTTPS deployment is defined in:
deploy/docker/docker-compose.https.yml
The Docker image uses the repo root as build context and
deploy/docker/Dockerfile as the Dockerfile.
scripts/generate_diagrams.shGenerated files are written to ignored artifact directories:
artifacts/diagrams/core/
artifacts/diagrams/full/
Currently modeled schema language enum values include:
JsonSchemaLinkMlMdModelsDtdXsdSHACL_TTLSHACL_JSON_LDOwl_TTLOwl_XMLOwl_OFNOWL_OBOOntologyRdfGraphQLProtobufShexMermaidSqlAlchemy
Python converters live under:
src/schema_conversion_orchestrator/converters/python/
Register Python converters in:
src/schema_conversion_orchestrator/converters/python_registry.py
External converter registration lives in:
src/schema_conversion_orchestrator/converters/external_registry.py
External converter source/assets live under:
external_converters/
This project is licensed under LICENSE.
Third-party bundled artifact notices are documented in THIRD_PARTY_NOTICES.md.