Behold Future Plans

This page is basically my ToDo list and was last updated on Tuesday April 16, 2024

Shown below are tasks marked as completed as I do them prior to a release, along with an indication of what I am currently working on (the animated icon of me pounding away at my computer).


Version 2.0 (Data Structure Redo, GEDCOM Validation, GEDCOM Export, Filtering, Relationships, DNA)

  • Fix: Eliminate extra left column on the Organize Tags and Organize Reports pages This item has been completed
  • Fix: Prevent error that can occur when processing stepsiblings of unmarried stepparents. This item has been completed
  • Impr: Reverse options that print XREF ID and Generation number to not print, so that the default will be "true" for all options. This item has been completed
  • Impr: Produce just one log file for all GEDCOM files that are read, instead of one for each GEDCOM file read. This item has been completed
  • Impr: Display number of Facts (Level 1 tags) separate from Details on the Organize Tags page. This item has been completed
  • Impr: Only allow tags that are facts to be displayed or hidden. That works better than allowing data tags since the latter hides information within facts which is seldom wanted, especially for the tags that can be both facts and data (e.g. SOUR, NOTE or OBJE). This item has been completed
  • Impr: Add buttons on Organize Tags page to deselect all tags ("None") or reset to all tags ("All"), to make it easy to just display just one or only a few selected fact types. This item has been completed
  • Impr: Order columns in Tags page to be: Facts, Data, Links, Records so that it is immediately obvious which ones are the facts that can be shown or hidden. This item has been completed
  • Impr: Display partners or spouses without marriage dates after the birth of the person's youngest sibling. This item has been completed
  • Fix: Get the All Tags, Related Through Marriage, and Everyone Else buttons to initially start in the correct state when loading a Behold file. [This took 16 hours to solve. It ending up being because the button type on the toolbar was set as "checked" when it should have been "button".] This item has been completed
  • Impr: Saving from the Organize pages will now turn the save action off so that exiting or loading a new file will not cause the "Do you want to save" prompt to appear until another organize change is made. This item has been completed
  • Impr: Make titles bold and one font size larger. This item has been completed
  • Impr: Display all birth surnames with bold text. This item has been completed
  • Impr: Enclose all surnames (maiden and previous marriages) in parenthesis followed by the current surname. Previously, only the maiden name was in parenthesis. This item has been completed
  • Fix: Get the "Married names for women" option to update immediately. This item has been completed
  • Impr: Check for illegal GEDCOM names (blank or wrong number of slashes) and correct them. This item has been completed
  • Impr: Add the current age (if living) and birth place to each person in the Index of Names. This item has been completed
  • Impr: Add a missing birth year value (default = "??") when that value is not known for year ranges. Add a missing death date when the person is known to have died but no death date is given. This item has been completed
  • Impr: Add the birth and death years and current age (if living) and place of birth after the person's name at the start of that person's info. This item has been completed
  • Del: Removed the "Good Ideas" menu item and the popup for a new user. This item has been completed
  • Fix: Correct the value of the swap file size in the Gauge in the status bar, and the value of the memory used by the program at bottom of report and in the log file which was incorrect for 64 bit processors. This item has been completed
  • New: Put the Short/Long References option back in that was taken out in Version 1.0.3. It is needed again for people who have lots of sources and want to see their facts more closely together. Their shortened reference will show the full text when the mouse is hovering over it. This item has been completed
  • Impr: Change the number after each entry in the Treeview to be the number of non-hidden nodes directly one level below, rather than the total nodes below any number of levels below. This item has been completed
  • Impr: Display the Everything Report and Treeview after changing Report options to be as close as possible to the same location as it was prior to the change. This item has been completed
  • Fix: Get the cancel button on the Organize pages to not clear the tag counts on the Tags page. This bug was inadvertently added in version 1.0.1. This item has been completed
  • Impr: Reorganize the Contents section of the Reports page to be in the correct order and ensure that the selections do prevent the display of the sections and remove them from the Table of Contents and Treeview. This item has been completed
  • Impr: Add replacement character for undefined ANSEL characters and Normalized strings converted from ANSEL to Unicode Normal Form C, as recommended by Tamura Jones. This item has been completed
  • Impr: Modernize the look of Behold from old Windows format to Windows 10 styling, including the Open, Save and Message dialog boxes. This item has been completed
  • Fix: Read UTF8 files that include illegal unicode characters. This item has been completed
  • Impr: Change "Person of [person name]" and "Family of [people names]" to "Person: [person name]" and "Family: [people names]". This item has been completed
  • Fix: Ensure citations within sources are always sorted by the Citation title. This item has been completed
  • Fix: Ensure that the leading number in a field will be placed at the end of the field in a smart address sort, so that for example, street names will have higher priority than street number. Also ignore highest level place designations if they are missing (i.e. nothing between commas). This item has been completed
  • Fix: Prevent extra person links from appearing in the Place Details. This item has been completed
  • Fix: Repair the "Merge from" and "Merge into" for Report Options which wasn't fully working. This item has been completed
  • Impr: Better detection of the user's default text file viewer for opening GEDCOM and log files. I also incorporated this into GEDCOM File Finder for whenever its next release might be. This item has been completed
  • Impr: Extract of MyHeritage Family Tree Builder program name and version number correctly in Find Files despite their improper header. This item has been completed
  • Impr: Change the Type dropdown in Find Files to only include ged, bho, and all data files, and change the "In What" selection to select either data files and/or log files. This item has been completed
  • Impr: Get Find Files to search for text in data files with illegal unicode characters in them, such at MyHeritage GEDCOMs. This item has been completed
  • Impr: Add to the log file the info about how the CONC tag is handled that was only shown in the File Information section of the program window. This item has been completed
  • Impr: Include all note and object records in the notes and objects details section even if it only has one reference. Previously if it had one reference, the note or object was included only with the one record that referenced it. Doing this correctly reflects how notes and objects are defined in the data. This item has been completed
  • Impr: Better detection of incorrect line structure in the GEDCOM. This item has been completed
  • Impr: Grouped error and warning messages into 8 types: Character set, File type, GEDCOM line, GEDCOM linkage, GEDCOM ordering, GEDCOM structure, GEDCOM values, Invalid tag, and Non-standard GEDCOM. This item has been completed
  • Impr: Updated the text for many of the error and warning messages to make them clearer. This item has been completed
  • Impr: Change the display of fact references in the Place, Source and other Detail reports so they are displayed by date and time on the first line and name, event, and other information on the second line, sorted by date, place and year born. This item has been completed
  • Del: Remove the extra event information (e.g. notes, sources) from the Place Details as they are not very useful there and make it harder to scan the Place Detail for what is important. This item has been completed
  • Impr: Add the parents names and ages onto birth events in the Place Details. This item has been completed
  • Impr: Group the extra information options that are in the Organize Reports page by the part of the report each option pertains to. This item has been completed
  • Impr: Recode internal data structures to allow Behold to be more easily converted to use a database in the future. This involved changing the read-only B-Tree structures to dictionaries and lists and changing all pointers to be indices (i.e. integers). This item has been completed
  • Impr: Combine sources with the same source title, and combine citations with the same citation title. This item has been completed
  • Fix: Allow hidden (but displayed) file links to be opened by clicking on them. This item has been completed
  • Fix: Get mouse wheel to vertically scroll in the treeview. This bug was added in version 1.2.3 when LMD Tools changed something in their ElXTree UseCustomScrollBars property. This item has been completed
  • Fix: Select a treeview item and then scroll the Everything Report without activating (i.e. clicking on) the Everything Report and then click on the same Treeview item was not scrolling the Everything Report back to the Treeview item. This item has been completed
  • Impr: Remove the GEDCOM checks in Behold that the HUSB is female or the WIFE is male to allow same-sex marriages without a warning. But if both the HUSB is female and the WIFE is male (which I found is in some GEDCOMs), then I'll give a message and I'll switch them. Marriages or partnerships with the same sex are still indicated in the report because that is an important fact. This item has been completed
  • Impr: Remove the idle background processing that Behold was using to update menu items based on cursor position. This is now done only when the cursor is moved. Now Behold should not consume computer resources when it is idle. This item has been completed
  • Fix: Check for internet connection only if user has selected "Check Automatically" under Help -> Check Online for New Version. This item has been completed
  • Impr: Display tag names on the Organize Tags page in bold to indicate they are non-standard GEDCOM tags unknown to Behold. This item has been completed
  • Impr: Do not display on the Organize Tags page any tags that are subordinate to a user-defined tag (those with a leading underscore "_") as a compound tag (e.g. _WITN.SOUR). Instead, the subordinate tag will now be added on its own (e.g PAGE). If the subordinate tag is the same as a GEDCOM tag, it should have the same meaning. If not, the program that exported this GEDCOM should use a different subordinate tag. Behold or any other program should not be expected to look for or fix this. This item has been completed
  • Fix: Links in HTML, RTF and Word exports were not working. This bug was introduced in Version 1.2.7. It was similar to the bug introduced in 1.2.4 and fixed in 1.2.6. This item has been completed
  • Impr: Place events where the event type contains "death" after the death event, and where the event type contains "grave" or "obit" after the burial event. This item has been completed
  • Impr: Rework the GEDCOM import so that it works more efficiently with the new internal data structures. This item has been completed
  • Impr: Add a summary of the number of user-defined tags at the end of the log file. This item has been completed
  • Impr: Add an option to not display GEDCOM warnings in the log file (suggested by Tamura). This item has been completed
  • Fix: Display older half-siblings as their age at the birth of the younger, rather than "born xx years before birth". This item has been completed
  • New: Add menu and toolbar items to find the next and previous data problem. This item has been completed
  • Fix: Convert single at signs (@) in a GEDCOM value internally to double at signs (@@) as GEDCOM requires, and display all double at signs (@@) in values as a single at sign. This item has been completed
  • Impr: Check input for essentially full compliance against GEDCOM 5.5.1. This item has been completed
  • Impr: Display CHAN (Last Updated) information for individuals and families separately instead of only displaying just latest date of the individual and the families of the individual. This item has been completed
  • Impr: Close the Find Dialog after the find is done to allow the F3 (Find Next) and F4 (Find Prev) shortcut keys to work, since they don't work with the dialog open. This item has been completed
  • Impr: Switch the order of the Find Next and Find Prev buttons on the toolbar so that Find Next is first.
  • New: Add a box on the toolbar to allow search text to be entered directly. The dropdown will have a history of the last 20 searches. This item has been completed
  • Impr: Ensure the Find Dialog and also the "text not found" window always first appear over the Behold window, and not where they were left the last time Behold was run. This item has been completed
  • Impr: Allow the Find Next and Find Prev keys to use the first phrase in the find history list when first starting Behold, which will be the last find done in the previous session of Behold. This item has been completed
  • Fix: Correct the display of the age of stepsiblings. This item has been completed
  • Impr: Display the parents of half-siblings and stepsiblings and whether they are older or younger siblings. This item has been completed
  • Impr: Better handling of the GEDCOM "Y" value used to confirm some events, as well as the display of the illegal "N" value and other values on fact lines that shouldn't have a value. This item has been completed
  • Impr: Hide groups of places, sources, etc., in their Details sections when all facts referenced in the group are hidden. Number hidden groups separately with an "h" in their numbering. Also hide them in the Treeview. This item has been completed
  • Impr: List any undefined records in the input log. This item has been completed
  • Impr: Remove memory leaks. This item has been completed
  • Fix: Correctly handle the CONT tag in GEDCOM version 2 files which are placed at the same level as the tag they are continuing, not at the next level as in later versions of GEDCOM. This item has been completed
  • Fix: Get the "At death predeceased by" report option to work. Previously the "At death survived by" option was turning both the predeceased display and the survived display on and off. This item has been completed
  • Impr: Convert GEDCOM version 1 and 2 to version 5.5.1 along with a summary of the tags converted. This item has been completed
  • Impr: Better display of linking structures as well as the 1 EVEN/FACT 2 TYPE and 1 ASSO 2 RELA structures in reverse tags and source references. This item has been completed
  • Impr: Handle erroneous CONC lines in Family Tree Builder GEDCOMs. This item has been completed
  • Impr: Delete duplicate PAGE records that can occur in Family Tree Builder GEDCOMs. This item has been completed
  • Impr: Remove the limit of 100 references so that all references will be printed. This item has been completed
  • Del: Remove the "Descendants Only" menu and Organize Numbering page option, as they are being replaced by the generations filter. This item has been completed
  • Del: Remove the "Up to Ancestors" and "Surname Order" options that were seldom used and won't work well with the new generations filterx. This item has been completed
  • Del: Remove the Organize Numbering page which now has little utility with the removal of ordering options. This item has been completed
  • Impr: Change Instant Organize to display families top down instead of bottom up. This item has been completed
  • New: Check for surname being all-caps and give a warning and convert to inital-cap. Add option to turn off the conversion and leave the surname as all-caps. This item has been completed
  • New: Add a filter to specify the number of ancestor generations (0 to 15 or all) to include for each starting person. Include a menu item and button for it. This item has been completed
  • New: Add a filter to specify the number of descendant generations (0 to 15 or all) to include down from each starting person and ancestor. Include a menu item and button for it. This item has been completed
  • New: Calculate whether or not each person without a death date is living based on whether they or a descendant was born over 100 years ago. This item has been completed
  • New: Add a menu item and button to allow living people to be included or excluded. I am working on this now
  • New: Add option to Export to GEDCOM in the GEDCOM's format, i.e. specifically for the program that created that GEDCOM.
  • New: Add option to Export to GEDCOM following the GEDCOM 5.5.5 standard, converting as many non-standard and user-defined tags to something valid to ensure minimal data loss by any program that reads it.
  • New: Ensure exported GEDCOM will read back into Behold without errors and will export again identically.
  • New: Ensure external notes are working as they should and will export to GEDCOM.
  • New: Ensure GEDCOM 1 and GEDCOM 2.0 still work and will export to GEDCOM.
  • New: Ensure GEDCOM 5.5EL (Extended Locations) still work and will export to GEDCOM.
  • New: Check that MARR.HUSB.AGE is accepted and displays correctly and exports to GEDCOM.
  • New: Determine which parent(s) are biological as best as possible based on the GEDCOM data. e.g. BIRT.FAMC, ADOP.FAMC, _FREL and _MREL tags can be used when available. Otherwise if a person has more than one set of FAMC parents, then the first is assumed biological and the others not.
  • New: Display all familial Relationships of every person to the main person in each family, even multiple relationships (e.g. cousins on two sides) along with the MRCA (most recent common ancestor) for that connection with an indication if it is not biological.
  • New: Include the relationship information in section titles.
  • New: Display statistics about the number of ancestors, collapse ratio and generations in each family, and number of descendents in the "Families of" and "Descendants" section title.
  • New: Display the likelihood of each person's sharing autosomal, X, Y and mitochondrial DNA with the main person in each family, along with the expected amount in cM if they do share.
  • New: Display ancestors for each living person that the person is a Y-candidate or mt-candidate.
  • New: List all the living Y and mt-candidates for each ancestor with their current relationship and age.
  • New: Add an Ancestral Names section that summarizes surnames to research
  • New: Add an Ancestral Places section that summarizes places to research.
  • Impr: Add ages to "Survived by".
  • Impr: Simplify the display of the Merge Tags and Merge Custom Text confirmation boxes.
  • Fix: Get Find Files to sort date modified using a date sort rather than a text sort.
  • Impr: Ensure Behold's displays of GEDCOMs from MyHeritage, FamilySearch, Ancestry, WikiTree and Geni are optimal.
  • New: Add links from any included links to FamilySearch, Geni or WikiTree where possible.
  • New: Add a warning if any person has more than one link pointing to a FamilySearch, Geni or WikiTree person, since those trees should only have one entry for any person.
  • Impr: Make sure printing and export to HTML, RTF and DocX all still work.
  • Impr: Make sure shortcut keys work, the shortcut menu letters are set correctly, the tab key transfers logically from control to control on each window and the button hints are all updated.
  • Impr: Optimize code to make input as fast as possible and make sure the progress bar reports progress smoothly.
  • Help: Update User Guide for version 2.0 improvements and redo all screenshots to show Windows 10+ styling. Make sure the Help buttons and the F1 key works everywhere.
  • Web: Review and update website. Change emphasis to present Behold as a current GEDCOM reader and data display tool to help you understand and make use of all the information you have in your personal or online family tree and export to GEDCOM the parts of the tree that you want to load into other programs.

