textX languages for abstract scene models (scene) and executable scene instances (scenex).
scene(*.scene) describes abstract robotic scene content: objects, workspaces, agents, workspace compositions, and scene models.scenex(*.scenex) describes executable scene instances: model files, geometry, frames, poses, kinematics, attachments, bodies, and inertial mass.
scenex references the registered scene language, so executable models can
import a .scene file and link to SceneModel declarations.
scene-dsl is a Python package installable with pip. It depends on
rdf-utils,
bdd-dsl, textx, and rdflib.
For local development with sibling checkouts:
pip install "../rdf-utils[all]"
pip install ../bdd-dsl
pip install -e .Example models live under examples/models.
Print abstract scene RDF as Turtle:
textx generate examples/models/lab.scene --target console --format ttlWrite abstract scene RDF to examples/generated/lab.scene.ttl:
textx generate examples/models/lab.scene --target graph -o examples/generated --format ttlPrint executable scenex RDF as Turtle:
textx generate examples/models/lab.scenex --target console --format ttlWrite executable scenex RDF to examples/generated/lab.scenex.ttl:
textx generate examples/models/lab.scenex --target graph -o examples/generated --format ttlThe RDF generators accept format (json-ld, ttl, or xml) and filename.
For JSON-LD, pass --nocompact to skip compacting IRIs.
pytest -q tests
ruff check src tests