A proposal for marking dated sections in HTML

Because of limits in the use of INS, DEL and proposed (on the www-html
list) DATED and UPD (updated) elements, I am suggesting the following
additions to the HTML draft and DTD:

<!ENTITY % revattrs
 "revision      CDATA      #IMPLIED  -- indicates revision type, if any --
  cite              %URL         #IMPLIED  -- URL ptng to reason for rev --
  datetime      CDATA      #IMPLIED  -- ISO date/time of revision --
  expires        CDATA      #IMPLIED  -- ISO date of expiration --
 ">

<!ENTITY % attrs "%coreattrs %i18n %revattrs %events"

Or as an alternative if it is not desirable to add revision attributes to 
every element:

<!ENTITY % attrs "%coreattrs %i18n %events"
<!ATTLIST SPAN
  %attrs
  %revsttrs
  >
<!ATTLIST DIV
  %attrs
  %align
  %revsttrs
  >

Such changes to the DTD allow authors to note changes and revisions made to 
documents in a way that is much more flexible than using INS and DEL. (Note 
that INS and DEL elements should not be deprecated; they are useful for 
marking up legal documents and limited editorial changes.)

An additional revision attribute might be added to indicate the number of 
revisions made, although this is not necessary.

Some uses of the revision attributes:

<span revision=correction datetime=..> .. </span>

  Indicates a correction (to a spelling error, a wrong date or place, 
  etc.) was made.

<span revision=changed datetime=..> ..</span>

  Indicates a change or update in the text or markup, but not necessarily a
  correction of an error.

<span revision=inserted datetime=..> ..</span>
<span revision=deleted expires=..> ..</span>

  Equivalent of INS or DEL, though not necessarily marked up.

<span revision=dated datetime=.. expires=..> .. </span>

  Indicates the content is most useful between the given dates. Can be used
  with maintenance utilities to point out sections in a document that are
  outdated.  There are situations when it is not desireable to put an 
  expiration date on the entire document.

By default, these attributes would have no effect on markup unless
specified in the style sheet.  (Although how to indicate a citation and 
provide a link is worth pursuing. When 'cite' is used it should be treated 
the same way as when it is used in INS and DEL.)

Some possible CSS pseudo-classes for dated markup:

    span:unchaned { } - no revision markup
    span:revised { }   - all content with a marked revision
                                   (the revision= attribute is set; ignores dates)
    span:active { }     - the content is within datetime and expires
    span:inactive { }  - the content is not within the active date
                                   (either prior to date or inactive)
    span:prior { }      - the content is prior to the datetime given
    span:expired { }  - the content is after the expiration date

'prior' and 'expired' psuedo-classes take precedence over 'inactive', and 
'active', 'inactive', 'prior' and 'expired' all take precedence over 
'revised'.

By altering the markup, authors may emphasize sections of the document 
based on the current date (ideally based on the Date: header returned by 
the server).  For example,

  <head>
  <style type="text/css">
    p:active { color: red; }
    p:expired ( font-style: italics; }
  </style>
    ...
  <body>
  <p revision=dated datetime="1997-12-01" expires="1997-12-14">
    Registration for the conference is between December 1st and December
    14th, 1997.</p>

Script attributes that take advantage of dated and revised markup might
be added as well. Perhaps

    onrevised   %Script #IMPLIED
    oninactive  %Script #IMPLIED
    onactive     %Script #IMPLIED
    onprior      %Script #IMPLIED
    onexpired  %Script #IMPLIED


Comments and further discussion are welcome.

Rob Rothenburg
---
Robert Rothenburg Walking-Owl (wlkngowl@unix.asb.com)
(Se habla PGP.) http://www.wusb.org/mutant/

Received on Wednesday, 10 September 1997 19:52:57 UTC