Hi everyone,
I’m sharing a Python automation tool I wrote for those of us who maintain strict, axiomatic knowledge bases (similar to Zettelkasten but with enforced hierarchy).
If you treat your vault like a compiled database where filenames must strictly reflect their relationship to other notes (e.g., Owners, Superclasses, Parts), doing this manually is a pain. If you rename a parent concept, you usually have to manually rename every child note to maintain consistency.
I created Obsidian Ontology Manager to automate this.
The Concept
The script treats Markdown notes as objects in a graph. Instead of statically naming a file “Human Hand,” you give it a Title: Hand and an Owner: [[Human]]. The script then compiles the filename for you.
If you later rename [[Human]] to [[Homo Sapiens]], the script detects the dependency change and automatically renames the child file to Homo Sapiens Hand.md, and—crucially—updates every Wikilink in your vault pointing to it.
Key Features
-
Recursive Pathing: A note can name itself by traversing the graph. You can pull data from your Owner, your Owner’s Superclass, or 3,4,5,… levels deep.
-
Inheritance: If a note has no Owner, it can inherit one from its
PartOforSuperslinks. -
Orphan Dashboard: Automatically generates an
Owner.mdfile listing all nodes that are disconnected from the graph.
I’d love to hear what you think, especially if you are interested in axiomatic organization or graph-based naming conventions!