SilverBullet automatically maintains an Object Index extracted from all Markdown Page|pages in your Space|Space.
Objects are a feature that powers a lot of SilverBullet functionality, including the Page Picker, Linked Mention|Linked Mentions and many others. They can also be queried by the user directly, typically via Space Lua/Lua Integrated Query.
Markdown always is the source of truth: all data indexed as objects will have some representation in markdown text as well.
As a result, the Object Index can be flushed at any time and be rebuilt from its source markdown files kept in your space (and you can do so on demand using the Space: Reindex command).
Every object has a set of Attribute|Attributes, some predefined, but you can add additional custom attributes.
The following attributes are predefined, you can expect all objects to have them:
* 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).
* tag: the main type, or “tag” of the object.
In addition, most objects will also contain:
* tags: an optional set of additional, explicitly assigned tags.
* itags: a set of implicit or inherited tags: including the object’s tag, tags as well as any tags assigned to its containing page.
Beside these, any number of additional tag-specific and custom Attribute|Attributes can be defined. It is also possible to restrict this set of attributes via Schema.