Relation objects represent typed and untyped relationships between indexed Object|objects in the space. They are the source of truth for relationship queries (graph views, backlinks of non-page objects, typed-attribute edges). Positional textual occurrences are still recorded by the legacy Object/link index.

Attributes

  • from: ref to the source object: the innermost indexed object that contains the markup producing the edge (page, item, nested item, or fenced #tag block object). When the source item carries a $anchor the anchor name is used (matching the item's own ref), otherwise the source's byte-offset form (page@pos) is used.
  • fromTag: tag of the source object, denormalized for graph queries.
  • to: ref to the target object.
  • toTag: tag of the target object when resolvable at index time. For [$anchor]($anchor) references the meta-tag anchor is used (anchors are space-global and may live on any kind of host block, so we don't speculate). Absent for unresolved refs, external URLs, and file targets.
  • kind: one of mention, attribute, frontmatter, data, co-mention, url, document. See #Kinds below.
  • type: edge type label, e.g. spouse, team. Populated when kind is attribute, frontmatter, or data.
  • via: for co-mention entries only: ref to the containing item or paragraph that scopes the co-occurrence.
  • page: page where the edge was discovered (used for invalidation).
  • range: [start, end] byte offsets of the wikilink / markdown-link / attribute / data-block-value syntax within page. Always present. For co-mention records (which are derived) this points at the source-side wikilink. Used by the rename refactor to splice text.
  • alias: when the source form is [ref|alias](ref|alias), the alias. Required to faithfully reproduce the link on rewrite.
  • snippet: contextual text around the edge where available.
  • pageLastModified: last-modified timestamp of the source page, useful for ordering.

Kinds

  • mention: a plain wikilink or markdown link appearing in page prose or item body.
  • attribute: an inline [key: [ref](ref)] attribute pointing at another object.
  • frontmatter: a page frontmatter key whose value is (or contains) a ref.
  • data: a fenced #tag data block (Object/data) key whose value is (or contains) a ref.
  • co-mention: two refs co-occurring in the same item (with its nested children) or paragraph. Emitted in both directions and dedup'd at the innermost shared scope.
  • url: an external URL link (kept for symmetry with Object/link).
  • document: a link to a non-page Object/document in the space.

Examples

Here’s a tagged item to use as an example:

Show every relation related to $pete-ref (including this one 👈):

${query from r = index.relations() where r.from == "pete-ref" or r.to == "pete-ref" select table.select(r, "from", "fromTag", "kind", "to", "toTag") )}

All relations defined on this page: ${query from r = index.relations() where r.page == "Object/relation" select table.select(r, "from", "fromTag", "kind", "to", "toTag", "snippet") )}