Bundled Utilities Project Name #application

I like this:

RMtrix.png
RMtrix has a magical element to it in the sound alike to “tricks” with an appropriate implication as to what the software does – it carries out tricks on the RootsMagic database. Also can work as an acronym: RM obviously, tools or tricks, repairs, information, experiments or an algebraic unknown variable, x, or extras or external.
Combines a Perpetua font for “RM” similar to the current RootsMagic font followed by “trix” in the PR Celtic Narrow font.

Poll

What do you think? Vote in the poll. I picked out 10, the limit for a free poll, vote for any three or your own suggestion. Other voted suggestions, so far, are RMAlchemy, RMelixir and RM Utilities. If you like any of those, type it into Other.

If the poll does not show up on this page, you can to it directly at http://poll.fm/3gvet .

We need a good project name. One that will stick for as long as the project lasts. It needs to be tie into RootsMagic and have some buzz, not mundane like “RMtools”, although that’s pretty self-explanatory. I’m big on spinning off from the magical part of RootsMagic and its author, the RootsMagician, having named my local interest group, “The RootsMagic Wizards Guild”. In that spirit, I came up with this list of ideas:

Project NameSome definitions below from: http://www.neatorama.com/2009/01/14/magic-words-a-dictionary/ , others from Wiktionary et al.
RMabbazabba!A (abba) to Z (zabba), the alpha and omega
RMabracadabra!
RMalakazam!
RMexcelsior!Latin for ‘ever upward’
RMgaldorOld English form of Old Norse ‘galdr’ for ‘spell, incantation’, pl ‘galdrar’.
RMharrahya!likened to the shout of a martial artist delivering a knifehand strike, focusing power toward an amazing conclusion
RMinspiratumLatin for ‘inspired’
RMmatba!Found in 18th-century Kabbalistic treatises, matba is a magic word for obtaining small coins. It literally means “bring forth.”
RMpotions
RMpresto!
RMshazaam!
RMspells
RMsplz
RMta-da!
RMvividumLatin for ‘alive, vigorous’
RMvoilà!
RMwands
RMwiz
RMwizards

I rather like the way RMalakazam! rolls off the tongue with a little rhyme on the m’s; so does RMinspiratum, with a nice meaning. RMta-da! is succinct and punchy; also punchy is RMshazaam!

Version Monitoring #database #databaseproperties #datadefinitions

The database documentation was done largely on RootsMagic version 4.0.7.1. As far as we can tell, the database schema has not changed, as of version 4.1.2.1. Changes may be detected by opening a database created by each version with a SQLite manager; then exporting either a query of the full sqlite_master table or the database schema (just the SQL field of that table wrapped in a transaction) and comparing the exports from each version using a text editor that has a compare function (e.g. Notepad++).

The page Database System Catalog is the full sqlite_master table from 4.0.7.1, sorted by the tbl_name field.

For future comparisons, below is the schema from 4.0.8.4, downloadable from Empty4084Schema.sql and that of 4.1.2.1: Empty4121Schema.sql.

BEGIN TRANSACTION;
CREATE TABLE AddressLinkTable (LinkID INTEGER PRIMARY KEY, OwnerType INTEGER, AddressID INTEGER, OwnerID INTEGER, AddressNum INTEGER, Details TEXT );
CREATE TABLE AddressTable (AddressID INTEGER PRIMARY KEY, AddressType INTEGER, Name TEXT COLLATE RMNOCASE, Street1 TEXT, Street2 TEXT, City TEXT, State TEXT, Zip TEXT, Country TEXT, Phone1 TEXT, Phone2 TEXT, Fax TEXT, Email TEXT, URL TEXT, Latitude INTEGER, Longitude INTEGER, Note BLOB );
CREATE TABLE ChildTable (RecID INTEGER PRIMARY KEY, ChildID INTEGER, FamilyID INTEGER, RelFather INTEGER, RelMother INTEGER, ChildOrder INTEGER, IsPrivate INTEGER, ProofFather INTEGER, ProofMother INTEGER, Note BLOB );
CREATE TABLE CitationTable (CitationID INTEGER PRIMARY KEY, OwnerType INTEGER, SourceID INTEGER, OwnerID INTEGER, Quality TEXT, IsPrivate INTEGER, Comments BLOB, ActualText BLOB, RefNumber TEXT, Flags INTEGER, FIELDS BLOB );
CREATE TABLE ConfigTable (RecID INTEGER PRIMARY KEY, RecType INTEGER, Title TEXT, DataRec BLOB );
CREATE TABLE EventTable (EventID INTEGER PRIMARY KEY, EventType INTEGER, OwnerType INTEGER, OwnerID INTEGER, FamilyID INTEGER, PlaceID INTEGER, SiteID INTEGER, DATE TEXT, SortDate INTEGER, IsPrimary INTEGER, IsPrivate INTEGER, Proof INTEGER, STATUS INTEGER, EditDate FLOAT, Sentence BLOB, Details BLOB, Note BLOB );
CREATE TABLE ExclusionTable (RecID INTEGER PRIMARY KEY, ExclusionType INTEGER, ID1 INTEGER, ID2 INTEGER );
CREATE TABLE FactTypeTable (FactTypeID INTEGER PRIMARY KEY, OwnerType INTEGER, Name TEXT COLLATE RMNOCASE, Abbrev TEXT, GedcomTag TEXT, UseValue INTEGER, UseDate INTEGER, UsePlace INTEGER, Sentence BLOB, Flags INTEGER );
CREATE TABLE FamilyTable (FamilyID INTEGER PRIMARY KEY, FatherID INTEGER, MotherID INTEGER, ChildID INTEGER, HusbOrder INTEGER, WifeOrder INTEGER, IsPrivate INTEGER, Proof INTEGER, SpouseLabel INTEGER, FatherLabel INTEGER, MotherLabel INTEGER, Note BLOB );
CREATE TABLE GroupTable (RecID INTEGER PRIMARY KEY, GroupID INTEGER, StartID INTEGER, EndID INTEGER );
CREATE TABLE LabelTable (LabelID INTEGER PRIMARY KEY, LabelType INTEGER, LabelValue INTEGER, LabelName TEXT COLLATE RMNOCASE, Description TEXT );
CREATE TABLE LinkTable (LinkID INTEGER PRIMARY KEY, extSystem INTEGER, LinkType INTEGER, rmID INTEGER, extID TEXT, Modified INTEGER, extVersion TEXT, extDate FLOAT, STATUS INTEGER, Note BLOB );
CREATE TABLE MediaLinkTable (LinkID INTEGER PRIMARY KEY, MediaID INTEGER, OwnerType INTEGER, OwnerID INTEGER, IsPrimary INTEGER, Include1 INTEGER, Include2 INTEGER, Include3 INTEGER, Include4 INTEGER, SortOrder INTEGER, RectLeft INTEGER, RectTop INTEGER, RectRight INTEGER, RectBottom INTEGER, Note TEXT, Caption TEXT COLLATE RMNOCASE, RefNumber TEXT COLLATE RMNOCASE, DATE TEXT, SortDate INTEGER, Description BLOB );
CREATE TABLE MultimediaTable (MediaID INTEGER PRIMARY KEY, MediaType INTEGER, MediaPath TEXT, MediaFile TEXT COLLATE RMNOCASE, URL TEXT, Thumbnail BLOB );
CREATE TABLE NameTable (NameID INTEGER PRIMARY KEY, OwnerID INTEGER, Surname TEXT COLLATE RMNOCASE, Given TEXT COLLATE RMNOCASE, Prefix TEXT COLLATE RMNOCASE, Suffix TEXT COLLATE RMNOCASE, Nickname TEXT COLLATE RMNOCASE, NameType INTEGER, DATE TEXT, SortDate INTEGER, IsPrimary INTEGER, IsPrivate INTEGER, Proof INTEGER, EditDate FLOAT, Sentence BLOB, Note BLOB, BirthYear INTEGER, DeathYear INTEGER );
CREATE TABLE PersonTable (PersonID INTEGER PRIMARY KEY, UniqueID TEXT, Sex INTEGER, EditDate FLOAT, ParentID INTEGER, SpouseID INTEGER, Color INTEGER, Relate1 INTEGER, Relate2 INTEGER, Flags INTEGER, Living INTEGER, IsPrivate INTEGER, Proof INTEGER, Bookmark INTEGER, Note BLOB );
CREATE TABLE PlaceTable (PlaceID INTEGER PRIMARY KEY, PlaceType INTEGER, Name TEXT COLLATE RMNOCASE, Abbrev TEXT, Normalized TEXT, Latitude INTEGER, Longitude INTEGER, LatLongExact INTEGER, MasterID INTEGER, Note BLOB );
CREATE TABLE ResearchTable (TaskID INTEGER PRIMARY KEY, TaskType INTEGER, OwnerID INTEGER, OwnerType INTEGER, RefNumber TEXT, Name TEXT COLLATE RMNOCASE, STATUS INTEGER, Priority INTEGER, Date1 TEXT, Date2 TEXT, Date3 TEXT, SortDate1 INTEGER, SortDate2 INTEGER, SortDate3 INTEGER, Filename TEXT, Details BLOB );
CREATE TABLE RoleTable (RoleID INTEGER PRIMARY KEY, RoleName TEXT COLLATE RMNOCASE, EventType INTEGER, RoleType INTEGER, Sentence TEXT );
CREATE TABLE SourceTable (SourceID INTEGER PRIMARY KEY, Name TEXT COLLATE RMNOCASE, RefNumber TEXT, ActualText TEXT, Comments TEXT, IsPrivate INTEGER, TemplateID INTEGER, FIELDS BLOB );
CREATE TABLE SourceTemplateTable (TemplateID INTEGER PRIMARY KEY, Name TEXT COLLATE RMNOCASE, Description TEXT, Favorite INTEGER, Category TEXT, Footnote TEXT, ShortFootnote TEXT, Bibliography TEXT, FieldDefs BLOB );
CREATE TABLE WitnessTable (WitnessID INTEGER PRIMARY KEY, EventID INTEGER, PersonID INTEGER, WitnessOrder INTEGER, ROLE INTEGER, Sentence TEXT, Note BLOB, Given TEXT COLLATE RMNOCASE, Surname TEXT COLLATE RMNOCASE, Prefix TEXT COLLATE RMNOCASE, Suffix TEXT COLLATE RMNOCASE );
CREATE INDEX idxAddressName ON AddressTable (Name);
CREATE INDEX idxChildFamilyID ON ChildTable (FamilyID);
CREATE INDEX idxChildID ON ChildTable (ChildID);
CREATE INDEX idxChildOrder ON ChildTable (ChildOrder);
CREATE INDEX idxCitationOwnerID ON CitationTable (OwnerID);
CREATE INDEX idxCitationSourceID ON CitationTable (SourceID);
CREATE UNIQUE INDEX idxExclusionIndex ON ExclusionTable (ExclusionType, ID1, ID2);
CREATE INDEX idxFactTypeAbbrev ON FactTypeTable (Abbrev);
CREATE INDEX idxFactTypeGedcomTag ON FactTypeTable (GedcomTag);
CREATE INDEX idxFactTypeName ON FactTypeTable (Name);
CREATE INDEX idxFamilyFatherID ON FamilyTable (FatherID);
CREATE INDEX idxFamilyMotherID ON FamilyTable (MotherID);
CREATE INDEX idxGiven ON NameTable (Given);
CREATE INDEX idxLabelType ON LabelTable (LabelType);
CREATE INDEX idxLinkExtId ON LinkTable (extID);
CREATE INDEX idxLinkRmId ON LinkTable (rmID);
CREATE INDEX idxMediaCaption ON MediaLinkTable (Caption);
CREATE INDEX idxMediaFile ON MultimediaTable (MediaFile);
CREATE INDEX idxMediaOwnerID ON MediaLinkTable (OwnerID);
CREATE INDEX idxMediaURL ON MultimediaTable (URL);
CREATE INDEX idxNameOwnerID ON NameTable (OwnerID);
CREATE INDEX idxNamePrimary ON NameTable (IsPrimary);
CREATE INDEX idxOwnerDate ON EventTable (OwnerID,SortDate);
CREATE INDEX idxOwnerEvent ON EventTable (OwnerID,EventType);
CREATE INDEX idxPlaceAbbrev ON PlaceTable (Abbrev);
CREATE INDEX idxPlaceName ON PlaceTable (Name);
CREATE INDEX idxRecType ON ConfigTable (RecType);
CREATE INDEX idxResearchName ON ResearchTable (Name);
CREATE INDEX idxResearchOwnerID ON ResearchTable (OwnerID);
CREATE INDEX idxRoleEventType ON RoleTable (EventType);
CREATE INDEX idxSourceName ON SourceTable (Name);
CREATE INDEX idxSourceTemplateName ON SourceTemplateTable (Name);
CREATE INDEX idxSurname ON NameTable (Surname);
CREATE INDEX idxSurnameGiven ON NameTable (Surname, Given, BirthYear, DeathYear);
CREATE INDEX idxWitnessEventID ON WitnessTable (EventID);
CREATE INDEX idxWitnessPersonID ON WitnessTable (PersonID);
Commit TRANSACTION;

