.rmy File Format

The .rmy file format is a YAML file isomorphic with a database of tables in 3NF.

Example

# Rosella Project Model in Yaml => .rmy Sun Oct 11 2020 13:30:58 GMT+1100 (Australian Eastern Daylight Time) 
metadata:
  - key: rmy_version
    value: 1
project:
  - id: 464e3c2a-aaeb-4658-a838-f8605dac3416
    parentId: 464e3c2a-aaeb-4658-a838-f8605dac3416
    deliveryAction: Deliver House Project
    deliverableName: House Project
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: 8c4e9d14-4969-4844-8621-6c8fa0228058
    parentId: 464e3c2a-aaeb-4658-a838-f8605dac3416
    deliveryAction: Build Primary Structure
    deliverableName: Primary Structure
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: 64ea4f9d-b5b7-480c-ada4-9cb192bb512d
    parentId: 8c4e9d14-4969-4844-8621-6c8fa0228058
    deliveryAction: Develop Foundation
    deliverableName: Foundation Development
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: ee54d2c8-c991-450b-92c6-ab308f69d0c3
    parentId: 64ea4f9d-b5b7-480c-ada4-9cb192bb512d
    deliveryAction: Deliver Layout-Topography
    deliverableName: Layout-Topography
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: 9188fd52-dfb0-4f3e-9d2e-65743fa08e42
    parentId: 64ea4f9d-b5b7-480c-ada4-9cb192bb512d
    deliveryAction: Excavate
    deliverableName: Excavation
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: a9e5f50b-4541-4f48-a8ca-c054bf8bb851
    parentId: 64ea4f9d-b5b7-480c-ada4-9cb192bb512d
    deliveryAction: Pour Concrete
    deliverableName: Concrete Pour
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: a526490c-418a-4a43-beeb-dc0cedce4f4c
    parentId: 8c4e9d14-4969-4844-8621-6c8fa0228058
    deliveryAction: Develop Exterior Wall
    deliverableName: Exterior Wall Development
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: 43d5b2fe-b260-48cc-808f-a8b7e5f1d8dd
    parentId: 8c4e9d14-4969-4844-8621-6c8fa0228058
    deliveryAction: Develop Roof
    deliverableName: Roof Development
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: 18f56c75-41ad-4316-9862-9a8ebfb7cd12
    parentId: 464e3c2a-aaeb-4658-a838-f8605dac3416
    deliveryAction: Build Electrical Infrastructure
    deliverableName: Electrical Infrastructure
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: 44c5902d-5396-4927-9a9e-bb9383038f51
    parentId: 464e3c2a-aaeb-4658-a838-f8605dac3416
    deliveryAction: Build Plumbing Infrastructure
    deliverableName: Plumbing Infrastructure
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: 23462b91-a33b-4e81-b947-501a8b6f7800
    parentId: 464e3c2a-aaeb-4658-a838-f8605dac3416
    deliveryAction: Deliver Inside Wall Development - Rough Finish
    deliverableName: Inside Wall Development - Rough Finish
    complete: 0
    expanded: 0
    rel: null
    nodeType: Scope
    active: 1
    ractiveKeypath: null
  - id: ff8f1bb1-93bd-4069-899e-3ce30bbba7be
    parentId: 9188fd52-dfb0-4f3e-9d2e-65743fa08e42
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: ee54d2c8-c991-450b-92c6-ab308f69d0c3
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
  - id: 509645ab-d9d2-4658-afb6-bbbbff324586
    parentId: a9e5f50b-4541-4f48-a8ca-c054bf8bb851
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: 9188fd52-dfb0-4f3e-9d2e-65743fa08e42
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
  - id: cd008b70-6739-449f-9193-926d90ab9765
    parentId: a526490c-418a-4a43-beeb-dc0cedce4f4c
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: 64ea4f9d-b5b7-480c-ada4-9cb192bb512d
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
  - id: 4401f6ff-56ca-4a44-84d2-38bbce5355f4
    parentId: 43d5b2fe-b260-48cc-808f-a8b7e5f1d8dd
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: a526490c-418a-4a43-beeb-dc0cedce4f4c
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
  - id: 8bdc5d4f-d79e-4bd0-b796-924d4e03148d
    parentId: 18f56c75-41ad-4316-9862-9a8ebfb7cd12
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: 8c4e9d14-4969-4844-8621-6c8fa0228058
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
  - id: 06b6838f-a798-45b7-b4b5-8dc8241d7463
    parentId: 44c5902d-5396-4927-9a9e-bb9383038f51
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: 8c4e9d14-4969-4844-8621-6c8fa0228058
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
  - id: e36eb2c6-6b26-4d2d-b086-4ae3fe295011
    parentId: 23462b91-a33b-4e81-b947-501a8b6f7800
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: 18f56c75-41ad-4316-9862-9a8ebfb7cd12
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
  - id: ffdf1d8e-a1d2-4533-9d9e-5f5070f7cea1
    parentId: 23462b91-a33b-4e81-b947-501a8b6f7800
    deliveryAction: null
    deliverableName: null
    complete: 0
    expanded: 0
    rel: 44c5902d-5396-4927-9a9e-bb9383038f51
    nodeType: Dependency
    active: 1
    ractiveKeypath: null