Version 2.1 (Display Images)

  • Impr: Upgrade to new versions of Delphi, TRichview and LMD Tools.
  • New: Get Behold listed on the Microsoft Apps Store.
  • New: Display thumbnails of pictures in Everything Report for GEDCOMs that have OBJE links.
  • New: Display the IPTC metadata stored inside pictures.
  • New: Export photos (graphic files) with HTML and RTF output.

Possibilities Beyond Version 2.1

Assistance in Working with Other Systems

  • A function to create a template containing data that can be copied and pasted as input into other systems, e.g. MyHeritage, Ancestry, WikiTree, Geni or FamilySearch.

Review Behold's GEDCOM Validation

  • See what GEDCOM error checking is out there now, and compare and contrast in a few blog posts.
  • Solidify GEDCOM parsing, so that 5.5.1 is handled as correctly as possible.
  • Include Error messages in the log file when the standard is not followed, and Warning message for construct that are legal GEDCOM but are ones that most programs will not be able to interpret.

Enhanced Consistency Checking

  • Review and adjust some of the findings of my GEDCOM assessment.
  • See what consistency checking is out there now, and compare and contrast in a few blog posts.
  • Figure out what to do with Alternate Marriage and Divorce events within one FAM record. RootsMagic treats them differently which is as separate events. See: Multiple Events and Unions in GEDCOM
  • Add user-definable age limits to specify generalized minimum and maximum ages for certain types of events.
  • Process consistency messages in the background, so that the file can open faster.
  • Display the number of consistency messages as an active number in the toolbar that shows the progress as the background detection takes place. The number will change color when the tally is completed.
  • Correctly load and display Event GEDCOM files.
  • Work through all my (thousands of) user-supplied and downloaded GEDCOM test cases and make sure that the Everything Report works properly and looks good for all flavors of GEDCOM.