Source Templates by Origin #sourcetemplates

Results of the query shown below for a database from RM v8.1.8.0 and available in this Google Sheets: SourceTemplatesByCategory (updated 2022-04-28 for RM8).

CategoryNameInRM4?
[AQS inside left]Article, online (unsigned)Y
[AQS, inside left]Article, online archive (print publication)Y
[AQS, Front]Basic Ancestry Database TemplateY
[AQS, Front]Basic Ancestry Images TemplateY
[AQS inside left]Book, database extractions (online)Y
[AQS inside left]Census, U.S. Federal, 1890 Substitute (online)Y
[AQS inside left]Directories (City or County) (databases, online)Y
[AQS inside left]Directories (City or County) (images, online)Y
[AQS inside right]Family Trees, DocumentedY
[AQS inside right]Family Trees, UndocumentedY
[AQS inside right]Immigration-Emigration Rolls, DatabasesY
[AQS inside right]Immigration-Emigration Rolls, ImagesY
[AQS, back cover]Newspaper, ImagesY
[AQS back cover]PERSI DatabaseY
[based on EE, sec 7.32, p 346-7]New FamilySearch, online databaseY
[CYS, p 59-63]Census Record (U.S.)Y
[CYS, p 71-73]Church RecordsY
[CYS, p 68]Civil Vital RecordsY
[CYS, p 69-71]Courthouse RecordsY
[CYS, p 63-66]Family Bible RecordY
[CYS, p 71-73]Grave MarkersY
[CYS, p 80-83]Interviews (oral)Y
[CYS, p 73-76]Land Records, State and FederalY
[CYS, p 66-68]LettersY
[CYS, p 76-80]Military RecordsY
[CYS, p 53-59]Miscellaneous Documents, UnpublishedY
[CYS, p 49–52]NewspapersY
[CYS, p 46–49]Periodical (Serial)Y
[CYS, p 63]Tax Lists (U.S.)Y
[E!, p 64]Ancestral FileY
[E!, p 65]Baptismal RecordY
[E!, p 65]Bible RecordsY
[E!, p 65]Birth Certificate, local levelY
[E!, p 65]Birth Registration, local levelY
[E!, p 66]Birth Registration, state levelY
[E!, p 66; CYS, p 35]Book (Agency as author)Y
[E!, p 99, CYS, p 38]Book, Translated Work (author known)Y
[E!, p 72]CD-ROM (produced from original records)Y
[E!, p 75]Census, U.S. Federal (Local/State copy)Y
[E!, p. 73-74]Census, U.S. Federal, 1790-1840 (Filmed)Y
[E!, p. 73-74]Census, U.S. Federal, 1850-1870 (Filmed)Y
[E!, p. 73-74]Census, U.S. Federal, 1880-1930 (Filmed)Y
[E!, p 75]Census, U.S. State (off-site)Y
[E!, p 76]Church Minute Books (filmed, off-site)Y
[E!, p 78]Death Certificate, local levelY
[E!, p 78]Death Certificate, state levelY
[E!, p 78]Death Registration, local levelY
[E!, p 80]E-mail messageY
[E!, p 73]Grave Markers (Urban, large)Y
[E!, p 73]Grave Markers (Rural, small)Y
[E!, p 84]IGI EntryY
[E!, p 85]InterviewY
[E!, p 87]Legal Case (Unpublished)Y
[E!, p87]Letter (annotated citation)Y
[E!, p 88]Manuscript (Unfilmed)Y
[E!, p 89]Marriage Certificate (Church)Y
[E!, p 90]Marriage Record (Church, copy)Y
[E!, p 89]Marriage Record (Church, original)Y
[E!, p 90]Marriage Record (Civil)Y
[E!, p 91]Military Service File (filmed)Y
[E!, p 91]NA (U.S.) Manuscript (Basic)Y
[E!, p 91]NA (U.S.) Microfilm/fiche (Basic)Y
[E!, p 93]Obituary/Newspaper itemY
[E!, p 97]Passenger Lists (Filmed)Y
[E!, p 94]Pension Files, NARA microfilm/ficheY
[E!, p 94]Photo, Portrait, Archived (Annotated)Y
[E!, p 81]Photo, Portrait, Archived, Image FileY
[E!, p 95]Photo, Portrait, Private (Annotated with Provenance)Y
[E!, p 95]Probate Files, loose (local)Y
[E!, p 95]Probate Files, loose (removed to other facility)Y
[E!, p 96]Research ReportY
[E!, p 98]Tax rolls (unfilmed)Y
[E!, p 98]Town RecordsY
[E!, p 100]Wills (Recorded)Y
[E!, p 100]Wills (Unrecorded, consulted off-site)Y
[EE, sec 7.32, p 346-7]Ancestral File, CD-ROM databaseY
[EE, sec 7.32, p 346-7]Ancestral File, online databaseY
[EE, QC-3, p 102]Archived Material, Vertical FilesY
[EE, QC-3, p 93]Artifact, archivedY
[EE, sec 3.38, p 151]Artifact, Family, photographed (privately held)Y
[EE, QC-3, p105]Artifact, Family, privately held (by collection)Y
[EE, QC-3, p105]Artifact, privately heldY
[EE, sec. 12.33, p 682-83]AtlasY
[EE, sec. 12.34, p 683]Atlas, online imagesY
[EE, QC-14, p787]BlogsY
[EE, QC-12, p.647, with 651 and 671-675; E!, p 71, CYS, p 38]Book ChapterY
[EE, QC-12, p 654]Book, AudioY
[EE, QC-12, p 646; EE, QC-13, p 727; E!, p 66]Book, Basic formatY
[EE, QC-12, p 654]Book, CD/DVD (Text)Y
[EE, QC-12, p 647, with 648, 651, sec. 12.13–12.20; EE, QC-13, 727; E!, p 66-71; CYS, p 31-35, 39-45]Book, General (Author(s) known)Y
[EE, sec. 12.5–12.20; E!, p 66, 68, CYS, p 36]Book, General (Author(s) unknown or unidentified)Y
[EE, QC-12, p 658]Book, Image copy (CD/DVD publication)Y
[EE, QC-12, p 660]Book, Image copy (microfilm publication)Y
[EE, QC-12, p 661; E!, p 82; QS inside left]Book, Image copy (online)Y
[EE, ref: sec. 12.34, p 683]Book, Image copy (online, reprint)Y
[EE, QC-12, p 659]Book, Image copy (publication, FHL-GSU preservation film)Y
[EE, QC-12, p 649, with 648, sec. 12.13–12.20; E!, p 68; CYS, p 36-37]Book, Multivolume (Author(s) known)Y
[EE, QC-12, p 650, with 648, 651, sec. 12.13–12.20; E!, p 66-71]Book, Reprint (Author(s) known)Y
[EE, sec. 12.86, p 718; E!, p 69]Book, Series, by collection (Author(s) known)Y
[EE, sec 11.28, p 589-590]Bounty Land files (entire file)Y
[EE, sec 11.28, p 589-590, E!, p 71]Bounty Land files (single document)Y
[EE, sec 12.43, p 686]Broadside, originalY
[EE, sec 12.43, p 686]Broadside, reprintY
[EE, QC-13, 729, sec 13.18, p 750-51]Case Reporter, Federal (standardized series)Y
[EE, QC-13, 728, sec 13:20, p 752; E!, p 86]Case Reporter, State (series named for editor)Y
[EE, QC-5, p 212, sec 5.7, p 222-23]Cemetery Office Records (emphasis on single register) (FHL-GSU film)Y
[EE, sec 5.7, p 222-23]Cemetery Office Records (emphasis on whole series) (FHL-GSU film)Y
[EE, QC-5, p 211, sec. 5-17, p 223-24]Cemetery Office Records (online images)Y
[EE, QC-5, p 209, sec. 5-17, p 222]Cemetery Office Records (personally used)Y
[EE, QC-5, p 210]Cemetery Office Records (supplied by staff)Y
[EE, QC-3, p 218, sec 5.18, p 231]Cemetery Records, Abstracts (card file)Y
[EE, QC-3, p 217]Cemetery Records, Abstracts (vertical file)Y
[EE, QC-5, p 219, sec 5.19, p 233]Cemetery Records, Compiled (online databases)Y
[EE, sec 5.21, p 234; E!, p73]Cemetery Records, Compiled (published)Y
[EE, sec 5.22, p 234]Cemetery Records, Compiled (typescripts)Y
[EE, sec 6.49, p 298-99]Census, Australia (microfilm, FHL copy)Y
[EE, based on QC-12, p 646: Book: basic format]Census, Canada (index, published)Y
[EE, sec 6.46, p 299-302]Census, Canada (microfilm, FHL copy)Y
[EE, QC-6, p 254, sec 6.50, p 301]Census, Canada (online database)Y
[EE, sec 6.50, p 302]Census, Canada (online images)Y
[EE, sec 6.51, p 302-03]Census, England, Wales (microfilm, FHL copy)Y
[EE, QC-6, p 254, sec 6.50, p 301]Census, England, Wales (online database)Y
[EE, QC-6, p 241]Census, France (Online images)Y
[EE, QC-6, p 242]Census, U.K., Wales (Online images)Y
[EE, sec 6.46, p 296]Census, U.S. County (state microfilm)Y
[EE, sec 6.48, p 297-98; QS, inside left]Census, U.S. Enumeration Instructions (online)Y
[EE, QC-6, p 253]Census, U.S. Federal (CD/DVD database)Y
[EE, QC-6, p 239]Census, U.S. Federal (CD/DVD images)Y
[EE, QC-6, p 254; QS, inside left]Census, U.S. Federal (Database/Index)Y
[EE, QC-6, p 240; QS, front cover]Census, U.S. Federal (Online images)Y
[EE, QC-6, p 237]Census, U.S. Federal (Original, Local)Y
[EE, QC-6, p 238]Census, U.S. Federal (Original, NA)Y
[EE, QC-6, p 251]Census, U.S. Federal (State copy, microfilm)Y
[EE, QC-6, p. 247-250]Census, U.S. Federal, mil. sch. 1900— (Microfilm, NA)Y
[EE, QC-6, p 245, sec 6.46, p 296]Census, U.S. Federal, non-pop. sch. (FHL-GSU microfilm)Y
[EE, QC-6, p. 244, sec 6.34, p 285]Census, U.S. Federal, non-pop. sch. (NARA film)Y
[EE, QC-6, p. 245, sec 6.34, p 287-88]Census, U.S. Federal, non-pop. sch. (UNC film)Y
[EE, QC-6, p. 247-250]Census, U.S. Federal, pop. sch. (Microfilm, NA)Y
[EE, QC-6, p. 247-250]Census, U.S. Federal, pop. sch. 1790-1840 (Microfilm, NA)Y
[EE, QC-6, p. 247-250]Census, U.S. Federal, pop. sch. 1850-1870 (Microfilm, NA)Y
[EE, QC-6, p. 247-250]Census, U.S. Federal, pop. sch. 1880-1930 (Microfilm, NA)Y
[EE, QC-6, p. 247-250]Census, U.S. Federal, slave sch. 1850-1860 (Microfilm, NA)Y
[EE, sec. 6.37, p. 2889]Census, U.S. Federal, veterans sch. 1890 (Microfilm, NA)Y
[EE, QC-6, p. 243]Census, U.S. Native American Tribal (Microfilm, NA)Y
[EE, QC-6, p. 255, sec 6.41, p 292]Census, U.S. Soundex & Miracode (microfilm)Y
[EE, QC-6, p 252, sec 6.46, p 296-97]Census, U.S. State (FHL microfilm)Y
[EE, sec. 6.47, p 297; E!, p 75]Census, U.S. Statistical CompendiumY
[EE, QC-6, p 259, sec. 6.48, p 297]Census, U.S. Statistical Database (Online)Y
[EE, QC-7, p311, sec 7.13, p 327]Church Books (named volume)Y
[EE, QC-7, p312]Church Books (named volume, off-site)Y
[EE, QC-7, p313]Church Books (numbered volume, off-site)Y
[EE, QC-7, p319]Church Books (recopied)Y
[EE, sec. 7.28, p. 344 (ref: sec 12.3)]Church Histories, publishedY
[EE, sec 7.24, p 340-41]Church Issued Certificates (collection)Y
[EE, sec 7.24, p 340-41]Church Issued Certificates (family collection)Y
[EE, sec 7.24, p 340-41]Church Issued Certificates (single item)Y
[EE, QC-7, p315]Church Records (FHL-GSU microfilm)Y
[EE, QC-7, p316]Church Records (filmed LDS image copies)Y
[EE, sec 7.20, p 335-36]Church Records (filmed, archives)Y
[EE, sec 7.20, p 335-36]Church Records (filmed, local)Y
[EE, QC-7, p 317, sec 7.23, p 339]Church Records (microfilm publication)Y
[EE, QC-7, p320, sec 7.27, p 343-44]Church Records (online databases)Y
[EE, QC-7, p314]Church Records (online image copies)Y
[EE, sec 7.29, p 345]Church Records, Canada, Repértoire (CD)Y
[EE, sec 7.29, p 345]Church Records, Canada, Repértoire (print)Y
[EE, QC-7, p315, sec 7.43, p 365-68]Church Records, OPR, Scotland (FHL-GSU microfilm)Y
[EE, sec 7.43, p 265-68]Church Records, OPR, Scotland (online database)Y
[EE, sec 7.43, p 365-68]Church Records, OPR, Scotland (original)Y
[EE, sec 7.38, p 352-356]Church Records, Parish Registers (FHL-GSU microfilm)Y
[EE, QC-7, p311]Church Records, Parish Registers (original)Y
[EE, sec 7.29, p 345]Church Records, Parish Registers (transcripts/abstracts)Y
[EE, sec. 7.31, p 346; E!, p 90]Church Records, Parish Registers (typescripts)Y
[EE, QC-7, p314]Church Records, Parish Registers, UK (online image copies)Y
[EE, sec. 7.31, p. 346-47]Church Records, Typescript of RegistersY
[EE, sec 9.56, p 482-83]Civil Reg., Statutory Registers, Scotland (FHL-GSU microfilm)Y
[EE, sec 9.56, p 482-83]Civil Reg., Statutory Registers, Scotland (online database)Y
[EE, sec 9.56, p 482-83]Civil Reg., Statutory Registers, Scotland (online images)Y
[EE, sec. 9.46, p471-73]Civil Registrations, Canada (AO microfilm)Y
[EE, sec. 9.46, p471-73]Civil Registrations, Canada (FHL microfilm)Y
[EE, based on sec. 9.46, p471-73]Civil Registrations, Canada (online images)Y
[EE, sec. 9.48, p474-76]Civil Registrations, EnglandY
[EE, sec. 9.46, p471-73]Civil Registrations, England (online databases)Y
[EE, sec 13.9, p 744-45]Codes, Municipal CodeY
[EE, QC-13, p 730, sec 13.10, p 746-47]Codes, State (online database)Y
[EE, sec 13.10, p 746-47]Codes, State (online images)Y
[EE, sec 13.10, p 746-47]Codes, State (printed)Y
[EE, QC-13, p 731, sec 13.8, p 744]Codes, U.S. Code (online)Y
[EE, sec 13.8, p 744]Codes, U.S. Code (online, legal style)Y
[EE, sec 13.8, p 744]Codes, U.S. Code (online, short legal style)Y
[EE, QC-13, p 735, sec 13.35, p 760-61]Congressional Records (ID from title page)Y
[EE, sec 13.32, p 757-58; E!, p 96]Congressional Records, American State Papers (Gales & Seaton)Y
[EE, QC-13, p 736, sec 13.38, p 762-63]Congressional Records, House & Senate (academic style)Y
[EE, QC-13, p 737, sec 13.35, p 671-72]Congressional Records, Online ImageY
[EE, QC-4, p 161]Corporate Records (bound volumes)Y
[EE, QC-4, p 163]Corporate Records (extract by staff)Y
[EE, QC-4, p 162]Corporate Records (loose document)Y
[EE, QC-4, p 164]Corporate Records (microfilm)Y
[EE, QC-4, p 165]Corporate Records (online database)Y
[EE, QC-4, p 166]Corporate Records (online images)Y
[EE, QC-3, p 112]Correspondence, personal, private, in collectionY
[EE, QC-8, p 373]Court Case Files, localY
[EE, QC-8, p 374]Court Record Books, localY
[EE, QC-8, p 375]Court Record Books, local (archived off-site)Y
[EE, QC-8, p 376]Court Record Books, state (appeals)Y
[EE, QC-8, p 377]Court Record Books, state (petitions)Y
[EE, QC-8, p 378]Court Records (CD/DVD images)Y
[EE, QC-8, p382]Court Records (online databases)Y
[EE, QC-8, p 381]Court Records (online images)Y
[EE, QC-8, p 380]Court Records, bound volume (FHL-GSU film)Y
[EE, QC-8, p 379]Court Records, loose (preservation film)Y
[EE, QC-10, p 495]Deed Abstracts (online)Y
[EE, sec 10.14, p 505]Deed Books (state/colony)Y
[EE, QC-10, p 488, sec. 10.5, pp 498-500, sec 10.16, p 506-08; E!, p 78]Deeds, local registersY
[EE, sec. 10.6, p 500]Deeds, local registers (FHL microfilm)Y
[EE, QC-3, p 106; E!, p 79]Diary or JournalY
[EE, QC-3, p 94, sec 3.16, p 127-29]Digital archivesY
[EE, sec. 3.39, p 152]Diploma, privateY
[EE, sec. 12.55–59, p 695-98; E!, p 76]Directories (City or County)Y
[EE, sec. 12.55, p 695-96]Directories (City or County) (microfilm)Y
[EE, QC-14, p 788, sec 14.27, p 813; [E!, p 82]]Discussion Forum & ListY
[EE, sec. 3.22, p 134-37 with sec 3.5, p 120]Dissertation, unpublishedY
[EE, sec. 3.22, p 134-37 with sec 3.5, p 120]Dissertation, unpublished (microfilmed)Y
[EE, sec 11.47, p 473]Divorce Records (Canada) (online database)Y
[EE, sec. 11.33, p 598; AQS inside right]Draft Registrations, ImagesY
[EE, sec 7.37, p 352]Drouin Collection (microfilm)Y
[EE, p 154-155 (Ref: QC-3, p 113)]E-mail, personal, privately held, by writerY
[EE, QC-3, p 113]E-mail, personal, privately held, filed by collectionY
[EE, QC-10, p 493, sec 10.23, p 515-17; E!, p 88]Estray (Ranger) Books (local or county, FHL microfilm)Y
[EE, sec 10.23, p 515-17]Estray (Ranger) Books, parties identified (local or county)Y
[EE, sec 10.23, p 515-17]Estray (Ranger) Books, parties not identified (local or county)Y
[EE, QC-3, p 107]Family Bible, privateY
[EE, QC, p 108; E!, p 83]Family Chart/Group Sheet, privately heldY
[EE, sec 7.33, p 347-8]Family Group Record Collection, LDSY
[EE, sec 3.30, p 146]Family Records, non-bible (privately held)Y
[EE, sec 3.31, p 145]Frakturs (certificate) (single item)Y
[EE, sec 3.31, p 145]Frakturs (online images) (single item)Y
[EE, sec 4.8, p 181]Funeral Home Records (extract by staff)Y
[EE, sec 4.9, p 181-82]Funeral Home Records (held by library)Y
[EE, sec 4.8, p 181]Funeral Home Records (privately held)Y
[EE, based on sec 3.44, p 156]GEDCOM File (downloaded)Y
[EE, sec 4.10, p 183]Genetic Databases (online)Y
[EE, Sec. 4.27, pp 202]Genetic Test (DNA) CDY
[EE, Sec. 4.27, pp 201-202]Genetic Test (DNA) letterY
[EE, QC-4, p 171, sec 4.27, p 201-202]Genetic Test (DNA) reportY
[EE, QC-5, p 215]Grave Markers (online images)Y
[EE, QC-5, pp 213–214, sec. 5-10-13, pp 225–227]Grave Markers (Urban or Rural)Y
[EE, sec 9.6, p 438]Historical Records, abstracts (online)Y
[EE, sec 11.16, p 577; QS, right side, 4th model]Historical Records, transcripts (online)Y
[EE, QC-4, p 172]Historical Research Report (Corporate)Y
[EE, QC-4, p 173]Historical Research Report (Online)Y
[EE, sec 7.34, p 348-9]IGI, CD-ROM databaseY
[EE, sec 7.34, p 348-9]IGI, online databaseY
[EE, QC-3, p 110]Interview, privately heldY
[EE, QC-14, p 814; QS inside left]Journal Article, electronic edition/e-journalY
[EE, QC-14, p781; QS inside left]Journal Article, onlineY
[EE, QC-14, p779, sec 14.16, p 798; E!, p 64]Journal Article, printY
[EE, QC-14, p780]Journal Article, print, archived onlineY
[EE, Sec. 14.17, p 800; E!, p 64, 94]Journal Article, serializedY
[EE, sec 10.16, p 506-08]Land Grants, bound (state/colony)Y
[EE, QC-10, p 492, sec 10.18, p 509-10]Land Grants, image copies, CD/DVD (state or colony)Y
[EE, Sec 10.17, p 508]Land Grants, loose (state/colony)Y
[EE, QC-11, p 547, sec 11.25, p 585-86]Land Office Records, database, CD/DVD (GLO)Y
[EE, QC-11, p 547, sec 11.25, p 585-86]Land Office Records, database, CD/DVD (GLO, FHL copy)Y
[EE, sec 11.27, p 588-89; QS, inside right]Land Office Records, Federal (online images)Y
[EE, sec 11.27, p 588-89; QS, inside right]Land Office Records, Federal (online, database or image)Y
[EE, sec 10.44, p 534-35]Land Petitions, Provincial (online database)Y
[EE, sec 10.28, p 520-21]Land Records, Plat Books, countyY
[EE, QC-10, p 494]Land Records, Plat Books, county (online)Y
[EE, sec 10.44, p 534-35]Land Records, Provincial (FHL microfilm)Y
[EE, QC-10, p 496, sec 10.19, p 510-512; QS, inside right, 7th model]Land Records, State (online database)Y
[EE, sec 10.19, p 510-12]Land Records, State (online images, by database)Y
[EE, sec 10.19, p 510-12; QS, inside right, 8th model]Land Records, State (online images, by document)Y
[EE, QC-10, p 489]Land Records, Tract Books, localY
[EE, QC-10, p 491]Land Records, Warrants, loose (state)Y
[EE, QC-10, p 490]Land-Grant Registers (state)Y
[EE, QC-12, p 652]LeafletY
[EE, sec. 12.91, p 722-23]Lecture (download)Y
[EE, sec. 12.91, p 722-23; E!, p 86]Lecture (recorded, tape/CD/DVD)Y
[EE, QC-3, p 111]Legal Document, unrecorded (family copy)Y
[EE, sec 4.29, p 206]Legal Research ReportY
[EE, QC-3, p 109, p149-50]Letter, Historic, privateY
[EE, QC-11, p 540]Library of Congress, ManuscriptsY
[EE, QC-11, p 551, 555]Library of Congress, Online imagesY
[EE, QC-11, p 544]Library of Congress, PhotographsY
[EE, QC-4, p 167, sec 4.19, p 192-93; E!, p 87]Lineage Society, Application FilesY
[EE, sec 4.20, p 194-95; E!, p 77]Lineage Society, DAR GRC reports (local/state)Y
[EE, sec 4.20, p 194-95; E!, p 77]Lineage Society, DAR GRC reports (national)Y
[EE, QC-4, p 168, sec 4.19, p 193]Lineage Society, Online databaseY
[EE, QC-9, p 421]Local Records, File itemsY
[EE, QC-9, p 422]Local Records, Files moved to state archivesY
[EE, QC-9, p 423]Local Records, Registers (named volumes)Y
[EE, QC-9, p 424]Local Records, Registers (numbered volumes)Y
[EE, sec 14.20, p 804]Magazine Article, online archivesY
[EE, QC-14, p783]Magazine Article, online reprintsY
[EE, QC-14, p782]Magazine Article, printY
[EE, QC-3, p 95]Manuscript Records, Archived (collection as lead)Y
[EE, QC-3, p 96]Manuscript Records, Archived (document as lead)Y
[EE, QC-3, p 97]Manuscript Records, Archived (series as lead)Y
[EE, sec. 3.18, p 129-30; E!, p 88]Manuscript, Filmed (commercially published)Y
[EE, QC-3, p 103, sec 3.19, p 130-31]Manuscript, Preservation film (compiled series, FHL-GSU)Y
[EE,QC-3, p 104, sec. 3.19, p 130-31]Manuscript, Preservation film (in-house)Y
[EE, sec. 3.19, p 131]Manuscript, Preservation film (individual FHL film)Y
[EE, QC-3, p 101, sec. 3.22, p 134-37]Manuscript, unpublished narrativeY
[EE, sec 12.67, p 703-04; E!, p 88]Maps, HistoricY
[EE, sec. 12.67, p 703-04]Maps, Historic, OnlineY
[EE, QC-11, p 543]Maps, NA (U.S.)Y
[EE, sec. 12.68, p 704; E!, p 89]Maps, TopographicY
[EE, sec. 9.4, p 435]Marriage Record (bound volumes)Y
[EE, sec 9.5, p 437]Marriage Record (loose, licenses & bonds)Y
[EE, QC-5, p 216, sec 5.11, p 225-6]Memorial PlaqueY
[EE, sec 11.32, 11.34-35, p 596-600; AQS back cover]Military Records, DatabasesY
[EE, sec 11.32, 11.34-35, p 596-600; AQS back cover]Military Records, ImagesY
[EE, sec. 11.32, p 596-97]Military, Compiled Service Records (filmed)Y
[EE, sec 11.38, p 602-03; E!, p 90]Military, Muster Rolls (manuscript)Y
[EE, sec. 5.12, pp 226–227]Monumental InscriptionsY
[EE, QC-11, p 550, sec 11.60, p 630-32]NA (U.K.) (online images & database)Y
[EE, QC-11, p 539, sec 11.6, p 561]NA (U.S.) Audio/Video RecordingsY
[EE, QC-11, p 551]NA (U.S.) Database, OnlineY
[EE, QC-13, p 738, sec 13.44, p 767-769]NA (U.S.) Guides, Descriptive Pamphlet (Online)Y
[EE, sec 13.43, p 766]NA (U.S.) Guides, Guides (cited by ed)Y
[EE, sec 13.43, p 767; QS,inside left]NA (U.S.) Guides, Guides (online edition, by ed)Y
[EE, QC-13, p 739, sec. 13.46, p 770-72]NA (U.S.) Guides, Preliminary Inventory (microfilmed)Y
[EE, QC-11, p 555]NA (U.S.) Images, OnlineY
[EE, QC-11, p 541, sec 11.43, p 608]NA (U.S.) ManuscriptsY
[EE, QC-11, p 542]NA (U.S.) Manuscripts, RegionalY
[EE, sec. 11.8, p 362-68, template based on p 364]NA (U.S.) Microfilm (Evidence Style Citation)Y
[EE, QC-11, p 552]NA (U.S.) Microfilm (NARA Style Citation)Y
[EE, QC-11, p 553]NA (U.S.) Microfilm (Publication Style Citation)Y
[EE, sec 11.59, p 628-29]NA-LAC (Canada) LAC MicrofilmY
[EE, QC-11, p 549]NA-LAC (Canada), Online images & databaseY
[EE, QC-11, p 548]NAA (Australia) (online images & database)Y
[EE, sec 11.68, p 639]NAS (Scotland) (online database)Y
[EE, sec 11.49, p 618; E!, p 92]Naturalization RecordsY
[EE, sec 14.29, p 815; QS back]Newsletter Article, electronic (archived)Y
[EE, sec 14.29, p 815]Newsletter Article, electronic (distributed)Y
[EE, sec 14.21, p806]Newsletter Article, online imagesY
[EE, QC-14, p784]Newsletter Article, printY
[EE, QC-14, p 786; QS back]Newspaper, Online ArchivesY
[EE, sec 14.22, p 809]Newspaper, Online ImagesY
[EE, QC-14, p 785]Newspaper, Print EditionY
[EE, sec 3.36, p150; E!, p93]Newspaper, unidentified clipping, privately heldY
[EE, sec 11.68, p 639]NLW (Wales) (online database)Y
[EE, QC-4, p 169]Organization Records (archived in-house)Y
[EE, QC-4, p 170]Organization Records (archived off-site)Y
[EE, sec. 12.47, p 687-89; E!, p 97]Papers, Consolidated in Syllabus (by presenter)Y
[EE, sec. 12.48, p 689]Papers, Distributed IndividuallyY
[EE, sec 11.15, p 574]Passenger Lists, NARA manuscriptsY
[EE, sec 11.15, p 575]Passenger Lists, NARA microfilmY
[EE, sec 11.16-17, p 575-78; QS, Back]Passenger Lists, Online (by ship)Y
[EE, sec 11.16-7, p 575-78; QS, Back]Passenger Lists, Online (by title)Y
[EE, sec 11.18, p 578-9; QS, Back]Passenger Lists, Ship Image (online)Y
[EE, QC-11, p 556]Patent & Trademark Office (U.S.) (online)Y
[EE, sec 7.35, p 349-350]Pedigree Resource File, CD-ROM databaseY
[EE, sec 7.35, p 349-350]Pedigree Resource File, online databaseY
[EE, sec 11.40, p 608]Pension Files, NARA microfilmY
[EE, QC-11, p 545]Pension Files, Railroad Retirement BoardY
[EE, QC-3, p 98]Personal Bible, archivedY
[EE, sec 3.43, p 155]Personal KnowledgeY
[EE, QC-3, p 99]Photo, Portrait, ArchivedY
[EE, sec 3.37, p 150-51; E!, p 81]Photo, Portrait, Private, scannedY
[EE, QC-14, p789]PodcastsY
[EE, sec 10.32, p 524-526]Probates, bound (FHL microfilm images)Y
[EE, sec 10.36, pp 528–29]Probates, bound (removed to state archives)Y
[EE, sec. 10.32, p 525-26]Probates, bound (state microfilm images)Y
[EE, sec 10.30, pp 522-523]Probates, bound volumesY
[EE, sec. 10.33, p 526-27]Probates, case file indexes (online databases)Y
[EE, QC-10, p 487]Probates, case files (local)Y
[EE, sec. 10.33, p 526-27]Probates, case files (online images)Y
[EE, sec 10.32, p 524-525]Probates, loose (FHL microfilm images)Y
[EE, sec 10.36, p 528–29]Probates, loose (removed to state archives)Y
[EE, sec 10.31, p 523-524]Probates, loose pages/filesY
[EE, QC-14, p790]Radio & Television ClipsY
[EE, QC-3, p 100]Research Report, ArchivedY
[EE, QC-3, p 114, sec 3.44, p 156-57]Research Report, Privately heldY
[EE, QC-4, p 174]School Records (administrative material)Y
[EE, QC-4, p 175, sec 4.17, p 189-90]School Records (student transcripts)Y
[EE, QC-13, p 732]Slip Laws, FederalY
[EE, sec 13.17, p 750]Slip Laws, stateY
[EE, QC-11, p 546]Social Security Application formsY
[EE, sec 11.55, p 626; QS back cover]Social Security Death Index (SSDI) (FHL, online)Y
[EE, sec 11.55, p 626; QS back cover]Social Security Death Index (SSDI), onlineY
[EE, QC-9, p 429, sec 9.11, p 442-43]State Records, miscellaneous filesY
[EE, QC-13, 733, sec 13:12, p 747-48]Statutes, Federal (1874 & later)Y
[EE, sec 13:12, p 747-48; E!, p 85]Statutes, Federal (pre-1874)Y
[EE, QC-13, 734, sec 13:13, p 748; E!, p 85]Statutes, StateY
[EE, sec 10.38, p 530–31]Tax rolls (local)Y
[EE, sec 10.42, p 532-34]Tax rolls (state/colony)Y
[EE, sec 10.16, p 506-08]Tax rolls, filmed, off-site (state/colony)Y
[EE, sec. 3.22, p 134-37 with sec 3.5, p 120]Thesis, unpublishedY
[EE, QC-3, p 115]Tradition, recorded, privateY
[EE, QC-12, p 656; E!, p 99]VideoY
[EE, sec., 9.32, p. 457; E!, p. 99]Vital Record, Filmed (FHL-GSU)Y
[EE, QC-9, p 427]Vital Records (local, amended)Y
[EE, QC-9, p 425]Vital Records (local, certificates)Y
[EE, QC-9, p 428]Vital Records (local, delayed)Y
[EE, QC-9, p 426]Vital Records (local, registers)Y
[EE, QC-9, p 432]Vital Records (state, amended)Y
[EE, QC-9, p 430]Vital Records (state, certificates)Y
[EE, sec 9.6, p 439]Vital Records (state, certificates, online)Y
[EE, QC-9, p 431]Vital Records (state, registers)Y
[EE, sec 9.42, p 467-470; QS, inside right, models 7-9]Vital Records (state-level, online derivatives)Y
[EE, sec 9.43, p 470]Vital Records (town registers, New England)Y
[EE, sec. 12.92, p 724; E!, p 100]Vital Records, PublishedY
[EE, QC-12, p 657; E!, p 80]Website “as book”Y
[EE, sec 3.16, p 127]Website (with multiple databases)Y
[EE, sec 8.12, p 387-88]WillsY
[QS-Front]Basic Online TemplateY
[QS, inside right, 1st model]Historical Records, abstracts (online)Y
[QS, right side, 2nd model]Historical Records, databases (online)Y
[QS, inside left, 3rd model]Historical Records, images (online)Y
Ancestry Member TreeN
Ancestry RecordN
Census, Canada (microfilm)Y
Land Petitions, Provincial (microfilm)Y
Upper Canada Sundries (LAC microfilm)Y

