INTERNET-DRAFT                                      J. Gardner
Bulletins as an Extension to HTML                   M. Holstege
draft-holstege-bulletintext-00.txt                  First Floor Software
Expire in six months                                25 November 1996



                   Bulletins as an Extension to HTML


Status of this Memo

  This document is an Internet-Draft.  Internet-Drafts are working
  documents of the Internet Engineering Task Force (IETF), its areas,
  and its working groups.  Note that other groups may also distribute
  working documents as Internet-Drafts.

  Internet-Drafts are draft documents valid for a maximum of six months
  and may be updated, replaced, or obsoleted by other documents at any
  time.  It is inappropriate to use Internet-Drafts as reference
  material or to cite them other than as ``work in progress.''

  To learn the current status of any Internet-Draft, please check the
  ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  ftp.isi.edu (US West Coast).

1. Abstract

   This draft defines a bulletin mechanism that conveys time-varying
   information about a linked resource.  It is in a form suitable for
   use by autonomous user agents monitoring documents for changes in
   content or for new or changed links.  HTML authors can use bulletins
   to push information back to an interested audience.

   Bulletins can be text messages of up to 1024 characters.  A bulletin
   has a posting date associated with it and may also have an expiration
   date, an image, and a link to another resource.

2. Bulletins as HTTP headers

   When a server returns a resource under the HTTP specification [2],
   response headers describing the server, the status of the request,
   and the resource itself precede the resource contents.

   Four new HTTP response headers define bulletins:
      <bulletin-text> ::= "Bulletin-Text" ":" <rfc1945-string>
      <bulletin-image> ::= "Bulletin-Image" ":" <rfc1808-url>
      <bulletin-link> ::= "Bulletin-Link" ":" <rfc1738-url>
      <bulletin-date> ::= "Bulletin-Date" ":" <rfc1945-date>
      <bulletin-expires> ::= "Bulletin-Expires" ":" <rfc1945-date>

Gardner and Holstege                                            [Page 1]


INTERNET-DRAFT     Bulletins as an Extension to HTML       November 1996

   The "Bulletin-Text" header defines a textual string.  A user agent
   will present this string to the end user as the bulletin content for
   the resource.  This header is required if any bulletin headers are
   present.

   The "Bulletin-Image" header defines the URL of an image.  A user
   agent will present the linked image with the bulletin content for the
   resource.  The URL will most likely be a relative URL as defined by
   RFC 1808 [4], which will be interpreted as relative to the resource.

   The "Bulletin-Link" header defines the URL [3] of a document linked
   to the bulletin.  When the bulletin is opened, the user agent will
   fetch and display the linked document.

   The "Bulletin-Date" header defines the date on which the bulletin was
   posted.  The "Bulletin-Expires" header defines the date on which the
   bulletin becomes invalid.  User agents should suppress display of
   expired bulletins or otherwise mark them as no longer valid or
   relevant.  User agents may likewise choose to ignore bulletins which
   have a "Bulletin-Date" that has not yet arrived.  Both date headers
   are in the form defined for dates in the HTTP specification, RFC 1945
   [2].  Several date formats are defined, with the preferred date
   format being:
      Tue, 19 Nov 1996 18:30:00 GMT
   User agents should be forgiving of small variations in date format.
   This header is required if any bulletin header is present.

3. Implementing bulletins using the META element

   Bulletins can be added to the head of an HTML document to allow
   messages to be pushed back to interested parties.

   On a dynamically generated page:

   If the HTML page is dynamically generated by a CGI program or script,
   then the headers for the Bulletin will be added to the headers
   generated at the beginning of the HTML document.  These headers are
   sent back along with the other headers such as Expires:, Date:, and
   Last-Modified:.

   On a static document page:

   The HTML specification allows user-defined headers to be added to a
   document through the use of the META tag. A META tag for the bulletin
   information can be placed in the HEAD section of the document. For
   example,

Gardner and Holstege                                            [Page 2]


INTERNET-DRAFT     Bulletins as an Extension to HTML       November 1996

   <HEAD>

   ....Various title and other information ...

   <META HTTP-EQUIV="Bulletin-Text"
         CONTENTS="The reason you should follow the link">

   <META HTTP-EQUIV="Bulletin-Date"
         CONTENTS="Tue, 19 Nov 96 18:30:00 GMT">

   </HEAD>

   When bulletins are attached to a document in this way, they refer to
   the document as whole.

