Showing results forΒ 
Search instead forΒ 
Did you mean:Β 

Head's Up! Site migration is underway. Phase 2: migrate recent content

Neo4j and WWI


Hello, my name is Jacques, I am 56 years old and I live near Vichy in France.
I'm not really a developer (anymore) but I able to do my own code if necessary (Php, Processing3, Arduino). I read English but have trouble writing it so I am using google translate, please excuse me πŸ™‚

I am currently working (as a freelance) on the life of 160 'Poilus' (French soldiers), from the same rural town, who died in action or went missing during the First World War. I must therefore establish their genealogy over several generations, which amounts to establishing a Book of Families, which begins around 1804 (for reasons of legibility of the archives). I am using a site online running under the GeneWeb7 engine to enter the genealogical data, then I parse the backup file to extract the data. At this point I had a database choice problem: my data is for the moment structured in entities (individuals and families) having event lists, which themselves can have witnesses, location ... SQL joins would have killed me :)).
And one day by chance I came across Neo4j. This is what I needed!
Basic nodes are: an individual (man or woman), a family, a place, a regiment, ...
Secondary nodes (the glue between the basic nodes) are: a birth, a wedding, a residence, a profession, a military service, etc. These are the events.
Relations are: between base nodes and secondary nodes, witnesses, etc etc
For the moment I am testing my code with various test files, the result suits me and seems convincing. I haven't tried cross navigation yet but it should allow me to easily find the family or professional links between these 'Poilus'. Then I will have to develop an operating program for this database. My dream would be to be able to make a dynamic display in 3D whose axes would be time and coordinates of places ... I am not there because it will be necessary before analyzing the data of approximately 50,000 people to piece together, several thousand weddings, tens of thousands of births, deaths, and almost as many testimony.
Of course, all the relationships between these women and these men will remain theoretical because they are based on official civil status data. They will only be a pale reflection of the life of all these human beings but maybe they will allow me to better understand the feelings of families during the Great War.

I attach an example:
Gabriel BERTIN (blue circle) died in 1915 (dark brown circle) during the fighting of 'Bois le PrΓͺtre' (light brown circle) in the town of Montauville (magenta circle). I could add a place between municipalities and departments, regions and countries. Gabriel serves in the '5th RIC' but for the moment I am not treated the regiments / battalions / companies but these are relationships to be added to find brothers in arms. Gabriel is the fruit of the union (yellow circle) of Pierre BERTIN and Rose METENIER and has a brother Jean. He was born (green circle) at a place called 'Les Emeris' in the town of 'BuxiΓ¨res', the birth being attested by two witnesses. The graph easily shows what takes a long time to describe :)). Gabriel is married to Antoinette DUMONT. The graph shows that she comes from a large number of siblings and that she has, among other things, a half-brother DUMONT Pierre who died in 1916 during the fighting around the 'Fort de Vaux' in the town of 'Damloup' (Battle of Verdun). Note that on this graph it does not appear that Pierre is Gilbert's marriage witness.
So Antoinette loses her husband and her half-brother. How to quantify the 'pain' felt by Antoinette ??? (knowing that I have not yet worked on these brothers-in-law who may have also perished during the conflict).

Whatever the case, it is a fascinating job, combining computer science, historical research, genealogy. And sometimes I have fun vectorizing battlefields using QGIS and analyzing the fights reported by the marches and operations diaries of the units of the French Army and the maps of the various belligerents.
I am not sure that one day I will be able to finish collating the civil status data, but since I discovered Neo4j I tell myself that the game is worth the candle and that I might have surprises at the end.

On technical side: saving my data seems a bit long to me, around 40ms per node and 30ms per relationship, but my pc is very old (8 years old), runs under W7, my scripts are coded in Php. I would have to re-code the php / neo4j part properly. I use php because I know and especially for its ease in managing the Julian Days and the Republican Calendar.

A big thank you again for the developers of this great and amazing database πŸ™‚



Hello @jaaxx !

Thank you for sharing your work with everyone! These stories revealed within the data are fascinating. You remind me that who we are is defined by the relationships we carry through life. Our labels are convenient shorthand for some common aspects, but a "node" really is the meeting place of many relationships.

Graph thinking offers another possibility with historical datasets, understanding the dynamics among people and countries. If you haven't seen it, you may enjoy Dr. Jim Webber's "A Crash Course in Graph Theory and World War I" found here: Trekking Boldly into the Future: Going Who Knows Where in the Graph Space - Neo4j Graph Database Pla...


Merci Abk
Thank you for your reply. I just read your link and I get the idea of ​​low energy graphs and stable triadic closures. In addition to studying the relationships between these soldiers and their social environment, I hope to be able to understand the life of this village during the 19th century, how part of the peasant population became workers (opening of a coal mines) and what are the contributions from the outside population mastering these new professions. Bringing in miners from other regions seems like a low energy graph. Teaching adults to forget their job in order to learn a new one seems to require more energy πŸ™‚
As for the parent / child triangle, it is indeed the simplest example of stable triadic closures.