1 1/7/91  forum transaction specifiers
  2 
  3 Transaction specifiers are used by the list, print, write, delete,
  4 retrieve, reset, and reply requests to refer to transactions in a
  5 meeting.  They are composed of transaction numbers, keywords, the
  6 arithmetic operators + and -, person_ids, control argument selections,
  7 and qedx-type regular expressions.  In addition, the keywords may be
  8 used as requests and active requests to return transaction numbers.
  9 
 10 
 11 Specifier Classes:
 12 Transaction specifiers are divided up into four classes: transaction
 13 numbers and keywords, regular expressions, person_ids, and date ranges.
 14 In addition, there are control arguments which additionally restrict
 15 which transactions are selected. If specifiers for more than one class
 16 are present, a transaction must satisfy at least one specifier in each
 17 class.  For instance, the request line:
 18 
 19       list 100:last -from Pattin -after 10/5/82 -subject /FOO/
 20 
 21 will select all transactions numbered higher than 100 which were
 22 entered by the participant Pattin after 10/5/82 which contain the
 23 string "FOO" in the subject.
 24 
 25 
 26 Transaction numbers and keywords:
 27 Transaction numbers are integers asssigned by forum when it
 28 enters a transaction into the proceedings.  Transactions may be
 29 linked together (through the use of the 'reply' request) and may
 30 be addressed using this linking information.  There  are  several
 31 keywords which can be used to refer to transactions symbolically:
 32 
 33 
 34    unprocessed, u
 35      refers to the unprocessed transaction.
 36    first, f
 37      refers to the first transaction in the proceedings.
 38    last, l
 39      refers to the last transaction in the proceedings.
 40    next, n
 41      refers to the transaction immediately after the current
 42      transaction.
 43    previous, p
 44      refers to the transaction immediately before the current
 45      transaction.
 46    current, c
 47      refers to the transaction last listed, printed, written,
 48      or reset to.
 49 
 50 
 51    highest, last_seen
 52      refers to the highest-numbered transaction printed or written.
 53    all, a
 54      refers to all transactions (equivalent to first:last).
 55    firstref, fref
 56      refers to the first transaction in the current chain of
 57      transactions.
 58    lastref, lref
 59      refers to the last transaction in the current chain of
 60      transactions.
 61    nextref, nref
 62      refers to the next transaction in the current chain of
 63      transactions.
 64 
 65 
 66    previousref, pref
 67      refers to the previous transaction in the current chain of
 68      transactions.
 69    beforeref, bref
 70      refers to all previous transactions in the current transaction
 71      chain.
 72    restref, rref
 73      refers to all remaining transactions in the current transaction
 74      chain.
 75    allref, aref
 76      refers to all transactions in the current chain of transactions.
 77 
 78 
 79 For the following group, 'seen' means that the transaction has been
 80 printed, written, or explicitly marked as seen by the switch_on request.
 81 
 82    seen
 83      refers to all transactions marked as having been seen.
 84    first_seen, fs
 85      refers to the first transaction marked as having been seen.
 86    last_seen
 87      refers to the highest-numbered transaction marked as having
 88      been seen.
 89    next_seen, ns
 90      refers to the next transaction after the current one which is
 91      marked as seen.
 92    previous_seen, ps
 93      refers to the first transaction before the current one which is
 94      marked as seen.
 95 
 96 
 97    new
 98      refers to transactions entered after your last_seen transaction
 99      which were not entered by you.
