UML — who-iris/who-iris-catalogue

Generated by cat-harness-tools/scripts/gen-uml-overview.ts — do not edit. The who-iris-catalogue sub-graph of who-iris (who-iris/catalogue), with every attribute read from its node schema.

Sources (same model): PlantUML · Mermaid · Graphviz DOT

Layout
UML class diagram of who-iris/who-iris-catalogue: one package per named sub-graph, one class per node schema, with its data fields. Portrait layout.
UML class diagram of who-iris/who-iris-catalogue: one package per named sub-graph, one class per node schema, with its data fields. Landscape layout.

The interactive view lays this diagram out in your browser with Graphviz, and needs JavaScript. Without it, pick Portrait or Landscape, or read the DOT source.

sub-graphdirectorygraph typologiesnode schemanodescohesioninout
who-iris/who-iris-cataloguewho-iris/cataloguecatalogueDublinCoreRecordSchema; CatalogueNodeSchema; CatalogueSchemanot measured

Nodes, cohesion, in and out are the detangler’s pinned measurements for the same directory (bun run cat kg:detangle; skill graph-detanglement). Not measured means the detangler does not scan that directory, not that it has no edges.

Sub-graphs

The same model, drawn by Mermaid

Kept so the page renders even where the PlantUML image is missing, and because Mermaid nodes carry the CSS class that colours them from uml.css.

classDiagram
  direction TB
  namespace who_iris__who_iris_catalogue {
    class who_iris_who_iris_catalogue_folio_dublin_core_v1_Value["Value"] {
      <<json: DublinCoreRecordSchema>>
      value [1] string
      language [0..1] string
      authority [0..1] string
    }
    class who_iris_who_iris_catalogue_folio_dublin_core_v1_Field["Field"] {
      <<json: DublinCoreRecordSchema>>
      schema [0..1] string
      element [1] string
      qualifier [0..1] string
      values [1..*] Value[]
    }
    class who_iris_who_iris_catalogue_folio_dublin_core_v1_folio_dublin_core_v1["folio-dublin-core/v1"] {
      <<json: DublinCoreRecordSchema>>
      $schema [1] 'folio-dublin-core/v1'
      id [1] string
      fields [1..*] Field[]
      provenance [1] object
    }
    class who_iris_who_iris_catalogue_folio_catalogue_node_v1_MaskedRegion["MaskedRegion"] {
      <<json: CatalogueNodeSchema>>
      x0 [1] integer
      y0 [1] integer
      x1 [1] integer
      y1 [1] integer
      reason [1] string
    }
    class who_iris_who_iris_catalogue_folio_catalogue_node_v1_Bitstream["Bitstream"] {
      <<json: CatalogueNodeSchema>>
      name [1] string
      bundle [0..1] string
      bytes [0..1] integer
      mediaType [0..1] string
      pixelWidth [0..1] integer
      pixelHeight [0..1] integer
      maskedRegions [1..*] MaskedRegion[]
      materialization [1] object
    }
    class who_iris_who_iris_catalogue_folio_catalogue_node_v1_folio_catalogue_node_v1["folio-catalogue-node/v1"] {
      <<json: CatalogueNodeSchema>>
      $schema [1] 'folio-catalogue-node/v1'
      id [1] string
      kind [1] container | item
      flavour [0..1] string
      title [1] string
      parents [0..*] string[][]
      childCountUpstream [0..1] integer
      handle [0..1] string
      libraryId [0..1] string
      metadataRef [0..1] string
      bitstreams [0..*] Bitstream[]
      materialization [1] object
    }
    class who_iris_who_iris_catalogue_folio_catalogue_v1_folio_catalogue_v1["folio-catalogue/v1"] {
      <<json: CatalogueSchema>>
      $schema [1] 'folio-catalogue/v1'
      id [1] string
      title [1] string
      system [1] string
      baseUrl [1] string~uri~
      totalItemsUpstream [0..1] integer
      totalFilesUpstream [0..1] integer
      totalBytesUpstream [0..1] integer
      sizeBasis [0..1] string
      nodesDir [0..1] string
      sourceLoss [0..1] object
    }
  }
  who_iris_who_iris_catalogue_folio_dublin_core_v1_Field *-- "1..*" who_iris_who_iris_catalogue_folio_dublin_core_v1_Value : values
  who_iris_who_iris_catalogue_folio_dublin_core_v1_folio_dublin_core_v1 *-- "1..*" who_iris_who_iris_catalogue_folio_dublin_core_v1_Field : fields
  who_iris_who_iris_catalogue_folio_catalogue_node_v1_Bitstream *-- "1..*" who_iris_who_iris_catalogue_folio_catalogue_node_v1_MaskedRegion : maskedRegions
  who_iris_who_iris_catalogue_folio_catalogue_node_v1_folio_catalogue_node_v1 *-- "0..*" who_iris_who_iris_catalogue_folio_catalogue_node_v1_Bitstream : bitstreams
  cssClass "who_iris_who_iris_catalogue_folio_dublin_core_v1_Value" fa_uml_kind_catalogue
  cssClass "who_iris_who_iris_catalogue_folio_dublin_core_v1_Field" fa_uml_kind_catalogue
  cssClass "who_iris_who_iris_catalogue_folio_dublin_core_v1_folio_dublin_core_v1" fa_uml_kind_catalogue
  cssClass "who_iris_who_iris_catalogue_folio_catalogue_node_v1_MaskedRegion" fa_uml_kind_catalogue
  cssClass "who_iris_who_iris_catalogue_folio_catalogue_node_v1_Bitstream" fa_uml_kind_catalogue
  cssClass "who_iris_who_iris_catalogue_folio_catalogue_node_v1_folio_catalogue_node_v1" fa_uml_kind_catalogue
  cssClass "who_iris_who_iris_catalogue_folio_catalogue_v1_folio_catalogue_v1" fa_uml_kind_catalogue

folio-assistant — code under the Apache License 2.0, documentation under CC BY 3.0. Generated schema and API references are rebuilt from source on every push to main.

deployed b08c961 · 2026-10-23T23:11:09Z