← Context/ reminders
Tags Are Two Projections — Frontmatter `tags:` on Files, `has_tag` Observations in SurrealDB
Every file-facing surface (corpus markdown frontmatter, pointer files, domain tag arrays) uses plain `tags:` because Obsidian reads files and we always assume Obsidian. The DB's observations table expresses the same fact as a subject–predicate–object triple, and its predicate vocabulary is verb-shaped (`has_email`, `located_in`, `attended`) — so there it is `has_tag`. Same fact, two projections; neither name leaks into the other layer.