RFC 744

MARS - a Message Archiving and Retrieval Service

πŸ“… published January 1978, from ietf

πŸŽ€ RFC 744: MARS - A Message Archiving & Retrieval Service

RFC 744 πŸ’– from the Network Working Group, dated 8 January 1978, written by Joanne Sattley (JZS@CCA), and filed under NIC number 42857. It doesn't say what category it is or whether it obsoletes or updates anything, so I'm not guessing πŸ™ˆ

I. Introduction ✨

Okay bestie, so this doc describes a Message Archiving and Retrieval Service (MARS) that was built at Computer Corporation of America πŸ¦‹ It runs on the Datacomputer, a network database utility CCA made for ARPA. It's giving serious infrastructure energy πŸ’…

[Research and development of a prototype MARS system was supported by the Defense Advanced Research Projects Agency of the Department of Defense, under the ARPA Very Large Databases program, and was monitored by the Office of Naval Research under Contract No. N00014-76-C-0991.]

The Service is mainly for groups who want to store teleconferencing transcripts 🌸 It's also available on request to individual ARPANET correspondents, so you can ask for access if you're one of them 🫢

There are both 'public' and 'private' messages in the database πŸ‘‘ Anyone can retrieve public messages. The public collection includes the messages of the Header-People [@ MIT-MC] group and the MsgGroup [@ USC-ISI] proceedings. Private messages can only be retrieved by the users who archived them, or by anyone whose name is on the list of message recipients πŸ”’

MARS indexes messages super heavily, so you can pull them back in a bunch of ways. You can combine things with Boolean logic, using message recipients, composition date, text words in the subject, and text words in the message body 🧚 And it fits right into the message tools you already use:

  • A message gets archived by sending it to MARS-Filer @ CCA with one of the usual message-mailing tools, like SNDMSG.
  • A message gets retrieved by sending a request as ordinary mail to MARS-Retriever @ CCA.

The Filer program checks for mail every hour, and the Retriever program checks every quarter-hour ⏰ The timing can be changed to meet demand, but the goal is for MARS to run as a background job and only during extremely low-activity periods 😴

Section II explains the indexing in more detail, plus how to archive and retrieve messages. Section III is an extractable user card πŸ’œ

II. Using MARS πŸ’…

A. Message Indexing

For each message, a vector of parsed tokens gets created. The parsed tokens are collected by the message-field they showed up in, so they can be used as "indexes" (values of inverted fields) by the Datacomputer 🌈

The Filer "indexes" basically without analysis, except for these things:

  • Each distinguishable section of the message is indexed separately. Each header line is its own inversion domain, and so is the body of the message.
  • The header lines that contain ARPANET addresses are analyzed so it can index separately on mailbox and host.
  • The date-field gets parsed and converted to the standard Tenex internal date/time format. That format works better for less-than/greater-than comparisons, like retrievals that specify a date range πŸ“…
  • One-character words in both the subject-field and the message-text field are arbitrarily discarded.
  • Two-character words in the message-text field are arbitrarily discarded.
  • Hyphenated phrases, meaning words bound together by hyphens, are retained intact ✨
  • All message formats that conform to RFC 733 standards are accommodated. The minimum requirements are: a date-field, a from-field, and a blank line between the message-header and message-body.

B. To Archive Messages

There are three modes of filing currently supported by MARS, to wit:

  • single-message mode, wherein the MARS-Filer mailbox appears in the message as an addressee;
  • forwarded-message mode, wherein the MARS-Filer mailbox appears as the only primary recipient;

and

  • batch mode, wherein the mailing envelope is addressed to MARS-Filer and the subject-field contains the keyword "batch".

Until the ARPANET standard for message format is implemented everywhere, the variety of formats is still more than the Filer can handle as it stands πŸ™ƒ Still, a user can successfully file any message in a "foreign" format by forwarding it to the Filer through a mail-handling program that does produce good formats. Real talk: the correct header-field indexing described above won't happen for that enclosed message 😭 But at least the words in its unreadable header fields will show up as "text" words in the indexing.