Query

SELECT LTRIM(category) AS Category, Name
FROM SourceTemplateTable
ORDER BY SUBSTR(LTRIM(Category),1,3) || Name COLLATE NOCASE
-- the occasional leading space character required to be LTRIMmed
;

Source Template List – Query #sources #sourcetemplates

RootsMagic 4 added the concept of Source Templates. With the new feature, no report functionality for it has yet been integrated into the Source List Print, however (RM 4.0.7.1, currently).

This information might be useful in a number of applications, including in the case in which the initial Master Source/Source Details field split resulted in too many entries and some consolidation were desired.

The following SQL code is simply designed to indicate which Sources are associated with which Source Template and brings together the information between SoureTemplateTable and SourceTable:

-- Source Template List
-- created by romermb 13 Feb 2010
SELECT *
FROM   SourceTemplateTable
       INNER JOIN SourceTable ON
       SourceTemplateTable.TemplateID = SourceTable.TemplateID

For purposes of this query and the one to follow, entries within SourceTable with SourceID of 0 are effectively excluded. This value refers to a Free-Form template and is not stored in SourceTemplateTable.

The code can be extended to provide citation-related details in a bit of a similar way to the Source List Print in RM4:
SourceTemplateListWithCitationDetails.sql Revised 2011-11-04

