I started using Logseq for my personal knowledge management and absolutely love it!
In the past, I used Evernote and after that OneNote. Together with these, I used Todo and tasks in Outlook or other applications. Always challenging as notes and tasks really integrate with each other. The note apps are really good in grabbing notes, but the basic component is too big for my needs. Say, you have a meeting and discuss many topics, do you then:
- store those notes in one page and process them later and move them to the correct ‘topic’ page?
- go back and forth in your note taking app during the meeting interrupting flow?
In Logseq, you do not have to think about this. The basic component is a block and you can link blocks to one or as many topics as you like. Then, you can go to the topic and find everything that is ever related to it. Really nice!
After using the tool a while, I noticed I’d like to retrieve specific lists. Lists of task related to specific pages. So, now, I am flagging pages with a topic:: property. And when active, I like to see all tasks related to it and when suspended or not marked, they are irrelevant. Next to that, I wanted to see tasks that are implicitly tagged meaning instead of the block having a tag, it should also pop up when the parent has the tag. This is especially handy when having a meeting discussing multiple topics and suddenly a task pops up.
Test topic
topic:: active
Logseq
topic:: active
Test topic 3
Test topic 4
topic:: on hold
Then, when making notes you can tag the blocks or use a parent block’s tag
20251021
- Meeting
- TODO Do research for #Logseq
- note
- another note
- #Test topic
- TODO Send email to X
- Sub topic notes
- TODO Write document on ..
As these notes are created in journals per date, I like to get an overview of all created tasks.

Queries are used to create live lists of data out of all of your notes. You can have simple queries, but the one above requires an advanced query using Datalog querying. You can use the following query to get the data out:
#+BEGIN_QUERY
{:title "TODO's related to active topics"
:query [:find ?p-name (pull ?b [*])
:keys topic b
:where
[?details :block/properties ?details-props]
[(get ?details-props :topic) ?topic]
[(= ?topic "active")]
[?details :block/page ?page]
[?b :block/path-refs ?page]
[?page :block/name ?p-name]
[?b :block/marker ?marker]
[(contains? #{"TODO" "DOING"} ?marker)]]
:result-transform
(fn [result]
(sort-by
(juxt
(fn [s] (or (get-in s [:block/properties :topic]) "Z"))
(fn [s] (or (get-in s [:block/properties :priority]) "BB"))
(fn [s] (or (get-in s [:block/properties :deadline]) 99991231))
)
(map
(fn [r]
(update (:b r) :block/properties
(fn [p]
(-> p
(assoc :topic (:topic r))
(assoc :deadline (:block/deadline (:b r)))
(assoc :scheduled (:block/scheduled (:b r)))
(assoc :priority (:block/priority (:b r)))
))))
result)
))
}
#+END_QUERY
The query sorts on topic, priority and deadline. It assumes no priority is a B priority when ordering.







Here’s a guideline to setup ZWave.me GPIO addon on your Rasberry Pi and install OpenRemote.
