81 lines
4.6 KiB
Markdown
81 lines
4.6 KiB
Markdown
# Memos Domain Glossary
|
|
|
|
This glossary defines product and domain language shared across Memos design documents. Protocol, Unicode, and parser-specific terms remain in the ADRs
|
|
that use them.
|
|
|
|
## Tags
|
|
|
|
### Tag
|
|
|
|
A classification value in a memo tag set, derived from one or more tag occurrences either as a direct tag value or as an implied ancestor. A tag is not a
|
|
durable entity and cannot be independently created or renamed. Changing a tag's spelling requires editing the relevant memo source occurrences.
|
|
|
|
### Tag introducer
|
|
|
|
An ASCII `#` character (U+0023) that is not part of a matched fully-qualified emoji sequence and starts a tag candidate. Visually similar fullwidth and small
|
|
number-sign characters are not introducers.
|
|
|
|
### Tag occurrence
|
|
|
|
An eligible source span in memo Markdown formed by a tag introducer and its consumed source spelling. The spelling emits a tag identifier, which is the
|
|
direct tag value. Recognition rules, including excluded Markdown contexts, are defined by the active tag-syntax profile.
|
|
|
|
### Eligible tag text
|
|
|
|
A contiguous original-source range with no intervening Markdown syntax boundary, classified as textual content by GFM 0.29-gfm or explicitly exposed as
|
|
ordinary text by a Memos Markdown extension. Extension nodes are opaque by default, so their source does not produce tags unless the extension definition
|
|
opts in.
|
|
|
|
### Source spelling
|
|
|
|
The exact source substring consumed after the `#` introducer. It includes default-ignorable code points outside matched fully-qualified emoji sequences and
|
|
ignored leading combining marks before each segment's starter, both of which the lexer ignores. Inline rendering and source-preserving operations use this
|
|
spelling.
|
|
|
|
### Direct tag value
|
|
|
|
The identifier emitted from one tag occurrence before hierarchy expansion. `book/fiction` is the direct value produced by `#book/fiction`.
|
|
Default-ignorable code points outside matched fully-qualified emoji sequences and ignored leading combining marks before each segment's starter are
|
|
consumed from the source spelling but omitted from this value.
|
|
|
|
### Implied ancestor tag
|
|
|
|
A slash-delimited prefix derived from a direct tag value. A direct value of `book/fiction/history` implies the ancestor tags `book` and `book/fiction`.
|
|
|
|
### Tag segment
|
|
|
|
A non-empty component of a hierarchical tag identifier. `/` separates segments and is consumed only when another non-empty segment follows. A leading slash
|
|
produces no tag; a trailing or repeated slash terminates the identifier before that slash. `-`, `+`, and `&` are ordinary segment units: they may appear at
|
|
any position, repeat, or form a complete segment. Default-ignorable code points and ignored leading combining marks do not make a segment non-empty.
|
|
|
|
### Tag identifier
|
|
|
|
The non-empty Unicode code-point sequence emitted from a tag source spelling. The identifier excludes the introducer and all ignored source code points.
|
|
|
|
### Display value
|
|
|
|
The direct or implied value presented as a derived tag label. Memos does not normalize or case-fold emitted code points for identity, but ignored
|
|
default-ignorable code points and ignored leading combining marks are not part of the display value.
|
|
|
|
### Comparison key
|
|
|
|
The value used for deduplication, counting, filtering, navigation, and exact metadata matching. It is identical to the emitted display value. Two tags
|
|
compare as equal only when those emitted Unicode code-point sequences are identical; case and canonical or compatibility-equivalent spellings remain
|
|
distinct. Source spellings that differ only by ignored default-ignorable code points or ignored leading combining marks compare equal. Inputs to exact
|
|
value filters and metadata lookups are already tag values and are compared as supplied; they are not re-lexed as source spellings.
|
|
|
|
### Memo tag set
|
|
|
|
The union of direct tag values and their implied ancestor tags for one memo, exposed as `Memo.tags`. It is rebuildable from the memo's Markdown and is not an
|
|
authoritative source of tags. Each exactly equal emitted value appears once, even when produced both directly and as an ancestor. Different source
|
|
spellings remain separate only when they emit different code-point sequences.
|
|
|
|
### Tag metadata rule
|
|
|
|
User configuration that selects tag values and supplies presentation or behavior metadata, such as color or content blurring. A metadata rule may match
|
|
multiple values and does not create, own, or rename a tag.
|
|
|
|
### Tag count
|
|
|
|
The number of memo tag sets containing an exactly equal direct or implied tag value, not the number of textual occurrences. A memo containing only
|
|
`#book/fiction` contributes one to both the `book` and `book/fiction` counts.
|