-- Source Template List with Citation Details
-- created  by romermb 14 Feb 2010
-- modified by romermb 15 Feb 2010 to override SQLite query optimization routine treatment of
--             IsPrimary field in order to produce faster run time,
--             to add Template Type field
-- 2010-06-01 rev by ve3meo to replace IF construct (not supported without a load extension) by CASE
 
-- Person Citations
SELECT   SourceTemplateTable.Name COLLATE NOCASE AS 'Source Template Name',
         CASE WHEN SourceTemplateTable.TemplateID < 10000
           THEN 'Built-In'
           ELSE 'User-Defined'
         END AS 'Template Type',
         SourceTable.Name COLLATE NOCASE AS 'Source Name',
         'Person' AS 'Citation Type',
         NULL AS 'Fact Type',
         NULL AS MRIN,
         NameTable.OwnerID AS 'RIN 1',
         NameTable.Surname COLLATE NOCASE AS 'Surname 1',
         NameTable.Suffix COLLATE NOCASE AS 'Suffix 1',
         NameTable.Prefix COLLATE NOCASE AS 'Prefix 1',
         NameTable.Given COLLATE NOCASE AS 'Given 1',
         NameTable.Nickname COLLATE NOCASE AS 'Nickname 1',
         NULL AS 'RIN 2',
         NULL AS 'Surname 2',
         NULL AS 'Suffix 2',
         NULL AS 'Prefix 2',
         NULL AS 'Given 2',
         NULL AS 'Nickname 2',
         COUNT(1) AS Records
