/usr/share/lifelines/rslgen.ll is in lifelines-reports 3.0.61-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 | /*
* @progname rslgen.ll
* @version 1.1
* @author Eggert
* @category
* @output RSL format
* @description Generate a Roots Surname List (RSL) submission
rslgen - a LifeLines report program to aid in the generation of
Roots Surname List (RSL) submissions.
Given a person, this generates a RSL-like submission for that person and
his/her ancestors. The output will likely need considerable hand editing,
but that is how it is. If you need to know what the RSL is, I have enclosed
a description at the end of this file.
Here's what you will need to do by hand (you can consider this a list
of desired features for future versions of this report program):
BEFORE YOU RUN THE PROGRAM:
Change the routine write_rsl_header() to use your submitter tag, name,
and address.
AFTER YOU RUN THE PROGRAM:
Sort the surname portion of the output file.
Eliminate empty or useless surname lines.
Use RSL-standard abbreviations for placenames.
- get FAMILY ABBREV as per instructions at end of this file.
Combine duplicate surname lines where appropriate.
Check check check.
Send the final product to the RSL maintainer.
- see the end of this file.
Version 1, 14 July 1994, by Jim Eggert, eggertj@ll.mit.edu
*/
global(year_min)
global(year_max)
global(submitter_tag)
global(location)
global(last_location)
global(location_list)
global(location_table)
global(see_surname_table)
global(rsl_entry_count)
/* write_rsl_header sets the submitter tag and
writes a little header for the RSL list maintainer
*/
proc write_rsl_header(person) {
set(submitter_tag,"dummy_tag")
"Roots Surname List (RSL) submission of " date(gettoday())
" submitted by John Q. Public\n\n"
submitter_tag
col(12) "John Q. Public noname@nowhere.nohow\n"
col(12) "1234 56th Street, Anytown AM 54321\n\n"
}
proc main() {
list(ilist)
table(see_surname_table)
getindi(person)
call write_rsl_header(person)
set(rsl_entry_count,0)
enqueue(ilist,person)
while (person,dequeue(ilist)) {
table(location_table)
list(location_list)
set(year_min,9999) set(year_max,0)
call locations_and_years(person)
set(final_key,save(key(person)))
set(final_surname,save(surname(person)))
if (m,mother(person)) { enqueue(ilist,m) }
while (person,father(person)) {
if (m,mother(person)) { enqueue(ilist,m) }
call locations_and_years(person)
set(this_surname,surname(person))
if (strcmp(this_surname,final_surname)) {
set(see_name,0)
if (other_surname,lookup(see_surname_table,this_surname)) {
if (strcmp(final_surname,other_surname)) {
set(see_name,1)
}
}
else {
set(see_name,1)
set(other_surname,final_surname)
}
if (see_name) {
this_surname " - see " final_surname
" (" submitter_tag ")\n"
insert(see_surname_table,
save(this_surname),save(other_surname))
}
}
}
call write_rsl_entry(final_key)
}
if (gt(rsl_entry_count,100)) {
print("Warning: Number of lines produced (")
print(d(rsl_entry_count))
print(")\nexceeds recommended submission limit (100)\n")
}
}
/* write_rsl_entry writes one line in the rsl submission */
proc write_rsl_entry(key_entry) {
if (key_entry) {
set(surname_entry,save(surname(indi(key_entry))))
if (strlen(surname_entry)) {
if (strcmp(trim(surname_entry,1),"_")) {
set(rsl_entry_count,add(rsl_entry_count,1))
set(not_first,0)
surname_entry col(14) d(year_min)
col(20) d(year_max) " "
while (loc,dequeue(location_list)) {
if (not_first) { ">" } else { set(not_first,1) }
loc
}
" " submitter_tag " " key_entry "\n"
}
}
}
}
/* locations_and_years figures out unique locations and min/max years
for a person with respect to other persons already figured.
Note that the events are processed in reverse chronological order,
because the ancestry is traced bottom up. Oh well...
*/
proc locations_and_years(person) {
list(marriage_list)
call one_location_and_year(burial(person))
call one_location_and_year(death(person))
families(person,family,spouse,fnum) {
push(marriage_list,marriage(family))
}
while (event,pop(marriage_list)) { call one_location_and_year(event) }
call one_location_and_year(baptism(person))
call one_location_and_year(birth(person))
}
/* one_location_and_year appends the event location to the global
location list if it is new, and figures the event year into the
global min and max values.
*/
proc one_location_and_year(event) {
if (event) {
set(loc,place(event))
if (strlen(loc)) {
if (not(lookup(location_table,loc))) {
requeue(location_list,save(loc))
insert(location_table,save(loc),1)
}
}
if (yr,atoi(year(event))) {
if (lt(yr,year_min)) { set(year_min,yr) }
if (gt(yr,year_max)) { set(year_max,yr) }
}
}
}
/*
### WHAT IS IT? ###
The Roots Surname List (RSL) helps genealogical researchers share and
compare data. Genealogists with Internet access are welcome to submit
surnames that they are researching for inclusion in the Roots Surname
List if they are willing to share their data with others who may be
doing parallel research. Enough information should be provided so that
others can decide whether a link with their own lines is possible or
probable. The assumption is that you have SOME data to share. You
needn't be on the verge of writing the definitive genealogy for the
family in question.
If you see a surname listed that interests you, contact the person who
submitted the surname. To do that, just look up their nametag (listed
at the end of each surname entry) in the list of submitters. The
FAMILY INDEX, described below, has instructions on how to obtain the
list of submitters. Unless the submitter happened to be me, I won't be
of much help.
The =update= to the RSL is posted to ROOTS-L (the Internet genealogy mailing
list) and to soc.roots (the USENET genealogy newsgroup)
on the first Sunday of the month. At the same time, the entire
new RSL is stored on the listserver. See below for instructions on
obtaining a copy from the listserver or via mail if you don't have access
to the listserver. The update and sometimes the full RSL also propagates
after that to the genealogy libraries on CompuServe, GEnie, and Delphi.
Included in the posted update is contact information for the submitters of
the new and updated info.
### OBTAINING THE ENTIRE LIST ###
To obtain a copy of the full Roots Surname List (RSL) from the listserver,
the first step is to send e-mail to LISTSERV@vm1.nodak.edu or
LISTSERV@NDSUVM1, with the one-line message (not in the subject line):
GET FAMILY INDEX
You will receive by e-mail a list of the names of the various files
comprising the current RSL. The files named in FAMILY INDEX may change
each month, so be sure to use a current one! The files listed there may
be obtained in the same manner as you obtained FAMILY INDEX. (That is, by
sending e-mail to the LISTSERV address with the GET message.) If you have
access to FTP, you can instead use anonymous FTP to vm1.nodak.edu
(134.129.111.1) and do "cd ROOTS-L" then "get FAMILY.INDEX" to retrieve
the file. Don't FTP it in binary mode, but instead in text mode.
If you are unable to retrieve the RSL via e-mail or via FTP, you can
receive a copy by sending $5 to:
Brian Leverich
27991 Caraway Lane
Saugus, CA 91350
Requests MUST include a description of the computer you use (DOS or Mac)
and the highest capacity diskette you can read (360kb, 720kb, 1.2mb,
1.44mb, etc.). If you need something other than DOS or Mac, inquire
first: if Brian can't handle your particular format, maybe someone else
here can.
### SUBMITTING NEW ENTRIES ###
Please READ THIS SECTION ***CAREFULLY*** BEFORE SUBMITTING. I receive
submissions and handle correspondence about the RSL over long distance
telephone lines, and I cannot afford the time and money wasted by
improperly formatted or otherwise inappropriate submissions.
** BASIC GUIDELINES **
Send new entries to me at one of the addresses listed at the end of this
note. Entries received will be included in the next list. See below
for format information. PLEASE follow these guidelines:
o Send ordinary text files. Please do not compress, zip,
uuencode, or MIME encode your file.
o Be sure to submit "how to reach you" information as well as
surnames.
o Do not submit more than 100 surnames.
o Do =not= put your surnames in CAPS.
o Follow the formatting rules below with religious fervor.
o AND NO TINY TAFELS. They don't conform to the RSL format, and
they don't contain the sort of information needed for the RSL.
If you have a Tiny Tafel and want to put it to good use, I
believe Brian Mavrogeorge, will enter it in the Fidonet TMS
(Tafel Matching System) database if you post it to soc.roots
or Roots-L. (If you don't know what a Tiny Tafel is, you're
probably in no danger of sending me one accidentally.)
** FORMATTING YOUR "HOW TO REACH YOU" INFORMATION **
For each submitter, I must receive one or two lines of address
information which tell readers how they can reach the person who
submitted the entry. The format is fairly flexible, but must include a
short nametag (less than eight characters, all lower case) and should
typically include all your e-mail and postal addresses. (If you're
nervous about broadcasting your postal address to the universe, though,
feel free to leave it off.) If the nametag you select has already been
taken, I'll conjure up a new one for you. Or feel free to suggest
alternates at the time of your submission.
The lines for karen (me) are:
karen Karen Isaacson, karen@rand.org, Prodigy: XRBV26B, GEnie: KRENA
27991 Caraway Lane, Saugus, CA 91350 Delphi: KRENA
** FORMATTING YOUR SURNAME INFORMATION **
What should the surname entries look like? Don't worry too much about
format -- I end up reformatting them anyhow for my sort routine. But
please do conform to the general guidelines below. Also, despite all
genealogical advice to the contrary, DO NOT put the surnames all in
capital letters. The RSL does not use surnames in all CAPs. (Don't
put them all in lower case, either, though, just do them like in the
example below.)
Each entry should be on one line, and consists of five parts:
1. The name of the family.
2. The earliest date for which you have information about the family.
(For instance, the birthdate of the founder of the family, or the year
he or she first showed up in the records.)
3. The latest date for which you have information about the family. (When
the last person with that surname died or skipped town, for instance.
Or "now" if you know people of this surname that are still around --
yourself, for example. It's up to you whether a woman is considered
under her maiden surname, married surname, or both.)
4. The migration of the family. For instance, if my ancestors started out
in Virginia, moved to Kentucky, then on to Missouri, this would be
VA>KY>MO,USA. If the surname was common, and I still had room (remember,
all four fields should fit on one line), then I might add some county
information to further distinguish them: OrangeCo,VA>KY>GentryCo,MO,USA.
There is a list of most of the abbreviations that are in use. It is in
a file called FAMILY ABBREV, and can be obtained in the same manner as
FAMILY INDEX, discussed above. Or just spell out the location, and I'll
put in the proper abbreviation, if any.
5. The nametag of the submitter. This is so you can be found in the address
list. See discussion above for how to select one.
The Roots Surname Index is rather oddly computerized. There aren't any
firm restrictions on the presentation of the data, but do try to use
something like the format suggested above and illustrated below.
Here are a few (genuine!) sample entries (my own, funny thing):
Bell 1780 1940 OrangeCo,VA>KY>GentryCo,MO,USA karen
Carr - see Kerr (karen)
Keithley c1750 1923 DEU>PA?>RowanCo,NC>BathCo,KY>FloydCo,IN,USA karen
Keithley c1750 1923 DEU>PA?>RowanCo,NC>KY>StCharlesCo,MO,USA karen
Kerr 1760 now HuntingdonCo,PA>VenangoCo,PA>IA,USA karen
Kicheli - see Keithley (karen)
** WHEN TO SUBMIT **
Try to get your additions or modifications in to me by the Thursday before
the first Sunday of each month, when the monthly update is published.
If you miss a deadline, not to worry: your surnames will have arrived in
time for the next deadline and will be included in the next month's list.
** WHERE TO SUBMIT **
How can I be reached? At one of the following addresses:
Internet: karen@rand.org <- preferred
krena@genie.geis.com
xrbv26b@prodigy.com
bi254@cleveland.freenet.edu
kisaacson@mcimail.com
GEnie or Delphi: KRENA
Prodigy: XRBV26B
Postal: Karen Isaacson
27991 Caraway Lane
Saugus, CA 91350
*/
|