Senior Online
Telematics DE4002

REPORT D6.1.2 draft 2

Control Transfer between
Senior Online Groupware and Portal

Written by:
Jacob Palme

Contractual Date of Delivery: 1 February 2000
Last revision: 00-01-05 18.49
Actual Date of Delivery: %%%%%%
Nature of the Deliverable: SP**
Deliverable Type: LI*

Workpackage WP6
Task 6.2.1
Part of Deliverable 6.2
Responsibility: HFRC

*Type: PU-public, LI-limited, RP-restricted
**Nature: PR-Prototype, RE-Report, SP-Specification, TO-Tool, OT-Other

CONTENTS
1	Executive summary	4
2	Requirements	4
5	Architecture	4
6	Introduction to operations	5
6.1	Overview of the operations	5
6.2	Attributes of the operations:	6
7	Main Principle of Operation	7
8	Descriptions of the Operations	7
8.1	groupware-login	7
8.1.1	Introduction	7
8.1.2	Name and value of the Submit button	7
8.1.3	Fields and values sent with the groupware-login operation	8
8.1.4	Example of what is sent	8
8.1.5	Examples of HTML documents which will cause the user's browser to send the above HTTP command:	10
8.2	portal-login	12
8.2.1	Introduction	12
8.2.2	Name and value of the Submit button	13
8.2.3	Fields and values sent with the portal-login operation	13
8.2.4	Example of what is sent	14
8.2.5	Examples of HTML documents which will cause the user's browser to send the above HTTP command:	15
8.3	groupware-register-user	15
8.3.1	Introduction	15
8.3.2	Visual rendering of the HTML form	16
8.3.3	An example of what might be transmitted when the form above is sent:	16
8.3.4	The HTML of this form can be for example:	17
8.3.5	Response to groupware-register-user	18
8.4	portal-register-user	20
8.4.1	Introduction	20
8.4.2	Visual rendering of the HTML form	21
8.4.3	An example of what might be transmitted when the form above is sent:	21
8.4.4	The HTML of this form can be for example:	22
8.4.5	Response to portal-register-user and portal-register-forum	24
8.5	portal-register-forum	25
8.5.1	Introduction	25
8.5.2	Visual rendering of the HTML form	26
8.5.3	An example of what might be transmitted when the form above is sent:	26
8.5.4	The HTML of this form can be for example:	27
8.5.5	Response to portal-register-forum	28
8.6	groupware-search	29
8.6.1	Introduction	29
8.6.2	Visual rendering of the HTML form	29
8.6.3	An example of what might be transmitted when the form above is sent:	29
8.6.4	The HTML of this form can be for example:	29
8.7	portal-search	29
8.7.1	Introduction	29
8.7.2	Visual rendering of the HTML form	29
8.7.3	An example of what might be transmitted when the form above is sent:	30
8.7.4	The HTML of this form can be for example:	30
8.7.5	Response to the portal search operation	33
9	Implementation plan	35
10	References	35

1	
 Executive summary
SeniorOnline provides two kinds of servers, groupware servers and portal servers. The functionality of these servers is described in more detail in the SeniorOnline Functional Specification [11].
This document describes how transfer of control will take place between portal and groupware. A user might start using the portal, and then need to be transferred to the groupware, or the reverse. This transfer should be simple and user-friendly.
Important is the list of attributes for the operations, they are listed in the table in section 6.2 on page 6.
2	Requirements
This specification is based on the following user requirements:
3	Users should not have to type in their names and passwords when transferring from portal to groupware or the reverse.
4	Transfer from portal to groupware should be accomplished by a simple click on a suitable button or link in the web page.
5	Architecture

P1 = Groupware user Interface Protocol
P2 = Portal Protocol, between Groupware and Directory system
P3 = Groupware Protocol, between two groupware servers
P4 = Directory system User Interface Protocol
6	Introduction to operations
6.1	Overview of the operations
The transfer of control between groupware and portal needs four operations as shown in this table:
	From Portal to Groupware	From Groupware to Portal	
User is already registered in the target system	groupware-login	portal-login	
User is not yet registered in the target system	groupware-register-user	portal-register-user	
The following operations are also specified here, since they can easily be implemented in similar manner to the above operations:	
	From Portal to Groupware	From Groupware to Portal	
Registering a forum in the portal can be done in a similar manner to registering a user		portal-register-forum	
Search operations can be done either by a user, from a web page, or from a groupware. When a user makes the search, the result is delivered in HTML format, when the groupware makes the search, the result is delivered in XML format. 	groupware-search	portal-search	
6.2	Attributes of the operations:
	Operation 	groupware-login	portal-
login	groupware-register-user	portal-register-user	portal-register-forum	groupware-search	portal-search	
Attribute: 	Format 								
In the HTTP header									
Accept-Language in HTTP header	List of languages	Languages preferred in response	Languages preferred in response	Languages preferred by this user	Languages preferred by this user	Languages allowed in this forum	Find only objects with these languages	
URL in HTTP POST command	end part of an URL	Object to access	?Object to access?	No	No	No	attributes using x-www-form-urlencoded format.	
In the HTTP body									
command	Enumerated	GROUPWARELOGIN | GROUPWARELOGOUT	PORTALWARELOGIN | PORTALLOGOUT	GROUPWAREUSERREGISTRY	PORTALUSERREGISTRY	PORTALFORUMREGISTRY	The body is empty, parameters are transmitted in the URL string using x-www-form-urlencoded format.	
Submit button name, can have ".x" or ".y" added at the end when sent by graphic buttons, see section 8.1.4.1 on page 9	Enumerated	EMAIL | FORUM | CHAT | DEMO | LOCATION	MAIN | FORUMSEARCH | USERSEARCH | DEMO | LOCATION	GROUPWAREREGISTERUSER | GROUPWAREREGISTERUSER | GROUPWAREDELETEUSER	PORTALREGISTERUSER | PORTALREGISTERUSER | PORTALDELETEUSER	REGISTERFORUM | MODIFYFORUM | DELETEFORUM		
group-loginid	String	Yes	Yes	Yes	Yes	No		
portal-loginid (can be same as group-loginid)	String	No	No	Yes	Yes	No		
group-password	String	Yes	Yes	Yes	Yes	No		
portal-password (can be same as group-password)	String	No	No	Yes	Yes	No		
name	String	No	No	Yes	Yes	Yes		
description	Text with Content-Type and charset	No	No	Optional	Optional	Optional		
e-mail-address	RFC 822	No	No	Optional	Optional	Optional		
URL (of entry in the groupware for this object)	URL	No	No	No	Yes	Yes		
phone	String	No	No	Optional	Optional	Optional		
fax	String	No	No	Optional	Optional	Optional		
postal-address	String	No	No	Optional	Optional	Optional		
super-forum	URL	No	No	No	No	Optional		
result-format	"HTML" | "XML"	No	No	No	Yes	Yes		
Response									
	HTTP body	In HTML format only.	In either HTML or XML format.	