Technology Advancement

  • Add threading to improve speed.
  • Optimize to reduce memory use and improve speed to enable even extremely large files to be loaded as fast as possible.
  • Ensure those Organize settings that don't require data loading only do a page refresh.
  • Rewrite of Print and Print Preview functions to work more efficiently than loading the whole report into memory at once, and ensure it displays right away ... or wait until they are improved in TRichView
  • Convert to an in-memory database if it will improve speed and memory use.
  • More complete ability display HTML tags (bold, italic, links, etc.) embedded within GEDCOM.
  • Create a Tools->Options menu item and build the Window for program options.
  • Add an "Open with Behold" option for GED and BHO files for right clicks from Explorer.

Miscellaneous items that might be worth doing at some point

  • Detect when a current file loaded has changed and indicated that it has.
  • Allow a simple way to display just the facts and events from the GEDCOM without any additional information.
  • Add an export to PDF function.
  • Add a toolbar icon for "Close".
  • Allow find function to search without differentiating for case or accents.
  • Add a "User Reference Numbers" cross reference section.
  • Allow sending of personalized and customized trees to your relatives with one-click!
  • Implement automatic detection of places in the Residence, Address, and other tags and give them hyperlinks and index them with the PLAC tag places.
  • Check for a default.bho file in the Behold directory. If it exists, use that file for the Organize defaults. If not, go back to the program defaults.
  • Add ability to save Organize settings as default, or to delete the default settings and go back to program defaults.
  • Change show/hide tags icon as a drop box that allows choosing between "All tags" and "useful tags" ... or put this in the Status bar. This will make it more obvious as to the importance of this feature which many users may not use enough.
  • Add text/comments to bottom of photo.
  • Add face tagging.
  • Embed info into photo.
  • Add photo-zoom to photos in HTML and Everything Report.
  • Presentation of data as of a certain date. Facts after the date will be excluded.