FROM     SourceTemplateTable
         INNER JOIN SourceTable ON
         SourceTemplateTable.TemplateID = SourceTable.TemplateID
         INNER JOIN CitationTable ON
         SourceTable.SourceID = CitationTable.SourceID
         INNER JOIN NameTable ON
         CitationTable.OwnerID = NameTable.OwnerID
WHERE    CitationTable.OwnerType = 0 AND +NameTable.IsPrimary = 1
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
 
UNION ALL
 
-- Family Citations
SELECT   SourceTemplateTable.Name COLLATE NOCASE AS 'Source Template Name',
         CASE WHEN SourceTemplateTable.TemplateID < 10000
           THEN 'Built-In'
           ELSE 'User-Defined'
         END AS 'Template Type',
         SourceTable.Name COLLATE NOCASE AS 'Source Name',
         'Family' AS 'Citation Type',
         NULL AS 'Fact Type',
         FamilyTable.FamilyID AS MRIN,
         NameTable1.OwnerID AS 'RIN 1',
         NameTable1.Surname COLLATE NOCASE AS 'Surname 1',
         NameTable1.Suffix COLLATE NOCASE AS 'Suffix 1',
         NameTable1.Prefix COLLATE NOCASE AS 'Prefix 1',
         NameTable1.Given COLLATE NOCASE AS 'Given 1',
         NameTable1.Nickname COLLATE NOCASE AS 'Nickname 1',
         NameTable2.OwnerID AS 'RIN 2',
         NameTable2.Surname COLLATE NOCASE AS 'Surname 2',
         NameTable2.Suffix COLLATE NOCASE AS 'Suffix 2',
         NameTable2.Prefix COLLATE NOCASE AS 'Prefix 2',
         NameTable2.Given COLLATE NOCASE AS 'Given 2',
         NameTable2.Nickname COLLATE NOCASE AS 'Nickname 2',
         COUNT(1) AS Records