For forwarded-message-mode filing, all the interesting indexing info is pulled from the message-header of the forwarding envelope before that envelope gets thrown out. The name of the archiver, the date and time the message was forwarded, and the subject-line information are all recorded. The rest gets handled as though it were a non-forwarded message that had been CC'd to the Filer πŸ’Œ

You can 'annotate' a forwarded message by adding text (like notes, comments, or keywords) in the forwarding envelope. Annotations are filed and retrieved as part of the archived message πŸ“

For batch-mode filing, only the archiver's name and the date and time they sent the package get extracted from the mailing envelope. Then the message-body portion is treated as a series of individual messages πŸ“¦

C. To Retrieve Messages

Retrievals get started by sending a Retrieval Request (a specially formatted message) to "MARS-Retriever@CCA". Retrieved messages get mailed back one at a time, and they show up as new mail in the requester's mailbox πŸ“¬

You can compose Retrieval Request messages with any SNDMSG-type program, like this:

  • The recipient of the RR message must be MARS-Retriever @ CCA
  • Other message header fields are ignored for now
  • The message body portion of the RR is used to compose Datalanguage for performing the retrieval. Its format looks like a message header, or selected portions of one.

These are the field names that get recognized, plus some notes on how each one gets interpreted. Each field's scan ends at a carriage-return ↩️

  • DATE: The format is day-month-year. Hyphens are optional. This field will only retrieve messages composed on the specified date πŸ“†
  • AFTER: Retrieves messages composed after the specified date.
  • SINCE: Interpreted just like the AFTER: field.
  • BEFORE: Retrieves messages composed before the specified date.
  • UNTIL: Interpreted just like the BEFORE: field.
  • FROM: This field is expected to contain a valid mailbox name. The host specification is optional. If you list more than one name, ORing them is implicit. Retrieval based on host specification alone has not been implemented πŸ™ˆ
  • TO: This field is expected to contain one or more valid mailbox names. The host specification is optional. Spaces and commas between the names imply AND.
  • SUBJECT: Retrieves all messages whose indexed subject-field contents match the specified word(s). Spaces and commas imply AND. Use of OR must be explicit.
  • TEXT: Retrieves all messages whose indexed message-body contents match the specified word(s). Spaces and commas imply AND. Use of OR must be explicit.

There's an interactive TENEX-based program for composing RRs, called "RR.SAV" πŸ–₯️ A copy is stored on the Datacomputer, and you can get it via DFTP under node COMMON>MARS.

There's also a copy of the program in CCA's directory at SRI-KA, and another in the CCA-ACCAT directory at ISIA πŸ’–

III. MARS User Card πŸŽ€

Archiving

Individual Messages

  • Include MARS-Filer@CCA on the message distribution list
  • Forward the message to MARS-Filer@CCA [Annotation is optional.]

Batches of Messages

  • Put the mail file in as the message-body of a single message sent to MARS-Filer@CCA, with the clue "BATCH" in its subject-field πŸ“¦

Retrieving

Using RR Program

  • RR is a TENEX-based interactive program made to prepare Retrieval Request messages and mail them to MARS-Retriever@CCA ✨

Using SNDMSG-Type Program

  • Send a message to MARS-Retriever@CCA, with your retrieval criteria in the body of the message πŸ’Œ

Sample Retrieval Criteria

SUBJECT:RFC 733 or RFC733     ; OR must be explicit

TEXT:MARS Project,goals       ; spaces & commas imply AND

DATE: 14 November 1977
SINCE: 1 Nov 77               ; same as AFTER: 1 Nov 77
AFTER: 1  Dec 1977
UNTIL: 15 January 1978        ; same as BEFORE: 15 January 1978
BEFORE: Aug 7 76

FROM:  JZS@CCA         ; host specification is optional
FROM:  Hacker,JZS      ; comma implies OR (in FROM: field only)

TO:  CCA@SRI-KA     ; host specification is optional
TO:  SDD-0:,SDD-1:  ; spaces and commas imply AND

That's the whole thing, bestie! πŸŒˆπŸ‘‘ Now go archive something iconic πŸ’…

πŸ“¦ where this page comes from