7	Main Principle of Operation
The main principle is that these operations are performed by using the HTTP POST operation as described in chapter 9.5 of the HTTP specification in RFC 2616 [4]. Note that such operations are performed by ordinary web browsers, when the user clicks on a SUBMIT button as described in chapter 17.13 of the HTML 4.0 specification [6]. This is essential, since the user need only click on a button in a web page shown to the user, to get immediately transferred to the target module.
Clicking on a SUBMIT button can transmit form data in two formats according to the  HTML specifications [6] section 17.3 and 17.13.4,
enctype=application/x-www-form-urlencoded and
enctype=multipart/form-data
Of these two formats, Senior Online login and register operations uses the multipart/form-data, since the application/x-www-form-urlencoded format may show the password in the address field on the web browser, and passwords should of course never be shown in clear on the screen. The Senior Online search operations, which use no password, do however use the application/x-www-form-urlencoded form.
8	Descriptions of the Operations
8.1	groupware-login
8.1.1	Introduction
The groupware-login operation is used when the portal transfers a user to a groupware, where the user is already registered as a user in this groupware. The operation can also indicate a target in the groupware, such as a general e-mail area, a general forum area, a general chat area, or directly to a particular forum, chat, thread or message in the groupware.
This operation is used both when the user is not yet logged in, and when the user is already logged in (since the portal cannot always know whether the user is logged in to the groupware or not). If the user is already logged in, this operation is anyway used in order to transfer the user to the groupware, and to a specific target location within the groupware.
8.1.2	Name and value of the Submit button
In order to allow the user interface to provide different submit buttons for E-mail, Forums, Chats and a specific location in the groupware, the submit button can look like this:
<input type="submit" name="EMAIL" value="E-mail">	To get to a general area for writing and reading e-mail.	
<input type="submit" name=FORUM" value="Forums">	To get to a general area for getting to different forums.	
<input type="submit" name=CHAT" value="Chats">	To get to a general area for getting to different chats.	
<input type="submit" name=DEMO" value="Groupware demo">	To get to a demo of the groupware functionalities.	
<input type="submit" name=LOCATION" value="This object">	To get to the specific object (forum, chat, thread, user or message) to which the URL in the action refers.	
Note 1: that the content of the 'value=' field in the '<input>' commands above is sent but ignored by the receiving groupware. This is necessary, because this content is both shown to the user and sent to the server. And what is shown to the user can be in multiple languages, but what is sent to the server must be in a standard format which the server can understand.
Note 2: Every forum, chat, thread, user and message in the groupware has a specific URL. This URL is used as the target of the submission, if the user wants to get directly to a specific object in the groupware after login. For example:
<form method="post" action="http://seniormail.nu/tropical-flowers"
enctype="multipart/form-data" lang="en"
title="Senior Online Groupware Login">
... ... snip ... ...
<input type="submit" name=LOCATION" value="This forum">
Indicates that the user wants to get directly to the the specific forum, whose URL is http://seniormail.nu/tropical-flowers.
8.1.3	Fields and values sent with the groupware-login operation
The following fields and values are sent with the groupware-login operation. The fields and values can be sent in any order, not necessarily in the order shown below:
Field name	Value	Description	
command	GROUPWARELOGIN | GROUPWARELOGOUT	Operation to be performed	
EMAIL | FORUM | CHAT | LOCATION | DEMO	Value is ignored by the server, since it can be in any language.	Target within the groupware as described in section “Name and value of the Submit button” above on page 7.	
group-loginid	Any text string	The login name, in the groupware, for the user who is to log in to the groupware.	
group-password	Any text string	The password for this user in the groupware.	
8.1.4	Example of what is sent
Assuming the following data for the user:
group-loginid	Mary-Smith	
group-password	abc123	
Groupware URL	http://seniormail.nu/	
Preferred language	en	
Groupware service requested	e-mail	
The groupware-login operation will send the following HTTP command to the web address “http://seniormail.nu/”:

POST / HTTP/1.1
Host: seniormail.nu
Accept-Language: en
Connection: Keep-Alive
Referer: http://www.senioronline.org/
Content-type: multipart/form-data;
     boundary=-----------------------------15445474856290
Content-length: 564  	HTTP header, may also contain what a web browser usually puts here, like Accet, User-Agent, UA-OS and Cookie headers.
	
	A blank line for end of heading.	
-----------------------------15445474856290
Content-Disposition: form-data; name="command"  
  
GROUPWARELOGIN	Indicates that the user wants to LOGIN in the groupware server. If the user already is logged in, the user gets to his/her ongoing session.	
-----------------------------15445474856290
Content-Disposition: form-data; name="EMAIL"  
  
E-mail	This is the submit button. Its content is further described in the section “Name and value of the Submit button” above on page 7.	
-----------------------------15445474856290
Content-Disposition: form-data; name="group-loginid"

Mary-Smith	The login name for this user.	
-----------------------------15445474856290
Content-Disposition: form-data; name="group-password"

abc123	The password.	
-----------------------------15445474856290--	End of the login operation.	
8.1.4.1	Note on graphic buttons
A graphic button may in HTML code look like this:
<input type=image src="chat.gif" border=0 name="CHAT" value="CHAT" height=25 width=116><br>
And be shown to a user like this:

In the example in section “8.1.4 Example of what is sent” on page 8, is included one body part corresponding to the actual button clicked:
-----------------------------15445474856290
Content-Disposition: form-data; name="EMAIL"  
  
E-mail	This is the submit button. Its content is further described in the section “Name and value of the Submit button” above on page 7.	
If this button is a graphic button, then instead the following two body parts will be sent:
-----------------------------15445474856290
Content-Disposition: form-data; name="EMAIL.x"  
  
12	This is the submit button. Its content is further described in the section “Name and value of the Submit button” above on page 7.	
-----------------------------15445474856290
Content-Disposition: form-data; name="EMAIL.y"  
  
15	This is the submit button. Its content is further described in the section “Name and value of the Submit button” above on page 7.	
Where 12 and 15 are the co-ordinates where the user clicked on the button. So the groupware server must be able to handle body parts with “name="EMAIL.x"” in the same way as with “name="EMAIL"”. Perhaps the code could be written so that any “.x” and “.y” is removed from any “name” field before interpreting the field?
8.1.5	Examples of HTML documents which will cause the user's browser to send the above HTTP command:
8.1.5.1	Example using open fields:
<html>
<head>
<title>Login to Senior Online Groupware E-mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<font size="5">Login to Senior Online Groupware E-mail</font> 
<form method="post" action="http://seniormail.nu/"
enctype="multipart/form-data" lang="en"
title="Senior Online Groupware Login">
  Command 
  <select name="command">
    <option value="GROUPWARELOGIN" selected>Login</option>
    <option value="GROUPWARELOGOUT">Logout</option>
  </select>
  <br>
  User ID: 
  <input type="text" name="group-loginid" size="20" maxlength="80">
  User Password: 
  <input type="password" name="password" size="20" maxlength="80">
  <input type="submit" name="EMAIL" value="E-mail">
</form>
</body>
</html>
8.1.5.2	This might look like this in the browser window:

Note: In actual usage, command would probably be a hidden field.
8.1.5.3	Example using hidden fields:
When the user has logged in to the portal, the server knows who the user is, and can then put the user name into hidden fields.
<form method="post" action="http://seniormail.nu/"
enctype="multipart/form-data" lang="en"
title="Senior Online Groupware Login">
  <p> 
    <input type="hidden" name="command" value="GROUPWARELOGIN">
    <input type="hidden" name="group-loginid" value="Mary-Smith">
    <input type="hidden" name="password" value="abc123">
    &nbsp;<input type="submit" name="CHAT" value="Chat">
    &nbsp;<input type="submit" name="EMAIL" value="E-mail">
    &nbsp;<input type="submit" name="DEMO" value="Demo">
  </p>
  </form>
8.1.5.3.1	This might look like this in the browser window:

8.1.5.4	Example using hidden fields and graphic buttons:
<form method="post" action="http://seniormail.nu/"
enctype="multipart/form-data" lang="en"
title="Senior Online Groupware Login">
<input type="hidden" name="command" value="GROUPWARELOGIN">
<input type="hidden" name="group-loginid" value="mary-smith">
<input type="hidden" name="group-password" value="abc123">
<input type=image src="chat.gif" border=0 name="CHAT" value="CHAT" height=25 width=116><br>
<input type=image src="e-mail.gif" border=0 name="EMAIL" value="E-MAIL" height=25 width=116><br>
<input type=image src="demo.gif" border=0 name="DEMO" value="DEMO" height=25 width=116>
</form>
8.1.5.4.1	This might look like this in the browser window:

8.1.5.5	Example when a user has found a particular forum in the portal directory of portals, and wants to get to that portal:
<H1><font size="4">Forums about tropical flowers:</font></h1>
<table width="100%" border="0" cellspacing="3" cellpadding="0">
<tr><td width="8"><img src="small-ball.gif" width="6" height="8"></td>
<td><form method="post"
action="http://seniormail.nu/tropical-flowers/" enctype="multipart/form-data" lang="en"
title="Senior Online Groupware Login">
<a href="http://www.senioronline.org/forum?tropical-flowers">
  Tropical flowers general forum</a> 
  <input type="hidden" name="command" value="GROUPWARELOGIN">
  <input type="hidden" name="group-loginid" value="Mary-Smith">
  <input type="hidden" name="group-password" value="abc123">
  <input type="submit" name="LOCATION" value="Join">
</form></td></tr>
<tr><td width="8"><img src="small-ball.gif" width="6" height="8"></td>
<td><form method="post"
action="http://seniormail.nu/alligator-weed-forum/"
enctype="multipart/form-data" lang="en"
title="Senior Online Groupware Login">
<a href="http://www.senioronline.org/forum?alligator-weed-forum">
  Alligator weed forum</a> 
  <input type="hidden" name="command" value="GROUPWARELOGIN">
  <input type="hidden" name="group-loginid" value="Mary-Smith">
  <input type="hidden" name="group-password" value="abc123">
  <input type="submit" name="LOCATION" value="Join">
</form></td></tr>
<tr><td width="8"><img src="small-ball.gif" width="6" height="8"></td>
<td><form method="post"
action="http://seniormail.nu/oyster-plant-forum/"
enctype="multipart/form-data" lang="en"
title="Senior Online Groupware Login">
<a href="http://www.senioronline.org/forum?oyster-plant-forum">
  Oyster plant forum</a> 
  <input type="hidden" name="command" value="GROUPWARELOGIN">
  <input type="hidden" name="group-loginid" value="Mary-Smith">
  <input type="hidden" name="group-password" value="abc123">
  <input type="submit" name="LOCATION" value="Join">
</form></td></tr>
</table>
</body></html>
8.1.5.5.1	This might look like this to a user viewing a web page:

8.2	portal-login
8.2.1	Introduction
The portal-login operation is used when the groupware transfers a user to the portal, where the user is already registered as a user in the portal. The operation can also indicate a target in the portal, such as the forum directory or the user directory directly to a particular entry in the portal.
This operation is used both when the user is not yet logged in, and when the user is already logged in (since the groupware cannot always know whether the user is logged in to the portal or not). If the user is already logged in, this operation is anyway used in order to transfer the user to the groupware, and to a specific target location within the groupware.
8.2.2	Name and value of the Submit button
In order to allow the user interface to provide different submit buttons for E-mail, Forums, Chats and a specific location in the groupware, the submit button can look like this:
<input type="submit" name="MAIN" value="Portal directory">	To get to the main entry point of the portal.	
<input type="submit" name="FORUMSEARCH" value="Find forum">	To get to a general area for writing and reading e-mail.	
<input type="submit" name=CHATSEARCH" value="Find chat">	To get to a general area for getting to different forums.	
<input type="submit" name=USERSEARCH" value="Find user">	To get to a general area for getting to different chats.	
<input type="submit" name=DEMO" value="Portal demo">	To get to a demo of the groupware functionalities.	
<input type="submit" name=LOCATION" value="This object">	To get to the specific object (like the directory entry for a particular user) to which the URL in the action refers.	
Note 1: that the content of the 'value=' field in the '<input>' commands above is sent but ignored by the receiving groupware. This is necessary, because this content is both shown to the user and sent to the server. And what is shown to the user can be in multiple languages, but what is sent to the server must be in a standard format which the server can understand.
8.2.3	Fields and values sent with the portal-login operation
The following fields and values are sent with the groupware-login operation. The fields and values can be sent in any order, not necessarily in the order shown below:
Field name	Value	Description	
command	PORTALLOGIN | PORTALLOGOUT 	Operation to be performed	
MAIN | FORUMSEARCH | USERSEARCH | CHATSEARCH | LOCATION | DEMO	Value is ignored by the server, since it can be in any language.	Target within the portal as described in section “Name and value of the Submit button” above on page 7.	
portal-loginid	Any text string	The login name, in the portal, for the user who is to log in to the portal.	
portal-password	Any text string	The password for this user in the portal.	
8.2.4	Example of what is sent
Assuming the following data for the user:
login id in the groupware	Mary-Smith	
Password in the groupware	abc123	
Portal URL	http://www.senioronline.org/	
Preferred language	en	
Portal service requested	e-mail	
The portal-login operation will send the following HTTP command to the web address “http://www.senioronline.org/”:
POST / HTTP/1.1
Host: www.senioronline.org
Accept-Language: en
Connection: Keep-Alive
Referer: http://www.seniormail.nu/
Content-type: multipart/form-data;
     boundary=-----------------------------15445474856290
Content-length: 564  	HTTP header, may also contain what a web browser usually puts here, like Accet, User-Agent, UA-OS and Cookie headers.
	
	A blank line for end of heading.	
-----------------------------15445474856290
Content-Disposition: form-data; name="command"  
  
PORTALLOGIN	Indicates that the user wants to LOGIN in the portal server. If the user already is logged in, the user gets to his/her ongoing session.	
-----------------------------15445474856290
Content-Disposition: form-data; name="USERSEARCH"  
  