FROM     SourceTemplateTable
         INNER JOIN SourceTable ON
         SourceTemplateTable.TemplateID = SourceTable.TemplateID
         INNER JOIN CitationTable ON
         SourceTable.SourceID = CitationTable.SourceID
         INNER JOIN FamilyTable ON
         CitationTable.OwnerID = FamilyTable.FamilyID
         INNER JOIN NameTable AS NameTable1 ON
         FamilyTable.FatherID = NameTable1.OwnerID
         INNER JOIN NameTable AS NameTable2 ON
         FamilyTable.MotherID = NameTable2.OwnerID
WHERE    CitationTable.OwnerType = 1 AND +NameTable1.IsPrimary = 1 AND
         +NameTable2.IsPrimary = 1
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
 
UNION ALL
 
-- Person Fact Citations
SELECT   SourceTemplateTable.Name COLLATE NOCASE AS 'Source Template Name',
         CASE WHEN SourceTemplateTable.TemplateID < 10000
           THEN 'Built-In'
           ELSE 'User-Defined'
         END AS 'Template Type',
         SourceTable.Name COLLATE NOCASE AS 'Source Name',
         'Fact - Person' AS 'Citation Type',
         FactTypeTable.Name COLLATE NOCASE AS 'Fact Type',
         NULL AS MRIN,
         NameTable.OwnerID AS 'RIN 1',
         NameTable.Surname COLLATE NOCASE AS 'Surname 1',
         NameTable.Suffix COLLATE NOCASE AS 'Suffix 1',
         NameTable.Prefix COLLATE NOCASE AS 'Prefix 1',
         NameTable.Given COLLATE NOCASE AS 'Given 1',
         NameTable.Nickname COLLATE NOCASE AS 'Nickname 1',
         NULL AS 'RIN 2',
         NULL AS 'Surname 2',
         NULL AS 'Suffix 2',
         NULL AS 'Prefix 2',
         NULL AS 'Given 2',
         NULL AS 'Nickname 2',
         COUNT(1) AS Records
FROM     SourceTemplateTable
         INNER JOIN SourceTable ON
         SourceTemplateTable.TemplateID = SourceTable.TemplateID
         INNER JOIN CitationTable ON
         SourceTable.SourceID = CitationTable.SourceID
         INNER JOIN EventTable ON
         CitationTable.OwnerID = EventTable.EventID
         INNER JOIN FactTypeTable ON
         EventTable.EventType = FactTypeTable.FactTypeID
         INNER JOIN NameTable ON
         EventTable.OwnerID = NameTable.OwnerID
WHERE    CitationTable.OwnerType = 2 AND +NameTable.IsPrimary = 1 AND
         EventTable.OwnerType = 0
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
 
UNION ALL
 
-- Family Fact Citations
SELECT   SourceTemplateTable.Name COLLATE NOCASE AS 'Source Template Name',
         CASE WHEN SourceTemplateTable.TemplateID < 10000
           THEN 'Built-In'
           ELSE 'User-Defined'
         END AS 'Template Type',
         SourceTable.Name COLLATE NOCASE AS 'Source Name',
         'Fact - Family' AS 'Citation Type',
         FactTypeTable.Name COLLATE NOCASE AS 'Fact Type',
         FamilyTable.FamilyID AS MRIN,
         NameTable1.OwnerID AS 'RIN 1',
         NameTable1.Surname COLLATE NOCASE AS 'Surname 1',
         NameTable1.Suffix COLLATE NOCASE AS 'Suffix 1',
         NameTable1.Prefix COLLATE NOCASE AS 'Prefix 1',
         NameTable1.Given COLLATE NOCASE AS 'Given 1',
         NameTable1.Nickname COLLATE NOCASE AS 'Nickname 1',
         NameTable2.OwnerID AS 'RIN 2',
         NameTable2.Surname COLLATE NOCASE AS 'Surname 2',
         NameTable2.Suffix COLLATE NOCASE AS 'Suffix 2',
         NameTable2.Prefix COLLATE NOCASE AS 'Prefix 2',
         NameTable2.Given COLLATE NOCASE AS 'Given 2',
         NameTable2.Nickname COLLATE NOCASE AS 'Nickname 2',
         COUNT(1) AS Records
FROM     SourceTemplateTable
         INNER JOIN SourceTable ON
         SourceTemplateTable.TemplateID = SourceTable.TemplateID
         INNER JOIN CitationTable ON
         SourceTable.SourceID = CitationTable.SourceID
         INNER JOIN EventTable ON
         CitationTable.OwnerID = EventTable.EventID
         INNER JOIN FactTypeTable ON
         EventTable.EventType = FactTypeTable.FactTypeID
         INNER JOIN FamilyTable ON
         EventTable.OwnerID = FamilyTable.FamilyID
         INNER JOIN NameTable AS NameTable1 ON
         FamilyTable.FatherID = NameTable1.OwnerID
         INNER JOIN NameTable AS NameTable2 ON
         FamilyTable.MotherID = NameTable2.OwnerID
