Re: Generalizing Banners

From: Roy Fielding <fielding@beach.w3.org>
Date: Sun, 20 Aug 95 23:20:08 EDT

This notion of banner is along the same lines as our discussion
about HTML link semantics back in May.  I think this is a good
time to revisit some of those ideas.

=====================================
Presentation Style and Link Semantics
=====================================

There are three issues here regarding hypertext links
(applicable to LINKs, A HREF's, and form INPUT): 

1) presentation of the anchor/link prior to traversal;
2) when the link should be traversed;
3) presentation of the result after traversing the link.

The first is not relevant to this discussion, should involve stylesheets,
but is typically hardcoded into each browser.

The second and third issues define the link semantics.

(2) Temporal semantics     -- when should the action take place    (WHEN)
       UserSelect (as is the case for anchors and FORMS)  [default]
       AutoEntry  (as is the case for EMBED or IMG)
       AutoExit   (an interesting derivative)
       Static     (only used external to the user process)

(3) Presentation semantics -- where should the results be "placed" (PRESENT)
       Replace  [default]
       Clone
       Embed
       Popup
       Alongside or Left and Right
       Split     or Above and Below

=====================================

So, let's consider how these can be applied

>Let me give you a more specific example.  Imagine a compound document
>composed like this:
>
>|-------------------|
>|    |              |
>|Img1|  Text        |
>|Img2|  Viewing     |
>|Img3|  Area        |
>|Img4|              |
>|Img5|              |
>|Img6|              |
>|Img7|              |
>|-------------------|
>
>Imagine clicking on Img1 and having information appear about that
>image (or the subject of that image) in the Text viewing area.
>The Left window remains the same while the right one changes.
>Now click on Img2 and the right screen changes again to show
>different information.  Previously in HTML you would have
>to reload an entirely new document with all the images and
>everything to get this functionality.

Left Side:
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Doc1">
       <IMG src="Img1"></A>
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Doc2">
       <IMG src="Img2"></A>
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Doc3">
       <IMG src="Img3"></A>
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Doc4">
       <IMG src="Img4"></A>
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Doc5">
       <IMG src="Img5"></A>
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Doc6">
       <IMG src="Img6"></A>
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Doc7">
       <IMG src="Img7"></A>

Right side:
    <LINK REL="Navigator" PRESENT="Left" WHEN="AutoEntry" HREF="Guide">


[I am explicitly including the default
 WHEN="UserSelect" for explanatory reasons only]

>Imagine something like this:
>
>|-------------------|
>|   Search form     |
>|-------------------|
>|                   |
>|                   |
>|   Results         |
>|                   |
>|-------------------|
>
>The top window allows the user to enter search terms while
>the bottom window displays the results.  You can enter
>as many searches as you like without ever having to leave
>the original search page.

Top:
    <INPUT TYPE=SUBMIT PRESENT="Below" WHEN="UserSelect">

Bottom:
    <LINK REL="Navigator" PRESENT="Above" WHEN="AutoEntry" HREF="MyForm">

>Now lets get more complicated.
>
>|-------------------|
>| Cell 1 | Cell 2   |
>|-------------------|
>|                   |
>|                   |
>|   Cell 3          |
>|                   |
>|-------------------|
>
>In cell one is a list of species, when you select a species a
>list of animals within the species appears in Cell 2.  When you
>select an animal, information and pictures about the animal 
>appear in cell 3.  The user can easily navigate between 
>species and animals without the pain of switching lots of screens, etc.

Ah, three way dependency -- that's a little trickier.  Or is it?

Cell 1:
    <A REV="Navigator" PRESENT="Right" WHEN="UserSelect" HREF="Species1">
    ...

Cell 2:
    <LINK REL="Navigator" PRESENT="Left" WHEN="AutoEntry" HREF="Cell1">

    <A REV="Navigator" PRESENT="Below" WHEN="UserSelect" HREF="Animal1">
    ...

Cell 3:
    <LINK REL="Navigator" PRESENT="Above" WHEN="AutoEntry" HREF="Cell1">
    <LINK REL="Navigator" PRESENT="Above" WHEN="AutoEntry" HREF="Cell2">

    I am an animal, hear me <A href="roar.au" PRESENT="PopUp">roar</A>.


One thing to note about LINK is that it is independent of HTML.
If the contents are retieved via HTTP, then the link semantics can
be given in Link: headers.

The other nice thing about link relationships is that they are
not (yet) bogged down by current practice.


 ....Roy T. Fielding  Department of ICS, University of California, Irvine USA
                      Visiting Scholar, MIT/LCS + World-Wide Web Consortium
                      (fielding@w3.org)                (fielding@ics.uci.edu)


Follow-ups