By NiKo - Wednesday, February 17, 2021
|
On the Birth and Marriage tabs, is there a way I can select an actual person from the tree for the Officiator Name, Godfather, Godmother, and Witnesses.
Typically the people are all from the same village, and it would be nice to be able to show this particular priest married all these couples, this godfather/godmother (typically a married couple) baptized all these children, etc. I'd like the links to work in the Narrative Report too, if they are filled out (instead of the straight text they are now). How would I do this under a separate tab for say a "Named After" field. Named After: <link to actual person in tree> Connection: his paternal grandfather or her maternal grandmother, etc. |
By genome - Wednesday, February 17, 2021
|
No way of doing this directly. The closest you can get is to use a Social Relationship for Godparent and Named After. For a Witness use a blank relationship with Witness as a comment.
In my opinion this was a mistake not to be included in GenoPro. Hopefully one day it will be fixed in GenoProX 
|
By genome - Wednesday, February 17, 2021
|
Further to my earlier post, if you really want a link in the Narrative Report you could add custom markup to Godfather etc. fields.
e.g. for Harry Potter setting Godfather to: Sirius Black, Arcturus Black <?url Black-Arcturus-ind00067.htm\»»?> will be shown as  A messy looking solution and you do have to know in advance the filename of the page in a Narrative Report for the target individual.
|
By NiKo - Wednesday, February 17, 2021
|
Thanks for the quick reply.
I've tried the Social Relationship solution in the past, but I end up with dozens of lines connecting people all over the genomap, and have to hyperlink individuals into a genomap to link them, and then delete them again. It ends up being a mass of spaghetti on top of the actual tree, and I can't really learn anything new after entering all those connections. A while back, I did skim through some blogs where the author used Neo4J to build a graph of their family tree, and was then able to ask the graph various questions about their family: |
By genome - Thursday, February 18, 2021
|
I looked at Rik Van Bruggen's blogs. He is using a quite tortuous route (Geni-> Gedcom -> Gramps -> csv -> Google Sheet ->cql) to create his cypher sql data for input to Noe4J. I am sure the GenoPro Report Generator can do it in a much more direct way. I just need to understand the format/ schema of his cql data to replicate it. Still too wet and cold for gardening and we are still in lockdown here so I can take a look.
Social Relationships can be made invisible by setting them to the background colour (white). They can also still exist between genomaps even if they are not displayed. e.g. create a hyperlink and move to desired genomap to create the Social Relationship then delete the hyperlink. The SR then connects to the original individual on a different genomap.
|
By genome - Thursday, February 18, 2021
|
So here is a 'proof of concept' for exporting data for input to the Neo4j graphing package.
A JScript for the Report Generator is quite small although a few tweaks to the syntax was required: for (var n=0; n<Individuals.Count; n++) { var i = Individuals(n); Report.WriteFormattedLn('create (n:person {{id:"{}", last:"{}", first:"{}", gender:"{}",dob:"{}", dod:"{}"});',i.ID,i.Name.Last,i.Name.First,i.Gender.ID,i.Birth.Date, i.Death.Date); } for (var n=0; n<Families.Count; n++) { var f = Families(n); if(!f.IsLabel) Report.WriteFormattedLn('match (m {{id:"{}"}),(w{{id:"{}"}) create (m)-[:IS_MAN_OF]->(r:relationship {{id:"{}"})<-[:IS_WOMAN_OF]-(w);', dataID((f.Husband(0))), dataID((f.Wife(0))), f.ID); } for (var n=0; n<PedigreeLinks.Count; n++) { var l = PedigreeLinks(n); if (l.PedigreeLink.ID != 'Parent' && !l.Family.IsLabel) Report.WriteFormattedLn('match (r:relationship {{id:"{}"}), (p:person{{id:"{}"}) create (p)-[:CHILD_OF]->(r);',l.Family.ID, dataID((l.Child))); } function dataID(i) { // if hyperlink get ID of data source otherwise own ID var h = i.IndividualInternalHyperlink; return((Util.IsNothing(h) ? i.ID : h.ID)); } |
I have put together a Report skin {EN} Export for Neo4j that is attached as is the output produced by it from Harry Potter example (export.cql in export.zip).
Took a while to understand enough about Neo4j Desktop but discovered enough to show it works  |
By NiKo - Thursday, February 18, 2021
|
Wow! Thank you so much!
Looking forward to trying this out!
|
By genome - Friday, February 19, 2021
|
It was an interesting challenge  Will need some refinement to add other fields and relationships. Also for any serious queries you will need to create indexes e.g. create index on :person(id); create index on :person(last); create index on :person(first); create index on :person(dob); create index on :person(dod); etc. Also creating records via the Neo4j browser interface was excruciatingly slow. Better to use the Neo4j terminal and pipe the commands through the cli (cypher-shell) e.g. with command like .\bin\cypher-shell -u neo4j -p 1234 <"D:\GenoPro Reports\Test\export.cql"
|
By NiKo - Wednesday, January 11, 2023
|
Interesting plug-in (GFG - Graphs For Genealogists) being developed for Neo4j.
|
|