WHERE    CitationTable.OwnerType = 2 AND +NameTable1.IsPrimary = 1 AND
         +NameTable2.IsPrimary = 1 AND EventTable.OwnerType = 1
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
 
UNION ALL
 
-- Alternate Name Fact Citations
SELECT   SourceTemplateTable.Name COLLATE NOCASE AS 'Source Template Name',
         CASE WHEN SourceTemplateTable.TemplateID < 10000
           THEN 'Built-In'
           ELSE 'User-Defined'
         END AS 'Template Type',
         SourceTable.Name COLLATE NOCASE AS 'Source Name',
         'Fact - Alt Name' AS 'Citation Type',
         'Alt Name' AS 'Fact Type',
         NULL AS MRIN,
         NameTable2.OwnerID AS 'RIN 1',
         NameTable2.Surname COLLATE NOCASE AS 'Surname 1',
         NameTable2.Suffix COLLATE NOCASE AS 'Suffix 1',
         NameTable2.Prefix COLLATE NOCASE AS 'Prefix 1',
         NameTable2.Given COLLATE NOCASE AS 'Given 1',
         NameTable2.Nickname COLLATE NOCASE AS 'Nickname 1',
         NULL AS 'RIN 2',
         NULL AS 'Surname 2',
         NULL AS 'Suffix 2',
         NULL AS 'Prefix 2',
         NULL AS 'Given 2',
         NULL AS 'Nickname 2',
         COUNT(1) AS Records
FROM     SourceTemplateTable
         INNER JOIN SourceTable ON
         SourceTemplateTable.TemplateID = SourceTable.TemplateID
         INNER JOIN CitationTable ON
         SourceTable.SourceID = CitationTable.SourceID
         INNER JOIN NameTable AS NameTable1 ON
         CitationTable.OwnerID = NameTable1.NameID
         INNER JOIN NameTable AS NameTable2 ON
         NameTable1.OwnerID = NameTable2.OwnerID
WHERE    CitationTable.OwnerType = 7 AND +NameTable1.IsPrimary = 0 AND +NameTable2.IsPrimary = 1
GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
 
ORDER BY 1, 3, 7, 13, 5

Revised Query for Easier Reading

Screenshot

SourceTemplateListWithCitationDetails2-screenshot.png
Separate fields for surname, suffix, prefix, given and nickname concatenated into one for more compact and easier to read results.

Download

SourceTemplateListWithCitationDetails2.sql

Discussions & comments from Wikispaces site


romermb

Microsoft Access and Other Database Applications

romermb
15 February 2010 05:16:00

For those who are using Microsoft Access and other database applications and might want to store the sections of code between UNION ALL as separate queries, with the final one using UNION ALL to bring the various pieces together, I’ve gone ahead and retained the alias references in each section.

I propose that we adopt this standard going forward, as well.


romermb

Additional Fields?

romermb
15 February 2010 05:23:22

For those using the Source Template List with Citation Details query to consider consolidating Master Sources to create new Source Templates, please let me know if any additional fields might be helpful.

In addition, if a different sorting sequence might be useful, I’d be interested in knowing, as well.

I created the query without having gone through that exercise, so anyone with practical experience might have some unique insights or needs to better accomplish the task.


romermb

romermb
15 February 2010 13:11:28

Forgot to add also that query performance is slower than I’d expect it to be. My guess is that the issue relates to SQLite3 query optimization, so I’ll have to play around with the query a bit here at some point to see if I can resolve it.


ve3meo

Good query!

ve3meo
15 February 2010 15:42:00

Subject says it all!
Thanks, Romer.


romermb

romermb
16 February 2010 02:13:47

Thanks — hope it helps those who find it useful.


ve3meo

TemplateID, Pre- vs User-defined

ve3meo
15 February 2010 15:46:58

For those of us into the tables, adding a column for the TemplateID would be useful.

For reporting to others who are not, a column indicating whether the template is Pre-defined or User-defined could be useful. The TemplateID indicates that, any >9999 are user-defined.


romermb

romermb
16 February 2010 02:22:53

Good idea. I decided to go ahead and add a Template Type indicator field to the code that I just modified on the page.

For those instead wanting TemplateID, the field that I added could easily be modified to fit your needs:

SourceTemplateTable.TemplateID AS ‘Template Number’

Instead of ordering on ‘Template Name’, you might then consider ordering on TemplateID and/or even shifting the order of those two fields in the SELECT clause.


ve3meo

SQL Error – no such function IF

ve3meo
01 June 2010 03:38:16

This is a surprise – both my updated versions of SQLite Developer and SQLiteSpy return this error message when compiling the long query:
/* Error message: no such function: IF */ . They both use SQLite 3.6.23. I’m sure both ran this query when it was first published.


ve3meo

ve3meo
01 June 2010 03:47:19

I am probably mistaken that either Developer or SQLiteSpy ran this query OK because IF is not a core SQLite function. You must have used a SQLite manager with an extension. We would have to use CASE instead for base level compatibility.


ve3meo

Correction re Alternate Name Fact

ve3meo
03 November 2011 20:49:53

Not sure why this was not detected before but I found that sources cited by Alternate Name facts were ascribed to the wrong person using the query SourceTemplatesUsageList.sql and others derived therefrom. This is corrected by changing the lines:

INNER JOIN NameTable AS NameTable2 
ON NameTable1.OwnerID = NameTable2.NameID
WHERE CitationTable.OwnerType = 7


to

INNER JOIN NameTable AS NameTable2 
ON NameTable1.OwnerID = NameTable2.OwnerID
WHERE CitationTable.OwnerType = 7 
AND NameTable2.NameType=0


I have revised the page accordingly and will follow up on the affected files.

Tom


ve3meo

ve3meo
04 November 2011 01:58:55

That was not quite right because NameType could be 0 for an Alt Name if no NameType has been assigned. The correct code is:

INNER JOIN NameTable AS NameTable2 
ON NameTable1.OwnerID = NameTable2.OwnerID
WHERE CitationTable.OwnerType = 7 
AND +NameTable2.IsPrimary = 1

Media Files Status #filenames #media #links #broken

I collect images and files in sporadic flurries under each RootsMagic database’s Media folder intending to use them in the database later on, when I have time. Naturally, I get sidetracked and forget about some of them. So I thought it would be desirable to have a report that listed all the files under the Media folder and flag those that are already used by the relevant RootsMagic database. Then I could work my way through the rest and get them referenced in the database or moved or deleted. There are many ways this might be done, even without SQLite, by starting with RM’s built-in Multimedia List report. That would be outside the intent of this Wiki. Besides, this SQLite query produces the desired report in the blink of an eye!

Here’s a sample for which the Media folder for this database was named “Scrapbook”:

 C:\MyDocs\FamilyTree\Holden-Cudworth_Wilson-Wason\Scrapbook\Holden, James\Holden, James – OntObs adv selling bldg 1863-05-28.png
1C:\MyDocs\FamilyTree\Holden-Cudworth_Wilson-Wason\Scrapbook\Holden, James\Holden, James – Ontario Observer published by, 1858.png
1C:\MyDocs\FamilyTree\Holden-Cudworth_Wilson-Wason\Scrapbook\Holden, James\Holden, James – Passenger – SS Austrian 2 Sep 1869.pdf
 C:\MyDocs\FamilyTree\Holden-Cudworth_Wilson-Wason\Scrapbook\Holden, James\Holden, James – bio – Port Perry-Scugog Twp Heritage Gallery.odt
 C:\MyDocs\FamilyTree\Holden-Cudworth_Wilson-Wason\Scrapbook\Holden, James\Holden, James – poet.txt

The ‘1’ flags that the file is referenced by the subject database; its absence indicates the opposite.

The procedure uses Windows shortcuts, the Windows CMD shell to automate some things, the command line utility sqlite3.exe, and launches Excel with the resulting report. In my case, all the files that support this procedure are stored in one folder. The shortcut that calls the batch file may be located elsewhere and multiple shortcuts can be created for each database and associated media folder.

The permanent and transient files are:

sqlite3.exe


