Network Working Group Jacob Palme Internet Draft Stockholm University/KTH draft-palme-select-00.txt Johan Kaers Intended-for: Proposed standard Starlab Expires: December 2000 June 2000 The SELECT Protocol for Rating and Filtering Status of this Document This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright (C) The Internet Society 2000. All Rights Reserved. Abstract The SELECT protocol allows Internet users to supply their ratings of Internet documents, and to use ratings provided by other users to filter and select what to read In particular, SELECT supports so-called collaborative filtering. By this is meant that the filtering and selection for a particular user is made based on ratings provided by special groups of raters, such as peer groups, people with similar values, interests and expertise as the person for whom the selecting and filtering is done. The SELECT functionality is downwards compatible with PICS [PICS 1, PICS 2], but a major difference is that while PICS is mainly oriented towards keeping out unsuitable information from children (blackballing), SELECT is mainly oriented towards helping people find the best and most valuable information for them on the Internet (goldballing). A syntactical difference from PICS is that the encodings in SELECT are using the XML encoding format. More information More information and links to the most recent versions of this document can be found at http://dsv.su.se/jpalme/ietf/selprot.html. A mailing list will be started in the middle of June 2000, for information on how to subscribe see the above URL. Table of Contents 1. Terminology 2. Definitions 3. Protocol elements summary table 4. Handling of anonymous ratings 5. Style sheet information in XML encodings 6. Submission points 7. Protocol elements full specifications 7.1 Validation of XML Encodings 7.2 The DTD for an atomic rating 7.3 Get-Service-Description-List (XML) 7.4 Get-Service-Description 7.5 Send-Rating 7.6 Set-Profile 7.7 Get-Profile 7.8 Login 7.9 Logout 7.10Get-Atomic-Ratings 7.11Simple-Search Operation 7.12Advanced-Search Operation (Not yet ready) 7.13Evaluate Operation 7.14Exchange-Ratings-Data (not yet ready) 8. The SELECT general service description 8.1 Example 9. Example of file structure on a SELECT server 10. Issues for further study 11. The SELECT Agent protocol 12. Protocol Implemtation Status 13. Security considerations 14. Copyright 15. Acknowledgments 16. References 17. Author's Addresses 1. Terminology Term Description ---- ----------- Aggregate rating A rating, which is computed based on one or more atomic ratings, combined in some way. A SELECT server may provide several different aggregate ratings, computed in different ways, for example based on only non-anonymous ratings, based on only ratings by certain experts or members of a specific peer group. Also different aggregation methods can be used, such as average, median or lower quartile. (Using the lower quartile will favour controversial documents, which may sometimes be desirable.) Anonymous rating A rating, where the rater is not idenfied. See chapter 4. Atomic rating A rating provided by one user on one document. Several atomic ratings of the same document can be combined to produce an aggregate rating. See chapter 7.2. Collaborative A rating provider for a user, based on ratings rating made by other users in a peer group, which has shown itself to have the same rating values as the user getting the rating. ' ML Machine Learning: Technology where a computer program learns by itself by observation of reality, for example by observation of human behaviour. NLP Natural Language Processing: Processing of natural language text with programs, which can in some way analyze it, for example derive genre information from the text style. Non-anonymous A rating, where the rater has to log in and rating identify itself before being allowed to provide a non-anonymous rating. See chapter 4. Rating Ratings are collections of descriptors of resources, which can be used as a basis for filtering. User An agent providing ratings or using SELECT services. Can represent a user, but ratings may also be provided by other ways than direct user input, such as observation of user behaviour or linguistic analysis of documents. 2. Definitions Any occurence of "http://select/" in this document should in actual usage be replaced by the URL of a particular SELECT service. 3. Protocol elements summary table The SELECT protocols allow a SELECT server to keep a data base of ratings made my many different people on a resource, lika a web page. This data base can be used to find the aggregate ratings on resources and to search, using the aggregate rating as search criterium. Every server decides which and how many rating categories it provides. In addition to manually added ratings, the SELECT data base can also store ratings made by a machine, such as an NLP engine, and by automatic observation of user behaviour. The SELECT protocol can be used by Internet User Agents to submit ratings, get ratings, search and filter for a user. Such User Agents can be user-oriented servers, news servers and clients, web browsers, and plug-ins and client-side and server-side proxies. The SELECT protocol can also be used by autonomous agents, which can perform services like NLP rating, finding news of special interest to a particular user and e-mailing the user with this, etc. Name Task Client(s) ---- ---- --------- Get Find out which rating Input reader ratings / service-descri services are handled by Another SELECT version ption-list this server. 1.0 server / A filtering process, a user or manager Get-service-de Find out which rating Input reader ratings / scription descriptors are handled by Another SELECT version this rating service. 1.0 server / A filtering process, a user or manager Send-rating Send a new atomic rating on Input reader ratings / a resource. Automatic rating agents Set-profile Self-register a rater with Input reader ratings, a a server, as well as user or manager registering someone else as a rater for a closed server, or modifying the profile of an existing user. Get-profile Get the profile of another Input reader ratings, a user, subject to access user or manager controls. Login Establish credentials for a All of the above user. Logout Waive credentials for a All of the above user. Get-atomic-rat Get the ratings made by one All of the above ings or more named users on one or more resources. Simple-Search Make a search for rated Rating search client, a resources, HTML search user. query form. Advanced-Searc Make a search for Rating search client, h resources, XML query form. NLP module (to find items which need NLP ratings) Evaluate Get the ratings for a list Rating search client, of resources. news client, news server, a user. Exchange-ratin Mirror ratings data between One SELECT version 1.0 gs-data two SELECT version 1.0 server. servers. 4. Handling of anonymous ratings Ratings can be either identified or anonymous. All SELECT services may not allow anonymous ratings. Anonymous ratings are fully anonymous, no raterid of any kind is specified. Anonymous ratings are sent to a different URL (see chapter 6), containing /id/, than the URL for non-anonymous ratings. For anonymous ratings, the "raterid" has the special value "anonymous". When combining atomic ratings to aggregate ratings, different weight may be given to identified, anonymous ratings, including the weight zero to anonymous ratings. When retrieving atomic ratings, you will get identified ratings only for yourself. Other ratings are not returned or are returned only unidentifiable format. 5. Style sheet information in XML encodings The XML encodings produced by SELECT agents may contain style sheet information. An agent which does not use this information, should ignore it. Such an agent must be capable of receiving and ignoring style sheet information, but need not do any other processing of style sheet information. Such style sheet information may be: (a) A style sheet reference in the processing instruction head of an XML document. (b) A style sheet reference in the DTD file (not valid today, August 1999, but may become valid in the future). Example: The following two XML data are semantically equal: Version 1: Version 2: --------- --------- response.dtd"> sponse.dtd"> 6. Submission points Below are shown the entry points for access to the SELECT general service. For a specialised service, the word "general" below should be replaced by the subdirectory for that service. Operation Service Submission point Get-Service-Descri All http://select/v1.0/select-service-description ption-List services s.xml Get-Service-Descri General http://select/general/get-services.xml ption service Send-Rating General http://select/v1.0/general/id/input-ratings service Note: For use by ratings supplied by identified raters. Send-Rating General http://select/v1.0/general/id/input-ratings service Note: For use for ratings supplied by identified raters. Send-Rating General http://ano.select/v1.0/general/input-ratings service http://id.select/v1.0/general/input-ratings Note: ano.select is used to record anonymous ratings, id.select to record non-anonymous ratings. The different domain names are needed to keep the cookies different. Set-Profile General http://select/v1.0/general/id/profiles service Get-Profile General http://select/v1.0/general/id/profiles service Login General http://select/v1.0/general/id/login service Logout General http://select/v1.0/general/id/logout service Get-Atomic-Ratings General http://select/v1.0/general/id/evaluator service Simple-Search General http://select//v1.0/general/simple-search service Advanced-Search General http://select/search service Evaluate General http://select/evaluator service 7. Protocol elements full specifications 7.1 Validation of XML Encodings The DTDs and XML code in this specification has been validated using the XML validation service at http://www.stg.brown.edu/cgi-bin/xmlvalid/xmlvalid.pl. 7.2 The DTD for an atomic rating Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/atomic-rating.dtd) Start of attribute list for The value for one rating descriptor. 7.3 Get-Service-Description-List (XML) The Get service-description-list operation retrieves a list of SELECT version 1.0 service descriptions and their URIs, but does not retrieve the actual service descriptions. This will not necessarily be a list of all SELECT services over the world, it may usually be a list of SELECT services on this particular host, or a list of services recommended by the manager of this host. 7.3.1 Query format (get service description-list): An HTTP GET operation is performed on a URI established to return SELECT version 1.0 service descriptions. Example: This description can be requested from at: http://select/v1.0/select-service-descriptions Explanation Information sent ----------- ---------------- Get the file named GET /v1.0/select-service-descriptions HTTP/1.1 "sel-1/select-service-desc riptions". Preferred language is in English, second choice Italian From the HTTP server Host: select "select" port 80. Only files in the format Accept: application/xml application/xml are accepted. This user has connected to Cookie: session="1234567890123456" this server before, and a cookie identifies the session. 7.3.2 Response format (get service description-list): Explanation Information sent ----------- ---------------- Standard reply header HTTP ... DTD of replied message 7.4 Get-Service-Description Summary: The Get service-description operation will query a SELECT version 1.0 server to get a description of some services. The main components of this description is a list of descriptors and scales used by this service. Access control: None. Input data: The names of the services. Output data: A description of the service, and a list of the descriptors supported for ratings in that group. Base protocol: HTTP combined with XML. 7.4.1 Query format (get service-description): An HTTP GET operation is performed on a certainURI. Example (get service-description): This example retrieves the service description at the URI: http://select/v1.0/get-service-descriptions Explanation Information sent ----------- ---------------- Get the file named GET /v1.0/get-service-descriptions HTTP/1.1 "general/select-service-descripti on" which contains a description of the SELECT version 1.0 general service. The SELECT version 1.0 general service is a service available to everyone, as different for service for special user groups. Get the file from the HTTP server Host: select "select" port 80. Only files in the format Accept: application/xml application/xml are accepted. This user has connected to this Cookie: session="1234567890123456" server before, and a cookie identifies the session. Request of SELECT test service DTD of message 7.4.2 Response format (get-service-description): The response is an XML [XML1], [XML2] resource, containing a SELECT version 1.0 service description. The XML Resource Type Declaration for this XML page is described in chapter 0 The SELECT general service description. 7.5 Send-Rating Summary: The send-rating operation will send one or more ratings to a SELECT version 1.0 server. This operation can be used both for explicit ratings provided by users, for implicit ratings derived by observing user behaviour, and for ratings derived through automatic analysis of documents using NLP methods. Access control: If the rater is not identified by a cookie (created by a login operation), then either this rating will be handled as anonymous or the user will be instructed to login first, or to send the ratings to the separate entry-point for anonymous ratings. Some SELECT servers may not accept anonymous ratings. Input data: Information about the rated resource, the rater and the rating values. Output data: Acceptance or rejection. Base protocol: XML transported through HTTP. 7.5.1 Transmit-Format (send-rating): A HTTP POST operation, with the content the XML-formatted rating. The send-rating is an HTTP POST operation, whose body is an XML resource containing the rating. Below is a POST sent to the URI http://select/v1.0/general/input-ratings Explanation Information sent ----------- ---------------- Connect to the SELECT server. The POST /v1.0/general/id/input-ratings URI used identifies the rating HTTP/1.1 service, to which this rating is sent. To the HTTP server "select" port Host: select 80. Only files in the format Accept: application/xml application/xml are accepted. The format of the query is XML. Content-Type: Application/xml This user has connected to this Cookie: session="1234567890123456" server before, and a cookie identifies the session. The body of the query is an XML [XML1], [XML2] resource. The XML Resource Type Declaration for this XML resource is as follows. Note that no Rater-ID is included, because this ID can be derived from the Cookie. And no rating-service-description is referred to, because the URI, to which this rating is sent, implies a particular rating-service. Explanation Format of information sent ----------- --------------------------- (http://select/v1.0/send-rating.dtd) Reference to data structure defined A list of ratings are sent. Import DTD from separate DTD file %atomic-rating; atomic-rating.dtd. Example (send-rating): Explanation Information sent ----------- ---------------- (http://select/v1.0/send-rating.xml) HTTP header POST /v1.0/general/id/input-ratings HTTP/1.1 Host: select Accept: application/xml Content-Type: Application/xml Cookie: session="1234567890123456" A blank line to mark the end of the HTTP header. Identifies that this is in XML format. References the Resource Type specifying the syntax for this XML resource. Start with information about First rating descriptor Second rating descriptor, note Third rating descriptor Fourth rating descriptor End of data 7.5.2 Response format (send-rating-response): The response is an XML [XML1], [XML2] resource. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/send-rating-response.dtd) The evaluations are returned, one rating service at a time. Whether all the rating list If only some of the rating values were rejected, this element is used to list the rejected rating values. list 7.5.2.1 Refusal reasons for the send-rating operation The following refusal reasons may be used in rejecting a send-rating operation by a SELECT server: Refuse-reason Explanation ------------- ----------- none Operation was not rejected. bad-syntax Wrong syntax of HTTP header or XML data sent. missing-info Mandatory-information missing from sent data. unknown-descriptors Trying to store a rating for a descriptor not supported by this server. wrongtype Wrong type of a descriptor value, for example text for a descriptor which must have a numerical value. wrong-competence This rater is not allowed to send ratings with this competence to this service. wrong-trust This rater is not allowed to send ratings with this trust to this service. wrong-rater-type This service does not accept ratings of this rater-type from this user. wrong-context This service does not accept ratings with this context from this user. access-control This user is not allowed to send ratings to this service. (There are no operations in this specification to give people access rights. Some SELECT services may want to give only certain people the right to perform various operations, such as send ratings. How to do this is not described in this specification.) not-logged-in The user performed an operation which requires login, but was not logged in. other Other errors. Example 1 (positive send-rating response): Explanation Information sent ----------- ---------------- (http://select/v1.0/send-rating-1.xml) HTTP response header HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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 References the Resource Type XML resource. Accepted is default. Example 2 (negative send-rating response): Explanation Information sent ----------- ---------------- (http://select/v1.0/send-rating-2.dtd) HTTP response header. HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource Type XML resource. All ratings were not accepted. Rating-label rejected, this End of send-rating-response. 7.6 Set-Profile Summary: The set-profile operation can be used for a rater to register him/herself (for services which allow this) and can be used by administrators to register raters (for services which do not allow self-registration). It can also be used to modify existing registrations. Issues: The format of interest-profile is not specified. The format of reward-account is not specified. Access control: The profile of a person is not modifiable by other people, only by that person him/herself, or an agent for that person, or certain certified SELECT processes, who will not divulge the profile to other people. A SELECT administrator may also usurp super-user privileges and perform this operation on anyone. Input data: User identification and some profile attributes to be set or changed. Output data: Accepted or rejected. Base protocol: XML 7.6.1 Transmit format (set-profile): The set-profile operation is an HTTP POST operation, whose body is an XML resource containing the profile, sent to the profiles cgi-script in the server for this particular rating service. Example: "http://select/v1.0/general/id/profiles/". Note that a user, who is registered in more than one rating service, has a separate profile and a separate cookie for each of them. Explanation Information sent ----------- ---------------- Connect to the SELECT server POST /v1.0/general/id/set-profile HTTP/1.1 To the HTTP server "select" port Host: select 80. Only files in the format Accept: application/xml application/xml are accepted. The format of the query is XML. Content-Type: Application/xml This user has connected to this Cookie: session="1234567890123456" server before, and a cookie identifies the session. The body of the operation is an XML [XML1], [XML2] resource. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/set-profile.dtd) Reference to data structure Further information, see section 7.6.2 The XML DTD for the user profile. The set-profile consists of a profile plus two attributes. Start of XML attribute list. Profile is taken from the external %profile; ENTITY declared in the first row. Further information, see section section 7.6.2 The XML DTD for the user profile. Note: All attributes of a user profile are not settable for ordinary users (example: no-of-docs-rated). They should thus not be used when setting a profile. Pseudonym should include the domain name of the SELECT server. Thus, if a user wants the pseudonym foobar, the user should request the pseudonym foobar@select when connecting to any of the SELECT servers at select. Note that this means that the same pseudonym is not allowed in more than one SELECT service, if all the services are on the same server. The SELECT server must check suggested pseudonyms in a data base which is common to all SELECT services on a particular host. 7.6.2 The XML DTD for the user profile Profile is an XML [XML1], [XML2] resource. The XML Resource Type Declaration for profile: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/profile.dtd) Language code of languages understood by this user in priority order. May be repeated once for every language. Language codes are taken from RFC 1766 and ISO 639. Keywords specified by this user to identify his/her interests. Keywords automatically derived by observation of this user to identify his/her interests. This syntax is preliminary. We may assign a more complex syntax to this later on, with defined subelements and structure like a set of instructions in some filtering language. List of previous queries made by this user. May influence filtering procedure. To be defined. Example (set-profile): Explanation Information sent ----------- ---------------- (http://select/v1.0/set-profile.xml) HTTP header. POST /v1.0/general/id/set-profile HTTP/1.1 Host: select Accept: application/xml Content-Type: Application/xml Cookie: session="012345678901234354" A blank line to mark the end of the HTTP header. Identifies that this is in XML format. References the Resource specifying the syntax for this XML resource. Setting the profile for someone else. Start of the profile to be Embedded elements standards computers fiction psychiatry Do not filter away any document containing "IETF" End of set-profile 7.6.3 Response format (set-profile): Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/set-profile-response.dt d) The evaluation are returned, one format. References the Resource Type XML resource. The set-profile was accepted. Example 2 (negative set-profile response): Explanation Information sent ----------- ---------------- (http://select/v1.0/set-profile-response-2.xm l) HTTP response header. HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource Type XML resource. The set-profile was not fully 7.7 Get-Profile Summary: The get-profile operation can be used to get the profile settings for a particular user in a particular SELECT server. It can be used to retrieve a profile, and then send in a modified profile using (to the extent this is allowed) using the set-profile operation. Filtering agents may use get profile to get information used in the filtering for a certain user. ML algorithms may automatically modify a user's profile, the profile may indicate limits on what ML algorithms may do to it. (Example: "ML may not filter out any articles in newsgroup X, since it is very important to me".) Access control: The profile of a person is not accessible by other people, only by that person him/herself, or an agent for that person, or certain certified SELECT processes, who will not divulge the profile to other people. A SELECT administrator may also usurp super-user privileges and perform this operation on anyone. Input data: Identification of the user or search-info for the user, whose profile is wanted. Output data: The profile of this user, or a rejection error. Base protocol: application/x-www-form-urlencoded for the request, XML for the response. 7.7.1 Query format (get-profile): The get-profile operation is an HTTP GET operation, with an HTML form: SELECT Login