Other Ideas I've Had for Behold but likely won't follow through on

Editing

I've always thought Behold would be the perfect program for Editing your genealogy, as it would be the only word-processor type of genealogical data editor with a WYSIWYG (What You See Is What You Get) interface. The problem is that most of us (myself included) now use one of the genealogical online services as our main tree. (I use MyHeritage.) So unless the company allows my program to use their API to read and write from their online system, then I can't do it. And maybe I don't want to anyway, since an error might cause data corruption. It's not easy to learn another database's system correctly and implement it properly. Each system already has their own online editing and a few already have one or two programs that do sync with them, some not so well. So editing is no longer in my current plans but has been relegated to my possibilities.
  • Implement incrementally the editing features directly through the Everything Report.
  • Develop a disk-based database and save it in a .bhd (Behold Data) file to be the user data file.
  • Ribbon interface that includes Task Panes in a Microsoft Word-like manner.
  • Editing shortcuts
  • Snippet library for quick input of your more common entries.
  • Add Undo/redo/repeat capability at the record level.
  • Auto-save to database after each record edit is completed so very little data can be lost.
  • Source Panel to provide instant access to and entry of the active source that any data entered will pertain to.
  • Source-based data entry!!
  • Add ability to record reasoning and proof arguments, attached to source references.
  • Standardizing Sources and Citation Templates
  • Decide how to handle selections larger than a few pages, which are larger than Behold's buffer.
  • Add cut, copy, paste onto the right-click menu.
  • Add a right-click option to set a _PRIVACY tag for a fact.
  • Data for and about Places
  • Allow Entry of Pets along with their Owner's Genealogies
  • Include a research log which would be implemented as a history list by date and repository and source of all changes made.
  • Automatic generation of an RSS feed of changes made, customized for the reader's family. (This will blow your mind!)
  • Autocomplete/correct capability
  • Provide language keyboards for easy input of characters in different languages.

