Preface
In Part 4 we will stop talking about the Tree Model and focus exclusively on the Graph Based System layer. In preparation for that I thought it would be helpful to show how a few of the Tree Models that RootsDev has discussed over the last few years can be implemented on top of a graph.
This part is specifically for those of you who need a more concrete visualization when discussing abstract concepts. My hope is that this part will arm you with a (simple) example tailored to your particular beliefs that you can refer to in future parts.
Please note that I am not advocating any particular model, but merely showing that any of the models discussed may be implemented on top of the Graph Based System the meets the requirements outlined in Part 1. Also, I am probably missing several models, and for that I apologize.
Please don't turn this into a Model X is better than Model Y because of Z. I have read many posts where that is debated. Again, the point is to show that any model can be implemented cleanly and meet the requirements that we specified in Part 1.
Models
For the sake of brevity I will not fully detail each model, but instead look at 2 User scenarios. 1) what is Person X's name and 2) who was person X married to. I assert that if we can show that each model can be placed on a graph, then we can focus on meeting the requirements in Part 1 by thinking about the graph in the abstract, and not using any particular model.
Note: Anything in <angle brackets> is a property on the Node or Edge.
Conclusion Model
We will start with this one first because it is the easiest.
Conclusion Based - Name
Very basic. Just an Element with a property (name).
Conclusion Based - Marriage
Also very basic. 2 Elements that reference each other.
Source Model
I quote Luther's definition found
here. "Y
ou create a record representing all the information from a single source; each claim may be individually referenced. Each conclusion person refers to a claim in some source for each property it contains."
Source Based - Name
Now the name is not stored directly on the person Element, but referenced in the source Element.
Source Based - Marriage
To get a marriage we would need to follow the marriage edge to a source Element, and then follow the other marriage edge to the other person Element.
You will note that I have made some assumptions and simplifications that would not hold up to real world use, but I hope I have showed that you can represent a very basic source based model on a graph.
Persona Model
I again quote Luther's definition. "you create a record for each (person, source) pair. Each conclusion person is a collection of these personas".
Persona Based - Name
Note that there could be several personas linked to this person. In that case they would be linked as Name(s), but without the conclusion.
Persona Based - Marriage
Note that the source Element contains many properties which I did not list, and that the Ref links would need to specify which property they are linking to. Its basic, but I hope you get the idea.
STEMMA Model
I won't bother diagraming this out, as Tony Proctor has an excellent diagram
here (scroll down a bit). You will note that it looks like a graph already.
SummaryAgain, this is a small academic exercise to let you pick a model to hold in your head if need be when we are talking about the Graph Based system in the next few parts. And again, I know I probably didn't get the diagrams completely accurate, but I do hope that I showed that we can implement any of the above models (and many more) on this Graph Based System.