inOHPSets:
  - OHPSetId: WBS
    elementId: 07a3afc2-8264-4a45-9f6d-b1b312da3634

Elements and Transclusions

Rosella Models are guaranteed to have universally unique ids (UUID) for all elements. This is enforcing a precondition of the following future possible features:

  1. Merge or transclude any model.
  2. Implement version control.

An implication of this is that any two Rosella Models which share a UUID have a shared history and represent either an earlier,or later, version of some model.

Items in lists in the .rmy element order represents a fixed point.  That is, if a .rmy is loaded and then saved, the items will be in the same order.  At the present there is no implemented feature to reorder nodes.

At present, WBS ids are not stored in an .rmy file and their stability when generated depends on the model being in a fixed order.

Table NameColumn NameData TypeValuesDefaultRequired / OptionalIntroduced in version
project_productidPrimary KeyUUIDv41
project_productparentIdForeign key into project_productThe root node is a fixed point and its parentId points to itself.1
project_productdeliverableName1
project_productdeliveryActionIf not provided, the noun to verb converter is run and this column defaults to the answer.1
project_productcomplete0=incomplete
1=complete
0Member of the Leaf 100% set.1
project_productexpanded0=unexpanded
1=expanded
1Non members of the Leaf 100% set.1
project_productrelForeign key into project_productThis element represents a copy of the element that is pointed to by the rel column.nodeType = "Transclusion"1
project_productnodeType"Element": rel column is absent.
"Transclusion": rel column is present.
1
project_productactive1 = Active
0 = Inactive this row is imported by ignored by all calculations and drawings.
11
project_productbacklogTimeboxesList of positive integers Z+. Only the first number may be 1.This list represents the timebox sizes available to this backlog. The first item is the number of time units in the delivery cadence; The second number is the multiplier to get from the cadence to the first timebox which is a multiple of the cadence. And so on.[1]Members of the Backlog 100% set.2
project_productbacklogIcebergShapeList of positive integers Z+. The number of each size of cadence that is in the iceberg for this backlog. This number is used as min(backlogIcebergShape,backlogTimeboxes.length)[1]Members of the Backlog 100% set.2
project_producttimeboxN from Z+The size of the timebox for this element. A 1 means this timebox is the delivery cadence. 2 means the first multiple of the cadence, 3 means the second multiple, and so on.1Child elements of members of the "Backlog" 100% set.2

User and Community information and the .rmy file format.

The .rpmy file format contains a community and locale independent model. This file format will not record user choices such as ‘community’ or ‘locale’.

Metadata

The primary key of the metadata list/table is key.
metadata:
- key: rpmy_version
  value: 1
Table NameColumn NameData TypeValuesDefaultRequired / OptionalIntroduced in version
metadatakeyPrimary Key"rmy_version" is the integer version number of the .rmy file.1
metadatavalue1

100% Sets

The .rmy file format is extended to include an optional list “100% Sets” of named boolean marks on each element. For example in YAML:
inOHPSets:
- OHPSetId: WBS
  elementId: c8e27019-d4d6-4f82-b014-d5925ea252e7
The primary key of the 100% Sets list/table is OHPSetId+elementId Each elementId must be present as an element in the project data. Any 100% Sets defined purely by a graph query such as Root 100% Set  and Leaf 100% Set (which do not rely on marks) – will not be affected by the presence or absence of marks for that 100% Set. In addition, the presence of a mark for a 100% Set on a node (which is not automatically defined) will trigger the generation of the 100% Set.
Table NameColumn NameData TypeValuesDefaultRequired / OptionalIntroduced in version
inOHPSetsOHPSetIdPrimary Key"WBS": WBS 100% Set
"Backlog": Backlog 100% Set
1
inOHPSetselementIdForeign key into project_product1

Sample Projects and .rmy files

By necessity, each sample project has a fixed set of ids. At the point of instantiating a model from a Sample project the ids are replaced with UUIDs.

© 2020 David Pratten
This work is licensed under a Creative Commons Attribution 4.0 International License.
Executable versions of the model are published and licensed using the MIT License