Web report: The Notes mechanism






The "Notes" feature used in our webreports was developed as a first-shot at having interactive reports. The basic idea is that every WR (web report) author can easily embed elements in her / his report, which would appear as links on the page, that allow readers to annotate the report.

Basic Features

Inline annotation
Where ever the page author inserts a <wl:notes> element in her HTML, a link saying "new note" will appear. If a reader presses this link, a dialog window with a form for entering a new note appears. After submiting the note, the page is updated, and a link to the new note will appear above the "new note" link.
te structure
Notes have the following feilds:
    Author The composer of this note. In the future will be the login name, currently entered manually.
    Subject Short phrase, what is this note about?
    Category One of a fixed set of options. What kind of note is this?
    Content The meat. The annotater can place any arbitrary text (or html) here.
    Date When this note was created. Automaticaly generated, uneditable.
    Link One link to another web resource. The rational is that the annotator might want to point to another related document. The annotator inserts the link as text, and it will be displayed as a link.
Inline display
The author of the WR can define which fields will be displayed on the page itself, and to which length (# of charecters). The note subject is a link to a popup window which displays the full note.
Persistant storage
All notes are saved in persistant storage. This means that even if the server is restarted, the notes prevail. Currently, the storage mechanism is a heap of XML files. Eventualy we should have the option of using a database.

Planned Features

Email notification
Users will have an option of "registering" on a page. When they do so, any note placed on the page will be sent to them by e-mail. Replying to such an e-mail will also add a note on the page.
Formating Options
The html generated for notes will include styling attributes (class="X"). Using css the author will be able to define the visaul appearence of a note by its category, and the appearence of the various note fields.
Notes will be dispalyable in table or list format as well.
Expand options
The author will have an option of defining how notes are expanded when the subject link is clicked. Currently, the only option is as a popup window. Two more will be supported:
  1. inline: the current page will be respaced, and the full note will be included in it.
  2. drilldown: the note will apear as a new page within the same window, and will have a link at its top leading back to its parent page.
Sub-notes
A note will have the option of adding notes to it. This will open for creating complex pages just by using notes. Consider this page as an example: Each item here could have been a note (displayed inline), and you - the readers - could annontate it. Also, this would facilitate threaded discussions and hirarchical collections, such as task lists.
Bib-notes, task-notes, etc.
Sub classes of the note element will offer additional fields, specific to a common use, such as creating task lists or bibilographical reviews.
User identification
Users will have to log in to use notes. The user login name will be used as the value for the "author" field.
Notes editing and managment
Readers will have the option of re-editing notes that they entered. Both readers and the report owner will have the option of deleting unwanted notes.
Export
Notes from a report will be downloadable in some sensible format.

Usage

Notes use a software infrustructure developed for weblab's webreports. This infrustructure is based on Java, JSP, and Jakarta (struts) template tags.

You can find links to all those technologies here.

In any case, we haven't handled the issue of packaging and distribution yet. So, for now, contact me to either recieve step by step iinstructions for setting up your server or get publish rights on ours.

To create a page that uses notes, you need to:

  1. Get access to a webreports server, i.e. a jsp server with the weblabs.jar, jakarta taglibs, weblabs taglib, and a few stylesheets and common jsps.

  2. Use the webreport template. This means using the Jakarta template tag, and "put"ing the values in the right places
    ..or just copy-paste a sample report and edit it.

  3. Insert <wl:notes id="n" /> where ever you want a note.