PICS Label Bureau Communication: PICSRules Extension

The PICS PUT proposal outlines a method for submitting labels to a label bureau.  In a similar manner, this document outlines a procedure for sumbitting searches to the label bureau via PICSRules.

In PICS Label Distribution Label Syntax and Communication Protocols, the detailed label bureau query syntax is as follows:

request :: get | post
get :: 'get' url-fragment '?' [opt] [format]
                              extension* url+ service+
post :: 'post' url-fragment crlf crlf formencodeddata

Note that the PICS Label Distribution Label Syntax and Communication Protocols specification does not allow labels to be submitted to the label bureau. We propose an extension to the existing syntax as follows. Note: green bold elements are proposed extensions to those already defined in PICS Label Distribution Label Syntax and Communication Protocols and RFC 2068.

request :: get | post | put-query

This is a standard PUT as defined in HTTP 1.1 and this BNF reference is provided here for clarity. Please see the HTTP 1.1 recommendation for a detailed reference. Our proposal places the labellist in the data field of the PUT.

put-query :: 'put' url-fragment 'HTTP/1.1' crlf crlf PICSRule
url-fragment :: the part of the original URL after the host
    name, as specified in HTTP 1.1.
crlf :: carriage return (hex D) followed by line feed (hex A)

Here is a sample PUT query on a PICS 1.1 label bureau:

PUT /Labels HTTP/1.0 [CRLF] [CRLF]
 (PicsRule-1.1
     (
     serviceinfo (
         "http://www.coolness.org/ratings/V1.html"
         shortname "Cool"
         bureauURL "http://labelbureau.coolness.org/Ratings"
         UseEmbedded "N"
         )
     Policy (RejectIf "((Cool.Coolness <= 3) or (Cool.Graphics >= 3))")
     Policy (AcceptIf "otherwise")
     ) 
 )
Last Modified 20 January, 1998, Kyle Jamieson jamieson@mit.edu