3. Bulletins as permitted attributes of HTML linking elements

   The most common use of bulletins is to allow users to know why they
   should be interested in new links added to static lists or to
   personalized query results.  Four attributes are used to apply a
   bulletin to a linked resource:

     <!ENTITY % bulletin-attrs
         "Bulletin-Text    CDATA       #IMPLIED
          Bulletin-Image   %URL;       #IMPLIED
          Bulletin-Date    %HTTP-date; #IMPLIED
          Bulletin-Expires %HTTP-date; #IMPLIED">

   Every bulletin attached to an HTML linking element must define both
   the Bulletin-Text and the Bulletin-Date.

   The Bulletin-Text attribute defines a text message of up to 1024
   characters in length.  The Bulletin-Image defines the URL of an
   image.  The user agent may display the bulletin text or bulletin
   image as the content of the bulletin for the linked resource.

   The Bulletin-Date and Bulletin-Expires attributes are dates in the
   format defined by the HTTP specification, RFC 1945 [2].  The
   Bulletin-Date represents the date on which the bulletin was posted
   and the Bulletin-Expires attribute represents the date on which the
   bulletin becomes invalid or irrelevant.

   User agents should handle these attributes as defined for the HTTP
   bulletin headers defined in section 2.

   Note: There is no Bulletin-Link attribute.  The target defined by the
   linked element already provides a live link to follow.

4. Elements on which bulletin attributes are permitted

   The current HTML specification [1] defines several elements for
   linking.  Bulletin attributes will be permitted on any linking
   element that refers to an external document rather than an embedded
   multimedia object.

Gardner and Holstege                                            [Page 3]


INTERNET-DRAFT     Bulletins as an Extension to HTML       November 1996

   The primary linking element in HTML is the anchor, or A element.
   Bulletins may be attached to anchors as attributes.  Example:

      <A HREF="http://target.site.com/path/"
         Bulletin-Text="new reason to follow link"
         Bulletin-Date="Tue, 19 Nov 1996 18:30:00 GMT">Link Text</A>

   The HTML specification allows one to define links in the HEAD section
   of the documents using the LINK element.  Bulletins may be attached
   to links as attributes.

      <HEAD>
      ... other stuff...
         <LINK REL=NEXT HREF="tour3.html"
               Bulletin-Text="new reason to follow this link"
               Bulletin-Date="Tue, 19 Nov 1996 18:30:00 GMT">
      </HEAD>

   Client-side image maps, defined in the revised version of HTML known
   as HTML 3.2 [5], provide a different interface to hyperlinks
   to other documents.  Bulletins may be attached to this element as
   well.  Example:

   <MAP NAME="map1">
       ... other AREAs
       <AREA HREF="top10.html" ALT="Top Ten"
             SHAPE=RECT COORDS="276,0,373,28"
             Bulletin-Text="new reason to follow this link"
             Bulletin-Date="Tue, 19 Nov 1996 18:30:00 GMT"
       >
   </MAP>

5. Changes to HTML Public Text

   A DTD for HTML including this change requires the following
   additional definitions:

<!ENTITY % HTTP-Date "CDATA"
    -- A date attribute should be as per HTTP specification (RFC 1945).
       The preferred date format is "Sun, 06 Nov 1994 08:49:37 GMT"
       The current bulletin spec also supports dates in the format:
       "Sun, 06-Nov-94 08:49:37"
    -->

Gardner and Holstege                                            [Page 4]


INTERNET-DRAFT     Bulletins as an Extension to HTML       November 1996

<!--
     Bulletin attributes:

     BULLETIN-DATE: date on which the bulletin was posted to the link
     BULLETIN-TEXT: text of the bulletin attached to the link
     BULLETIN-IMAGE: URL of image associated with bulletin
     BULLETIN-EXPIRES: expiration date of bulletin

     If any bulletin attribute is present, both of BULLETIN-DATE and
     BULLETIN-TEXT must be present.
  -->
<!ENTITY % bulletin-attrs
     "Bulletin-Text    CDATA       #IMPLIED
      Bulletin-Image   %URL;       #IMPLIED
      Bulletin-Date    %HTTP-date; #IMPLIED
      Bulletin-Expires %HTTP-date; #IMPLIED">

   Each linking element in the DTD must also have %bulletin-attrs;
   added to its attribute list.

References

   [1]  Berners-Lee, T., and D. Connolly, "Hypertext Markup Language -
        2.0", RFC 1866, MIT/W3C, November 1995.

   [2]  Berners-Lee, T., Fielding, R., and Frystyk, H., "Hypertext
        Transfer Protocol -- HTTP/1.0", RFC 1945, MIT/LCS, UC Irvine,
        May 1996.

   [3]  Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
        Resource Locators (URL)", RFC 1738, CERN, Xerox PARC,
        University of Minnesota, December 1994.

   [4]  Fielding, R., "Relative Uniform Resource Locators", RFC 1808,
        UC Irvine, June 1995.

   [5]  Raggett, D., "HTML 3.2 Reference Specification", work in
        progress.

Authors' Addresses
    Jim Gardner
    First Floor Software
    444 Castro Street, Suite 200
    Mountain View, CA 94041
    Fax: +1 (415) 968-1193
    EMail: jgardner@firstfloor.com

    Mary Holstege
    First Floor Software
    444 Castro Street, Suite 200
    Mountain View, CA 94041
    Fax: +1 (415) 968-1193
    EMail: holstege@firstfloor.com

Gardner and Holstege                                            [Page 5]