Skip to content

BCR notation question: Content-addressed envelope references in examples #157

@ChristopherA

Description

@ChristopherA

Question

In the BCR examples (PRs #149-#156), I need to show "this envelope references another envelope by its content identifier." I've been using CID(name) as shorthand, but I can't find this defined in BCR-2026-002 (Envelope Notation).

Looking at the notation spec, I see:

  • Digest(...) — for cryptographic digests
  • UUID(...) — for unique identifiers
  • String literals — for named subjects

What's the correct notation for examples where an envelope subject is "the envelope identified by its digest"?

For example, in supersession patterns:

{
    "Alice" [
        'foaf:knows': "Bob"
    ]
} [
    'signed': {
        Signature [
            'supersedes': Digest(abc123...)   // <-- What goes here in readable examples?
        ]
    } [
        'signed': Signature
    ]
]

Options Considered

  1. Digest(abc123...) — Requires actual hex, hard to read in conceptual examples
  2. "my-assertion" — Loses the semantic that it's content-addressed, not just a string label
  3. Define CID as illustrative notation — Would need to be standardized

Context

This affects all 8 BCRs in PRs #149-#156, with 97 uses of CID(...) across the examples.

Is there an established pattern I'm missing, or should I propose a notation extension for this use case?

/cc @wolfmcnally

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions