This proposal is based upon the Platform for Internet Content Selection (PICS) Label Syntax and Communication Protocols, Revision 1, DRAFT 12, and the W3C Annotation Working Group Attribute/Value HTML Proposal of 21 Nov 95.
This document defines a format for embedding annotations within PICS labels.
Please see the PICS Label Syntax and Communication Protocols for a description of embedding PICS labels into RFC-822-style headers, methods by which PICS labels may be transmitted, and the format and syntax of PICS labels.
The general format of a PICS label list is as follows:
(PICS-1.0
<service url> [option...]
labels [option...] ratings (<category> <value> ...)
[option...] ratings (<category> <value> ...)
...
<service url> [option...]
labels [option...] ratings (<category> <value> ...)
[option...] ratings (<category> <value> ...)
...
...)
The proposed annotation format would expand the PICS label list into the following general format:
(PICS-1.0
<service url> [option...]
labels [option...] ratings (<category> <value> ...)
[option...] ratings (<category> <value> ...)
...
<service url> [option...]
annotation [option...] ratings (<category> <value> ...)
[option...] ratings (<category> <value> ...)
...
...)
The syntax of the PICS label list would be expanded in the case of the element "labelword" to include annotation, as follows:
labelword :: 'labels' | 'l' | 'annotations' | 'a'
It is suggested that the PICS-specific element ratings be modified to a more general term, such as notes.
If the category/value pairs after ratings are expanded to include alphanumeric values rather than just numeric values, they can correspond to the attribute/value pairs in the AVHTML proposed syntax. If the annotation is embedded into the label, and if current AVHTML syntax is to be followed exactly, then some set of category/value pairs are mandatory, such as the version and format URLs.
annotations ratings (AVHTML-Version 1.0 Format-Name Annotation-Set Format-Version 1.1 Format-URL http://www.w3.org/Formats/annotation_set_1_1.html Attribute1 Value1 ... AttributeN ValueN)
Alternatively, a category/value pair could point to a remote annotation:
annotations ratings (Annotation-URL http://www.w3.org/Work/mycomments.html)
The following grammar, in modified BNF, describes the syntax of PICS labels expanded to include annotation. The only elements which differ from the original PICS label syntax are:
If multi-value is a necessary part of the PICS label syntax, an alternative grammar would use:
labels_rating :: transmit-name number | transmit-name '(' multi-value* ')'
annotations_rating :: transmit-name transmit-name | transmit-name number
labellist :: '(' 'PICS-1.0' service-info+ ')'
service-info :: 'error' '(no-ratings' explanation* ')'
| serviceID service-error | serviceID option* labelword label*
serviceID :: quotedURL
labelword :: 'labels' | 'l' | 'annotations' | 'a'
label :: label-error | single-label | '(' single-label* ')'
single-label :: option* ratingword '(' rating+ ')'
ratingword :: 'ratings' | 'r' | 'notes' | 'n'
quotedURL :: '"' URL '"' as described and extended in
Rating Services and Rating Systems.
option :: 'at' quoted-ISO-date
| 'by' quotedname
| 'comment' quotedname
| 'complete-label' quotedURL | 'full' quotedURL
| 'extension' '(' mand/opt quotedURL data* ')'
| 'generic' boolean | 'gen' boolean
| 'for' quotedURL
| 'MIC-md5' "base64-string" | 'md5' "base64-string"
| 'on' quoted-ISO-date
| 'signature-PKCS' "base64-string"
| 'until' quoted-ISO-date | 'exp' quoted-ISO-date
mand/opt :: 'optional' | 'mandatory'
data :: quoted-ISO-date | quotedURL
| number | quotedname | '(' data* ')'
quoted-ISO-date :: '"'YYYY'.'MM'.'DD'T'hh':'mmStz'"'
based on the ISO 8601:1988 date and time standard, restricted
to the specific form described here:
YYYY :: four-digit year
MM :: two-digit month (01=January, etc.)
DD :: two-digit day of month (01 through 31)
hh :: two digits of hour (00 through 23) (am/pm NOT allowed)
mm :: two digits of minute (00 through 59)
S :: sign of time zone offset from UTC ('+' or '-')
tz :: four digit amount of offset from UTC
(e.g., 1512 means 15 hours and 12 minutes)
For example, "1994.11.05T08:15-0500" is a valid quoted-ISO-date
denoting November 5, 1994, 8:15 am, US Eastern Standard Time
Note: The ISO standard allows considerably greater
flexibility than that described here. PICS requires precisely
the syntax described here -- neither the time nor the time zone may
be omitted, none of the alternate formats are permitted, and
the punctuation must be as specified here.
rating :: transmit-name transmit-name | transmit-name number
transmit-name :: [1*n]alphanumpm ['/' transmit-name]
number :: [sign]unsignedint['.' [unsignedint]]
sign :: '+' | '-'
unsignedint :: [1*n][0-9]
quotedname :: ' " ' [1*n]extendedalphanum ' " '
alphanumpm :: 'A' | ... | 'Z' | 'a' | ... | 'z' | '+' | '-'
extendedalphanum :: alphanumpm | '.' | ' ' | ',' | ';' | ':'
| '&' | '=' | '?' | '!' | '*' | '~' | '@' | '#'
base64-string :: as defined in RFC-1521.
service-error :: 'error' '(' 'request-denied' explanation* ')'
| 'error' 'service-unavailable'
label-error :: 'error' '(' request-denied' [quotedURL explanation*] ')'
| 'error' '(' not-labeled' quotedURL* ')'
explanation :: quotedname
Created 13 Feb 1996 by Karen MacArthur