Go to portal	This is the submit button. Its content is further described in the section “Name and value of the Submit button” above on page 7.	
-----------------------------15445474856290
Content-Disposition: form-data; name="portal-loginid"

Mary-Smith	The login name for this user.	
-----------------------------15445474856290
Content-Disposition: form-data; name="portal-password"

abc123	The password.	
-----------------------------15445474856290--	End of the login operation.	
8.2.4.1	Note on graphic buttons
See the note 8.1.4.1 Note on graphic buttons on page 9. This note is as valid for portal-login as for groupware login.
8.2.5	Examples of HTML documents which will cause the user's browser to send the above HTTP command:
8.2.5.1	Example using mostly open fields:
<html>
<head>
<title>Login to Senior Online Portal E-mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<font size="5">Login to Senior Online Portal E-mail</font> 
<form method="post" action="http://www.senioronline.org/"
enctype="multipart/form-data" lang="en"
title="Senior Online Portal Login">
  <input type="hidden" name="command" value="PORTALLOGIN">
  User ID: 
  <input type="text" name="portal-loginid" size="20" maxlength="80">
  User Password: 
  <input type="password" name="portal-password" size="20" maxlength="80">
  <input type="submit" name="USERSEARCH" value="E-mail">
</form>
</body>
</html>
8.2.5.2	This might look like this in the browser window:

8.3	groupware-register-user
8.3.1	Introduction
The groupware-register-user operation is used to register a new user in the groupware. It can also be used to change the registration of an existing user, provided that you know the password in the groupware for this user.
The operation has the same format as will be transmitted by a HTML form.
8.3.2	Visual rendering of the HTML form

8.3.3	An example of what might be transmitted when the form above is sent:
POST / HTTP/1.1  
Host: www.senioronline.org  
Accept: text/html, text/plain
Accept-Language: en, it  
Connection: Keep-Alive  
Content-type: multipart/form-data; boundary=--------------------
-------469452457528980  

-----------------------------469452457528980  
Content-Disposition: form-data; name="command"  
  
GROUPWAREREGISTERUSER  
-----------------------------469452457528980  
Content-Disposition: form-data; name="portal-loginid"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="portal- password"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="group-loginid"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="group- password"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="name"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="description"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="e-mail-address"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="phone"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="fax"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="postal-address"  

-----------------------------469452457528980  
Content-Disposition: form-data; name="result-format"  
  
HTML  
-----------------------------469452457528980  
Content-Disposition: form-data; name="GROUPWAREREGISTERUSER"  
  
Register user  
-----------------------------469452457528980--  
8.3.4	The HTML of this form can be for example:
<html>
<head>
<title>Register a user in the Senior Online Portal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<p><font size="5">Register user in the Senior Online Groupware</font></p>
This form can be used to register a new user, or to modify the registration of 
an existing user, in the Senior Online Portal directory of users. 
<form method="post" action="http://www.senioronline.org/"
enctype="multipart/form-data" lang="en"
title="Senior Online Portal Login">
  <p>
    <input type="hidden" name="command" value="GROUPWAREREGISTERUSER">
    Portal User ID: 
    <input type="text" name="portal-loginid" size="30" maxlength="80">
    Portal User Password: 
    <input type="password" name="portal- password" size="20" maxlength="80">
  </p>
  <p> Groupware User ID: 
    <input type="text" name="group-loginid" size="30" maxlength="80">
    Groupware User Password: 
    <input type="password" name="group- password" size="20" maxlength="80">
  </p>
  <p> User name: 
    <input type="text" name="name" size="50" maxlength="80">
  </p>
  <p>User personal description:</p>
  <p> 
    <textarea name="description" cols="60" rows="4"></textarea>
  </p>
  <p>User e-mail address (if not specified, the groupware will give you an e-mail-address): 
    <input type="text" name="e-mail-address" size="50" maxlength="80">
  </p>
  <p>User phone number: 
    <input type="text" name="phone" size="30" maxlength="40">
  </p>
  <p>User fax number: 
    <input type="text" name="fax" size="30" maxlength="40">
  </p>
  <p>User postal address:</p>
  <p> 
    <textarea name="postal-address" cols="60" rows="4"></textarea>
  </p>
  <p>Result wanted in the format: 
    <input type="radio" name="result-format" value="HTML" checked>
    HTML&nbsp; 
    <input type="radio" name="result-format" value="XML">
    XML </p>
  <p> 
    <input type="submit" name="GROUPWAREREGISTERUSER" value="Register user">
    <input type="submit" name="GROUPWAREMODIFYUSER" value="Modify user">
    <input type="submit" name="GROUPWAREDELETEUSER" value="Delete user">
  </p>
