Distinguishing between elements that have the same name

Hi,

Background

I’ve been using Logseq for about one and half year, and I have tried several approaches of categorizing information. I am now trying to build a comprehensive taxonomy for my PKMS and organize my notes around that taxonomy.

Question:

I am seeking feedback / advice on the naming conventions and / or metadata to use for terms or concepts that have the same name but different meaning or they have the same meaning but my relationship with them is different. I will go through a few examples to illustrate the issue

Elements with the same name but belonging to different topics

For example, there is Celery the veggie and Celery the distributed processing engine. One approach that I have thought of using is Celery (Vegetable) and Celery (Technology) to distinguish between the two

Terms with same name but one corresponds to a topic and the other to a physical object

For example, Scion TC 2005 :

  • Is a car model for which I want to capture knowledge such as engine information.
  • At the same time, it is my car, and for that I want to track TO-DOs, mechanical work that has been done etc.
    The approach I’ve though for that is to have an additional property (e.g., `Inventory’:: Yes) or an additional tag e.g., [[asset]]
    This distinction will help when trying to filter for information pertaining to either topics.

Elements that correspond the same entity, but my relationships with them is different

An example here is the company ABC Widgets. That company produces widgets for which I want to capture knowledge about but at the same time they are a client of mine and I want to track TO-DOs related to my work for that client.
A potential approach here is to add a tag such as [[client-work]] or a property is_client:: Yes

I would appreciate your thoughts!

The primary means for disambiguation between same-name concepts is namespaces.

  • Read Hierarchical tag system
    • Ignore hierarchy, read namespaces.
  • Your examples could become:
    • vegetable/celery and technology/celery
      • or veggie/celery and engine/celery
    • model/Scion TC 2005 and asset/Scion TC 2005
      • or topic/Scion TC 2005 and object/Scion TC 2005
    • company/ABC Widgets and client/ABC Widgets
  • In other words:
    • the right part is the common name
    • the left part is the family name
      • Prefer family names that group concepts conveniently.
1 Like

Thanks a lot @mentaloid !

I thought of namespaces before, and even they provide a simple solution to the problem, I think that later on (and for cases I am probably not aware of right now), they might make querying more difficult or more complex. For example, if I want to retrieve information across namespaces where ABC Widgets exists, I need to manually enter each node of the tree e.g., company/ABC Widgets and client/ABC Widgets etc. in my query.

That’s why I was considering a property or a tag-based approach.

  • That’s NOT the case.
    • Querying namespaces is not particularly difficult.
      • You just have to enter a single entry with :block/namespace
      • In contrast, the parenthesis option makes the namespace a part of the name, resulting in both harder and slower querying.
  • If you somehow find a valid reason to reject namespaces, the next best option is an approach that imitates namespaces, i.e. a property namespace::
  • Should not construct a tree. Just use an additional level, and only when needed.