{
  "title": "Follow an asset across its carriers — Virtual Acoustic Objects",
  "text": "MODAVIS (2026). Follow an asset across its carriers — Virtual Acoustic Objects. Research notebooks, September 2026 · research guides edition. https://modavis.org/editions/2026-09-r4/vao/delivery/",
  "bibtex": "@misc{modavis_vao_delivery_2026_09_r4,\n  author = {{MODAVIS}},\n  title = {Follow an asset across its carriers — Virtual Acoustic Objects},\n  year = {2026},\n  month = {09},\n  version = {2026-09-r4},\n  url = {https://modavis.org/editions/2026-09-r4/vao/delivery/},\n  note = {Content SHA-256: a48bb68c945702a0f289c8369103b8286c23fc1c208995d5b96c881031f35c80}\n}",
  "url": "https://modavis.org/editions/2026-09-r4/vao/delivery/",
  "sha256": "a48bb68c945702a0f289c8369103b8286c23fc1c208995d5b96c881031f35c80",
  "edition": "2026-09-r4",
  "date": "2026-09-26",
  "canonicalPayload": "{\"book\":{\"number\":\"01\",\"slug\":\"vao\",\"title\":\"Virtual Acoustic Objects\"},\"chapter\":{\"blocks\":[{\"id\":\"release-and-carrier\",\"text\":\"One semantic release, several useful packages\",\"type\":\"heading\"},{\"text\":\"The VAO 0.5.0 manifest is the semantic contract: it identifies assets, realizations, relationships and the relevant capabilities. A carrier is a particular package of bytes. A bootstrap carrier supplies discovery and evidence material; a preservation carrier supplies the preservation closure; a custom carrier can collect a selected dependency closure. These roles answer different access needs while referring to the same unchanged manifest.\",\"type\":\"p\"},{\"text\":\"An asset expresses a role in the research object, such as an exterior geometry or an audio recording. A realization identifies a particular encoded form with an exact byte size and SHA-256 digest. A distribution tells a resolver where to obtain it. Treating these as distinct avoids confusing a convenient URL, a low-resolution derivative and the scientific asset they serve.\",\"type\":\"p\"},{\"id\":\"exact-resolution\",\"text\":\"Resolve an exact version before selecting material\",\"type\":\"heading\"},{\"text\":\"Discovery can begin with a concept-level landing page or a search result, but reproducible acquisition needs an exact release. The Dynamic Delivery Profile connects external carriers through exact identifiers, including the version PID, record and file identities, carrier ID and descriptor digest where applicable. A resolver checks the actual carrier descriptor and obtains the member path from that descriptor. A filename or an HTTP ETag alone is not the realization identity.\",\"type\":\"p\"},{\"items\":[\"Inspect the release identity and manifest before choosing assets. Record the exact version used.\",\"Select realizations suitable for the task, then compute their required dependency and fallback closure. Dependency and fallback graphs must be acyclic.\",\"Retrieve the identified carrier or member bytes. Verify expected size and digest before exposing a realization as acquired.\",\"Retain an acquisition receipt that distinguishes attempted, failed and verified retrieval. An inaccessible file gets a diagnostic, not an invented successful byte identity.\"],\"type\":\"list\"},{\"id\":\"selection-example\",\"text\":\"A mobile selection, step by step\",\"type\":\"heading\"},{\"text\":\"Imagine a release with a detailed geometry, a smaller geometry and several audio realizations. A mobile selection asks for a suitable subset and its dependencies; it does not redefine the historical instrument. If the selected geometry depends on a material or coordinate frame, that dependency remains part of the usable selection. If a requested profile needs an unavailable group, the client should report that the profile is not materialized instead of silently treating the partial download as complete.\",\"type\":\"p\"},{\"label\":\"VAO CLI 0.3.1 source workflow · replace the value with an exact VAO version DOI\",\"text\":\"# These commands are documented for source version 0.3.1.\\n# Check your installed version and command help before use.\\nVAO_DOI=\\\"<exact version DOI of your VAO object>\\\"\\nvao resolve \\\"$VAO_DOI\\\" --exact\\nvao inspect \\\"$VAO_DOI\\\" --exact --assets --groups --archive\\nvao select \\\"$VAO_DOI\\\" --kind geometry --quality low --max-bytes 100MiB\",\"type\":\"code\"},{\"text\":\"The placeholder must identify a VAO research object, not the DOI of the standard itself. Selection is a planning step; inspect its result before a fetch or materialization. The archived CLI 0.2.0 is a separate release and must not be assumed to implement the 0.3.1 source workflow. A reproducible record includes the actual CLI version as well as the object version.\",\"type\":\"p\"},{\"id\":\"custom-carriers\",\"text\":\"When a smaller package is still the same release\",\"type\":\"heading\"},{\"text\":\"A custom carrier can retain the original manifest bytes and package selected verified realizations under a new carrier identity. That changes delivery without changing the semantic release. Transcoding an audio file or simplifying a geometry is different: the result has new bytes and must be represented as a new realization with its derivation. Renaming a file does not make a derived object scientifically equivalent to its source.\",\"type\":\"p\"},{\"text\":\"The outer archive digest belongs in an external release descriptor rather than inside the archive it hashes. Otherwise the package would require a circular self-hash. VAO also distinguishes hashing the exact manifest bytes from canonicalizing other specified records. Reserializing equivalent JSON can change a byte digest; a verifier must use the hashing procedure defined for the particular artifact.\",\"type\":\"p\"},{\"text\":\"“Downloaded” should identify what was downloaded: a bootstrap, a selected group closure or a preservation carrier. A small verified selection can be entirely appropriate for playback while remaining incomplete for long-term preservation.\",\"title\":\"Completion is a stated scope\",\"type\":\"note\"},{\"items\":[{\"detail\":\"Check syntax, semantics, fixity and the claimed profiles.\",\"href\":\"/notebooks/standards/conformance/\",\"label\":\"Validation layers\"},{\"detail\":\"Choose the implementation for the task and object version.\",\"href\":\"/notebooks/software/clients/\",\"label\":\"Client compatibility\"}],\"type\":\"links\"}],\"intro\":\"A VAO release describes a research object. Its carriers distribute exact realizations of that object’s assets. Keeping those two levels separate supports small downloads without losing the identity of the whole.\",\"slug\":\"delivery\",\"sources\":[{\"detail\":\"Normative standard, profile index, Dynamic Delivery Profile and conformance specification in the versioned release.\",\"href\":\"https://doi.org/10.5281/zenodo.22214248\",\"label\":\"VAO Standard 0.5.0\"},{\"detail\":\"Source documentation inspected on 26 September 2026. This source version was pending release; the separately linked 0.2.0 archive must not be assumed to provide all of these commands or VAO 0.5 behavior.\",\"label\":\"VAO CLI · source README, version 0.3.1\"},{\"detail\":\"Archived release identity, distinct from the later source documentation used for the command example.\",\"href\":\"https://doi.org/10.5281/zenodo.22133810\",\"label\":\"VAO CLI 0.2.0 archive\"}],\"title\":\"Follow an asset across its carriers\"},\"date\":\"2026-09-26\",\"edition\":\"2026-09-r4\",\"figures\":{}}",
  "payload": {
    "edition": "2026-09-r4",
    "date": "2026-09-26",
    "book": {
      "slug": "vao",
      "title": "Virtual Acoustic Objects",
      "number": "01"
    },
    "chapter": {
      "slug": "delivery",
      "title": "Follow an asset across its carriers",
      "intro": "A VAO release describes a research object. Its carriers distribute exact realizations of that object’s assets. Keeping those two levels separate supports small downloads without losing the identity of the whole.",
      "blocks": [
        {
          "type": "heading",
          "id": "release-and-carrier",
          "text": "One semantic release, several useful packages"
        },
        {
          "type": "p",
          "text": "The VAO 0.5.0 manifest is the semantic contract: it identifies assets, realizations, relationships and the relevant capabilities. A carrier is a particular package of bytes. A bootstrap carrier supplies discovery and evidence material; a preservation carrier supplies the preservation closure; a custom carrier can collect a selected dependency closure. These roles answer different access needs while referring to the same unchanged manifest."
        },
        {
          "type": "p",
          "text": "An asset expresses a role in the research object, such as an exterior geometry or an audio recording. A realization identifies a particular encoded form with an exact byte size and SHA-256 digest. A distribution tells a resolver where to obtain it. Treating these as distinct avoids confusing a convenient URL, a low-resolution derivative and the scientific asset they serve."
        },
        {
          "type": "heading",
          "id": "exact-resolution",
          "text": "Resolve an exact version before selecting material"
        },
        {
          "type": "p",
          "text": "Discovery can begin with a concept-level landing page or a search result, but reproducible acquisition needs an exact release. The Dynamic Delivery Profile connects external carriers through exact identifiers, including the version PID, record and file identities, carrier ID and descriptor digest where applicable. A resolver checks the actual carrier descriptor and obtains the member path from that descriptor. A filename or an HTTP ETag alone is not the realization identity."
        },
        {
          "type": "list",
          "items": [
            "Inspect the release identity and manifest before choosing assets. Record the exact version used.",
            "Select realizations suitable for the task, then compute their required dependency and fallback closure. Dependency and fallback graphs must be acyclic.",
            "Retrieve the identified carrier or member bytes. Verify expected size and digest before exposing a realization as acquired.",
            "Retain an acquisition receipt that distinguishes attempted, failed and verified retrieval. An inaccessible file gets a diagnostic, not an invented successful byte identity."
          ]
        },
        {
          "type": "heading",
          "id": "selection-example",
          "text": "A mobile selection, step by step"
        },
        {
          "type": "p",
          "text": "Imagine a release with a detailed geometry, a smaller geometry and several audio realizations. A mobile selection asks for a suitable subset and its dependencies; it does not redefine the historical instrument. If the selected geometry depends on a material or coordinate frame, that dependency remains part of the usable selection. If a requested profile needs an unavailable group, the client should report that the profile is not materialized instead of silently treating the partial download as complete."
        },
        {
          "type": "code",
          "label": "VAO CLI 0.3.1 source workflow · replace the value with an exact VAO version DOI",
          "text": "# These commands are documented for source version 0.3.1.\n# Check your installed version and command help before use.\nVAO_DOI=\"<exact version DOI of your VAO object>\"\nvao resolve \"$VAO_DOI\" --exact\nvao inspect \"$VAO_DOI\" --exact --assets --groups --archive\nvao select \"$VAO_DOI\" --kind geometry --quality low --max-bytes 100MiB"
        },
        {
          "type": "p",
          "text": "The placeholder must identify a VAO research object, not the DOI of the standard itself. Selection is a planning step; inspect its result before a fetch or materialization. The archived CLI 0.2.0 is a separate release and must not be assumed to implement the 0.3.1 source workflow. A reproducible record includes the actual CLI version as well as the object version."
        },
        {
          "type": "heading",
          "id": "custom-carriers",
          "text": "When a smaller package is still the same release"
        },
        {
          "type": "p",
          "text": "A custom carrier can retain the original manifest bytes and package selected verified realizations under a new carrier identity. That changes delivery without changing the semantic release. Transcoding an audio file or simplifying a geometry is different: the result has new bytes and must be represented as a new realization with its derivation. Renaming a file does not make a derived object scientifically equivalent to its source."
        },
        {
          "type": "p",
          "text": "The outer archive digest belongs in an external release descriptor rather than inside the archive it hashes. Otherwise the package would require a circular self-hash. VAO also distinguishes hashing the exact manifest bytes from canonicalizing other specified records. Reserializing equivalent JSON can change a byte digest; a verifier must use the hashing procedure defined for the particular artifact."
        },
        {
          "type": "note",
          "title": "Completion is a stated scope",
          "text": "“Downloaded” should identify what was downloaded: a bootstrap, a selected group closure or a preservation carrier. A small verified selection can be entirely appropriate for playback while remaining incomplete for long-term preservation."
        },
        {
          "type": "links",
          "items": [
            {
              "label": "Validation layers",
              "href": "/notebooks/standards/conformance/",
              "detail": "Check syntax, semantics, fixity and the claimed profiles."
            },
            {
              "label": "Client compatibility",
              "href": "/notebooks/software/clients/",
              "detail": "Choose the implementation for the task and object version."
            }
          ]
        }
      ],
      "sources": [
        {
          "label": "VAO Standard 0.5.0",
          "href": "https://doi.org/10.5281/zenodo.22214248",
          "detail": "Normative standard, profile index, Dynamic Delivery Profile and conformance specification in the versioned release."
        },
        {
          "label": "VAO CLI · source README, version 0.3.1",
          "detail": "Source documentation inspected on 26 September 2026. This source version was pending release; the separately linked 0.2.0 archive must not be assumed to provide all of these commands or VAO 0.5 behavior."
        },
        {
          "label": "VAO CLI 0.2.0 archive",
          "href": "https://doi.org/10.5281/zenodo.22133810",
          "detail": "Archived release identity, distinct from the later source documentation used for the command example."
        }
      ]
    },
    "figures": {}
  }
}