Skip to content

Collection instances (columns blocks) and generic arrays (type Array, class Name < Array) #42

Closed as not planned

Description

@ronaldtse

Context

RS 3001 §Instance collection supports named collections with planned instances (columns { }), and generic array types (type Array, class Name < Array). None are implemented; today only ad-hoc named instance collections (instances "Name" { … }) exist.

Scope

  • grammar: columns { } planned-instance sugar; array generic types; < Array parent form (parent_class already parses < name)
  • model/builder: typed collections; expansion into hydrated instances
  • executor/CSV: column mapping against planned columns
  • RS 3001 alignment check: §Instance collection + §Value collection semantics
  • specs + fixtures

Activity

  1. changed the title [-]Collection instances () and generic arrays (, )[/-] [+]Collection instances (columns blocks) and generic arrays (type Array, class Name < Array)[/+] on Oct 6, 2026
  2. ronaldtse commented on Oct 6, 2026

    @ronaldtse
    ContributorAuthor

    Determination (audit against the authoritative spec): columns {}, type Array, and class Name < Array are not in RS 3001 — the spec's par. Instance collection defines only instances {name} {block} with instance members, all of which is implemented and now vendored as corpus fixtures 21–23 (PR #48).

    These constructs are therefore extension-track: they need spec adoption first (the same audit-then-amend process as visibility in #38) before lutaml-lml implements them. Repurposing this issue to track that adoption; the EA/XMI tabular round-trip demand is the motivating use case to research.

  3. ronaldtse commented on Oct 7, 2026

    @ronaldtse
    ContributorAuthor

    Audit conclusion (2026-10-07): no grounded demand — closing as not planned.

    Researched every plausible consumer:

    1. XMI / Enterprise Architect round-trip: XMI is an object-graph format — there is no tabular construct to round-trip. EA model interchange does not demand columns {} or generic arrays.
    2. lutaml-yaml2uml (the tool whose dialect inspired this item): it converts the metanorma-style datamodel view YAML (relations/classes structure) into LutaML text — no tables, no columns anywhere. lutaml-uml's own TODO (TODO.next/08-broken-executables.md) additionally flags it as a misplaced executable unrelated to that gem.
    3. The real tabular surface already exists: lutaml-lml's Executor CSV adapter does column-mapped CSV import → hydrated instances, outside the grammar — which is where tabular data belongs (an interchange concern, not a modeling-language construct).

    type Array / class Name < Array likewise have no claiming consumer in the family today. If a concrete demand appears (e.g., a consumer needing typed array attributes in normative models), reopen with that use case and run the visibility-style adoption process: audit → spec amendment → implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions