Hello all,

I am new to this forum and looking forward to inspiring discussions!

My first DB experience was a PhD student when I and fellow historians, supported by a programmer, developed a small MySQL DB to store image metadata.

Since then, I have mainly relied on spreadsheets and Python to organise and query my data, mainly because of the low maintenance cost and the absolute flexibility in relating data to each other.

Now I am working on a new 3rd party project with historians who find spreadsheets and code scary or messy, so they have voiced the demand to use a relational DB to make data in-put and data filtering easier. Via my university, I have access to one of the DB services well established in the humanities, and a colleague and I have already carried out some data modelling experiments.

However, I am not entirely sure how to model our complex subject-object relationships.

In contrast to, let's say, a DB that only captures a correspondence network where you have letter writers and letter recipients, our people take on multiple roles over time. Per person, we have up to 30 biographic events, and those events often involve several people, e.g. contract partners, family members or opponents.

So in our current spreadsheet model, we have a person list that only captures name variants, gender and other permanent person attributes, while everything else comes in as a time- and place-related "event". Birth, death, graduation, marriage etc. are thus entered in a rather lean but long spreadsheet with few columns but many rows, for which I have also built a small Python interface.

However, our historians complain that things like parent-child relations at birth need to be collected either via duplication of the event with different person roles, or via our "related persons" column that permits pseudo-XML to specify other people's involvement.

My colleagues hope that a relational DB would solve this problem once for all, but I do not see how. In a relational DB, too, I cannot simply insert several person fields and inter-changeably use them for all kinds of subject (e.g. "murderer") or object (e.g. "victim") roles assumed by people.

I would very much appreciate your ideas --- maybe there is a solution that I have so far overlooked.