100    unseen
101      refers to all transactions not marked as having been seen.
102    first_unseen, fu
103      refers to the first transaction not marked as having been seen.
104    last_unseen, lu
105      refers to the highest-numbered transaction not marked as having
106      been seen.
107    next_unseen, nu
108      refers to the next transaction after the current one which is
109      not marked as seen.
110    previous_unseen, pu
111      refers to the first transaction before the current one which is
112      not marked as seen.
113 
114 
115 There is also a special transaction specifier "chairman_message"
116 ("cmsg") which may be used with the "print", "write", and "delete"
117 requests to denote the chairman's greeting message.
118 
119 All keywords except for 'unproc', 'all', 'new', 'restref', 'allref',
120 'seen', and 'unseen' may be used in place of actual transaction
121 numbers, and may be combined with either of the simple operators '+' or
122 '-', as in 'l-4' 'nref+1' and so on.  Leading '+' and '-' are used to
123 reference from the current transaction, '-4' is the same as
124 'current-4'.  A range of transactions may be specified by two
125 transaction numbers or keywords separated by a colon (:), as in
126 'first:last', 'c-3:nref' and so on.
127 
128 
129 Usage of keywords as requests:
130 All of the keywords except for 'unprocessed' and 'chairman_message' may
131 be used as requests and active requests.  They return a list of the
132 transaction numbers that the keyword represents.  All of the keywords
133 that use reference chains and the keywords 'next', 'previous',
134 'next_seen', 'previous_seen', 'next_unseen', and 'previous_unseen' may
135 be given an argument to use as the 'current' transaction.  Thus, 'aref
136 4' would return a list of all transactions which reference transaction
137 4.
138 
139 
140 Regular expressions:
141 Simple regular expressions are character strings enclosed in slashes
142 (/).  The control arguments '-subject (-sj)' and '-text (-tx)' may be
143 given immediately before a regexp.  They specify that matching is to be
144 done only against the subject or text respectively.  By default,
145 matching is done against both the subject and the text.  For example:
146 
147    /FORTRAN/
148 
149 specifies all transactions which contain the string 'FORTRAN'.  The
150 null regexp "//" signifies that last regular expression used.
151 
152 Because of the syntax of the request language, regular expressions
153 which contain special characters such as space, quote, and parentheses
154 must be quoted.
155 
156 
157 Person_ids:
158 The -from person_id (-fm personid) can be supplied in order to indicate
159 that only transactions authored by the person identified by the
160 person_id be selected.  The selection:
161 
162       -from York
163 
164 selects all transactions entered by the participant York.
165 
166 
167 Date/Time Selection:
168 The following control arguments are available to select transactions
169 based on the date_time that the transaction was entered.  The strings
170 DT, DT1, and DT2 are standard Multics date_time strings acceptable to
171 the convert_date_to_binary_ subroutine.  Type "..  help
172 date_time_strings.gi" for information on date_time strings.
173 
174 -after DT, -af DT
175    selects all transactions entered on or after the the date specified.
176    The time of day is ignored.
177 -after_time DT, -aft DT
178    selects all transactions entered after the date_time specified.
179 
180 
181 -before DT, -be DT
182    selects all transactions entered before the date specified. The time
183    of day is ignored.
184 -before_time DT, -bet DT
185    selects all transactions entered before the date_time specified.
186 -between DT1 DT2, -bt DT1 DT2
187    selects all transactions entered between the dates specified,
188    inclusive.  The times of day are ignored.
189 -between_time DT1 DT2, -btt DT1 DT2
190    selects all transactions entered between the date_times specified,
191    inclusive.
192 -date DT, -dt DT
193    selects all transactions entered on the day specified.
194 
195 
196 Notes:
197 Several requests will operate on deleted transactions when the
198 -include_deleted or -only_deleted control arguments are used. Forum
199 considers only those transactions which the user can read, so for
200 participants other than the chairman, only deleted transactions entered
201 by that participant are considered.
202 
203 
204 Care must be exercised when using the -only_deleted control argument
205 in combination with specifier keywords.  The keywords are evaluated
206 among the deleted transaction only, thus
207 
208   last -only_deleted
209 
210 selects the last deleted transaction that the user may read, but
211 
212   last-30:last -only_deleted
213 
214 selects all deleted transactions from 30 transactions before tha last
215 deleted transaction.  It does not select all deleted transactions from
216 the last 30 transactions in the meeting.
217 
218 Type 'help trans_specs_ex' for examples of transaction specifiers.