Skip to main content

Blueprint Domain Populator

popdata reads a populated system repository, a scenario instance population, and a model-to-platform type map, and produces an initialized system database ready for execution

Create a separate TclRAL domain database for each Domain in your System.

Let's say you have modeled an Elevator System with Elevator Management, Transport, and Signal IO domains.

You use the Blueprint Domain Populator to create three TclRAL databases, each populated with whatever initial instance populations you have defined in a supplied context.

Installation

% pip install mi-domain-populate

This creates an executable command named popdata

Type popdata -h to get the complete and most up to date list of supported options.

Usage

This package takes three inputs, a system populated into the metamodel database, a context specifying initial instance populates, and a map from domain to system data types.

Command usage

First, get a copy of the bundled example with the -E (example) option:

% popdata -E

This creates an examples/ev1 directory in your current working directory containing the three input files (mmdb_elevator.ral, EVMAN_one_bank1.sip, and EVMAN_types.yaml). Change into that directory and run:

% popdata -s mmdb_elevator.ral -c EVMAN_one_bank1.sip -t EVMAN_types.yaml -o

Here -s is the system, -c is the context, and -t specifies the mapping of domain types to available system data types which currently are TclRAL types. If you use the optional -o option, a separate <domain alias>.txt file will be generated for each domain database. For the above command you should see these files generated:

EVMAN.ral and evman.txt

These are both, in fact, text files. But the *.ral file is readable by TclRAL and fairly incomprehensible to a human. The *.txt file, on the other hand, is easy to read and is only intended for human consumption. (That's why the name is lowercase).

The EVMAN.ral domain database is always generated; the human-readable evman.txt is only produced when you pass the -o option.

At this point we are only working with (and have only tested) a system with a single domain. That said, a minor extension to the sip file format will make it possible to work with multiple domains. Will update this readme file when it's ready.

System

This is a metamodel TclRAL database (*.ral) file populated with a user's domain model: the Elevator Management domain populated into the Shlaer-Mellor metamodel, for example.

This is the mmdb_elevator.ral file in our example. The naming convention has the database left of the underscore and the content to the right. Thus, the metamodel database (mmdb) is populated with the elevator system.

This *.ral file is produced by the modeldb command if you have the xuml-populate package installed.

Context

Context is expressed as a set of initial instances and states in a scenario instance population *.sip file. The popdata command doesn't do anything with the initial states -- those are handled in a downstream command yet to be published.

Write the scenario instance population *.sip file yourself using the example EVMAN_one_bank1.sip file as a guide.

Type Mapping

A *.yaml file that maps each domain type to a TclRAL system type. There's one in the supplied example to use as a guide.

Metadata

Release files for mi-domain-populate 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mi-domain-populate 0.2.0
File Size Uploaded
mi_domain_populate-0.2.0.tar.gz 44.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mi-domain-populate 0.2.0
File Interpreter ABI Platform
mi_domain_populate-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 88.7 kB

Release files / mi_domain_populate-0.2.0.tar.gz

Download URL mi_domain_populate-0.2.0.tar.gz
Size 44.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8be02ce943eca265962236033c7c06bfef03789bfae760afbab8607aa312bf23
BLAKE2b-256 checksum
How to use checksums
25d6ca0a80ffed521ff79fbc2bf78f414077c6f875a5e4de5e0ea3f7f4509bec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / mi_domain_populate-0.2.0-py3-none-any.whl

Download URL mi_domain_populate-0.2.0-py3-none-any.whl
Size 44.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
90e9ee55b59e1adf97587bd21df50a45d55fa05bea41d31f509d98de13205b18
BLAKE2b-256 checksum
How to use checksums
7c051b4c952bfb5fd4c5fc6bdbd9ec8c7dbfcd54f98b9a6ed4a95f78a750aa82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page