</form>
</body>
</html>
8.3.5	Response to groupware-register-user
The response format when the request specified result-format=HTML is not specified in this specification. However, when the request specified result-format=XML, then the response should have the format specified by the following XML DTD:
Only the XML variant is specified here, not the HTML response format.
8.3.5.1	The XML Resource Type Declaration for this XML resource is:
Explanation	Format of information sent (http://senioronline.org/v1.0/sol-groupware-register-response.dtd)	
An error message or a number of matching resources are returned.	<!ELEMENT sol-groupware-register-response  
(error | success)>	
	<!ELEMENT error (#PCDATA)>	
	<!ATTLIST error	
Explanation why this was not accepted.	  refuse-reason ( bad-syntax | 
  access-control | login-id-already-in-use | e-mail-address-already-in-use | other ) 'access-control'	
End of XML attribute list	>	
Information about a successful result	<!ELEMENT success EMPTY>	
	<!ATTLIST success	
An optional URL in the groupware for the registered user.	url CDATA #IMPLIED	
E-mail address for this user, if provided by the groupware. Only if no e-mail address was given in the request.	e-mail-address CDATA #IMPLIED	
End of XML attribute list	>	
8.3.5.2	Example 1 (positive sol-search response):
Explanation	Information sent	
HTTP response header	HTTP/1.1 200 OK
Content-Length: 569
Content-Type: application/xml
Server: SeniorOnline 1.0
Date: 7 July 1999 19:58:23 +0200	
A blank line to indicate the end of the HTTP header		
Identifies that this is in XML format	<?xml version="1.0" standalone="no"?>	
References the Resource Type Declaration (DTD) file specifying the syntax for this XML resource.	<!DOCTYPE sol-groupware-register-response 
SYSTEM "http://seinoronline.org/v1.0/sol-groupware-register-response.dtd">	
	<sol-groupware-register-response>	
	<success 
url="http://sol.dsv.su.se/mary-smith/"	
	e-mail-address="mary-smith@sol.dsv.su.se"/>	
	</sol-groupware-register-response>	
8.3.5.3	Example 2 (negative sol-search response):
Explanation	Information sent	
HTTP response header.	HTTP/1.1 200 OK
Content-Length: 569
Content-Type: application/xml
Server: SeniorOnline 1.0
Date: 7 July 1999 19:58:23 +0200	
A blank line to indicate the end of the HTTP header.		
References the Resource Type Declaration (DTD) file specifying the syntax for this XML resource.	<!DOCTYPE sol-groupware-register-response
 SYSTEM "http://seinoronline.org/v1.0/sol-groupware-register-response.dtd">	
	<sol-groupware-register-response>	
Machine-readable explanation of error	<error 
refuse-reason="login-id-already-in-use">	
Human-readable explanation of error	Someone else is already using that loginid, please chose another loginid.	
	</error>	
	</sol-groupware-register-response>	
8.4	portal-register-user
8.4.1	Introduction
The portal-register-user operation is used to register a new user in the portal directory. It can also be used to change the registration of an existing user, provided that you know the password in the portal of this user.
The operation has the same format as will be transmitted by a HTML form.
8.4.2	Visual rendering of the HTML form

8.4.3	An example of what might be transmitted when the form above is sent:
POST / HTTP/1.1  
Host: www.senioronline.org  
Accept: text/html, multipart/related, application/xml
Accept-Language: en, sv, de  
Connection: Keep-Alive  
Content-type: multipart/form-data; boundary=---------------
-------168071508944249  
Extension: Security/Remote-Passphrase  
Content-length: 1241  

-----------------------------168071508944249  
Content-Disposition: form-data; name="command"  
  
PORTALUSERREGISTRY
-----------------------------168071508944249  
Content-Disposition: form-data; name="portal-loginid"  
  
Mary-Smith  
-----------------------------168071508944249  
Content-Disposition: form-data; name="portal-password"  
  
abc123  
-----------------------------168071508944249  
Content-Disposition: form-data; name="group-loginid"  
  
Mary-Smith  
-----------------------------168071508944249  
Content-Disposition: form-data; name="group-password"  
  
abc123  
-----------------------------168071508944249  
Content-Disposition: form-data; name="name"  
  
Mary Smith  
-----------------------------168071508944249  
Content-Disposition: form-data; name="description"  
  
I am a member of Seniornet Sweden, and I love tropical 
flowers.  
-----------------------------168071508944249  
Content-Disposition: form-data; name="e-mail-address"  
  
mary-smith@seniormail.nu  
-----------------------------168071508944249  
Content-Disposition: form-data; name="phone"  
  
+46-8-99 99 99  
-----------------------------168071508944249  
Content-Disposition: form-data; name="fax"  
  
+46-8-99 99 98  
-----------------------------168071508944249  
Content-Disposition: form-data; name="postal-address"  
  
Stora gatan 3  
Stork&ouml;ping  
Sverige  
-----------------------------168071508944249  
Content-Disposition: form-data; name="result-format"  
  
HTML  
-----------------------------168071508944249  
Content-Disposition: form-data; name="PORTALREGISTERUSER"  
  
Register user  
-----------------------------168071508944249--  
8.4.4	The HTML of this form can be for example:
<html>
<head>
<title>Register a user in the Senior Online Portal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<p><font size="5">Register user in the Senior Online Portal</font></p>
This form can be used to register a new user, or to modify the registration of 
an existing user, in the Senior Online Portal directory of users. 
<form method="post" action="http://www.senioronline.org/"
enctype="multipart/form-data" lang="en"
title="Senior Online Portal Login">
  <p>
    <input type="hidden" name="command" value="PORTALUSERREGISTRY">
    Portal User ID: 
    <input type="text" name="portal-loginid" size="30" maxlength="80">
    Portal User Password: 
    <input type="password" name="portal-password" size="20" maxlength="80">
  </p>
  <p> Groupware User ID: 
    <input type="text" name="group-loginid" size="30" maxlength="80">
    Groupware User Password: 
    <input type="password" name="group-password" size="20" maxlength="80">
  </p><p>User name: 
    <input type="text" name="name" size="50" maxlength="80">
  </p>
  <p>User personal description:</p>
  <p> 
    <textarea name="description" cols="60" rows="4"></textarea>
  </p>
  <p>User e-mail address: 
    <input type="text" name="e-mail-address" size="50" maxlength="80">
  </p>
  <p>User phone number: 
    <input type="text" name="phone" size="30" maxlength="40">
  </p>
  <p>User fax number: 
    <input type="text" name="fax" size="30" maxlength="40">
  </p>
  <p>User postal address:</p>
  <p> 
    <textarea name="postal-address" cols="60" rows="4"></textarea>
  </p>
  <p>Result wanted in the format: 
    <input type="radio" name="result-format" value="HTML" checked>
    HTML&nbsp; 
    <input type="radio" name="result-format" value="XML">
    XML </p>
  <p> 
    <input type="submit" name="PORTALREGISTERUSER" value="Register user">
    <input type="submit" name="PORTALREGISTERUSER" value="Modify user">
    <input type="submit" name="PORTALDELETEUSER" value="Delete user">
  </p>
</form>
</body>
</html>
8.4.5	Response to portal-register-user and portal-register-forum
The response format when the request specified result-format=HTML is not specified in this specification. However, when the request specified result-format=XML, then the response should have the format specified by the following XML DTD:
Only the XML variant is specified here, not the HTML response format.
8.4.5.1	The XML Resource Type Declaration for this XML resource is:
Explanation	Format of information sent (http://senioronline.org/v1.0/sol-portal-register-response.dtd)	
An error message or a number of matching resources are returned.	<!ELEMENT sol-portal-register-response  
(error | success)>	
	<!ELEMENT error (#PCDATA)>	
	<!ATTLIST error	
Explanation why this was not accepted.	  refuse-reason ( bad-syntax | 
  access-control | login-id-already-in-use | e-mail-address-already-in-use | other ) 'access-control'	
End of XML attribute list	>	
Information about a successful result	<!ELEMENT success EMPTY>	
	<!ATTLIST success	
An optional URL in the groupware for the registered user.	url CDATA #IMPLIED	
End of XML attribute list	>	
8.4.5.2	Example 1 (positive sol-search response):
Explanation	Information sent	
HTTP response header	HTTP/1.1 200 OK
Content-Length: 569
Content-Type: application/xml
Server: SeniorOnline 1.0
Date: 7 July 1999 19:58:23 +0200	
A blank line to indicate the end of the HTTP header		
Identifies that this is in XML format	<?xml version="1.0" standalone="no"?>	
References the Resource Type Declaration (DTD) file specifying the syntax for this XML resource.	<!DOCTYPE sol-portal-register-response 
SYSTEM "http://seinoronline.org/v1.0/sol-groupware-register-response.dtd">	
	<sol-portal-register-response>	
	<success 
url="http://www.senioronline.org/mary-smith/">	
	</sol-portal-register-response>	
8.4.5.3	Example 2 (negative sol-search response):
Explanation	Information sent	
HTTP response header.	HTTP/1.1 200 OK
Content-Length: 569
Content-Type: application/xml
Server: SeniorOnline 1.0
Date: 7 July 1999 19:58:23 +0200	
A blank line to indicate the end of the HTTP header.		
References the Resource Type Declaration (DTD) file specifying the syntax for this XML resource.	<!DOCTYPE sol-portal-register-response
 SYSTEM "http://seinoronline.org/v1.0/sol-portal-register-response.dtd">	
	<sol-portal-register-response>	
Machine-readable explanation of error	<error 
refuse-reason="login-id-already-in-use">	
Human-readable explanation of error	Someone else is already using that loginid, please chose another loginid.	
	</error>	
	</sol-portal-register-response>	
8.5	portal-register-forum
8.5.1	Introduction
The portal-register-forum operation is used to register a new forum in the portal directory. It can also be used to change the registration of an existing forum.
Note: This operation will not register the forum in the portal subject tree, only in the searchabe register of forums. An administrator for the portal can however scan incoming forum registrations, and put them into the portal subject tree.
The operation has the same format as will be transmitted by a HTML form.
Access control can be done by letting the portal accept this operation only when the operation comes from a list of domains which are allowed to register forums in the portal.
8.5.2	Visual rendering of the HTML form

8.5.3	An example of what might be transmitted when the form above is sent:
POST / HTTP/1.1  
Host: www.senioronline.org  
Accept: text/html, multipart/related, application/xml
Accept-Language: en, sv, de  
image/xbm, image/x-jg, */*  
Connection: Keep-Alive  
User-Agent: Mozilla/4.0 (compatible; MSIE 4.5; Mac_PowerPC)  
UA-OS: MacOS  
UA-CPU: PPC  
Content-type: multipart/form-data; boundary=---------------
-------36568255812099  
Extension: Security/Remote-Passphrase  

-----------------------------36568255812099  
Content-Disposition: form-data; name="command"  
  
FORUMREGISTRY  
-----------------------------36568255812099  
Content-Disposition: form-data; name="URL"  
  
http://sol.dsv.su.se/forums/tropical-flowers  
-----------------------------36568255812099  
Content-Disposition: form-data; name="newsgroup"  
  
senior.tropical-flowers  
-----------------------------36568255812099  
Content-Disposition: form-data; name="name"  
  
Tropical flowers  
-----------------------------36568255812099  
Content-Disposition: form-data; name="description"  
  
This is a forum for all of us who love tropical flowers.  
-----------------------------36568255812099  
Content-Disposition: form-data; name="phone"  

-----------------------------36568255812099  
Content-Disposition: form-data; name="fax"  

-----------------------------36568255812099  
Content-Disposition: form-data; name="e-mail-address"  
  
tropical-flowers@sol.dsv.su.se  
-----------------------------36568255812099  
Content-Disposition: form-data; name="superforum"  
  
http://sol.dsv.su.se/forums/botany  
-----------------------------36568255812099  
Content-Disposition: form-data; name="result-format"  
  
HTML  
-----------------------------36568255812099  
Content-Disposition: form-data; name="REGISTERFORUM"  
  
Register forum  
-----------------------------36568255812099--  
8.5.4	The HTML of this form can be for example:
<html>
<head>
<title>Register a Forum in the Senior Online Portal</title>
<meta http-equiv="Content-Type" content="text/html; 
      charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<p><font size="5">Register a Forum in the Senior Online Portal</font></p>
This form can be used to register a new forum, or to modify the registration of an existing forum, in the Senior Online Portal directory of users. Existing forums are identified by their URL. 
<form method="post" action="http://www.senioronline.org/"
enctype="multipart/form-data" lang="en"
title="Senior Online Portal Registration">
  <p> 
    <input type="hidden" name="command" value="FORUMREGISTRY">
    URL: 
    <input type="text" name="URL" size="60" maxlength="130">
  </p>
  <p>Forum name: 
    <input type="text" name="name" size="70" maxlength="130">
  </p>
  <p>Forum repliactes to the newsgroup: 
    <input type="text" name="newsgroup" size="50" maxlength="130">
  </p>
  <p>Forum description:</p>
  <p> 
    <textarea name="description" cols="60" rows="4"></textarea>
  </p>
  <p>Phone number for audio access to this forum: 
    <input type="text" name="phone" size="30" maxlength="40">
  </p>
  <p>Fax number for fax access to this forum: 
    <input type="text" name="fax" size="30" maxlength="40">
  </p>
  <p>Forum e-mail address: 
    <input type="text" name="e-mail-address" size="50" maxlength="80">
  </p>
  <p>Superforum: 
    <input type="text" name="superforum" size="70" maxlength="130">
  </p>
  <p>Result wanted in the format: 
    <input type="radio" name="result-format" value="HTML" checked>
    HTML&nbsp; 
    <input type="radio" name="result-format" value="XML">
    XML </p>
  <p> 
    <input type="submit" name="REGISTERFORUM" value="Register forum">
    <input type="submit" name="MODIFYFORUM" value="Modify forum">
    <input type="submit" name="DELETEFORUM" value="Delete forum"></p>
</form>
</body>
</html>
8.5.5	Response to portal-register-forum
The response format when the request specified result-format=HTML is not specified in this specification. However, when the request specified result-format=XML, then the response should have the format specified in section Response to portal-register-user on page 24.
8.6	groupware-search
8.6.1	Introduction
The groupware search operation is used to search for a user or forum in the groupware directory. The result can be returned in HTML format for user viewing or in XML format for machine interpretation.
8.6.2	Visual rendering of the HTML form
Not yet specified.
8.6.3	An example of what might be transmitted when the form above is sent:
Not yet specified.
8.6.4	The HTML of this form can be for example:
Not yet specified.
8.7	portal-search
8.7.1	Introduction
The portal search operation is used to search for a user, forum or web page in the portal directory. The result can be returned in HTML format for user viewing or in XML format for machine interpretation.
This operation uses the ENCTYPE="x-www-form-urlencoded" encoding, not the enctype="multipart/form-data" which is used for the login and register operations described above. The reason for this is that this is customary for search engine searches, and since no password is used, there is no need to use multipary/formdata in order to hide the password.
8.7.2	Visual rendering of the HTML form

8.7.2.1	Explanations:
This form is intentionally almost identical to the search form in the SELECT EU project. Several of the partners in SELECT and Senior Online are the same, and we might in the future wish to combine their search services in some way.
The search query can contain the standard search operators “+”, “-” and “"”. You can also include “url:foo.bar.org” to restrict search to resources whose URL contains this string, and “news:foobar.images” to restrict search to newsgroups whose newsgroup name contains this string.
Can you also use boolean expressions with AND, OR, NOT and parenthesises????
The  SELECT checkbutton indicates that a search is to be done in the SELECT and not the Senior Online data base. The  Personalized search checkbutton is only valid for SELECT searches. The last line, beginning with  Only unseen and ending with  Use only manual keywords and profile is only valid for SELECT searches, since Senior Online does not store, in the directory, what the user has seen or a personalized user search profile.
The default values are to search everything except SELECT, in any country, using any language, with HTML results and max 20 docs to be returned by the search.
8.7.3	An example of what might be transmitted when the form above is sent:
GET /?command=PORTALSEARCH&search=internet&search=forum&search=u
sers&search=news&search=mail&query=Tropical+flowers&Search=Searc
h&textfield=Italy&lang=world&resultformat=html&maxno=20&context=
yes&business=yes&leisure=yes&shopping=yes&research=yes 
HTTP/1.1  
Host: www.senioronline.org  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
image/xbm, image/x-jg, */*  
Accept-Language: en  
Connection: Keep-Alive  
User-Agent: Mozilla/4.0 (compatible; MSIE 4.5; Mac_PowerPC)  
UA-OS: MacOS  
UA-CPU: PPC  
Extension: Security/Remote-Passphrase  
8.7.4	The HTML of this form can be for example:
<HTML>
<HEAD>
<TITLE>Senior Online Portal Directory Search</TITLE>
<style type="text/css">
<!--
p {  font-family: Verdana, Arial, Helvetica, Geneva, sans-serif; font-size: 10pt}
td {  font-family: Verdana, Arial, Helvetica, Geneva, sans-serif; font-size: 10pt}
-->
</style></HEAD>
<BODY bgcolor="#FFFFFF">
<FORM ACTION="http://www.senioronline.org" METHOD=get NAME="portalsearchform" ENCTYPE="x-www-form-urlencoded">
  <table border="0" cellspacing="0" cellpadding="2" align="center">
    <tr bgcolor="#6633CC" align="center"> 
      <td rowspan=4 valign="top" width="121" align="left"> 
           <p align="left"><font color='white'> 
            <input type="hidden" name="command" value="PORTALSEARCH">
            <b>Search: <br>
            <input type="checkbox" name="search" value="internet" checked>
            Internet <br>
            <input type="checkbox" name="search" value="forum" checked>
            Forums <br>
            <input type="checkbox" name="search" value="users" checked>
            Users</b></font><b><br>
            <font color='white'> 
            <input type="checkbox" name="search" value="news" checked>
            News</font><br>
            <font color='white'> 
            <input type="checkbox" name="search" value="mail" checked>
            Mail </font><br>
            <font color='white'> 
            <input type="checkbox" name="search" value="select">
            SELECT </font></b></p>
        <font color='white'></font></td>
      <td colspan=5 rowspan="2"><font color='white'>&nbsp;<b>Search query: </b>
        <INPUT SIZE=54 MAXLENGTH=256 NAME="query" value="">
        &nbsp; 
        <input type="submit" name="Search" value="Search">
        </font></td>
    </tr>
    <tr bgcolor="#FFFFCC"> 
      <td width="21" bgcolor="#FFFFFF"><font color="#FFFFFF"></font></td>
    </tr>
    <tr bgcolor="#CCFF99"> 
      <td valign="top" width="163" align="center" > Limit to Country:<br>
        <input type="text" name="textfield">
      </td>
      <td valign="top" width="122" > <b>Limit to Language:</b> <br>
        <select name="lang" size=1>
          <option value="world" selected>Any 
          <option value="bulgarski">Balgarski 
          <option value="c&ecirc;ch">Cesky 
          <option value="welsh">Cymraeg 
          <option value="dansk">Dansk 
          <option value="deutsch">Deutsch 
          <option value="eesti">Eesti 
          <option value="elivika">Ellinika 
          <option value="english">English 
          <option value="espa&ntilde;ol">Espa&ntilde;ol 
          <option value="esperanto">Esperanto 
          <option value="fran&ccedil;ais">Fran&ccedil;ais 
          <option value="hrvatski">Hrvatski 
          <option value="'&"iacuteslensku"'">&Iacute;slenska 
          <option value="italiano">Italiano 
          <option value="latviski">Latviski 
          <option value="lietuvisku">Lietuviskai 
          <option value="magyar">Magyar 
          <option value="makedonski">Makedonski 
          <option value="nederlands">Nederlands 
          <option value="norsk">Norsk 
          <option value="polski">Polski 
          <option value="portugu&ecirc;s">Portugu&ecirc;s 
          <option value="romana">Rom&acirc;na 
          <option value="russkij">Russkij 
          <option value="slovak">Slovencina 
          <option value="slovensk">Slovenscina 
          <option value="suomi">Suomi 
          <option value="svenska">Svenska 
          <option value="turkce">Turkce 
        </select>
      </td>
      <td valign="top" width="109" > 
        <p align="center"> <b>Result format:</b><br>
          <input type="radio" name="resultformat" value="html" checked>
          HTML 
          <input type="radio" name="resultformat" value="xml">
          XML </p>
      </td>
      <td valign="top" width="24"> 
        <div align="right"> 
          <input type="checkbox" name="personalized" value="yes">
        </div>
      </td>
      <td valign="top" width="145" > 
        <p>Personalized search</p>
        <p><b>Max no of docs:</b> 
          <input type="text" name="maxno" size="4" maxlength="20" value="20">
        </p>
      </td>
      <td width="21" bgcolor="#FFFFFF"> </td>
    </tr>
    <tr bgcolor="#FFFFCC"> 
      <td valign="middle" colspan="5" align="center"> Context: 
        <input type="checkbox" name="context" value="yes" checked>
        general 
        <input type="checkbox" name="business" value="yes" checked>
        business 
        <input type="checkbox" name="leisure" value="yes" checked>
        leisure 
        <input type="checkbox" name="shopping" value="yes" checked>
        shopping 
        <input type="checkbox" name="research" value="yes" checked>
        research 
        <input type="checkbox" name="politics" value="yes" checked>
        politics<br>
      </td>
      <td width="21" rowspan="2" bgcolor="#FFFFFF"><font color="#FFFFFF"></font></td>
    </tr>
    <tr bgcolor="#FFFFCC"> 
      <td valign="top" width="121" align="center" bgcolor="#6633CC" colspan="6"><font color='white'> 
        <input type="checkbox" name="unseen" value="yes">
        <b>Only unseen</b></font><b>&nbsp; <font color="#FFFFFF"> 
        <input type="checkbox" name="Use my keywords" value="Keyworduse">
        Use my interest profile&nbsp;&nbsp; 
        <input type="checkbox" name="usekeywords" value="usemykeywords">
        &nbsp;Use my keywords&nbsp;&nbsp; 
        <input type="checkbox" name="onlymanual" value="onlymanual">
        &nbsp;Use only manual keywords and profile</font></b></td>
    </tr>
  </table>
</FORM>
</BODY></HTML>
8.7.5	Response to the portal search operation
The sol-search response can be in either XML or HTML format depending on the request. If no format was specified in the request, HTML is the default format. The response contains a list of resources matching the query and sorted by rating-value.
8.7.5.1	The XML Resource Type Declaration for this XML resource is:
Explanation	Format of information sent (http://senioronline.org/v1.0/sol-search-response.dtd)	
An error message or a number of matching resources are returned.	<!ELEMENT sol-search-response  
(error | resource+)>	
	<!ELEMENT error (#PCDATA)>	
	<!ATTLIST error	
If rating was rejected, explanation why.	  refuse-reason ( bad-syntax | 
  access-control | loginid-already-in-use | e-mail-address-already-in-use | other ) 'access-control'	
End of XML attribute list	>	
If only some of the rating values were rejected, this element is used to list the rejected rating values. The #PCDATA contains the description of the found resourche, if available.	<!ELEMENT resource (#PCDATA)>	
	<!ATTLIST resource	
Indicates which data base in which this result is found. Can be omitted for some other data base or when this information is not available.	type ( internet | forum | user | news | mail ) #REQUIRED	
Whether the result comes from the Senior Online or SELECT data base. Senior Online is default.	source ( senioronline | select ) 'senioronline'	
Some kind of computed rating value. Optional, only used when returning data from a SELECT search.	  rating CDATA #IMPLIED	
Name of the user or forum, or title of the web page or sobject of the message found.	  title CDATA #IMPLIED	
URI of the found resource.	  uri CDATA #REQUIRED	
Only if the found object has an e-mail address, RFC822 format	  e-mail-address CDATA #IMPLIED	
Phone number of user or for phone access to forum.	  phone CDATA #IMPLIED	
Fax number of user or for fax access to forum.	  fax CDATA #IMPLIED	
Postal-address of user found	  postal-address CDATA #IMPLIED	
URL of a forum, which this forum is subordinate to	  super-forum CDATA #IMPLIED	
This forum is replicated to this newsgroup	  newsgroup CDATA #IMPLIED	
End of XML attribute list	>	
8.7.5.2	Example 1 (positive sol-search response):
Explanation	Information sent	
HTTP response header	HTTP/1.1 200 OK
Content-Length: 569
Content-Type: application/xml
Server: SeniorOnline 1.0
Date: 7 July 1999 19:58:23 +0200	
A blank line to indicate the end of the HTTP header		
Identifies that this is in XML format	<?xml version="1.0" standalone="no"?>	
References the Resource Type Declaration (DTD) file specifying the syntax for this XML resource.	<!DOCTYPE sol-search-response SYSTEM "http://seinoronline.org/v1.0/sol-search-response.dtd">	
	<sol-search-response>	
	<resource type="internet" 
  title="Kenyan flowers"
  uri="http://www.flowers.com/kenya/">	
	An overview of flowers found in Kenya.	
	</resource>	
	<resource type="user"
  title="Mary Smith"
  uri="http://www.seniormail.nu/mary-smith/">
  e-mail-address="mary-smith@seniormail.nu"
  phone="+44-99-99 99 99">	
	  I am an expert on tropical flowers.	
	</resource>	
	</sol-search-response>	
8.7.5.3	Example 2 (negative sol-search response):
Explanation	Information sent	
HTTP response header.	HTTP/1.1 200 OK
Content-Length: 569
Content-Type: application/xml
Server: SeniorOnline 1.0
Date: 7 July 1999 19:58:23 +0200	
A blank line to indicate the end of the HTTP header.		
Identifies that this is in XML format.	<?xml version="1.0" standalone="no"?>	
References the Resource Type Declaration (DTD) file specifying the syntax for this XML resource.	<!DOCTYPE sol-search-response SYSTEM "http://senioronline.org/v1.0/sol-search-response.dtd">	
All ratings were not accepted.	<sol-search-response>	
Rating-label rejected, this server does not accept ratings in the leisure context.	<error>You are not allowed to make this search.</error>	
End of sol-search-response.	</sol-search-response>	
9	Implementation plan
Proposed plan for implementation of these features:
Stage	Implementation of	Partners responsible	Date first integration testing	Date delivery	
1	groupware-login	Omega, DSV	1 Mar 2000	1 Apr 2000	
2	portal-login	Omega, DSV	1 Apr 2000	1 May 2000	
3	portal-register-user, portal-register-forum, groupware-register-user	Omega, DSV	1 May 2000	1 June 2000	
4	portal-search	Omega, DSV	1 June 2000	1 July 2000	
5	groupware-search	Not in this project			
6	groupware-login, portal-login	Omega, PVL	1 May 2000	1 June 2000	
7	portal-register-user, portal-register-forum, gropware-register-user	Omega, PVL	1 June 2000	1 July 2000	
10	References
[1]	Senior Online Deliverable D 3.1: Design of promotional strategies for Senior Online. http://www.omega.it/research/sol/DelD31.htm	
[2]	Senior Online Deliverable D.4.1: Strategies and Early User Requirements Report. http://www.omega.it/research/sol/DelD41.htm	
[3]	RFC 2109 HTTP State Management Mechanism. D. Kristol, L. Montulli. February 1997. ftp://sunic.sunet.se/rfc/rfc2109.txt	
[4]	RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee. June 1999. ftp://sunic.sunet.se/rfc/rfc2616.txt	
[5]	RFC 1945 Hypertext Transfer Protocol -- HTTP/1.0. T. Berners-Lee, R. Fielding & H. Frystyk. May 1996. ftp://sunic.sunet.se/rfc/rfc1945.txt	
[6]	HTML 4.0 Specification, W3C Recommendation, by Dave Raggett, Araud Le Hors and Ian Jacobs, http://www.w3.org/TR/REC-html40.	
[7]	RFC 2110 MIME E-mail Encapsulation of Aggregate Documents, such as HTML (MHTML). J. Palme, A. Hopmann. March 1997. ftp://sunic.sunet.se/rfc/rfc2110.txt	
[8]	RFC 2045-2049 Multipurpose Internet Mail Extensions (MIME). N. Freed & N. Borenstein, November 1996. ftp://sunic.sunet.se/rfc/rfc2045.txt	
[9]	RFC 821 Simple Mail Transfer Protocol. J. Postel, August 1982. ftp://sunic.sunet.se/rfc/rfc821.txt	
[10]	RFC 822 Standard for the format of ARPA Internet text messages. D. Crocker, August 1982. ftp://sunic.sunet.se/rfc/rfc822.txt	
[11]	Senior Online Functional Specification, Senior Online Report D.5.1, can be found at URL http://cmc.dsv.su.se/sol/sol-func-spec.pdf	
[12]	RFC 1738: Uniform Resource Locators (URL), by T. Berners-Lee, L. Masinter & M. McCahill, December 1994. ftp://sunic.sunet.se/rfc/rfc1738.txt	
[13]	HTML 4.0 Specification, by Dave Raggett, Arnaud Le Hors and Ian Jacobs, http://www.w3.org/TR/REC-html40/	
[14]	LDAP Data Interchange Format (LDIF), draft-good-ldap-ldif-03.txt, by Gordon Good, Netscape, February 1999. ftp://ftp.sunet.se/pub/Internet-documents/internet-drafts/draft-good-ldap-ldif-03.txt	
[15]	LDIF text entry format, http://november.dtc.net/NET_ldap/ldapC.db_ldif.html	
[16]	RFC 1123: Requirements for Internet Hosts -- Application and Support, October 1989, by R. Braden. ftp://sunic.sunet.se/rfc/rfc1123.txt	
|17]	Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., Sink, E., Stewart, L., "HTTP Authentication: Basic and Digest Access Authentication," draft-ietf-http-authentication-03.txt, September, 1998.[jg646]