Behold Future Plans
This page is basically my ToDo list and was last updated on Tuesday June 27, 2023
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 1.3 (Finalize Everything Report)
- Fix: Eliminate extra left column on the Organize Tags and Organize Reports pages
- Fix: Prevent error that can occur when trying to process stepsiblings of unmarried stepparents.
- Impr: Reverse options that print XREF ID and Generation number to not print, so that the default will be "true" for all options.
- Impr: Display the information about the input file the same way in the File Information and in the Log File.
- Impr: Display number of Facts (Level 1 tags) separate from Details on the Organize Tags page.
- Impr: Only allow 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).
- 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.
- 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.
- Impr: Display partners or spouses without marriage dates after the birth of the person's youngest sibling.
- 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".]
- Impr: Saving from the organize screens 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.
- Impr: Make titles bold and one font size larger.
- Impr: Display all birth surnames with bold text.
- Impr: Check for illegal GEDCOM names (blank or wrong number of slashes) and correct them.
- Impr: Add the birth place to each person in the Index of Names.
- 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.
- Impr: Add the birth and death years after the person's name at the start of that person's info.
- Del: Removed the "Good Ideas" menu item and the popup for a new user.
- 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.
- 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.
- 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.
- Impr: Display the Everything Report and Treeview after changing Report options to be as similar as possible to the way they were displaying prior to the change.
- 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.
- Impr: Reorganize the Contents section of the Reports page to be in the correct order and ensure that the selections do turn off the sections and remove them from the Table of Contents and Treeview.
- Impr: Add replacement character for undefined ANSEL characters and Normalized strings converted from ANSEL to Unicode Normal Form C, as recommended by Tamura Jones.
- Impr: Modernize the look of Behold from old Windows format to Windows 10 styling, including the Open, Save and Message dialog boxes.
- Fix: Read UTF8 files that include illegal unicode characters.
- Impr: Change "Person of [person name]" and "Family of [people names]" to "Person: [person name]" and "Family: [people names]".
- Fix: Ensure citations within sources are always sorted by the Citation title.
- 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).
- Fix: Prevent extra person links from appearing in the Place Details.
- Fix: Repair the "Merge from" and "Merge into" for Report Options which wasn't fully working.
- 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.
- Impr: Extract of MyHeritage Family Tree Builder program name and version number correctly in Find Files despite their improper header.
- 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.
- Impr: Get Find Files to search for text in data files with illegal unicode characters in them, such at MyHeritage GEDCOMs.
- 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.
- 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, and will allow the Note Details section to be used in other ways, e.g. for tags.
- Impr: Better detection of incorrect line structure in the GEDCOM.
- 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.
- Impr: Updated the text for many of the error and warning messages to make them clearer.
- Impr: Create just one log file per run, rather than separate log files for each GEDCOM input. That makes everything available in one file and combined information for all files can be included.
- Impr: Change the display of event 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.
- 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.
- Impr: Add the parents names and ages onto birth events in the Place Details.
- Impr: Recode internal structures B-Tree structures to use dictionaries and lists and change all pointers to indices (i.e. integers). This will more easily allow Behold to more easily be converted in the future to use a database.
- New: Combine sources with the same source title, and combine citations with the same citation title.
- Fix: Allow hidden (but displayed) file links to be opened by clicking on them.
- 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.
- 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.
- 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.
- Fix: On the Organize Numbering Page, the Within Families dropdown for "Up to Ancestors" was giving Surname Order and "Surname Order" was giving Up To Ancestors.
- Fix: Check for internet connection only if user has selected "Check Automatically" under Help -> Check Online for New Version.
- Impr: Display tag names on the Organize Tags page in bold to indicate they are non-standard GEDCOM tags unknown to Behold.
- Impr: Display user defined tags (those with a leading underscore "_") on the Organize Tags page preceeded by the record they are in, e.g. INDI._NAME. This is because user defined tags may often differ in meaning when in a different record type.
- Impr: Display standard tags that are subordinate to a user defined tag on the Organize Tags page preceeded by the record and user defined tag they are in, e.g. INDI._NAME.DATE. This is because standard tags under user defined tags may often differ in meaning to standard GEDCCOM usage.
- 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.
- 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: Optionally include the path of the relationship using the BGRN Notation, e.g. FMRCSw = father's mother's parents' child's son's wife.
- New: Optionally 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: Determine which parent(s) are biological as best as possible based on the GEDCOM data. e.g. BIRT.FAMC and ADOP.FAMC 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: Add an Ancestral Names section that summarizes surnames to research
- New: Add an Ancestral Places section that summarizes places to research.
- New: Display statistics about the number of ancestors, collapse ratio and generations in each family, and number of descendents in the "Descendants of ..." section title.
- New: Include the relationship information in section titles.
- New: Add an option to include the relationship information in the Index of Names.
- 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: Display sources at the end of each person's details, listing them in order of year of source or event and referring to them in the detail with a reference similar to [1921, 1942c].
- New: Display MyHeritage sources much better, including linebreaks and links.
- Fix: Unchecking the Source tag should hide the sources.
- 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.
- Impr: Replace the separate "Undefined Records" section by adding any undefined records at the end of the record section they should be part of, e.g. Sources, Objects, etc.
- Impr: List any undefined records in the input log.
- New: Include "death of spouse" as an optional calculated event.
- New: Allow a simple way to display just the facts and events from the GEDCOM without any additional information.
- Impr: Add ages to "Survived by".
- Impr: Simplify the display in the Merge Tags and Merge Custom Text confirmation boxes.
- Impr: Group the extra information options that are in the Organize Reports page by the part of the report each option pertains to.
- Impr: Change Instant Organize to use Top Down or Bottom Up as currently set, instead of always using or changing to Bottom Up.
- New: Add a command and toolbar item to find the next and previous inconsistency message.
- Impr: Ensure external notes are working as they should.
- Impr: Check that MARR.HUSB.AGE is accepted and displays correctly.
- New: Add a Surname all caps check to Possible Data Problems
- Impr: Add an option to not display GEDCOM extension warnings in the log file (suggested by Tamura).
- Fix: Get Find Files to sort date modified using a date sort rather than a text sort.
- Impr: Double check that Behold displays multiple parents appropriately.
- New: Give a message when someone has the same UID (Unique Identifier) as someone else.
- New: Add links from UIDs to FamilySearch, Geni or WikiTree where possible.
- Ensure Behold's displays of GEDCOMs from MyHeritage, FamilySearch, Ancestry, WikiTree and Geni are optimal.
- Help: Update User Guide for version 1.2 and 1.3 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 grasp what you have in your personal or online tree data.
Version 1.5 (GEDCOM Export)
- New: Export to GEDCOM in valid 5.5.1 format following the GEDCOM 5.5.5 standard.
- New: Include a custom _INV tag on export, when the data source was invalid and could not be translated to a valid form of GEDCOM. The value will be the untranslatable tag followed by its value.
- New: Write a log file documenting the export and any problems encountered and put it in a file with the same name as the output file with .olog appended.
- New: Allow choice of export all data, or only the information displayed in the current view of the Everything Report. This way only the selected families and selected tags will be be included.
- New: Interpret the "1 _LIVING" tag and "1 _PRIVATE" tag in the input to represent living and private people.
- New: Include a filter to exclude living people.
- New: Include a filter to exclude people marked private.
- New: Add an export to PDF function.
- Impr: Review and adjust some of the findings of my GEDCOM assessment.
Version 2.0 (Display of Images)
- New: Display thumbnails of pictures in Everything Report.
- New: Display the IPTC metadata stored inside pictures.
- New: Export photos (graphic files) with HTML and RTF output.
- New: Warn when there are different individuals with the same AFN (Ancestral File Number), or the same Geni number or WikiTree number.
Beyond Version 2.0
Review Behold's GEDCOM Validation
- See what GEDCOM error checking is out there now, and compare and contrast in a few blog posts.
- Ensure exported GEDCOM will read in without errors and will export again identically.
- Solidify GEDCOM parsing, so that 5.5 and 5.5.1 are both 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
- See what consistency checking is out there now, and compare and contrast in a few blog posts.
- Add user-definable age limits to specify generalized minimum and maximum ages for certain types of events.
- Add menu items and tool bar icons to find the next and previous consistency message.
- Process consistency messages in the background, so that 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.
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.
Miscellaneous items worth doing at some point
- Detect when a current file loaded has changed and indicated that it has.
- Add navigation menu items and shortcut keys for quick access to the previous person, next person, up to parents, up to older sibling, down to younger sibling, down to oldest child, and any others that may add convenience.
- Ensure those Organize settings that don't require data loading only do a page refresh.
- Add a toolbar icon for "Close".
- 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
- Work through all my user-supplied GEDCOM test cases and make sure that the Everything Report works properly and looks good for all flavors of GEDCOM.
- Display custom events by their TYPE tag.
- Add custom text of "- no details" for assertions (i.e. that an event took place but no details about it), instead of just showing "Y".
- More complete ability display HTML tags (bold, italic, links, etc.) embedded within GEDCOM.
- Do not pass highlight lines to exported RTF or HTML when the cursor is over it and highlighting it.
- Create a Tools->Options menu item and build the Window for program options.
- Allow find function to search without differentiating for case or accents.
- Let InstantOrg optionally select both spouses as one family instead of two.
- Add a "User Reference Numbers" cross reference section.
- Allow sending of personalized and customized trees to your relatives with one-click!
- Add an "Open with Behold" option for GED and BHO files for right clicks from Explorer.
- Implement automatic detection of places in the Residence, Address, and other tags and give them hyperlinks and index them with the PLAC tag places.
- Add Unicode Spellchecking
- Estimation of all dates.
- Allow data marked as incorrect to be overwritten as "verified" by the user. This tag will be saved in the Behold file (and exported to GEDCOM) so that the verification will be remembered.
- 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 an export to email function.
- 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.
- Determination of living people using dates in their facts or their close relative's facts, assuming a maximum age, e.g. 90.
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.
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 other online systems (Ancestry, Geni, WikiTree, etc.) that provide Application Program Interfaces
- Reading and writing to the cloud (OneDrive, Dropbox, Google Drive, etc.)
Other Interesting Ideas.
But remember, Behold's main duty is to be an efficient genealogy data viewer with potential to one day be an editor. Possibilities here 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
