This page updated 6 Aug 2022
This article describes one of my example Templates for Online Repository Assistant (ORA). The other example Templates can be found in the index of Example Templates. Other articles in my ORA Section cover various topics about using the software. The "How it Works" section below includes links to articles describing the ORA features used in these Templates.
The Templates described here are designed to type data from a FindAGrave.com memorial record to complete a Citation entry for that memorial in TMG. These Templates are designed to work with "lumper" style source, where a single Source Definition is defined for the entire Collection, and details for a specific record are entered in the Citation Detail field when the source is cited.
The Templates are designed to work with FindAGrave.com memorials, but could easily be adapted to work with other Collections that are used with "lumper" style sources. I have not tested them with other genealogy programs, but they could no doubt be adapted to them as well.
A separate Template is provided for Citations in different Tag Types, and for differing data for Birth and Death Tags.
My companion article on example Templates for Events from FindAGrave record describes some Templates designed to create Death and Burial Tags in TMG.
Name Tag:
Birth Tag, with Age:
Birth or Death Tag, with Year:
Birth or Death Tag, with Date:
Burial Tag:
Auto Type, intended for use with TMG
In TMG, open a Tag Entry screen for a Tag in which you intend to cite this memorial.
In your browser, navigate to the memorial record for the person for which the Citation is being created. In the OraPanel, click the Auto Type button associated with the desired Template. The Template opens a Citation screen, and in it enters the Source Number, Citation Detail text, and Sureties.
The Templates are intended to generate a complete Citation, starting with an open Tag Entry screen. The Template opens a Citation screen. With the "lumper" method of entering sources the Source Number for any record set is always the same, so the Templates enter it, then use {tab} Control Sequences to advance to other fields in the Citation screen, ending after entering Surety values.
The Templates do not close the Citation screen, but leaves it open so the user has an opportunity to review what has been entered and make any needed corrections. The screen is then closed manually after reviewing the results.
The methods used to create output for various segments of the Templates are shown below.
Opening the Citation Screen
The template uses TMG's keyboard shortcut F4 key to open the Citation screen, with the Control Sequence for that key:
{F4}{fast}On my system the rest of the Template works reliably at a faster speed, so I add the {fast} speed code to speed up the rest of the typing. With a different system you may have to omit that to obtain reliable results.
Source Number
The Source Number for a "lumper" style source is always the same, so the Template enters it with literal text, then tabs to the Citation Detail field:
500{tab}My assigned Source Number for FindAGrave.com is 500, for easy recall during manual entry. You would, of course, change that value to what is used in your system.
Memorial Number
The first part of the Citation Detail entry in my practice is the memorial number, which is created with the literal text "memorial # " followed by the Variable for the number itself from the record, and finally a comma and space produced by literal text:
memorial # [Record ID],Name
The name field of married women often includes their maiden name, which is in Italics in the FindAGrave record. Since Italics are not reliably transmitted through the wide variety of applications ORA users may employ, ORA records the maiden names enclosed in parentheses in the Full Name field. ORA also provides various other name formats for FindAGrave, including Given Name, Maiden Name, and Surname. This makes it easy to render the maiden name differently if desired. I choose to record them as FindAGrave.com does, in Italics. I do that by using the separate name parts provided, and enclosing the maiden name with TMG's Italics codes, with the following Template segment:
[GivenName] <\[ITAL\:\][MaidenName]\[\:ITAL\] >[Surname]The maiden name element, with its Italics codes and trailing space, is enclosed in Conditional brackets so the codes and space will not be included in the output when the maiden name is not present.
Because the square brackets and colons used in TMG's codes are also special characters to ORA, they must be preceded by the escape character " \ " as shown in green in the maiden name segment repeated below:
<\[ITAL\:\][MaidenName]\[\:ITAL\]>
If you are happy with enclosing the maiden name in parentheses as ORA displays it in the Name field, you can simply use the [Name] Variable alone.
Prompt for Age
Since FindAGrave.com memorials do not record the age, except when the contributor has recorded it in a field not designed for that data, ORA cannot extract it from the record and we cannot extract it automatically. Instead, I use an Assignment Variable to prompt the user to enter it:
[=:Age]When the Auto Type Template is used a prompt appears for the user to enter the age manually.
Automatically Formatting the Age Value
Using the Age directly as input requires that the age be typed exactly as it is to appear. To achieve the output shown in the example above one would have to type in "54 yr 3 mo 19 days" – exactly as it is to appear. That works, and in fact I used that method or some time until I recognized a better way. Not only does one have to remember to enter in the desired format, but when the memorial has the aged entered in the notes one cannot usually copy and paste it because it is often in a different format than what I prefer.
The solution is to use the :replace Transform to extract the numeric values from whatever format is entered, and then assemble them in the desired format. First, the following view of the Template segment shows how the numbers are extracted from the value in the first half of the expression.:
[Age:replace:([0-9]+)[^0-9]+([0-9]+)[^0-9]+([0-9]+)[^0-9]*:$1 yrs $2 mo $3 days]
The :replace Transform is being used in the Regular Expression mode. Here the expression is seeking groups of one or more numbers – the parts in green above – separated by one or more characters that are not numbers – the parts in yellow above. The "[0-9]" expressions in green seek a number between zero and 9, and the following " + " means one or more of them. The "[^0-9]" expressions in yellow mean any character that is not a number between zero and 9, and the following " + " means one or more of them, except for the last one, where a " * " follows, meaning zero or more of them.
Next, the following view of the Template segment shows how the numeric values are assembled in the desired format in the second half of the expression:
[Age:replace:([0-9]+)[^0-9]+([0-9]+)[^0-9]+([0-9]+) [^0-9]*:$1 yrs $2 mo $3 days]
Note now that the "[0-9]+]" expressions that locate the numeric values in the first half of the expression are included in parenthesis, which create "capture groups." In the second half of the expression the numeric values that are "captured" are output with the "$1" "$2" and "$3" terms. The capture groups and their respective output terms are color coded in the view above. Following each is text that provides the years, months, and days labels in the desired format. Those using this Template who desire a different format can simply substitute their desired format in this text.
In summary, the :replace Transform as described here is seeking three groups of numbers, separated with one or more non-numeric characters, with optional non-numeric characters after the third group of numbers. So it works with any set of three numbers, separated with any non-numeric characters, even a single space, so long as the numbers appear in year-month-day order.
If there are not three sets of numbers, for example if only years are shown, the Transform will leave the valued entered unchanged. While a more complex Template could deal automatically with those cases, I have chosen to ignore them and either enter those cases exactly in my desired format or edit the result in my genealogy program after the Template is run.
Text
The note portions of the Templates consist of literal text that differs for the various Tags and the information present about dates, as shown in the Example Output section near the top of this page.
Sureties
Finally, a {tab} Control Sequence advances to the Sureties fields, and enters the appropriate number of the literal text " 2 " – I assign all FindAGrave.com memorials a surety of two when they include a tombstone photo.
The following are the complete Templates for the various Tag Types and date combinations. They can be copied from the areas below and pasted into an Auto Type Template in the OraSettings window. The separation of the coding into "paragraphs" is used only to make the coding easier to understand. The paragraph breaks are ignored by ORA when the Template is used.
Name Tag:
{F4}{fast}500{tab}
memorial # [Record ID],
[GivenName] <\[ITAL\:\][MaidenName]\[\:ITAL\] >[Surname]
, includes tombstone photo showing same{tab}2
Birth Tag, with Age:
[=:Age]
{F4}{fast}500{tab}
memorial # [Record ID],
[GivenName] <\[ITAL\:\][MaidenName]\[\:ITAL\] >[Surname]
, includes tombstone photo showing age [Age:replace:([0-9]+)[^0-9]+([0-9]+)[^0-9]+([0-9]+)[^0-9]*:$1 yrs $2 mo $3 days] at death [Death Date]{tab}21
Birth or Death Tag, with Year:
{F4}{fast}500{tab}
memorial # [Record ID],
[GivenName] <\[ITAL\:\][MaidenName]\[\:ITAL\] >[Surname]
, shows year and includes tombstone photo showing same{tab}21
Birth or Death Tag, with Date:
{F4}{fast}500{tab}
memorial # [Record ID],
[GivenName] <\[ITAL\:\][MaidenName]\[\:ITAL\] >[Surname]
, shows date and includes tombstone photo showing same{tab}22
Burial Tag:
{F4}{fast}500{tab}
memorial # [Record ID],
[GivenName] <\[ITAL\:\][MaidenName]\[\:ITAL\] >[Surname]
, includes tombstone photo{tab}2{tab}{tab}2
ReigelRidge Home | Terry's Tips Home | Contact Terry |
Copyright 2000- by Terry Reigel