Using Mills Inspired Source Styles in Mac Reunion


NOTE: All work has stopped on this web site. In March 2009 I have begun work on another, superior approach. This is to write a user definable, customizable, extensible, stand alone program to enter, edit, define, maintain, and use Mills style reference templates. This will prevent lock-in to any program, or even OS platform. This way I can always use Mills style references as I like, and tweak them if I wish, or use any other style of referencing in the future by simply defining the types. The output will be rtf, and with some of the techniques I used below, should (not proven yet) allow me to merge Mills style references seamlessly (not proven yet) into Mac Reunion rtf reports, and, hopefully, any other vendor's rtf reports. Or, in the worst case, one can just use this standalone program to generate the Mills style references and print them separately, appending those pages to any program's output (where one only need to bypass the program's usual sourcing and use full definitions simply as my1, my2, my3, ... where myN's are defined in this external program, in proper Mills format. (and yes, I am predefining the three types of each template: Source List Entry, First Reference Note, and Subsequent Reference Notes. Thinking for the future when good genealogy programs use all three that Mills has defined. Stay tuned. When/if I succeed with my plan I will make it available to all.
http://jytangledweb.org/reunion
John H. Yates
Last Update: Fri Aug 22 20:13 EDT 2008
Quick Link to Mills Source Types
Progress: 37 of 170 Mills(1) Quick Check Model source types are currently defined
Developed on Mac OS X version 10.5.4 and Reunion 9.07

Elizabeth Shown Mills is a well known and respected historical writer who has also published two books and one pamphlet on citing historical facts, particularly in genealogy. See Mills(1), Mills(2), and Mills(3). At least two major genealogy computer programs, The Master Genealogist (TMG) and Legacy are ready to handle Mills style source citations out of the box. Unfortunately, neither of these programs run natively on Mac OS.

Professional genealogists know that the proper sourcing of data is the most important thing in genealogical research, more important than the computer program that is used to contain that data. Many of those that adopt the Mills suggestions for a standard reference style will not use anything but that style.

Anyone who does genealogy should read Mills' books.

The Mac OS Reunion genealogy program from Liester, Inc. is not capable of formatting Mills style source references (other than simply using the "Free Form" source style and handling all the structured fields manually every time). The program at the time of this writing offers only 16 default defined source types, with 34 default defined source fields, generally not Mills style. It has the shortcoming that it only uses, and requires, commas as field separators. This prevents even the use of "free format" to achieve Mills style referencing.

However, a system of judicious source type definitions coupled with postprocessing of Reunion rtf report files to remove the resulting nonsensical punctuation potpourri, one can trick the program into achieving Mills style source formats. One way to do this is described here.

The process is first to define Mills style source types and fields and to use them according to a few rules. Then an rtf style report is generated, as usual, and then postprocessed with the script fixrtf, supplied here (with instructions on how to install and use it). Should the reformatting not catch everything yet, you have the source code to potentially be able to remedy that, and supply fixes as well as to report problems.

The scripts and definitions here use UNIX shell and sed scripting. Don't worry, all this is standard under the hood of Mac OS X and the programming has been done for you.

Mills style sourcing is an art, not a science, and there often may not be a single "best" implementation of a given Mills style. That is why it is called Mills "inspired". The hope is that users will provide constructive criticism of styles, suggest and even submit new ones for others to use, look at, or to criticize. (but Mills inspired, please). I will add them to the Mills Inspired Custom Models here, time permitting.

My eventual hope is that Reunion will mature to the point that none of the kludges offered here are necessary and that they will offer an adequate set of predefined Mills style source formats. Until then, here is a way to use them.

See below for a list of things that Leister, Inc. should address.


Here are the steps to use the predefined Mills source styles presented here.

  1. Download files.

    Download mills_template.familyfile where all the currently defined source types and fields are predefined and have an example citation. Put it in your default Documents/Reunion files directory. Open it and you can see the MI style sources that are defined.

    All the Mills predefined source types have an example footnote and an unprocessed source list report generated by:

    List -> Sources... -> Source Tools -> Report this Source List...
    and using the file name Mills_template_Sources.rtf.

    Mills_template_Sources.rtf (describe) and its postprocessed source report Mills_template_Sources_MI.rtf are here downloadable for reference. To see all downloadable files you can click here.

    Mills source types defined so far from Mills(1) are noted here. The number noted, as in [Defined 1] is the footnote number for a sample of that definition in the Mills_template_Sources example.

  2. Install the scripts.

    This is only required once or when you need to download new versions of the scripts.

    Download the latest version of fixrtf and sedscript from here and put them in a directory of your choice. (Right Click or Ctrl Click on the file name and select "Save Link As..."). Previous versions are kept there in case later modifications should introduce any bugs. The version number of each file is also in the header of each file so you can tell the version of any given file. Rename them to be simply fixrtf and sedscript. It doesn't matter where they are as long as you know where that is. e.g. in your home directory, usually named for your last name, create a new directory called reunion and download or move the two downloaded files there.

    Open the Mac application terminal.app and change your directory to where you placed the two files. If you followed the example above, you do that by typing:

    cd reunion

    in the terminal.app window.

    Then to give the shell script executable permissions (only required the very first time after you download the files) type:

    chmod u+x fixrtf

    Now you can run the postprocessor in the terminal window by typing:

    fixrtf

    You can now also very easily execute the postprocessing script by navigating to the directory in a finder window, and double clicking on fixrtf. The system will recognize it as a Bourne shell script and process it. Then you can just close the terminal window when it is done. (If your system preferences for some reason prevent it from opening in terminal.app, right click on the file in the finder and select open with terminal.app. Also note that if you want to just look at the source content (text commands) of the file you can open it with TextEdit.app).

  3. Using Mills Inspired (MI) Source Formats

    Perhaps the easiest way to start using these sources is to download the file mills_template_blank.familyfile which has all the currently defined Mills source type references in it but no people. These defined source types are used as you would use any source type. Just fill in the fields for which you are prompted as you add people to the empty tree.

    You will see fields beginning with DEL-, for delimiter, in some of the source type definitions. This is how you will get the correct punctuation into the postprocessed output file. They are placed as prompts, where they belong, and are optional if the field it precedes or postcedes is left blank. If the field they surround is not left blank, you simply put the designated punctuation into the field. e.g. DEL-LParen gets a left parentheses, "(", as its content. The postprocessor makes sense of it, and removes the extraneous commas inserted by Reunion in its reports.

    The current delimiter fields are:

    Field Name            Delimiter
    DEL-LParen               (
    DEL-RParen               )
    DEL-Semicolon            ;
    DEL-Colon                :
    DEL-Period               .
    
    

    If you don't wish to start with the empty tree version of Mills_template_blank.familyfile you can define each Mills style reference, as needed, in your own familyfile by looking at and copying the definitions of the required styles found in Mills_template_blank.familyfile (see the section below titled How to define Mills style source types and fields individually).

    At the time of this writing, Reunion does not offer a robust way to export and import user defined source types, which, of course, would make this much easier. See the wish list for Reunion below.

    If you do add these styles to your own familyfile, note that some of Reunion's default field types have been modified to be used in Mills style references. Here is a current list of them:

    1. The source type field Title was modified to Not put quotes around the field, and to be Text style: Italic. If this has undesired consequences for your currently used source fields, you will have to define a new source field type, say, MI-Title, and use it, as needed.

    You should be sure to make the above field definition changes in your familyfile, but first consider if that will cause unwanted consequences for you.

  4. Create an RTF Report

    Create the desired report to an rtf file. This is standard for Reunion. If it doesn't contain references, or these Mills style references, there is no need to postprocess it.

  5. Postprocessing the MI RTF Report

    If the created rtf report file contains references, it must be postprocessed to remove the redundant and nonsensical punctuation.

    Here is a sample execution of fixrtf:

    
    macintosh:$ fixrtf
    Your Reunion Report Default Directory is: /Users/username/Documents/Reunion Files/Reports
    Would you like a list of available rtf files (this may be long) [y/n]: 
    Type the [case sensitive] rtf file name [without the .rtf] to process [Mills_template_Sources]: 
     
    /Users/username/Documents/Reunion Files/Reports/Mills_template_Sources.rtf
           has been rewritten to:
    /Users/username/Documents/Reunion Files/Reports/Mills_template_Sources_MI.rtf
           according to the sed rules in the file /Users/username/reunion/sedscript.
    macintosh:$ 
    
    

    Here is what fixrtf does. It is a text script, so there is no black box processing (you can inspect the commands in the script). First it looks for .rtf files in the directory that Reunion uses for its Reports by default. That is:
    /Users/lastname/Documents/Reunion Files/Reports
    where lastname is your last name (the usual on a Mac).

    If it finds none, it tells you so and exits. If it finds one or more, it asks you if you would like to see a list of them (without the .rtf file extension). This list can be long, but the most recent ones should be at the botttom of the list. The default file names can also be long, and contain blanks. To postprocess one of the files type in its file name exactly as you see it, it is case sensitive, and include the blanks where they are. The file name in the last set of square brackets in the prompt is the default file name it will use if you don't type one in and just hit enter at the prompt. The default file can be changed in the fixrtf file if you wish. It is Mills_template_Sources for Mills_template_Sources.rtf at the time of this writing.

    After you type the rtf file name, the script reports what input file it used, and what the postprocessed file name is. The output file name is the same as the input file name but with "_MI" added to the prefix, and the file is put into the same directory as the input file. That is, Mills_template_Sources.rtf will be processed to Mills_template_Sources_MI.rtf. If the input file does not exist, the script tells you so, and exits.

    The fixrtf script uses the sed rules found in the sedscript file. You can tinker with these at will, but also at your own risk of creating a bad output file. Not really a big deal. Even if you didn't save a good version of the scripts, you can always download either of the script files again if your tinkering breaks things.

    If you know, or want to learn by example, any Unix Bourne shell and/or sed scripting you can have a look at the downloaded files. If you understand how they work, you can also edit and change them if you like. For example, if you still get a nonsense punctuation construct in the postprocessed report, feel free to add a sed rule to sedscript.

  6. Viewing and Printing the Report

    Now you can view and print the postprocessed report. Simply open it by its name (default has _MI appended to the file prefix name) to open it in your favorite rtf document viewer, and print it if you like. If you want to compare the unprocessed rtf file with the postprocessed one you can open and print them both. This can be valuable in identifying a punctuation field that isn't yet removed properly.

    If there are punctuation errors, the sed script sedscript may need to be generalized for another specific case that hasn't been accounted for yet. Feel free to tinker if you like. Or report the problem. Send in improvements if they would benefit everyone.

    If the punctuation in the postprocessed rtf report is what is desired, with no undesired substitutions and the rest of the report remains as desired, you are done. If not, more sedscript work is in order. What has not been proven yet is whether such a script will achieve 100% success in fixing the mangled punctuation. Time will tell.


Once the scripts are installed and/or updated and you have defined and used the required MI source types and fields the sequence of steps required are simply:


How to define Mills style source types and fields individually

Should you want or need to define the source types and fields yourself in your own familyfile, here is how to do that.

Follow the instructions below to examine a Mills style source type and fields definitions in mills_template.familyfile and then define it in your own familyfile.

  1. Defining Mills Inspired (MI) Source Types and Fields

    [Figure 1.]

    Figure 1.

    1. Open the Reunion file in which you would like to add source and field definition.
    2. Reunion -> Preferences -> Sources
      See Figure 1.
    3. Select the "Types" tab.
    4. Click on "Add Type."
    5. Where it says "New Source Type" type in the name of the type you want to define.
    6. Click on "Add Field" and add the fields you want defined for this source type, in order. Repeat for all the desired fields.
    7. If you need to define a new field or fields, see below.

    [Figure 2.]

    Figure 2.

    To Add New Source Field Types

    1. Open the Reunion file in which you would like to add a new source field definition.
    2. Reunion -> Preferences -> Sources
      See Figure 2.
    3. Select the "Fields" tab.
    4. Click on "Add Field"
    5. Where it says "New Source Field", type in the name of the field you want to define.
    6. Fill in the form on the right side of the window from the fields given in the definition below of this particular source type. (See Explicit Source Type and Field definitions).

      Note that for the most part I have ignored trying to assign the GEDCOM tag type in the definitions. This is for a number of reasons:

      • I don't fully understand how they are used and at this point don't care to become an expert. (esp. if and how nesting within source types is allowed or even important).
      • Compromises in assigning types would be necessary.
      • New types would have to be defined.

        On the whole, I decided to leave that to experts.



    Here is a Leister, Inc. wish list for Reunion:

    But let us not forget this wish list for Reunion.:
    (1) Mills, Elizabeth Shown. Evidence Explained: Citing History Sources from Artifacts to Cyberspace. Baltimore: Genealogical Publishing Co., 2007.
    (2) Mills, Elizabeth Shown. Evidence! Citation & Analysis for the Family Historian. Baltimore: Genealogical Publishing Co. 1997; revised, 16th printing, 2006.
    (3) Mills, Elizabeth Shown. QuickSheet: Citing Online Historical Resources, Evidence! Style. Revised edition. Baltimore: Genealogical Publishing Co., 2006.