Get SELECT User Info

Fill in either an e-mail
address or a search string:
The e-mail address
of the user:
Search string:
      Response format: HTML XML
Example: "http://select/v1.0/general/id/profiles?e-mail-address=&search string=Donald+Duck&Get=Get+user+info&responseformat=html". Example (get-profile): Explanation Information sent ----------- ---------------- Connect to the SELECT server. GET /v1.0/general/id/profiles?raterid=jpalme HTTP/1.1 To the HTTP server "select" port Host: select 80. Only files in the format Accept: application/xml application/xml are accepted. 7.7.2 Response format (get-profile): Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/get-profile-response.dtd) Reference to data structure file. Further information, see section 0. The evaluation are service at a time. Profile is taken from the %profile; external ENTITY declared in the first row. Further information, see section 0. Profile may be incomplete, in case only some attributes are retrievable for this requestor (if you get profile for someone else than yourself). Example 1 (positive get-profile response): Explanation Information sent ----------- ---------------- (http://select/v1.0/get-profile-response-1.xml) HTTP response header. HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource specifying the syntax for this XML resource. The get-profile was accepted. Start of the profile to be Embedded elements standards computers fiction psychiatry Do not filter away any document containing "IETF" End of get-profile Example 2 (negative get-profile response): Explanation Information sent ----------- ---------------- (http://select/v1.0/get-profile-response-2.x ml) HTTP response header. HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 1.0 Date: 17 August 1999 12:22:46 +0200 A blank line to indicate the end of the HTTP header. Identifies that this is in XML format. References the Resource Type XML resource. The get-profile did not succeed. You cannot do this without first logging in. 7.8 Login Summary: The login operation is used to identify a user, and cause a cookie value to be set, which allows this user to perform certain access-controlled operations during the validity time of this cookie. Access control: E-mail address and password. May not be required for sending anonymous ratings. Input data: User identification by either e-mail address or pseudonym combined with password or an IMAP authentication. Output data: Acceptance or rejection. Base protocol: application/x-www-form-urlencoded for the request, HTML or XML for the response. 7.8.1 Query format (login): The same as if the user has filled in the following HTML form: SELECT Login

SELECT Login

Your e-mail address
or pseudonym:
Your password:
    Response format: HTML XML
Example (login): Explanation Information sent ----------- ---------------- Connect to the SELECT server GET /v1.0/general/id/login?e-mail-address=jp alme@dsv.su.se&password=select HTTP/1.1 To the HTTP server "select" port Host: select 80. Only files in the format Accept: application/xml application/xml are accepted. 7.8.2 Response format (login): Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/login.dtd) Response to a login If ok Example (login response): Explanation Information sent ----------- ---------------- (http://select/v1.0/login-response.xml) HTTP header. HTTP/1.1 200 OK Date: Sun, 25 Jul 1999 13:32:18 +0200 Server: Apache/1.2.4 Last-Modified: Sun, 25 Jul 1999 13:32:18 +0200 ETag: "437e5-98-3531f2e3" Content-Length: 152 Accept-Ranges: bytes Connection: close Content-Type: application/xml Set the cookie. Set-cookie: session="1234567890123456";Domain="select ";Path="/v1.0/general/id/" A blank line to mark the end of the HTTP header. Identifies that this is in XML format. References the Declaration (DTD) file specifying the syntax for this XML resource. Start and end of 7.9 Logout Summary: The logout operation removes the cookie, which gave the user privileges to perform certain commands in logged-in state. 7.9.1 Query format (logout): The same as if a user clicks on an HTML link: Log out Example (logout): Explanation Information sent ----------- ---------------- (http://select/v1.0logout-response.dtd) An ordinary HTTP connection. GET /v1.0/general/id/logout; To the HTTP server "select" port 80. Host: select Only files in the format Accept: application/xml application/xml are accepted. This user has connected to this Cookie: session="1234567890123456" server before, and a cookie identifies the session. 7.9.2 Response format (logout): Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/logout.dtd) The evaluation are returned, one rating service at a time. Whether all the rating labels Example (logout response): Explanation Information sent ----------- ---------------- (http://select/v1.0/logout-response.xml) HTTP header HTTP/1.1 200 OK Date: Sun, 25 Jul 1999 13:32:18 +0200 Server: Apache/1.2.4 Last-Modified: Sun, 25 Jul 1999 13:32:18 +0200 ETag: "437e5-98-3531f2e3" Content-Length: 152 Accept-Ranges: bytes Connection: close Content-Type: application/xml Max-age="0" resets the Set-cookie: session="1234567890123456";Domain="se cookie. lect";Path="/v1.0/general/id/";Max-age="0" A blank line to mark the end of the HTTP header. Identifies that this is in XML format. References the Resource specifying the syntax for this XML resource. Start and end of login-response for a rejected login. 7.10 Get-Atomic-Ratings Summary: The get-atomic-ratings operation retrieves atomic ratings done by one or more named raters on one or more resources. It can be used by a user agent to find out if this user has already rated this resource. It might also be used in peer rating, where person A wants to find items rated highly by named individuals B and C. Access control: The ratings made by a certain user can only be seen by that user, i.e. after logging in as that user. A person may however, in his/her personal profile, specify that other people can see his/her ratings. Get-atomic-ratings on a list of people may only be done in the following cases (i) all the people have specified in their profile that their ratings may be seen by other people, or (ii) the requestor is a certified filtering agent which will not divulge the personal ratings to a person, or (iii) the list of users is larger than ten, in this case, the atomic ratings are returned without identification of who made which rating. Input data: A URI for the rated resource, and a list of one or more people, whose atomic ratings on this resource are wanted. Output data: A list of atomic ratings, with or without identification of who made them, or an error code. Base protocol: XML. 7.10.1 Query format (get-atomic-ratings): The get-atomic-ratings query is an HTTP POST operation, whose body is an XML resource containing the query, sent to http://select/v1.0/general/id/evaluator. Note: You must be logged in, to perform this operation, even if you only are going to retrieve anonymous ratings. Explanation Information sent ----------- ---------------- Connect to the SELECT server POST /v1.0/general/id/get-ratings HTTP/1.1 To the HTTP server "select" Host: select port 80. Only files in the format Accept: application/xml application/xml are accepted. The format of the query is Content-Type: Application/xml XML. This user has connected to Cookie: session="1234567890123456" this server before, and a cookie identifies the session. The body of the query is an XML [XML1], [XML2] resource. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/get-atomic-ra tings.dtd) Start of attribute list for Each URI to be evaluated is a free text field containing the URI of the resource to be evaluated. Start of attribute list for rater. Identify whose ratings are requested. Start of attribute list for rater. Omitted List of requested rating descriptors. If no list is specified, this means that all available ratings are requested. Start of attribute list for rater. Example of a body (get-atomic-ratings): Explanation Information sent ----------- ---------------- (http://select/v1.0/get-atomic-ratings.dtd) Start. List of locations, for which ratings are retrieved. Raters, whose ratings are requested. Which rating labels are requested. End of get-atomic-ratings. 7.10.2 Response format (get-atomic-ratings-response): The response is an XML [XML1], [XML2] document. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0get-atomic-ratings-respon se.dtd) Reference to data structure Further information, see section 7.2. Import DTD from separate DTD %atomic-rating; file atomic-rating.dtd. The evaluation are returned, one If only some of the settings were accepted, here is a list of those not accepted. The #PCDATA can contain a human-readable description of the refusal reason in the preferred language of the user doing the registration (not always the language of the user being registered). XML attributes for Example 1 (get-atomic-ratings-response): Note: This response is sent in the case where the ISCN server had no ratings for any of the resources requested, so that only ratings from the select general ratings server are returned. Explanation Information sent ----------- ---------------- HTTP response header HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Declaration (DTD) file specifying the syntax for this XML resource. Start of get-atomic-ratings-res ponse for one resource. First rating returned. First rating Second rating Third rating End of data. Second rating First rating Second rating Third rating End of data Example 2 (get-atomic-ratings-response rejection): Explanation Information sent ----------- ---------------- HTTP response header. HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource Type Start of server list. Start of ratings for one resource to be rated. End of evaluate-response report and end of file. 7.11 Simple-Search Operation Issue: Should this really be in the standard? Is this not a user interface issue, since it is specified as an HTML search form below? Summary: Find web pages satisfying a query and which are highly rated. Access control: No access control for basic rating. Rating based on a particular users interest and values may be available only if preceded by a login operation for this particular user. Input data: The user specifies the query by filling in a query form. Simple search, when the personalised checkbox is unchecked, is always made on the general-rating derived descriptor. When the Personalized search checkbox is checked, the general-rating is made using a default personal-rating derived descriptor, which actually returns different values for each user. If the user is unknown, Personalized search will return an error message. Output data: A HTML page or an XML document with a list of found pages sorted according to rating and relevance. Base protocol: HTML application/x-www-form-urlencoded for the request, and HTML or XML for the response. 7.11.1 Query format (simple-search-query): The simple-search query is an HTTP GET operation with the query after "?" in the URI. The query is the same as would be sent with the following HTML form: SELECT Search Query
Search:
Internet
Select directory
News

Only unseen
  Search query:  
Limit to Country:
Limit to Language:

Result format:
HTML XML

Peer search

Max no of docs:

Context: general business leisure shopping research politics
Use my interest profile    Use my keywords    Use only manual keywords and profile
If the user check to "Use my interest profile" or "Use my keywords", then that user can, but need not fill in any "Search query". If the user does not fill in any "Search Query" but checks "Only unseen" and "Use my interest profile" or "Use my keywords", then this will be a search for highly-rated new, by this user unseen information. Note that by checking "News", a search for news articles is done and the result may be presented on the web, even though the rating of these web articles was done through a newsreader and not through a web interface. By "Peer search" is meant search, where higher value is given to ratings provided by people with similar interests and values as yourself. Example of query string: (filter OR "SELECT rating") AND EU&domain=world&language=world which with URI encoding will become: search=internet&search=select&search=news&query=%28filter+OR+%22SELECT+ rating%22%29+AND+EU&Search=Search&textfield=&lang=world&resultformat=ht ml&context=yes&business=yes&leisure=yes&shopping=yes&research=yes&polit ics=yes Example of a simple-search query Query is sent to the following URL for the SELECT general service: http://select/v1.0/general/simple-search?query= Explanation Information sent ----------- ---------------- Connect to the SELECT GET /v1.0/general/simple-search?search=internet&searc server h=select&search=news&query=%28filter+OR+%22SELECT+rat ing%22%29+AND+EU&Search=Search&textfield=&lang=world& "format" can be either resultformat=html&context=yes&business=yes&leisure=ye "xml" or "html" and s&shopping=yes&research=yes&politics=yes HTTP/1.1 specifies in which format the response is to be delivered To the HTTP server Host: select "select" port 80. Only files in the Accept: application/xml format application/xml are accepted. This user has Cookie: session="1234567890123456" connected to this server before, and a cookie identifies the session. 7.11.2 Response format (simple-search-response): The simple-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. This standard only specifies the XML response format, the HTML response format is not standardized. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/simple-search-response.dt d) The evaluation are returned, If only some of the rating values were rejected, this element is used to list the rejected rating values. The #PCDATA contains the summary or keywords or some other description of the found resource. Example 1 (positive simple-search response): Explanation Information sent ----------- ---------------- HTTP response header HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource Type XML resource. An overview of flowers found in Kenya. An overview of flowers found in Kiwi. Example 2 (negative simple-search response): Explanation Information sent ----------- ---------------- HTTP response header. HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource Type XML resource. All ratings were not accepted. Rating-label rejected, this You are not allowed to make this server does not accept ratings search. in the leisure context. End of simple-search-response. 7.12 Advanced-Search Operation (Not yet ready) Summary: Find web pages satisfying a query and which are highly rated. Access control: No access control for basic rating. Rating based on a particular users interest and values may be available only if preceded by a login operation for this particular user. Input data: Some general-purpose search format, based on SQL or some other search language. The advanced search should especially allow the needs of other modules. Required functionality: 1. It should be possible to search on all derived and atomic ratings. Example of use: The NLP modules need a way of getting a list of which documents are to be rated by the NLP modules. Can this be done through a variant of the advanced-search operation? 2. It should be possible to retrieve all ratings on resources with a particular author, including ratings with a particular author sent to a particular newsgroup. Output data: A HTML page or an XML document with a list of found pages sorted according to rating and relevance. Base protocol: HTML application/x-www-form-urlencoded for the request, and HTML or XML for the response. 7.12.1 Query format (advanced-search-query): The advanced-search query is an HTTP POST operation, whose body is an XML resource containing the profile, sent to the profiles cgi-script in the server for this particular rating service. Example: "http://select/v1.0/general/id/search". Explanation Information sent ----------- ---------------- Connect to the SELECT server POST /v1.0/general/id/search HTTP/1.1 To the HTTP server "select" port Host: select 80. Only files in the format Accept: application/xml application/xml are accepted. The format of the query is XML. Content-Type: Application/xml This user has connected to this Cookie: session="1234567890123456" server before, and a cookie identifies the session. The body of the operation is an XML [XML1], [XML2] resource. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/advanced-search.dtd) Not yet ready Example of a advanced-search query Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/advanced-search.dtd) HTTP header. POST /v1.0/general/id/advanced-search HTTP/1.1 Host: select Accept: application/xml Content-Type: Application/xml Cookie: session="012345678901234354" A blank line to mark the end of the HTTP header. Identifies that this is in XML format. References the Declaration (DTD) file specifying the syntax for this XML resource. Not yet ready 7.12.2 Response format (advanced-search-response): The response format for the advanced-search is the same as the response format for the simple search, described in section 0. 7.13 Evaluate Operation Summary: Get the ratings for a list of URIs. Access control: No access control for basic rating. Rating based on a particular user's interest and values may be available only if preceded by a login operation for this particular user. Input data: A list of URIs and a list of services. For each service, a list of aggregate rating labels are listed. Note that only aggregate ratings, not atomic ratings, can be found with this operation. If N URIs, M services and V label types are listed, then NxMxV rating labels are returned. Output data: A list of rating labels. Base protocol: HTTP and XML. Issue: Is a "streaming" version of this operation needed? By streaming is meant a version in which the URIs to process are sent to the server in parallel with the server returning responses, so that responses for the first URIs are returned before the last URIs have been sent to the server for evaluation. 7.13.1 Query format (evaluate-query): The evaluate query is an HTTP POST operation, whose body is an XML resource containing the query, sent to http://select/v1.0/general/evaluator Explanation Information sent ----------- ---------------- Connect to the SELECT server. POST /v1.0/general/evaluator HTTP/1.1 To the HTTP server "select" port Host: select 80. Only files in the format Accept: application/xml application/xml are accepted. The format of the query is XML. Content-Type: Application/xml This user has connected to this Cookie: session="1234567890123456" server before, and a cookie identifies the session. The body of the query is an XML [XML1], [XML2] resource. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/evaluate-query.dtd) A list of locations to be of services to evaluate these locations. The returned response will be L x S rating labels, if L is the number of locations and S the number of services. Start of attribute list for attributes. Each URI to be evaluated is a free text field containing the URI of the resource to be evaluated. Each service description is a free text field containing the URI of the service. Start of attribute list for attributes. List of requested descriptors. If no list is specified, this means that all available descriptors are requested. Only aggregate ratings can be requested, not atomic ratings. Start of attribute list for attributes. Instead of listing the labels to be retrieved, it is possible to just specify the name of a collection, to retrieve the labels specified in this collection.. The collection must be a collection specified in the service-description of the service used. Example of a body (evaluate-query): Explanation Information sent ----------- ---------------- (http://select/v1.0/evaluate-query.xml) Start. List of locations to http://www.body.com/toes be evaluated. http://www.face.com/eyes List of services whose descriptors requested are listed. For the general service, reader-quality and reader-interest-rating End of evaluate-query. 7.13.2 Response format (evaluate-response): The response is an XML [XML1], [XML2] document. The XML Resource Type Declaration for this XML resource is: Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/evaluate-response.dtd) The evaluation are service at a time. Start of list of attributes attributes. "rejection". URI of the rated resource. "resource". Start of a ratings label. Note: If no label is available, then no labels are specified. Start of attribute list for Example 1 (evaluate response): Note: This response is sent in the case where the ISCN server had no ratings for any of the resources requested, so that only ratings from the select general ratings server are returned. Explanation Information sent ----------- ---------------- HTTP response header HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource Type specifying the syntax for this XML resource. Start of evaluate-response for one resource. Start of ratings for one One rating descriptor value for this resource. Start of ratings for one One rating descriptor value. this resource. End of evaluate-response report and end of file. Example 2 (evaluate response rejection): Explanation Information sent ----------- ---------------- HTTP response header. HTTP/1.1 200 OK Content-Length: 569 Content-Type: application/xml Server: Select 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. References the Resource Type Start of server list. Start of ratings for one resource to be rated. End of evaluate-response report and end of file. 7.14 Exchange-Ratings-Data (not yet ready) Summary: This operation is used between two select servers, in order to replicate information in their data bases. Issues: Access control: Input data: Output data: Base protocol: 7.14.1 Query format (exchange-ratings-data): Example (replicate-ratings): Explanation Information sent ----------- ---------------- Not ready 7.14.2 Response format (exchange-ratings-data): Explanation Format of information sent ----------- -------------------------- (http://select/v1.0/exchange-ratings-data.dtd) Not ready Example (replicate-ratings response): Explanation Information sent ----------- ---------------- Not ready 8. The SELECT general service description A SELECT general service description file contains - A list of services - Per service - Admistrative information about the service accessible on the server - Name - Maintainer - Website about the service - Textual description in natural language (possible in multiple languages) - A list of categories - Per category - A textual description of the category (possible in multiple languages) - A name for the category - Rater type (human or computer generated rating) - The datatype of the ratings for this category (a label, keyword, value or derived category) - Depending on the datatype - Value: How the category should be displayed on screen ("none" if not possible) The calculationmethod used to calculate the instant rating value of a resource for this category A minimum and maximum value for the rating values in this category - Label : How the category should be displayed on screen ("none" if not possible) The calculationmethod used to calculate the instant rating value of a resource for this category A list of labels for the category. Per Label - A value that corresponds to the description contained in the textual or iconic labels. - A list of Textual and/or Iconic labels (possible in multiple languages) - Derived: The calculationmethod used to calculate the instant rating value of a resource for this category A number of categories from which the value of an instant rating of this category is derived. A list of labels that describe how to map the value of an instant rating of this category back to natural language. Per label - A minumum and maximum value. If the rating falls between these 2 values, the associated textual label is selected. - Keyword: The calculationmethod used to calculate the instant rating value of a resource for this category - A list of imported categories : categories of other services that are imported into this service - The classname of the Java class that starts the agents associated with the service. All this translates to the XML document type definition looks like this: 8.1 Example An example of all this is the service description file of the SELECT test server: 9. Example of file structure on a SELECT server Here is an example of a file structure for a SELECT server: URL Content --- ------- http://select/v1.0/ Repository of XML format specifications (DTDs) for SELECT version 1. http://select/v1.0/services.dtd XML format the list of services. http://select/v1.0/service.dtd XML format for the description of one SELECT service. http://select/v1.0/send-rating.dtd XML format for the send-rating operation. http://select/v1.0/send-rating-response.dt XML format for the d responses of the send-rating operation. http://select/v1.0/evaluate-query.dtd XML format for the evaluate query request. http://select/v1.0/evaluate-response.dtd XML format for the response of the evaluate operation. http://select/v1.0/select-service-descript List of SELECT services ions.xml in version 1 of SELECT, see 0 The SELECT general service description on page 73. http://select/v1.0/general/ Version 1 of the select general service. http://select/v1.0/general/common-service- Description of common description.xml descriptors to several SELECT services. http://select/v1.0/general/general-service Description of the -description.xml general SELECT service. The general service is for everyone, not for specialised groups. http://select/v1.0/general/id/input-rating Entry point for incoming s non-anonymous (registered or pseudonymous) ratings to the select general service. http://select/v1.0/general/ano/input-ratin Entry point for incoming gs anonymous ratings to the select general service. http://select/v1.0/general/search?query= Entry point for the web-based search operation. http://select/v1.0/general/evaluator Entry point for the evaluate operation. http://select/v1.0/iscn/ Version 1 of the select ISCN service. http://select/v1.0/iscn/iscn-service-descr Description of the iption.xml special SELECT service for ISCN. 10. Issues for further study These issues are items which are not needed for the base system implementations, and which may be modified by experience from the first implementation efforts. 1. The Advanced Search facility should be specified, based on query by example, SQL or some other standard query language methodology. 2. The format of the personal interest profile, and keywords is not ready. In particular, should there be a split between profile set by the user him/herself and set by automatic methods, such as ML algorithms on the user's rating and behaviour. Also, to what extent should this profile be specified in a formal, logical language, like "If newsgroup is alt.culture.sweden then do not filter away anything", etc. In the first implementations, we will just use a simple set of unordered keywords as the personal profile. 3. Is security enough? Do we need more security features? If so, which and how? 4. Is there a need for NNTP versions of some or all of the operations? 5. Is a streaming version needed for the evaluate operation? 6. Privacy and security issues for Get-Atomic-Ratings. 7. Is more needed for ML support? 8. Is more needed for NLP support? 9. Exchange-Ratings-Data not ready. No great priority. 10. Set-Service-Description not ready. No great priority. Can be done using local or web-based interface. 11. Is more needed for thesauri support? 12. Should the SELECT protocols be based on SOAP in order to base it on something existing? SOAP is described at http://msdn.microsoft.com/xml/general/soap_white_paper.asp (quick intrduction), and http://www.develop.com/soap/ (useful links). 11. The SELECT Agent protocol The advanced SELECT platform now supports an agent architecture that makes it easy to integrate collaborative or information filtering algorithms. The agents can run in the Select server or on a client machine over the Network and can perform tasks as maintaining datastructures that can speed-up collaborative filtering algorithms, perform collaborative filtering, notifying other agents of a change in the Select database or using machine learning at the client to derive useful user-profile information. The agents can communicate with one another and with the Select server using an extension of the original XML Select protocol. They can request certain services to be executed or can send a notification about the occurrence of a certain event. The introduction of agent means that the protocol had to be extended to support this. This appendix gives an overview of the necessary extensions. 11.1.1 Entry points Following new entry points in the Select server have been made: Entry Function ----- -------- /agent/register-agent.xml Register an agent with the AgentList /agent/deregister-agent.xml Deregister an agent with the AgentList /agent/list-agents.xml Request a remote AgentList In addition to this, every remote agent and the server have the following entry points: Entry Function ----- -------- /agent/request/"name" Request an agent a service "name" is the name of the agent /agent/notify/"name" Notify an agent of an event. "name" is the name of the agent 11.1.2 XML Extensions This is an overview of the new XML document type definitions. Registering an agent with the server-side AgentList. Register Agent Request (register-agent.dtd) name of the agent depends on the type e.g. if type is "update-in-category" it's a string of format Register Agent Reply (register-agent-reply.dtd) Positive or negative Deregister an agent with the server-side AgentList Deregister Agent Request (deregister-agent.dtd) Name of the agent to Deregister Agent Reply (deregister-agent-reply.dtd) Possible or negative Get a remote AgentList for use in a remote agent List Agents Request (list-agents-request.dtd) A list of one or more session identifiers List Agents Reply (list-agents.dtd) A list of data for one or more agents Notify a remote agent of the occurrence of a certain event Notify Agent Request (notify-agent.dtd) name of the agent Request an agent for some service Agent Request (agent-request.dtd) name of the agent "get-n-closest-neighbors" parameters = "raterid" Agent Reply (agent-reply.dtd) Agent request was 11.1.3 Privacy and security policy for agents When dealing with an architecture where agents can run on the Select server or client machines and can communicate and request services of one another, it is necessary to have a system in place that limits the access to the agents in order to avoid abuse of machine resources (server or client) or the exposure of personal profile or other database information to unauthorized persons. First of all, remote agents can only be registered and controlled by users that are registered with the Select Server. The user first logs in and receives a session-id. This ID is associated with every agent the user registers with the AgentList. It's used for authentication in a number of cases: - A remote agent only accepts requests if the requesting agent knows this agent's session id. - When a remote agent requests a remote AgentList, it must include the session-id(s) of the agents it wants access to. This way, the server only returns information about agents for which the remote agent has proven it's authority of access. Local agents can be "private" or "public". Private local agents do not accept requests from remote agents, only from other local agents. Public local agents can accept requests from remote agents. Both local agent types can themselves request information from remote agents. - A public local agent only accepts request when the session-id associated with the request is present in the server. This means that the session that created the agent has not ended yet. 12. Protocol Implemtation Status Here we provide an overview of the implementation status of the SELECT protocol as done by the SELECT EU project. Get-Service-Description-List Compelety implemented Get-Service-Description Completely implemented Send-Rating Completely implemented exept for the rater-competence rater-trust message-id fields of the rating. These are not used anywhere. Set-Profile Implemented except for - The pseudonymous related thing. Pseudonyms are never used in the present system. - Multiple profiles per user. Every user has 1 profile for all the services, it contains its unique data (name, password,...,languages spoken, reward account) and some data for the SELECT test service filtering algorithms (keywords,...) - The reward account that is never used. - A profile must always be replaced as a whole. Single fields cannot be changed separately. Get-Profile Completely implemented. Login & Logout Completely implemented? Get Atomic Ratings Implemented except the only the first combination of rater/URL/category is used in the lookup. All other requested combinations are ignored. Simple-Search Operation Completely implemented but the search query is a regular expression. This gets matched against the keywords stored with the rated URI's and the ones with the best instant ratings are returned. Evaluator Implemented except the personal context sort collection-name fields that are ignored and used nowhere 13. Security considerations Not yet ready. 14. Copyright Copyright (C) The Internet Society 2000. All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 15. Acknowledgments Michel Claude, Christopher Lueg, David Mason, Andras Micsik, Massimo Vanocchi and Richard Wheeler have participated in the production of this document. An earlier attempt to encode PICS in XML format was made by O. Lassila as described in [PICS3]. 16. References Ref. Author, title --------- -------------------------------------------------------- [PICS1] Rating Services and Rating Systems (and Their Machine Readable Descriptions) http://www.w3.org/PICS/services.html [PICS2] PICS Distribution Label Syntax and Communication Protocols http://www.w3.org/PICS/labels.html. [COOKIES] RFC 2109 HTTP State Management Mechanism. D. Kristol, L. Montulli. February 1997. ftp://sunic.sunet.se/rfc/rfc2109.txt [HTTP] RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee. January 1997. ftp://sunic.sunet.se/rfc/rfc2068.txt [IMAP] IMAP4 Authentication Mechanisms. J. Myers. December 1994, RFC 1731. [IMAP] RFC 2045-2049 Multipurpose Internet Mail Extensions (MIME). N. Freed & N. Borenstein, November 1996. ftp://sunic.sunet.se/rfc/rfc2045.txt, rfc2046.txt, rfc2047, rfc2048, rfc2049 [URI] RFC 1738 Uniform Resource Locators (URI).T. Berners-Lee et al, December 1994. ftp://sunic.sunet.se/rfc/rfc1738.txt [XML1] Extensible Markup Language (XML) 1.0. W3C REC-xml-19980210, T. Bray, J. Paoli, C.M. Sperberg-McQueen. http://www.w4.org/TR/1998/REC-xml-19980210 [XML2] A Technical Introduction to XML, N. Walsh, Oct 1998, http://www.xml.com/xml/pub/98/10/guide0.html [PICS3] PICS-NG Metadata Model and Label Syntax, O. Lassila, http://www.w3.org/TR/NOTE-pics-ng.metadata [SELFUNC] SELECT, Telematics Application Programme, RE4008, Deliverable 2.1 Draft, Functional Specifications Report, by Roland Alton-Scheidl and Richard Wheeler. [SELARCH] SELECT System Architecture, by Richard Wheeler 17. Author's Addresses Jacob Palme Phone: +46-8-16 16 67 Stockholm University and KTH Fax: +46-8-783 08 29 Electrum 230 Email: jpalme@dsv.su.se S-164 40 Kista, Sweden Johan Kaers Phone: +32-2-7400794 S T A R L A B Research Laboratories Fax: +32 2 7429654 Sint-Michielslaan 47 Email: johan@starlab.net B-1040 Etterbeek (Brussels), Belgium