Objects are structured records extracted from your space. Examples include pages, tasks, and relations. SilverBullet automatically maintains an Object Index extracted from all Markdown pages in your Space.

The Page Picker and Linked Mentions read these objects. You can inspect them in Workbench or query them with Space Lua/Integrated Query.

To see objects in context, use:

  • Graph View: a graph-style visualization of indexed objects and their relationships.
  • X-Ray: an in-editor overlay visualizing indexed objects

Terminology

  • An Object is one record, such as a page, task or relation. In a relational database, it would be a row.
  • A Tag groups objects for queries, much like a database table. Every object has exactly one root tag saying what it is, and can have user tags attached, usually through Markdown/Hashtags. See Tag for every built-in tag.

Principles

Space files are the source of truth: page content produces objects such as tasks and links. Non-Markdown documents produce document objects from file metadata.

The Object Index can be rebuilt from those files with the Space: Reindex command.

Object representation

Objects have predefined and custom attributes. Every object has these fields:

  • ref: a globally unique identifier, often represented as a pointer to the place (page, position) in your space where the object is defined. For instance, a page object will use the page name as its ref attribute, and a task will use page@pos (where pos is the location the task appears in page). When an Markdown/Anchor ($my-anchor) is present in the object’s source, the anchor name replaces the default ref (so that same task with $rent becomes ref: "rent").
  • tag: the object’s root tag: what kind of object it is.

In addition, most objects will also contain:

  • tags: an optional set of user tags, explicitly assigned.
  • itags: a set of implicit or inherited tags: the object’s tag and tags, as well as any tags assigned to its containing page.
  • inComment: true on any object that originates inside an HTML Markdown/Comment. Absent otherwise.

Each tag can define additional fields. You can add custom attributes and restrict their values with Schema.

Loading SilverBullet…