Mass Data Entry Features

  • Allow mass data entry in spreadsheet-like format to easily include data summarized in columns. This will be great for censuses and ship's records, and especially useful for one-name and one-place studies.
  • Include a tool to aid transcribing from the images of documents.
  • Provide a "smart selection" mechanism to suggest people and events that each of the spreadsheet entries might link to.
  • Add option to sort Sources by the user reference number (REFN) within its type, as an alternative to sorting by Title.

Virtual Merging

A lot of programs do this. It is very complicated. You can run multiple copies of Behold and display the results side-by-side and that may be as good to compare different versions of a person. It does not make much sense to implement Virtual Merging without editing and a way to designate which people in different files are the same.
  • Allow identification of identical people in different files, and store this info in a Behold file. Possibly use the _UID tag for this.
  • Allow each input file to be associated with a background color, so that data from different files can be easily identified.
  • Combine INDI people and FAM families based on the same UID, _UID, ALIA, RFN, AFN, REFN.TYPE or RIN, to allow future combination and separation once editing is allowed.

Mapping and Place Names

There are programs already available that map your place locations to a Google map for you. There are others that check that your place names are specified correctly. Both of these would take a lot of work and I don't think the effort is worth it. Behold's Place List already does a good job of helping you see if your place names are correct.

Connections to Other Systems

  • MyHeritage direct input from and maybe output to (using their API)
  • FamilySearch direct input from and maybe output to (using their API and GEDCOM X)
  • Direct input from and maybe output to other online systems such as Ancestry, Geni, WikiTree, etc.
  • Reading and writing to the cloud (OneDrive, Dropbox, Google Drive, etc.)

Other Interesting Ideas.

Behold's main duty is to be an efficient genealogy data viewer. Possibilities include partnering with another program that specializes in one or more of the tasks below and getting Behold to share data with it.
  • Other Platforms: Mac, Unix, Android. - Remember though, that I'm a Windows developer and don't know or use those. Delphi has a multiplatform framework which would support all platforms with one code base, and I'd have to convert to that. Behold already works well on Mac and Unix in Windows emulataors.
  • Internationalize Behold itself, allowing the program text to be various languages. Get users to do translations. (Possibly translate the help file as well - huge job, plus maintenance issues!)
  • Direct reading of other program databases (e.g. RootsMagic, PAF, TMG)
  • Direct reading of evidence-based programs for genealogists (e.g. Evidentia, Clooz)
  • Interface with mass-data entry or transcribing programs (e.g. GenScriber)
  • Task / Todo list
  • Calendar Conversions
  • Data backup functionality
  • Timelines and/or Charting
  • Support and generation of .kml files for input into Google Earth and other mapping tools.
  • Photo editing
  • Web info search or info match
  • Address book functionality
  • Organizer type of functionality
  • Connecting Apps for Android or iPhone/iPad
  • Speech Recognition
  • Text to Speech