Command line shell for SQLite (download file sqlite-tools-… under “Precompiled Binaries for yourOS” at https://www.sqlite.org/download.html; extract sqlite3.exe which does not have to be in the procedure folder if there is a Windows PATH setting for it or the batch file is revised to have the full path to it)
Excel.lnk
Shortcut to Excel (copy from the Start menu to the procedure folder or revise the batch file with the full path to the Excel shortcut)
MediaFilesStatus.lnk



Shortcut to the batch file with the RootsMagic filename and media folder passed as parameters. You create the shortcut; for example:
Target: C:\SD\OneDrive\RootsMagic\MediaFilesStatus\MediaFilesStatus.bat “..\Data\Bradshaw-OneDrive.rmgc” “..\Data\Bradshaw-OneDrive_media”
Start In: C:\SD\OneDrive\RootsMagic\MediaFilesStatus
MediaFilesStatus.bat.bak

Windows command shell batch that gets the directory listing, writes and executes a SQL file to generate a report file which it opens with Excel.
(Remove .bak extension after download )
MediaFilesList.txtThe directory listing of files under the Multimedia folder path (transient)
MediaFilesStatus.sqlSQL query generated by the batch file (transient)
MediaFilesStatus.db3
SQLite database with one table with one field filled with the content from ScrapbookFilesList.txt (transient)
MediaFilesStatus.txt
The report in tab-delimited format (batch file opens it with Excel; you can use Excel to generate CMD shell commands to delete or move unused files)

N.B. I advise using the RM tool “Fix broken media links” before running this procedure because a file that is in a different location than recorded in the database will be reported as unused. You might not want to delete it!

Here’s the batch file, downloadable from the link above:

 ECHO OFF
 REM MediaFilesStatus.bat
 REM Tom Holden 13 Mar 2011
 REM rev 2021-07-04 Media folder parameterized as %2; support double-quotes around calling parameters
 REM Lists files under a folder and sub-folders and checks 
 REM and flags if they are used by a RM4-7 database; does not support RM8.
 REM Command line: MediaFilesStatus RootsMagicFile.rmgc MediaFolder
 REM - full paths or relative to the 'Start in' location, double quoted if space character is in path
 REM
 REM List files under the media path and store to a file.
 DIR %2 /B /S /ON > MediaFilesList.txt
 REM
 REM Erase old sql file and database file
 ERASE MediaFilesStatus.sql
 ERASE MediaFilesStatus.db3
 REM Build a SQL query and save to a file
 ECHO CREATE TABLE FILES(file); > MediaFilesStatus.sql
 ECHO .import MediaFilesList.txt FILES >> MediaFilesStatus.sql
 ECHO ATTACH DATABASE REPLACE('%1', '^"', '') AS RM ; >> MediaFilesStatus.sql 
 ECHO .mode tabs >> MediaFilesStatus.sql
 ECHO .output MediaFilesStatus.txt >> MediaFilesStatus.sql
 ECHO SELECT LIKE(FILE,MediaPath^|^|MediaFile) AS USED, FILE FROM FILES LEFT JOIN MultimediaTable ON (FILE LIKE MediaPath^|^|MediaFile) >> MediaFilesStatus.sql
 ECHO  WHERE FILE NOT LIKE '%%.THU' AND FILE LIKE '%%.<em>_</em>%%' ORDER BY FILE; >> MediaFilesStatus.sql
 REM SQL file building finished
 REM
 REM Execute SQL to generate report file
 sqlite3.exe MediaFilesStatus.db3 &lt; MediaFilesStatus.sql
 REM
 REM Open report file with Excel
 excel.lnk MediaFilesStatus.txt
 REM END

RMGC Tables Row Count #databaseproperties #integrity

This query lists the number of rows counted in each of the 22 tables comprising a RootsMagic4 database. If one or more tables are not shown in the list, then these tables are corrupt. The database may be corrupted in other ways not shown by this report, e.g., one or more of the 36 indexes could be corrupted.

RMGC_TablesRowCount.sql

RMGC_TablesRowCount.png

Named Group – Mark or Unmark List refresh #namedgroup

Intro

We might want to modify a group that we created using one of the parameterised scripts by adding or deleting persons that our programmed rules just can’t catch. For example, a Census Needed group might have someone in it who immigrated to the census jurisdiction after the census year or emigrated from it beforehand. Its rules are not complex enough to filter out these persons. So as we work through a group, we will find that there are persons we would like to remove from the group without getting all fancy about the rules. This page shows how we can go about building a script that we can run in tandem to ‘unmark’ or ‘mark’ selected persons for a group.

WARNING: you may use this type of refresh only on groups fully refreshed by an outboard SQLite query or on empty groups BUT NOT on groups last built or modified by using RM4’s Mark Group/Unmark Group functions as it is possible that the deletion of a person from the latter group may actually remove a range of persons with consecutive Record Numbers.

Group Unmark List

This script could be one of several similar ones with different lists of people. If we have a Census needed #1871 Canada group and a Census needed #1900 Pennsylvania group, the two sets of people to unmark will be very different. So we cannot use a single list with runtime parameters. We will need an Unmark script for each one. Each script will have a corresponding name and hardcoded parameters by which it will select and operate on the correct group. Let’s make an Unmark script for the group “*Census needed #1871 Canada” which we have previously built using the script at Census Needed – Named Group.

This first block of code clears out the temporary table GroupParmTable and re-creates it for the Unmark operation:
NB- LabelID instead of LabelValue error corrected 2011-11-27 21:45 EST

DROP TABLE IF EXISTS GroupParmTable
;
CREATE TEMP TABLE IF NOT EXISTS GroupParmTable
AS
SELECT LabelValue AS GroupID, LabelName COLLATE NOCASE FROM LabelTable
WHERE LabelName LIKE '%Census needed%#1871%Canada%'
;

This table stores the GroupID corresponding to the Group Name that matches the search string ‘%Census needed%#1871%Canada%’ for use by later statements in the script.

The next statement contains the list of RINs that are to be deleted from the group and deletes them.

-- Unmark (list of manual unmarks)
 
DELETE FROM GroupTable
WHERE GroupID LIKE
(
SELECT GroupID FROM GroupParmTable
)
AND StartID IN (78,829) -- list of RINs to unmark, separated by commas
;
 
-- END OF SCRIPT

And that’s all there is to it. As you find more persons you want to delete from the group, you just edit the list of RINs between the parentheses … (78,829,97,12345,2,678) No need to keep them sorted. Putting it altogether, here is my working script: Census needed #1871 Canada – group Unmark list.sql


Group Mark List

A similar procedure for refreshing the ‘manual’ marking of a group follows…

It starts with the same first block of code as Group Unmark above to ensure GroupParmTable registers the group to which we want to add people.

If the list is to replace all that is currently in the group, then we need to clean out the current members of the group with this block of code:

-- delete all persons from the named group whose id is stored in the temp table set up at the start
DELETE FROM GroupTable WHERE GroupID =
(
SELECT GroupID FROM GroupParmTable
)
;

If, instead, the list is to be added to a non-empty group, skip the foregoing block. BUT, be warned that the following code does not prevent the duplication of existing persons in the group. That requires some extra measures TBA.

Now, we add the members in the list to the group:

-- Mark (list of manual marks)
INSERT INTO GroupTable (GroupID, StartID, EndID)
SELECT GroupID, MarkList.*, MarkList.*  FROM GroupParmTable
LEFT JOIN
(
SELECT 78       -- RIN to be marked
UNION           -- required for each successive RIN to be marked
SELECT 829      -- RIN to be marked
--UNION         -- uncomment for next RIN to be added
)
AS MarkList
;

That’s the end of the script. RINs 78 and 829 get added to the target group when the script is run against your database.

If the list got very large, it would be cumbersome to maintain and you can consider a couple of alternatives. One is to keep the list of RINs in a spreadsheet table and use formulas to produce the SELECT RINUNION statements, copy and paste into the script. You can also do it with a regular expression text editor such as PSPad ( Find: (d+) Replace: SELECT $1 UNION ). Another is to create a table of RINs either within your database or in a separate database and revise the procedure to SELECT DISTINCT RIN FROM databasename.tablename, replacing all the SELECT RIN UNION statements with this one.

Name Find query #search

Producing a list of names from your database similar to what is found by RootsMagic 4’s Search > Person List > NameFind, this query does it faster. Moreover, you can sort and filter the results, not supported in RootsMagic Explorer’s NameFind. As a list, it may prove handy to use in conjunction with RM Explorer’s “Record number to find” function (Alt-R).

This query requires the use of SQLite Expert Personal or another SQLite manager that fully supports SQLite runtime parameters of the form $AA::AA(anytext). Neither SQLiteSpy nor SQLite Developer do.

Download

NameFind.sql

Screenshots

NameFindMissingParamDialog.PNG
Sample input dialog

On running the query, you will encounter a series of dialog windows prompting for inputs for:

  • UseSoundex(Y/N) – Y will use the Soundex function to look for soundalikes
  • Surname – the search string for surnames
  • Given – the search string for given names; left blank returns all surname matches

When Soundex is not invoked, you can also use wildcards in the name strings: _ for 1 character, % for any number of characters.

NameFindResult.PNG
Sample result sorted on death year.

The query adds a suffix after the found surname if it is not the person’s primary name: (m) for married name (i.e., the name of the male spouse although that might not be accurate for all cases), (alt) for alternate name.

SQLite Expert Personal allows you to sort these results on any column (it re-runs the query adding an ORDER BY columnname clause). It also lets you filter simply entering a value in the cell of a column above the results or a more complex filter can be built using its Customise button. You can copy and paste selected results directly into Excel and Microsoft Word (use Convert text to table accepting its default settings).

Future

This is about the simplest result set that is useful. Of course, more RM4 tables could be tied in to extend the type of information that could be brought out.

Geo-Lifelines Query #places #placedetails #geocoding #events

2021-11-22 Compatible with #RM8

Have you ever wished to be able to look at all the facts in your family tree database that happened within a day’s horseride of a certain location? Until RootsMagic contains such a report, this adaptation of the LifeLines query helps you view your events for any geographic area in addition to looking at the lifeline of any person in your database.

Edit the SQL file to set the coordinates of your target location and the distance from it you want included. Set the values to (0,0,12450) to include all facts for everywhere. As coded near the end of the query, the results will be sorted by RIN and SortDate so that each person’s events are all together sorted by timeline. With SQLiteSpy et al, you can override that sort by clicking on a column header. Click on SortDate to mix people’s events in a pure timeline sort that may reveal some interesting connections.

Download: Geo-Lifelines.sql

Geo-Lifelines.png
SQLiteSpy screenshot showing results from a database filtered for a range of 10 miles from Oshawa, Ont., Canada.