Overview
SedaroML is a type-safe language for representing complex, multi-physical systems of systems for simulation and model-based systems engineering use cases. It operates across the entire Sedaro Platform and allows for world-class re-use and composability.
Ontologies & Models
An ontology is a reusable type of system element. It bundles, in one cohesive unit:
Types & Units
Every SedaroML field is statically typed. Types come from SedaroTS, the platform-wide type system, which is what makes models portable across languages and lets the Simulation Compiler verify that models, queries, and behavior implementations all agree — including physical units.
Relationships
Relationships are typed references between instances. Together with fields, they make SedaroML models relational
Constraints & Derivation
Beyond types, SedaroML captures two further classes of model-time logic:
Behaviors
Behaviors define how an instance's state evolves over simulated time. A behavior is declared on the ontology — so every instance of the ontology carries its dynamics with it, in any model it is composed into.
Uncertainty
SedaroML fields can hold uncertain quantities: statistical distributions in place of concrete values. This makes uncertainty a property of the model rather than of analysis scripts around it — the same model describes both the nominal system and the space of its variations, which is the foundation for Monte Carlo studies run via Workflows.
Serialization (SML)
All Platform Content represented in SedaroML is open and exportable to human-readable formats — in Sedaro, there is no vendor lock. The interchange form is an SML document: model data and model schema, together in one self-describing, version-controllable text artifact.
Python Representation
This page describes how SedaroML is written in Python today. The language's abstractions and semantics are defined in the preceding pages; everything here is representation — the Python spelling of those concepts.