Exploring Obsidian with Genealogy, family trees

Glad to see I am not the only one with the same thoughts! To add the the conversation, I don’t think a plain-text approach is the solution here. There is tremendous value in being able to stick to am existing standard, and veering away from it has the major disadvantage of locking one’s work out of the existing ecosystem of tools and data already built around it.

As a result, the ideal solution for me would be a plugin capable of:

  • Displaying the tree in various ways directly in obsidian, and allow for navigation from there as in most existing tools today
  • A custom person view panel, designed to display the card for a specific individual, with the various common fields as set edit fields
  • In the above field view panel, have the general notes field render markdown + wikilinks, similarly to any other obsidian note

This should enable sticking to the existing standard and remaining compatible with the existing standard while remaining in obsidian and leveraging all the obsidian goodness at the same time.

Now as to actually going about creating such a plugin, I unfortunately don’t have the right skills, and as such hope someone more qualified could take on the challenge!

Happy to see activity here :slight_smile:

I don’t think a plain-text approach is the solution here

Thats why I was messing with the breadcrumbs plugin to provide the graphical view. FWIW, the ExcaliBrain plugin seems like a better alternative but I havnt tried it (yet) for this stuff.

All the notes within the library that Im using ExcaliBrain in has a section like this which permits Obsidian to do its thing and also proves useful for navigation outside of ExcaliBrain:


- Parent:: 
- Peer:: 
- Child::

That said, Ive found I actually dont use the diagram much at all anymore. But its there for when I want it

There is tremendous value in being able to stick to am existing standard, and veering away from it has the major disadvantage of locking one’s work out of the existing ecosystem of tools and data already built around it.

I sorta agree with what your saying but every time I look at GEDCOM, Im reminded just how horrible the spec is. I would be surprised if it is used for anything more than as a way to import/export data and that most systems utilize an actual database under the covers. Worse, you cant just download multiple GEDCOM files and expect them to play nicely even if they happen to be on the same version. There will have to be some intermediate system that can read/merge those records.

Since my last post, I also came to a few other conclusions:

  • To import/export, there would have to have a dedicated tool/plugin which can translate those files to/from something more sensible or at least readable.
    • Preferably utilizing UUIDs to track identities. This would help make it be less of a disaster to merge multiple collections.
    • There would need to be a, preferably user definable, schema for what the file record would look like. Perhaps some mix of headers (ie for dates) and key:value pairs which could be used to build a timeline of events?
  • That it stopped make sense to use different record formats for geneology and my, separate, address book archive. ie: why should I maintain 2 files for each person in my immediate family?
  • And that what I (apparently) really want is a form of identity tracking system.

Soon after this point I decided I really dont need to start yet another major project and went back to dealing with all the other stuff I need to do while hoping someone more motivated than I will write something :stuck_out_tongue:


THIS is where I am, as well. I have a #TextExpander template I use for each person…

# F
* b
* d
* m
* F=
* M=

## Children:

And then use linked names to connect them, which help w graphs (but I don’t use that feature much). I use a naming structure of FName {MName} LName bYYYY (optional middle name. For those with a direct-line connection to me, I’ll precede filename with Fx where x=generation number (my father is F1, PGF is F2, etc).

F4 William Tyler Davis b1848 70yo (WT Davis)

  • b18481023
  • d19190529.1400 #certd COD=septicemia dt bowel obstruction p surgery on 19190404 dNC-Wake-Raleigh-RexHosp (says b18471023) occ=farmer
  • m =Haseltine Gunter b1847
  • F=[[F5 Andrew Jackson Davis b1810.md]] d1872
  • M=[[F5 Martha Mason Davis b1816.md]] d1857


  • Joseph Jackson Davis b18730127 d18730310 2mo
  • Sarah L (Davis) Palmer b1875
  • William Walter Davis b18790504 d19581208
    • m=Nancy Aiken b18800421 d19540722
    • Una Entrekin b1910 d1968
    • James Woodrow Davis b1914 d1978
    • Mack E Davis b1918 d1984
    • Benjamin Franklin Davis b1921 d2001
  • Walter Davis b1879
  • [[F3 Arthur Jackson Connie Davis b1883.md]]


  • 1yo [[Census.1850.NC-Wake-Western]] l/w Jackson 34yo & Martha 32yo

The date structure (b20230209) isa convention that helps me find, for instance, all those born in 2023 (search for b2023) or in Feb 2023 (b202302), etc. I also do that for died (d1899), married (m1901) and buried (bur19081209).

I do the same for places, as you can see in the NOTES section for titling the Census page notes, naming place by state, then county, then town, then district (eg, NC-Wake-Western). I’ve thought about converting the places to nested tags – #place/NC/Wake/Western – put no burning need and I think about interoperability with other markdown readers (eg nvUltra) that may not support nested tags like this.

Has anyone done anything using Canvas for visualizing their tree structure?


Have moments ago joined the ranks of those using Obsidian for genealogical/family tree research. Mostly because Ancestry has a free weekend here in the UK (I presume bcause of the coronation).

I don’t use whiteboards to visualise tree structures, but I find them a good way to play around with the snippets of information that may or may not be related to what I’m looking for. And drawing links helps.

I don’t use names at all as a system to manage a tree. I use a couple of ahnentafel variants, as a way to identify a fixed position in a tree (there are many other systems); names may come and go with extra research or DNA. I use names as way of identifying people, who, in the end, may or may not fit into the tree I’m working on.

I use a modified Dollarhide numbering system which theoretically enables you to assign a number to everyone in your tree, including offshoots, both forwards and backwards. Unfortunately the original web site I got it from is gone and their are no copies in archive.org! :frowning:

Fortunately I seem to have copied the basics into Notion, but unsure how to share a link. Will post when I do.

My original ahnentafel variant would do that. But then I realised that there was a problem with offshoots and going forward in that many numbers would be null and someone’s first child may turn out to be their second child etc. At that point, I decided that going back numbers were fixed and the people might not be, but going forward, people were fixed and with a defined relationship. In other words, I shifted to links going forward. I don’t think most genealogy software is good for this, which doesn’t affect me since I don’t use it.

The weakness with all these systems is that they don’t have a value independent of the starting point. So you end up with defined starting point + the numbered tree.

Still, it’s important to have a robust numbering system of some sort going back because names and individuals are always less than 100% certain.

That is definitely one thing I noticed - all numbers reference me as the starting point - any cousin or descendant who take up the work will lose reference. I mean, they too will have a number in this system, but there’s no way to adjust person 1.0 from me to them. Same if you start with oldest known ancestor. The system is blown as soon as you discover their parents. Wish there were some automated way for everyone to have a unique number and an additional relational number that tells you generational gaps and direct lines vs non-direct (and also could indicate paternal vs maternal?)

I’m probably asking for too much…

ok, here is the text I copied and saved from Terry Cole’s old (now non-existent) web site, re: modified Dollarhide numbering system:

Based on a slightly modified Dollarhide system, apologies to William Dollarhide

Genealogist often adopt a numbering system to keep everyone straight in their database. Ahnentafel numbering and collateral numbering systems abound. William Dollarhide proposed a system that seems to marry all the strengths of a number of system. His work and thoughts on this subject are no longer on the web so far as I can determine, but they can be found on the internet archive Way Back Machine. I adopted this system with some modifications and love it. If you already know the Dollarhide system, the specific modifications proposed by Cole (me) are listed separately Modification to Dollarhide Numbering. If you just want to understand the modified system from scratch, the brief tutorial below will hopefully suffice. Information on more numbering systems (and this one) can be found in the Encyclopedia of Genealogy.


Starting Person First, a person is selected as the starting point who is directly related to those you are studying. All people in the database related in any way to this person can be numbered using this system. The starting person is person 1. This can be anyone , but it will make sense if this is either your oldest person for a descendant project or your youngest for an ancestry project.

Direct Ancestors Using traditional Ahnentafel or ancestry numbering, the starting person’s father is person 2, their mother is person 3, paternal grandfather… person 4, paternal grandmother …person 5, etc. Each person’s father is double their own number; each person’s mother is double plus 1. Unlike Ahnentafel numbering, Dollarhide prescribes adding a decimal point and 0 (“.0”) to the numberof each direct ancestor**. This is a very important modification as we shall see. All direct ancestors have a number that ends in “.0”. When presented with a list (or items labeled with the numbers), it is very easy to identify direct ancestors.

Here is an example of a starting person and their parents and grandparents:

Paternal grandfather 4.0
Paternal grandmother 5.0

Siblings Dollarhide prescribes that siblings and half-siblings of direct ancestors are numbered using a .1, .2, .3, .4, etc. suffix. Thus all the (half-)siblings of person 3.0 are labeled 3.1, 3.2, 3.3, 3.4, etc. They are numbered in birth order (or whatever the genealogists believes is the best order when birth order is not available). A modification I have made is to skip the .n label corresponding to the direct ancestor. This allows us to see the birth order position of the direct ancestor at a glance.

The entire set of siblings, including half siblings through each direct ancestor parent, receive numbers that have the person number of the direct ancestor. This makes it easy to identify these extended families.

It is not uncommon to run out of numbers in the .1, .2, … .8, .9 series. In this case, we start with letters .A, .B, .C, .D, etc…

Here is an example of how to number siblings and half-siblings of a director answer 12.0:

Secondary Spouses You will note in the above example, we did not have numbers for the spouses. Dollarhide prescribes denoting a non-direct ancestor spouse by a * suffix on the spouses number. If there are more than one marriage, use *1, *2, *3,** etc., in order of the marriage (or whatever order the genealogist things best if this is not available). I have modified this system and skip the number of marriage corresponding to a marriage of the two direct ancestors. This system applies to any marriage not of two direct ancestors. Thus we can number spouses of siblings (12.1*) or previous or subsequent spouses of direct ancestors. We have not yet described descendant numbering (next section) but we also number spouses of descendants in the same way.

Now we can label the spouses from the same example in the sibling discussion using secondary spouse labeling:

Dollarhide prescribed numbering descendent’s as well as ancestors. Descendants are numbered by appending a new number to their already numbered parent. Thus descendent’s of the starting person (who is 1.0) become 1.1, 1.2, 1.3, etc. Descendants of a sibling of a direct ancestor 9.0 are 9.1, 9.2, 9.3, etc. This is applied as often as needed, so grandchildren of the starting person are 1.11, 1.12, 1.13 (children of 1.1) and 1.21, 1.22, 1.23 (children of 1.2). Note that some cousins have a nice property in that they have similar numbers using their common ancestor. Of course, cousins is a complex issue.


Trees within trees Using the basic methods already described, it is possible to number all ancestors and spouses going backward. Additionally it is possible to begin going forward from any of the direct ancestors. This allows us to number lots of the common people in our databases. But what of mother’s in law? Brothers and sisters of in-laws? Or even their descendants? To do this we need to stop and examine what the numbers are saying a bit more.

Dollarhide numbering conveniently allows us to go backward in the family line (2.0 to 4.0), to go laterally in a family (4.1, 4.2, 4.3) and to start going down the family tree again (4.31, 4.32, 4.33). This change in direction from backward to forward seems family natural. Dollarhide prescribes that we can change direction in another way, too. When we change from sibling or descendancy back to ancestry, we use a “/” to show this. If we wish to start going backward from certain spouse labeled person, 9.2*1, we can talk about their father as 9.2*1/2.0. We treat everything on the left of the “/” as person 1 and move backward using the basic rules again. 9.2*1/3.0 is the mother of 9.2*1. The tree can continue backward (using ancestry numbering), and indeed forward (using descendant numbering). This change of direction can be applied at any level of descendancy. I think of it is a tree that grows within the tree.

Temporary Assignments Sometimes we just don’t know the birth or marriage orders. In such cases, I sometimes use a series x, y, z (or other “late alphabet” letters). This shows that I really don’t know and encourages me to research and find out. It allows me to number some other relatives on the basis of the temporary number. Of course, if this gets out of hand you will find it not very useful. If it remains a long term assignment, it is probably best to simply number the item with best available inference (or guess) and move forward.

Multiple Starting Persons It is possible to denote more than one starting point. You might want to do this for several different reasons. First, it might be desired to describe more than one set of people for whom no relationship can be exactly described (because they are unrelated, or because the relationship cannot yet be described). In the case, we designate the person one but put a unique prefix to work for each, for example person 1 to your main tree, but person Z1 for a set of related people whom you eventually intend to find a precise relation as a fruit of research. Or two equally important trees could be described with designations A1 and B1 for root people. When people are related in some way to both root persons, you must choose between two possible labels, or you could at that point renumber everyone is one or the other trees (using the common person as the starting point).

Another reason for multiple roots can be a political issue of naming a set of siblings as root. This can be done by designating all siblings as 1.x. For example, 1.1, 1.2, and 1.3 for three brothers and sisters who will all be treated as root person. If the children do not have the same parents, one set is selected for the direct descendant line, and the other parents are labeled using secondary spouse names. I used this situation for my database, because I wanted my two daughters to be the root people, 1.1 and 1.2.

Another reason that I have encountered for using multiple roots is to truncate an extremely deep ancestry numbering. Many tools (PAF being one of them) have a limited number of characters in their custom number fields. When you reach the limit, you must designate a person as a new root. This shortens the numbers again so they fit in the fields. Using the on-line and printed research material, it is not uncommon to have Ahnentafel numbers that go into the 10’s and 100’s of millions. You must restart the numbering on such trees in many programs when this occurs.

Using the Labels

I assign the number manually in PAF & PAFWIZ using the custom ID field. I ask PAF & PAFWIZ to dispaly the custom ID after the names on the screen.

One of the most convenience ways I use the numbers is in labeling files on my computer. I actually uses the ids to label reports (e.g. 12.0 Individual Full Name.pdf, 12.0 & 13.0 Family Group Full Names.pdf, 12.0 Pedigree Full Name.pdf, etc), to label picture files (12.0 Name (date) Place.jpg), and sources (15.0 Birth Certificate Name Issuer), etc. You cannot use the * character in the file name nor the separator (/) in many operating systems, so you have to device a substitute. I use o for * and - for / (just for file names).