With Logseq it’s easy to change, for this particular situation, from “side-gig/personal-training/customers/Nicole/personalized-plan/exercise” to “Nicole/personalized-plan/exercise”, as my main relationship with her is closer now, but, otherwise, even if she turns mayor, it shouldn’t impact my business relationship with her, so, for me, Nicole will always be a customer of my personal-training side-gig, so the whole namespace makes sense to me. If I want to check her info deeper and laterally I can check Facebook or Linked-In. For me the very annoying part is having to write a namespace every time I mention Nicole. Maybe a better option would be to have this namespace as a property, because, if I will only have this info on her dedicated Page I would lose some visibility because now I can’t query for blocks that relate to customers that I have built exercise-plans for (I don’t have the customer
tag or part of a namespace in the block unless it’s a property).
Also, for linking, I would rely on markdown links, not just simple wiki links, just for aesthetics. It would look like this:
I met today with [Nicole]([[Person: Nicole something]]) to hand her the exercise plan I built for her
I, too, heavily use Markdown inline links for almost all wikilinks because:
- I can write naturally my input, without tailoring it to the Logseq Page Name (
I met today with [Nicole]([[Nicole/Blanc]] )
); - I prefer a Markdown Link then a double bracket enclosed text and
- If I am ever going to take my Logseq files out of Logseq I can easily replace, with a script,
[[Page Name]]
intoPage__Name.md
for the Destination in the Markdown Link;
So, for the above reasons it makes sense to use properties in blocks and in those properties there should be tags or namespaces that make that block easily discoverable via multiple relations. This is congruent with the theory that you write your notes with retrievability in mind (“how will your future self search for this important piece of information?”). Moreover, I believe that tagging should be done more automatically and some properties would be recognized and added to the block as I type, With my example which I want to write as freely as possible :
I met today with Nicole to hand her the exercise plan I built for her.
When I type the word “I met” Logseq would add a persons-involved::
property to the block and when I type Nicole Logseq would suggest some property values that contain Nicole and, if I choose one by pressing Enter, it would automatically add to the persons-involved::
property. I am thinking that the Value would be a namespace in the form of Nicole/Blanc/customer/personal-training/
. An even better option would be when properties can have sub-properties (I believe this was already suggested in the forums) so I can have:
persons-involved::
::Nicole/Blanc::
role:: customer
via:: personal-training
So maybe now you see why I misuse or understand incorrectly namespaces. Like I said, for me namespaces are personal, Nicole will most likely always remain, for me, a customer of my side-gig “personal-training”. But I mostly see namespaces as means to make clear for me what is the relationship in that particular situation and also for a way to be able to pick up that block in searches, queries, etc. With complex queries it might be possible to traverse the database and search for all property-names that have a role of customer then search for all blocks where those names are mentioned and also where a personalized-plan of type exercise is mentioned. But if most of these data would already be in the bloc I wouldn’t need such complex queries I believe. There is a trade-off between complexity and extracted value so that’s why it’s good to have a sense of the common-sense amount of data you add to each block and how.
I it were you, how would you tackle this simple block:
I met today with Nicole to hand her the exercise plan I built for her.
so that you can query for customers to whom you delivered an exercise plan?
PS: I made up all this story so I might not have chosen the best example but I believe it is enough so I can understand namespaces through it with your help…