Thanks @dmv6 and @jrennicke for your thoughtful replies. I’ve had a few more thoughts since my last post, so be prepared for a longer read. I hope it is beneficial.
Before I delve any further, I just want to clarify for anyone reading that my research project idea and my suggestion of incorporating the UMLS into Obsidian are two separate topics. I don’t think I will be making use of the UMLS in my research unless it’s useful for its development or if it can provide an additional angle to my research that makes sense. Or maybe incorporating the UMLS into Obsidian and gathering feedback can be another project on its own… it’s all theory at this point.
I will only be discussing the possibility of incorporating UMLS into Obsidian below, as a potential means of organizing biomedical notes in Obsidian (since that is the focus of this thread). Even if you aren’t interested in using the UMLS, some of the things mentioned can be helpful in terms of organizing notes by their types or relationships.
As for elaboration of my proposed research project idea, I will be corresponding privately with anyone interested, as I realize this thread may not the best place for it.
Possible Utility of the UMLS in Obsidian
-
Why try to incorporate conceptual data from the UMLS into Obsidian? Let’s start with this before moving to the cons.
-
It provides a shared language for people looking to share biomedical notes.
- Let’s say you have your own vault that has UMLS concepts incorporated in it. A friend of yours also made a vault with incorporated UMLS concepts. When you share vaults, you now have a shared point of reference, especially if you’ve both placed your UMLS concept notes in a designated folder and are using the same naming scheme for those notes. After transferring your friend’s UMLS concept notes into your designated folder, and with some processing to remove duplicate concept notes, you can retain your own created links to a UMLS concept while also appreciating your friends links to that same topic.
-
It allows for aliases for any given concept.
- All concepts in the UMLS come with a documented record of alternate names for that same concept, so aliases are built into the UMLS from the get-go. It’s just a matter of transferring them to a UMLS concept note in your vault. You are also free to personally add your own aliases, but at least you didn’t have to think about the ones that already come with the UMLS.
-
It can be useful for tagging/grouping information in a person’s own vault, as stated by @dmv6
- How?
- The UMLS contains a semantic network that categorizes concepts according to 127 different broad subject categories (i.e. semantic types) and at least 54 relationships (i.e. semantic relations/relationships). These can be utilized in Obsidian in the following ways:
-
Tagging UMLS concept notes with their semantic types. For example, the note
[[Cough]]
can be labeled as:#Sign_or_Symptom
or can alternatively be assigned a nested tag, as follows:
#Finding/Sign_or_Symptom
-
Making queryable relationships between concepts. Can be done by using the Dataview plugin and writing the semantic relationship as a custom field. For example, let’s say I have the note
[[Staphylococcus]]
. I can write the following to make a queryable relationship between[[Staphylococcus]]
and two other notes:[[Gram-positive bacteria]]
and[[Bacteria]]
, based on the UMLS Semantic Relationshipisa
:isa:: [[Gram-positive bacteria]], [[Bacteria]]
or I can write this in the YAML header:
--- isa: ["[[Gram-positive bacteria]]", "[[Bacteria]]"] ---
or
--- isa: - "[[Gram-positive bacteria]]" - "[[Bacteria]]" ---
-
Making relationships between concepts visible on a local graph view. Can be done using the Juggl plugin and writing the semantic relationship as a bullet point. The relationship then becomes visible on the Juggl local graph view. For the
[[Staphylococcus]]
example, that would be:- isa [[Gram-positive bacteria]]
-
Making relationships BOTH queryable and visible on local graph view. This is possible if you have both the Dataview and Juggl plugins, but it requires some CSS at the time of this writing. I wrote some CSS demonstrating how this can be done in a separate post, although it does have the limitation that you can’t show more than one Dataview-style link between a pair of notes in Juggl at the same time. The creator of the Juggl plugin has mentioned that having this sort of typed link / inline dataview property hybrid is on the radar for Juggl plugin development, however.
-
- The UMLS contains a semantic network that categorizes concepts according to 127 different broad subject categories (i.e. semantic types) and at least 54 relationships (i.e. semantic relations/relationships). These can be utilized in Obsidian in the following ways:
- How?
-
It provides a shared language for people looking to share biomedical notes.
-
Cons or obstacles to incorporating the UMLS into Obsidian:
- Generating >4M notes from the UMLS would slow things down needlessly. This was one of my initial concerns and was also brought up by @dmv6.
- Depending on your situation, trying to incorporate the UMLS into your Obsidian notes may not be the most beneficial. This is alluded to by @jrennicke when he wrote that for me as a medical student, it may be more beneficial to just use First Aid. That makes sense, since the vast majority of UMLS concepts are not exactly relevant to what I need to know for boards.
-
Possible solution to the cons/obstacles in incorporating the UMLS into Obsidian:
- Perhaps a python program can be written that scans a person’s notes in their Obsidian vault, identifies mentioned UMLS concepts, and makes new notes for those concepts alone. Here’s an example of the steps such a program could potentially take:
- Use scispaCy for UMLS concept identification from your Obsidian notes:
- scispaCy is a natural language processing library in python that identifies scientific/biomedical entities in free-form text and can identify related UMLS concepts. As of this writing, it uses the 2020AA version of the UMLS, and identifies category 0, 1, 2, and 9 concepts (the different categories correspond to different levels of allowed usage as specified by the UMLS License Agreement). Here is a demo. I’ve downloaded and tested out scispaCy, but I have yet to use it for my Obsidian notes.
- Create new markdown files for the UMLS concepts identified by scispaCy and link to those notes using Obsidian-style internal links.
- Use scispaCy for UMLS concept identification from your Obsidian notes:
- Perhaps a python program can be written that scans a person’s notes in their Obsidian vault, identifies mentioned UMLS concepts, and makes new notes for those concepts alone. Here’s an example of the steps such a program could potentially take:
I hope I’ve added more to the discussion. I hope that at least some of what I suggested can be practically implemented in a useful manner.
A large part of what I’ve written can only be put to maximal effect if there is a computer program that can automatically do the work of creating notes using UMLS concepts for you. If there is anyone who is willing to work with me in writing a python program that can accomplish this, I would really appreciate it.