logseq-schema

Logseq Datascript schema, built-in properties/classes, and :db/ident discovery for composing or reviewing Datascript queries about blocks/pages/tags/properties/classes. Use whenever editing or reviewing Datascript pull selectors or queries, or any code that adds/removes attributes in pull patterns, or touches property namespaces/identifiers, or requires reasoning about property value shapes/ref/cardinality in Logseq.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "logseq-schema" with this command: npx skills add rcmerci/skills/rcmerci-skills-logseq-schema

Logseq Schema

Overview

Use this skill to ground Datascript queries in Logseq's schema: core block/page/file attributes, built-in properties, built-in classes, and schema entities with :db/ident. Load references/logseq-datascript-schema.md for authoritative sources and query patterns, and references/logseq-datascript-query-examples.md for scenario-based query examples.

Glossary

  • db/id: Internal numeric entity id (use with CLI flags like --id).
  • :block/uuid: Stable UUID for a block entity; prefer when you need a persistent reference.
  • :block/name: Lowercased page name, used for page lookup and joins.
  • :block/title: Block or page title stored in the DB graph (use in queries when content text is needed).
  • :block/tags: Ref-many attribute linking blocks to tag/page entities.
  • :user.property/<name>: Namespace for user-defined properties stored directly on block entities.
  • :logseq.property/*: Namespace for built-in properties stored directly on block entities.

Important Notes

  • Never use following block attrs in query or pull, these attrs are file-graph only, never used in db-graphs: :block/format, :block/level, :block/level-spaces, :block/pre-block?, :block/properties-order, :block/properties-text-values, :block/invalid-properties, :block/macros, :block/file, :block.temp/ast-body, :block.temp/ast-blocks, :block/marker, :block/content, :block/priority, :block/scheduled, :block/deadline, :block/properties, :block/left.
  • User properties are stored as :user.property/<name> attributes on the block/page entity.
  • Pull selectors do NOT support namespace wildcards like :user.property/* or :logseq.property/*. Only * (all attributes) or explicit attributes are allowed in pull.
  • To fetch user properties, either:
    • Query datoms and filter attributes by namespace (e.g., user.property), then merge into the entity map, or
    • Discover explicit user property idents (via :db/ident) and include them explicitly in the pull selector.
  • Property values are often entities/refs (not always scalars). When rendering values, check for :block/title, :block/name, or :logseq.property/value on the value entity before falling back to stringifying.
  • Many properties are :db.cardinality/many (values may be sets/vectors). Treat them as collections in queries and formatting.

Datascript Query Mistakes To Avoid

  • In query :where/pull/find, attributes cannot use namespace wildcards (e.g., :logseq.property/*, :user.property/*); you must use full attr :db/ident values (e.g., :logseq.property/status, :user.property/background). In pull, only * (all attributes) is special.
  • Avoid nesting function calls inside predicates in :where (some Datascript engines reject or mis-handle it). Bind the function result first, then compare.

Example of safe namespace filtering:

[:find [?a ...]
 :where
 [?e :db/ident ?a]
 [(namespace ?a) ?ns]
 [(= ?ns "user.property")]]

Workflow

1) Locate schema facts

  • Open references/logseq-datascript-schema.md.
  • Review the core attribute list and helper sets for ref/cardinality details.
  • Review built-in properties and classes to understand available attributes and required fields.

2) Write or validate queries

  • Prefer :block/* attributes for block/page queries; use properties/classes only when needed.
  • If unsure about available :db/ident entities, run the CLI query listed in the references file.
  • For user properties, query against :user.property/<name> directly; for built-ins, use :logseq.property/<name>.

3) Keep queries consistent with schema

  • Respect ref vs scalar attributes and :db.cardinality/many when joining.
  • Use property/class definitions to confirm public/queryable status before exposing a query to users.

Resources

references/

  • logseq-datascript-schema.md
  • logseq-datascript-query-examples.md

Quick Examples

Pull user properties for a block

;; Discover idents, then pull explicitly.
[:db/id :block/title :user.property/background :user.property/notes]

Query blocks with a user property

[:find ?b ?v
 :where
 [?b :user.property/background ?v]]

Render a property value

Order of preference when value is a map/entity:

  1. :block/title
  2. :block/name
  3. :logseq.property/value

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

logseq-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ClawHub CLI Assistant

Use the ClawHub CLI to publish, inspect, version, update, sync, and troubleshoot OpenClaw skills from the terminal.

Registry SourceRecently Updated
21.8K
Profile unavailable
Coding

Self Updater

⭐ OPEN SOURCE! GitHub: github.com/GhostDragon124/openclaw-self-updater ⭐ ONLY skill with Cron-aware + Idle detection! Auto-updates OpenClaw core & skills, an...

Registry SourceRecently Updated
1106
Profile unavailable