THE WELCH COMPANY
440 Davis Court #1602
San Francisco, CA 94111-2496
415 781 5700
rodwelch@pacbell.net


S U M M A R Y


DIARY: May 13, 2004 03:39 PM Thursday; Rod Welch

SDS improvement to manage and look up acronyms.

1...Summary/Objective
2...Glossary Word Strings Acronyms Fast Easy to Create Maintain
3...Enter Overloaded Propose Assign Function Key for Entering Acronyms
4...000008 Macro 156 F1 F1 F6 New Function String Look Up and Create
5...035012 Add Feature to Look Up and Create Acronyms
6...03501 07 BP Modify Subject Index to Look Up and Create Acronyms


..............
Click here to comment!

CONTACTS 

SUBJECTS
Acronyms Word Strings Enter to Subject Index and Look Up 035012
Overload Enter Gary Wants to Avoid Multi-tasking Enter and Double Cl
03 00050 00 07 32 030801ce 030513fc                    **Not Found**       06
Acronyms and Word Strings Enter to Subject Index and Look Up 035012
Planning Acronyms and Word Strings Enter to Subject Index and Look U
Situational Awareness SDS Enter Files Listed in SDS Records by Launc

2108 -
2108 -    ..
2109 - Summary/Objective
2110 -
211001 - Follow up ref SDS 8 0000.
211002 -
211003 - Over the next few days developed a new feature, suggested by Gary,
211004 - ref SDS 0 TJ5J, to maintain acronyms in the Subject Index.  Decided to
211005 - make the function generic for managing any string of characters in the
211006 - alphabet, plus a few characters commonly used for transition, e.g.,
211007 - C/SCSC. ref SDS 0 DF3L  Selected "Research" for the primary account,
211008 - and made it user specific, per planning with Gary. ref SDS 0 DE6R
211009 - Assigned the new function to F1 F1 F6  It adds new utility to the
211010 - Subject Index for creating an account automatically, if one does not
211011 - already exist, in addition to the standard feature for looking up an
211012 - account by positioning the cursor on the string, if it does exist.
211013 - Experience will show if this turns out to be a useful new branch of
211014 - functionalty for other applications.
211015 -
211016 -
211017 -
211019 -  ..
2111 -
2112 -
2113 - Evaluation
2114 -
211401 - Glossary Word Strings Acronyms Fast Easy to Create Maintain
211402 -
211403 - The new feature created today for handling acronyms and other word
211404 - strings provides a new concept application for the Subject Index to
211405 - both look up and create a string automatically if it does not already
211406 - exist, and which is unrelated to the Control Field, and does not
211407 - entail entering anything into an SDS record. ref SDS 0 VN4O
211409 -  ..
211410 - This design to create a subject automatically seems helpful in saving
211411 - about 50 keystrokes for the initial setup.  On a major project, like
211412 - Gary has at Aerospace company, this can be a big savings, adding to the list
211413 - reported on 000824. ref SDS 3 MX5O
211415 -  ..
211416 - A problem could arise of mispelling an acronym, and it will be
211417 - automatically created, causing duplication, however, this should be
211418 - discernable and easily corrected from sorting the list.
211420 -  ..
211421 - The design of the new system may avoid the problem Gary anticipated in
211422 - his record on 040512 in that an acronym can occur anywhere within the
211423 - standard SDS line length from cols 10 - 80. ref SDS 10 FO4O
211425 -  ..
211426 - Testing to capture a string beginning with only letters and numbers,
211427 - and so avoid punctuation, simplifies using the new function routinely
211428 - in standard narrative, like this paragraph, without taking additional
211429 - time to remove and replace characters, per Gary's suggestion in
211430 - planning below. ref SDS 0 718J
211432 -  ..
211433 - Making tasks fast and easy by simplifying performance to a matter of
211434 - volition, adds value by reducing the time for creating, maintaining
211435 - and using a conventional list.  When tasks take less time, there is
211436 - typically an increase in the frequency of verifying accuracy, which
211437 - has a net increase on the quality, time, cost and usefulness of of the
211438 - work.
211440 -  ..
211441 - Might be possible to load the list of 5K acronyms Gary already has
211442 - into the new structure.  This would be a good test of the design using
211443 - segments to handle any file size.
211444 -
211445 -
211446 -
211447 -
211448 -
211449 -
211451 -  ..
2115 -
2116 -
2117 - Background
2118 -
211801 - On 011222 Gary asked about expanding support for a glossary to look up
211802 - terminology, including managing acronyms. ref SDS 4 N374
211804 -  ..
211805 - Yesterday Gary called and we discussed a number of things he has been
211806 - thinking about in his SDS records.  He mentioned his record yesterday
211807 - on 040512 has some planning to develop support for acronyms in the
211808 - Subject Index, ref SDS 10 0001, following up initial planning a few
211809 - days earlier on 040510 that identified requirements. ref SDS 9 4I4J
211811 -  ..
211812 - Acronyms are a common practice in business and government for managing
211813 - complex descriptions.  On 980307 Morris remarked that Intel uses a lot
211814 - of acronyms that take time for new employees to learn in order to be
211815 - productive on the job. ref SDS 1 MO42
211817 -  ..
211818 - In our telecon, Gary mentioned he has a file with a list of about 5K
211819 - acronyms which he would like to be able to handle faster and easier
211820 - for maintaining and applying to look up the meaning of acronyms.
211822 -  ..
211823 - Gary's record for 040512 cites his earlier work on 030321, ref SDS 10
211824 - 0001, that has condsiderations for making the list project specific.
211825 - ref SDS 5 F47N  Gary's more recent record on 040510 has additional
211826 - analysis on the scope of a word "lookup" feature. ref SDS 9 4I4J
211827 -
211828 -
211829 -
211830 -
211831 -
211833 -  ..
2119 -
2120 -
2121 - Planning
2122 -
212201 - In discussion with Gary, decided to make the acronym inventory user
212202 - specific.
212204 -  ..
212205 - Decided to make the code a subroutine in 035012 since it handles the
212206 - existing Subject Index operations.  If we created a new macro file, it
212207 - would have to call 035012 to open the Subject Index, so went ahead and
212208 - expanded 035012. ref SDS 0 VN4O
212210 -  ..
212211 - Also, decided to see if a single function can create an acronym
212212 - lising, if none already exists. ref SDS 0 SN7H
212214 -  ..
212215 - There is a tendency to make the acronym the account string.
212217 -  ..
212218 - Initially, will try using the description field for the acronym, as
212219 - well as showing the words that comprise the string, so that every
212220 - entry will have at least two entries.
212222 -  ..
212223 - Decided to eliminate the requirement for capital letters, so that a
212224 - user can select any string with letters, numbers and a few separating
212225 - characters that occassionally occur in acronyms, e.g., C/SCSC.  This
212226 - is, therefore, closer to a word glossary that includes acronyms.
212227 - ref SDS 0 DF3L
212229 -  ..
212230 - Gary suggested making the first and last char of a string either
212231 - numbers or letters, so that the function will work with compound
212232 - punctuation in standard narrative format (e.g., C/SCSC).  This was
212233 - implemented, as shown below. ref SDS 0 733L and ref SDS 0 Z57F
212234 -
212235 -
212237 -  ..
212238 - Enter Overloaded Propose Assign Function Key for Entering Acronyms
212239 -
212240 - Gary cautions against using ("overloading") Enter, in his record on
212241 - 040312. ref SDS 10 0131  Previously, on 031020 Gary wanted a function
212242 - key assignment to enter a file on the Internet, rather than the Enter
212243 - key and double clicking. ref SDS 7 UK7O  On 030801 Gary explained how
212244 - he uses Enter for a carriage return and line feed, like using a
212245 - typwriter. ref SDS 6 O78V
212246 -
212247 -     [On 040701 Gary submits letter explaining intent to remove
212248 -     overloading Enter key; action item to analyse planning on 990530.
212249 -     ref SDS 11 PX63
212251 -  ..
212252 - Background on SDS support for multi-tasking based on situational
212253 - awareness to augment intelligence was reviewed on 000821. ref SDS 2
212254 - 0G6N
212256 -  ..
212257 - What about using F1 F1 F4?
212258 -
212259 -    This seems to be the list of ASCII characters.
212261 -  ..
212262 - Others that are available...
212263 -
212264 -        F1 F1 F6
212265 -
212266 -        F1 F10
212268 -  ..
212269 - Let's use F1 F1 F6, see below. ref SDS 0 0U6K
212271 -  ..
212272 - Gary suggests a separate file for each letter. ref SDS 10 GD6O
212274 -  ..
212275 - The initial feeling is that the order of entries in this index is not
212276 - important because the system will do all of the searching, and if
212277 - something is not in the index, it will be created.  The design using
212278 - segmented indexes eliminates size as an issue.
212280 -  ..
212281 - The list can be sorted to look for particular acronyms alphabetically.
212283 -  ..
212284 - There could be an issue of having to wade through strings from A - P
212285 - to get to a string like "rosetta," but the code look up will do this
212286 - more or less instantly, so normally there not be a need for the user
212287 - to do this.
212289 -  ..
212290 - Under these conditions having another level for the letter seems
212291 - redundant.  Will work with the initial design, and if problems arise,
212292 - or if advantages emerge for adding a level for 0 - 9 and A - Z, then
212293 - these can be added.
212295 -  ..
212296 - Support for numbers 0 - 9 as well as letters A - Z slightly expands
212297 - Gary's proposal on 040512 to include acronyms like CFISR. ref SDS 10
212298 - FO4O
212300 -  ..
212301 - In our discussion today, we seemed to concur that Gary's initial
212302 - planning on 030321 for acronyms to be maintained at the project level,
212303 - would be complicated.  It would require placing an acronym subject in
212304 - a record segment when an acronym is used in order for the loop up
212305 - operation to determine which project account to query for an acronym.
212307 -  ..
212308 - As a result, decided to adopt a simple initial design of placing all
212309 - acronyms in the following account...
212310 -
212311 -                     07.................. Research
212312 -                     07 BP............... Acronyms
212314 -  ..
212315 - Gary will have to add this account to his Subject Index.  And after
212316 - that the system should be largely self-sustaining.
212318 -  ..
212319 - People will be attracted to substitute the new function to list and
212320 - manage a glossary activity, for managing the work with organic
212321 - structure, because in the beginning this will seem faster and easier
212322 - than thinking through a scheme that fits the structure of the work.
212323 - Generally, this could conceivably become another part of multiple
212324 - views for managing context.  To be useful, it would be necessary to
212325 - load these accounts into a Control Field, and at the moment that is
212326 - not contemplated, because a mere listing of word strings does not
212327 - provide context that imparts meaning in relation to other factors for
212328 - chronology and structure.
212330 -  ..
212331 - Experience will yield refinements on application.
212332 -
212333 -
212334 -
212335 -
212336 -
2124 -

SUBJECTS
F1 F1 F6 Acronyms and Word Strings Enter to Subject Index and Look U

2203 -
2204 - Progress
220501 -  ..
220502 - 000008  Macro 156 F1 F1 F6 New Function String Look Up and Create
220503 -
220504 - Line 740, ref OF 3 5X4N, -entry 156 in 000008 about 70 lines below
220505 -
220506 -    pf6 @c:\sd\03\035012 #3
220507 -
220508 -        New assignment in 035012 to look up and create, if necessary a
220509 -        string, commonly applied for acronyms.
220510 -
220511 -
220512 -
220513 -
220514 -
220515 -
220516 -
220517 -
2206 -

SUBJECTS
Acronyms Enter to Subject Index and Look Up 035012

2303 -
230401 -  ..
230402 - 035012   Add Feature to Look Up and Create Acronyms
230403 -
230404 - This code departs from standard Subject Index processes that support
230405 - the Control Field.  In this case the Subject Index is applied without
230406 - an reference to content in the Control Field, nor does this process
230407 - wind up entering anything.  It is simply to look up to disclose the
230408 - meaning of a string of characters, and to enter a new string, if the
230409 - object string is not already in the index.
230411 -  ..
230412 - There is a danger that prevents using the index as a spelling guide,
230413 - since if a string is not in the index it is created, rather than
230414 - return an error message that alerts the spelling is incorrect.  When
230415 - spelling is an issue, the user can sort the list and look up to see if
230416 - the string exists with a different spelling.
230417 -
230419 -  ..
230420 - Line 30, ref OF 2 BV4M, 035012
230421 -
230422 -    -goto acrnm.............................. ref SDS 0 TX7I
230423 -
230424 -        New subroutine called by macro 156 F1 F1 F6 to open Subject
230425 -        Index and look up a string of characters, commonly for
230426 -        acronyms.
230427 -
230429 -  ..
230430 - Line 290, ref OF 2 KQ4O, -label acrnm 035012
230431 -
230432 -    -label acrnm........................... ref SDS 0 BX4M
230433 -    setcnt 107 0
230434 -    -if @48 > 1 macro 152
230435 -    savescr 18
230436 -    errorcnt 0 0
230437 -    z 1 80
230438 -    fl / /
230439 -    -if @0 = 0 rel_cur 0 1
230440 -    -if @0 > 0 loc_cur 0 1
230441 -     ..
230442 -    chrcnt 8 0
230443 -    -if @8 > 32 -if @8 < 39 setcnt 8 0
230444 -    -if @8 > 47 -if @8 < 58 setcnt 8 0
230445 -    -if @8 > 64 -if @8 < 91 setcnt 8 0
230446 -    -if @8 > 96 -if @8 < 123 setcnt 8 0
230447 -    -if @8 > 0 rel_cur 0 1
230448 -    savescr 19
230449 -
230450 -        Called by F1 F1 F6 set in macro 156, which is profile level 3.
230451 -        setcnt 107 0 resets flag that identifies a string to look up.
230452 -        -if @48 > 1 macro 152 resets primary profile.  If we figure out
230453 -        a way to do this with a menu or the mouse, then would not need
230454 -        to reset the profile. savescr 18 saves initial position to
230455 -        restore after testing the string.  fl positions the cursor at
230456 -        the beginning to get ready to read the string.  savescr 19
230457 -        saves this beginning position to come back and read the string
230458 -        again as a subroutine after determinging this is a string look
230459 -        up and not standard Subject Index support for the Control
230460 -        Field.  chrcnt 8 0 and -if commands move cursor 1 position
230461 -        forward, if necessary, to avoid including punctuation as part
230462 -        of a string, so that 1st position is always a number or a
230463 -        letter, per Gary's suggestion, above, ref SDS 0 718J; same test
230464 -        is applied to the last char, per below. ref SDS 0 737I
230466 -  ..
230467 -        Actually, modifed the test slightly to include characters like
230468 -        #, $, % and & for acronym characters, because sometimes at
230469 -        least the first 3 are part of an acronym, and the & is often in
230470 -        the middle of a string, e.g., PG&E.
230471 -
230472 -
230474 -  ..
230475 - Line 340, ref OF 2 Z35J, -label 6667 in 035012
230476 -
230477 -    -label 6667
230478 -    setcnt 86 1
230479 -    setcnt 87 32
230480 -    macro 1182
230481 -     ..
230482 -    rel_cur 0 -1
230483 -    chrcnt 8 0
230484 -    -if @8 > 47 -if @8 < 58 setcnt 8 2
230485 -    -if @8 > 64 -if @8 < 91 setcnt 8 2
230486 -    -if @8 > 96 -if @8 < 123 setcnt 8 2
230487 -    subcnt 100 1
230488 -    -if @8 != 2 setgbl @100 0
230489 -    getscr 18
230490 -    -if @107 != 6667 -goto 666r................ ref SDS 0 DL6H
230491 -    -return
230493 -         ..
230494 -        Read the string with macro 1182; and then rel_cur 0 -1 backs up
230495 -        to test last char, per Gary, above, ref SDS 0 718J, and if it
230496 -        is not a number or an upper or lower case letter, then the code
230497 -        makes this character a 0, so that the last character in the
230498 -        string is not punctuation; then getscr 18 restores original
230499 -        cursor position; if this is not the 2nd pass that is called as
230500 -        a subroutine, and it is the 1st pass, then jump ahead to
230501 -        evaluate if the string passes the criteria for processing.
230502 -
230503 -
230505 -  ..
230506 - Line 360, ref OF 2 NM7F, -label 666r in 035012
230507 -
230508 -    -label 666r........................... ref SDS 0 NS4K
230509 -    setcnt 8 @1
230510 -    -gosub tsChr.......................... ref SDS 0 DF3L
230511 -    -if @8 != 1 -goto eIto................
230512 -    setcnt 8 @2
230513 -    -gosub tsChr
230514 -    -if @8 != 1 -goto eIto
230515 -    setcnt 8 @3
230516 -    -if @8 = 32 -goto nchR
230517 -    -gosub tsChr
230518 -    -if @8 != 1 -goto eIto
230519 -    -goto nchR................................ ref SDS 0 DM3O
230520 -
230521 -        This code tests for a string of 2 consecutive characters that
230522 -        meet the criteria.  If a character is encountered that does
230523 -        not pass the test, then end the op.
230525 -         ..
230526 -        A stronger solution could be fashioned than testing only two
230527 -        positions, but it would take a lot more code.  People will be
230528 -        presented with the results in the Subject Index, and can make
230529 -        their own assessment if they want to maintain a strange looking
230530 -        string.
230531 -
230532 -
230533 -
230535 -  ..
230536 - Line 390, ref OF 2 Q98N, -label tsChr in 035012
230537 -
230538 -    -label tsChr.......................... ref SDS 0 DL6H
230539 -    -if @8 > 32 -if @8 < 39 setcnt 8 2
230540 -    -if @8 > 44 -if @8 < 58 setcnt 8 1
230541 -    -if @8 > 64 -if @8 < 91 setcnt 8 1
230542 -    -if @8 > 96 -if @8 < 123 setcnt 8 1
230543 -    -if @8 = 91 setcnt 8 1
230544 -    -if @8 = 95 setcnt 8 1
230545 -    -return
230546 -
230547 -        This supports acronyms for following characters....
230548 -
230549 -                     - . / and 0 - 9 and A - Z and \ _ and a - z
230550 -
230551 -        ...plus....  !#$%&, which are sometimes part of an acronym.
230553 -         ..
230554 -        Decided to start us off with a generic tool that can maintain
230555 -        any contiuous string.  This allows creating a form of
230556 -        dictionary.
230558 -         ..
230559 -        We need both numbers and letters for things like...
230560 -
230561 -                          CFISR
230563 -         ..
230564 -        We also need transition characters for strings like...
230565 -
230566 -                          C/SCSC
230567 -
230568 -        ...and like...
230569 -
230570 -                          PG&E
230571 -
230573 -  ..
230574 - Line 410, ref OF 2 9R4L, -label nchR in 035012
230575 -
230576 -    -label nchR................................ ref SDS 0 DL6H
230577 -    setcnt 107 6666
230578 -    setgbl 107 6666
230579 -    setcnt 93 996
230580 -    -goto start
230581 -
230582 -        Code has determined that the thing can be looked up in the
230583 -        Subject Index, so set some flags and run standard Subject
230584 -        Index launch op.
230585 -
230586 -
230588 -  ..
230589 - Line 710, ref OF 2 LR8G, -label 7333b in 035012
230590 -
230591 -    getgbl 107 107
230592 -    -if @107 = 6666 -goto 7333d
230593 -
230594 -        We are in the transfer file.  Added code to evaluate acronym
230595 -        operation; we can add here a new flag for acronymns to process
230596 -        in 03501.
230597 -
230598 -
230600 -  ..
230601 - Line 840, ref OF 2 444I, -label 7333d in 035012
230602 -
230603 -
230605 -  ..
230606 - Line 1250, ref OF 2 VC6L, -label ncfsdc in 035012
230607 -
230608 -    -label ncfsdc
230609 -    ic 32
230610 -    -if @107 != 6666 -goto ntArcm
230611 -    ins_text !07 BP!
230612 -    rel_cur 0 6
230613 -    -label ntArcm
230614 -
230615 -
230616 -
230617 -
2307 -

SUBJECTS
Acronyms Enter to Subject Index and Look Up 035012

2403 -
240401 -  ..
240402 - 03501  07 BP Modify Subject Index to Look Up and Create Acronyms
240403 -
240404 -
240405 - Line 980, ref OF 1 YM9H, -label fpaclar in 03501
240406 -
240407 -    setcnt 0 0
240408 -    setcnt 109 0
240409 -    loc_cur 5 1
240410 -    z 1 10
240411 -    fr ^07 BP.^
240412 -    -if @0 = 0 setcnt 109 1
240413 -
240414 -        Added code to test for Acronym account, and set a flag if it
240415 -        is being processed.
240417 -         ..
240418 -        Changed the search command delimiter from / to ^ so that "/"
240419 -        can be a transition character supported, per above. ref SDS 0
240420 -        6E68  This required, also, changing the delimiter for the
240421 -        locate commands. ref OF 1 DC4F and ref OF 1 IF7F
240422 -
240423 -
240425 -  ..
240426 - Line 1260, ref OF 1 5I6M, -label nffp in 03501 about 60 lines below
240427 -
240428 -    -if @109 = 0 -goto notacrm
240429 -    bot
240430 -    immed /
240431 -    loc_cur 3 1
240432 -    z 2 2
240433 -    l-/:/
240434 -    immed r
240435 -    immed a
240436 -    up 2
240437 -    loc_cur 3 4
240438 -    setcnt 86 1
240439 -    macro 1181
240440 -    pushc
240441 -    loc_cur
240442 -
240443 -
240444 -    -label lpbsp
240445 -    ic 46
240446 -    chrcnt 1 0
240447 -    -if @1 != 32 -goto lpbsp
240448 -    rel_cur 0 1
240449 -    split
240450 -    macro 1181
240451 -    rel_cur 1 0
240452 -    immed d
240453 -    rel_cur -1 0
240454 -    loc_cur 0 44
240455 -    -goto 4acrnm
240456 -    -label notacrm
240457 -
240458 -        Added code to create an acronym account if it does not already
240459 -        exist.
240461 -         ..
240462 -        This allows user to press F1 F1 F6 to create a template for
240463 -        creating a new acronym -- saves about 50 keystrokes.
240464 -
240465 -
240467 -  ..
240468 - Line 1730, ref OF 1 OF4I, -label prior in 03051
240469 -
240470 -    We seem to have broken this feature.
240471 -
240473 -  ..
240474 - Line 1970, ref OF 1 DL8G, -label sftil in 03501 about 30 lines below
240475 -
240476 -    ins_text !.^                                                     !
240477 -
240478 -        This was the problem; changed / to ^, per change above to
240479 -        accomodate transition characters in string management op.
240480 -        ref SDS 0 SN5M
240481 -
240482 -
240483 -
240484 -
240485 -
240486 -
240487 -
240488 -
240489 -
2405 -