On November 28th, I decided it was necessary to order events in Behold by date.
This required a bit of internal data restructuring to allow the sorting. Basically I was storing GEDCOMs by record (Level 0 in GEDCOM), but I had to now store it by event/fact (Level 1 in GEDCOM) within each record.
This then required a decision on whether any events are fixed in order despite the date (Yes: Birth before other dated events; Death, Cremation and Burial after other dated events) and on what the proper order would be to display undated events and facts, notes, objects and links relative to the dated facts. (Some go before the birth, some after the death). (Thanks, Robert)
Next was to make the notes, objects, sources and links pertaining to events and facts easier to read. (Thanks, Andy)
Once I made them easier to read, I saw that the source references were inconsistent with the way other hyperlinks were presented. They were in the form: “[Num Title]” with the number being a hyperlink. But all other links references in events were “Title Num” without the brackets and with the Title being the hyperlink. So I changed to that.
Once the hyperlinks became consistent, I realized there was no reason to shorten the source reference. Originally the source references were designed to the equivalent to a reference to a footnote (like a superscript after some text) and since superscripts were hard to hyperlink on, I settled on a short reference in brackets like: [S12-3]. But later I added the title in, e.g. [S12-3 - 1910 U.S. Census]. To allow the short references, I added a menu/toolbar item to allow you to show the short or long reference. Now with the new form: “Source: 1910 U.S. Census S12-3.”, I saw no need to shorten it any more. So I removed that function from Behold.
This is where I’m now at. It’s all working. I’ve still got some of the internal sorting to complete but it’s going well.
I also realized that links to children should be included as family events with the date being their birthdate. Parents should be included as individual events with the date being the individual’s birth date, or the adoption date. And spouses should be included as individual events with the date being their marriage date.
Notes and Objects can be of two types: Individual and shared. Individual ones should be first. Objects should have a date associated (e.g. date the picture was taken) and it would be useful to put those in the correct date order, but GEDCOM doesn’t allow a date on an OBJE. It probably should. For now, they’ll be sorted by title.
No change is ever easy. Sometimes they chain like this one. But step by step and good progress is made.
There is enough of significance here, with respect to ordering of events, improvement of the display of them, and the change to the way source links are handled and displayed that the next release will be called Version 1.1.
I’ve got another week or two to finish the work, and maybe a week more to update the documentation (many screen shots to update). I hope most of you will love these improvements. I’ll try to get a few sample screenshots with before/after comparisons for my next blog post.