This document has been reviewed by W3C members and other interested parties and has been endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited as a normative reference from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.
A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/pub/WWW/TR/.
This document, which has been prepared for the technical subcommittee of PICS (Platform for Internet Content Selection), defines a language for describing rating services. Software programs will read service descriptions written in this language, in order to interpret content labels and assist end-users in configuring selection software.
Table of Contents
The application/pics-service document type
Explanation of Sample Rating Service
Detailed syntax of application/pics-service
Appendix A: The Ages Rating Service
Appendix B: RSAC Rating Service
Appendix C: The SafeSurf~~ Rating Service
This document, which has been prepared for the technical subcommittee of PICS (Platform for Internet Content Selection), defines a language for describing rating services. Software programs will read service descriptions written in this language, in order to interpret content labels and assist end-users in configuring selection software.
A related document (PICS Label Distribution) specifies the syntax and semantics of content labels and protocol(s) for distributing labels.
The goal of the PICS effort is to enable a marketplace in which many different products and services will be developed, tested, and compared. Hence, the following considerations have had significant impact on this document:
A rating service is an individual, group, organization, or company that provides content labels for information on the Internet. The labels it provides are based on a rating system (see below). Each rating service must describe itself using a newly created MIME type, application/pics-service. Selection software that relies on ratings from a PICS rating service can first load the application/pics-service description. This description allows the software to tailor its user interface to reflect the details of a particular rating service, rather than providing a "one design fits all rating services" interface.
This specification does not state how the application/pics-service description of a rating service is initially located. For users of the World Wide Web, we expect that well-known sites will provide lists of rating services along with their application/pics-service descriptions. It is expected that client programs will cache copies of application/pics-service descriptions, so any incompatible change in a service description should be accomplished by creating an entirely new service URL.
Each rating service picks a URL as its unique identifier. It is included in all content labels the service produces, to identify their source. We recommend, but do not require, that this identifier include a version number, as shown in all of the examples in this specification, to simplify transitions due to incompatible changes over time. For example, our sample service "http://www.gcf.org/v1.0/" includes "v1.0" as its own version number. To ensure that no other service uses the same identifier, it must be a valid URL. In addition, the URL (when used within a query) serves as a default location for a label bureau that dispenses this service's labels (see PICS Label Distribution).
Since the service identifier is a URL, it can be used to retrieve a document. That document may be in any format, but we recommend that it:
A rating system specifies the dimensions used for labeling, the scale of allowable values on each dimension, and a description of the criteria used in assigning values. For example, the MPAA rates movies in the USA based on a single dimension with allowable values G, PG, PG-13, R, and NC-17.
Each rating system is identified by a valid URL. This enables several services to use the same rating system and refer to it by its identifier. The URL naming a rating system can be accessed to obtain a human-readable description of the rating system. The format of that description is not specified.
A content label (or rating) contains information about a document. As described in PICS Label Distribution, a content label (or rating) has three parts:
A rating service is defined by a document of type application/pics-service. The detailed syntax and semantics are presented in the next two sections. Here is an example of such a document, intended only to illustrate the full set of features of a machine description:
((PICS-version 1.1) (rating-system "http://www.gcf.org/ratings") (rating-service "http://www.gcf.org/v1.0/") (icon "icons/gcf.gif") (name "The Good Clean Fun Rating System") (description "Everything you ever wanted to know about soap, cleaners, and related products. For demonstration purposes only.") (category (transmit-as "suds") (name "Soapsuds Index") (min 0.0) (max 1.0)) (category (transmit-as "density") (name "suds density") (label (name "none") (value 0) (icon "icons/none.gif")) (label (name "lots") (value 1) (icon "icons/lots.gif"))) (category (transmit-as "subject") (name "document subject") (multivalue true) (unordered true) (label (name "soap") (value 0)) (label (name "water") (value 1)) (label (name "soapdish") (value 2)) (label-only)) (category (transmit-as "color") (name "picture color") (integer) (category (transmit-as "hue") (label (name "blue") (value 0)) (label (name "red") (value 1)) (label (name "green") (value 2))) (category (transmit-as "intensity") (min 0) (max 255))))
Notes:
rating-service-description :: '(' version rating-system rating-service service-option* category-list+ ')' version :: '(' 'PICS-version' '1.1' ')' rating-system :: '(' 'rating-system' quoted-URL ')' rating-service :: '(' 'rating-service' quoted-URL ')' service-option :: default | description | extension icondef | name category-list :: '(' 'category' '(' 'transmit-as' transmit-name ')' (category-option | scale-option)* category-list* ')' defaultable-option :: extension | integer | labeled | max | min | multi | unordered category-option :: description | icondef | name scale-option :: defaultable-option | enum-list enum-list :: enum+ enum :: '(' 'label' name [description] '(' 'value' number ')' [icondef] ')' default :: '(' 'default' defaultable-option+ ')' description :: '(' 'description' quoted-string ')' extension :: '(' 'extension' '(' mand/opt quoted-URL data* ')' ')' icondef :: '(' 'icon' quoted-URL ')' integer :: '(' 'integer' [boolean] ')' labeled :: '(' 'label-only' [boolean ] ')' max :: '(' 'max' maxnum ')' min :: '(' 'min' minnum ')' multi :: '(' 'multivalue' [boolean] ')' name :: '(' 'name' quoted-string ')' unordered :: '(' 'unordered' [boolean] ')' boolean :: 't' | 'f' | 'true' | 'false' mand/opt :: 'optional' | 'mandatory' transmit-name :: '"' transmit-name-char+ '"' minnum :: number | '-INF' maxnum :: number | '+INF' number :: [sign]unsignedint['.' [unsignedint]] sign :: '+' | '-' unsignedint :: [0-9]+ data :: quoted-string | '(' data* ')' Note: In many cases it is useful to be able to use a URL as data. This syntax requires that, in such a case, the URL must be UTF-7 encoded. This will rarely require any additional work, but designers and implementers of extensions should take care. quoted-string :: '"' UTF-7 '"' UTF-7 :: Characters encoded using UTF-7, with direct coding of US-ASCII set O except for the double-quote (decimal 34) which must be encoded to allow for its use as the string delimiter character. See note above. quoted-URL :: '"' URL '"' URL is as defined in RFC-1738 for URLs. In addition, PICS defines the following new form for referencing Internet Relay Chat (IRC) rooms: URL :: ... | 'irc://' host '/' alphanumpm (where host is the usual Internet hostname) transmit-name-char :: alphanumpm | '.' | '$' | ',' | ';' | ':' | '&' | '=' | '?' | '!' | '*' | '~' | '@' | '#' | '_' | '%' hex hex Note: Use the "%" escape technique (% followed by the two hex digits that represent the character in the ASCII character set) to insert single or double quotation marks or parentheses. alphanumpm :: 'A' | ... | 'Z' | 'a' | ... | 'z' | '0' | ... | '9' | sign sign :: '+' | '-'
For reference, the following attributes are currently defined by the above BNF:
Recall that the MIME type application/pics-service is intended to describe a particular rating service in sufficient detail to automatically generate a user interface for configuring content selection software that relies on the rating service.
The quoted-URL in the rating-service identifies the service. This identifier is included in all the labels provided by the rating service. Dereferencing the URL yields a human-readable description of the service. If the optional URL for an icon for the rating service is supplied, it is dereferenced relative to the rating service URL. The name of the rating system is intended to be short and human-readable, with the description being a longer description (suitable, perhaps, for a pop-up box). A complete human-readable description is available from the rating service's URL.
The quoted-URL in the rating-system identifies the rating system used by this service. Dereferencing the URL yields a human-readable description of the rating system. All remaining relative URLs in the application/pics-service description are dereferenced relative to the rating-system URL, since they describe features of the rating system. The only exception is the rating service's icon, as described above, which is dereferenced relative to the rating-service URL, so that the service can maintain its own (possibly copyrighted) identity even if it chooses to share a rating system with other services.
The machine-readable description also describes the categories used in the rating system. There may be one or more categories for a given rating system. A single document may have a rating on any or all of these categories. Categories can be nested within one another.
A category has a "transmission name" which is used in the actual label for a document. Transmission names should be as short as reasonable, but they may be complete URLs if desired. They must be unique within a given rating system (i.e. two categories in the same rating system must not have the same transmission name; but see below for creating transmissions names from nested categories.) Unlike the name and description strings, transmission names are language-independent. That is, if a rating system is offered in several languages, the transmission names must be the same in all of them. Transmission names are case sensitive (to allow URLs to be used as transmission names). In addition to the transmission name, which is required, a category may optionally have an icon and a human-readable description.
Categories may be nested within one another (as in the case of color in the example rating system). In this case, the transmission name is created in the usual way by starting with the outermost category's transmit-as string, adding a "/" and proceeding inward in the nesting. Thus, the example rating system has three categories, and their transmission names are color, color/hue, and color/intensity. In order to simplify the user interface of configuration software, it is wise to have few categories at any level of nesting; we recommend 10 or fewer.
Icons, if provided, may be of any size. We recommend, however, that icons be as small as possible, since selection software is likely to embed them in displays that include other text and images as well. We also recommend that a rating service's category icons all be the same size.
Values in PICS labels may be integers or fractions with no greater range or precision than that provided by IEEE single-precision floating point numbers. Values may be given names by using the label attribute. When a value is given a name, it may optionally have attached an icon and a human-readable description. The description for each category can specify restrictions on the range of permissible values for certain named attributes. Values may be restricted in a variety of ways:
For rating systems that contain large numbers of categories or deeply nested categories, it is convenient to allow for inheritance of some attribute values. In particular, the defaultable-options of a category (extension, integer, label-only, max, min, multivalue, and unordered) are inherited by each category from its enclosing (parent) category. These attributes can be given default values for the entire rating service by using the default attributes. This corresponds to value inheritance in object-oriented systems or lexical scoping in programming languages. (Notice that not all attributes can be inherited. Rationale: the set was chosen to include only those attributes that can be overridden. Thus, the enum-list is not inheritable because there is no way to say "don't give this value a name," which would be required to override an inherited name.)
Note: While it would be nice to restrict the numeric values of ratings to integers, the following examples motivate our decision to permit fractional values.
Comments and suggestions from the following people are gratefully acknowledged:
Brenda Baker, Lucent Scott Berkun, Microsoft Tim Berners-Lee, W3C Roxana Bradescu, AT&T Daniel W. Connolly, W3C Roy Fielding, W3C Jay Friedland, SurfWatch Henrik Frystyk Nielsen, W3C Wayne Gramlich, Sun Woodson Hobbs, NewView Rohit Khare, W3C Charlie Kim, Apple John C. Klensin, MCI Tim Krauskopf, Spyglass Breen Liblong, IFSI Ann McCurdy, Microsoft Rich Petke, CompuServe Eric Prud'hommeaux, W3C Dave Raggett, W3C Bob Schloss, IBM Ray Soular, SafeSurf Jason Thomas, MIT G. Winfield Treese, OpenMarket Richard Wolpert, Providence Systems
One of the simplest possible rating systems uses a single category, "Minimum recommended age." We present the machine description for a fictional service that uses this rating system.
((PICS-version 1.1) (rating-system "http://www.ages.org/our-system/") (rating-service "http://www.ages.org/our-service/v1.0/") (name "The Ages Rating Service") (description "We estimate the maturity required to view materials on the Internet.") (category (transmit-as "age") (name "Minimum Recommended Age") (integer true)))
As a specific example of a deployed rating service encoded using the PICS machine-readable description format, we present the service supplied by the Recreational Software Advisory Council (RSAC). They use their own (copyrighted) rating system, which we include with their permission. The rating system contains four categories: Violence, Nudity, Sex, and Language. Each category is rated on a scale from 0 to 4, with a specific description for each value. Only values with names are permitted.
((PICS-version 1.1) (rating-system "http://www.rsac.org/ratingsv01.html") (rating-service "http://www.rsac.org/") (name "The RSAC Ratings Service") (description "The Recreational Software Advisory Council rating service. Based on the work of Dr. Donald F. Roberts of Stanford University, who has studied the effects of media on children for nearly 20 years.") (default (label-only true)) (category (transmit-as "v") (name "Violence") (label (name "Conflict") (description "Harmless conflict; some damage to objects") (value 0)) (label (name "Fighting") (description "Creatures injured or killed; damage to objects; fighting") (value 1)) (label (name "Killing") (description "Humans injured or killed with small amount of blood") (value 2)) (label (name "Blood and Gore") (description "Humans injured or killed; blood and gore") (value 3)) (label (name "Wanton Violence") (description "Wanton and gratuitous violence; torture; rape") (value 4))) (category (transmit-as "s") (name "Sex") (label (name "None") (description "Romance; no sex") (value 0)) (label (name "Passionate kissing") (description "Passionate kissing") (value 1)) (label (name "Clothed sexual touching") (description "Clothed sexual touching") (value 2)) (label (name "Non-explicit sexual activity") (description "Non-explicit sexual activity") (value 3)) (label (name "Explicit sexual activity; sex crimes") (description "Explicit sexual activity; sex crimes") (value 4))) (category (transmit-as "n") (name "Nudity") (label (name "None") (description "No nudity or revealing attire") (value 0)) (label (name "Revealing Attire") (description "Revealing attire") (value 1)) (label (name "Partial Nudity") (description "Partial nudit") (value 2)) (label (name "Frontal Nudity") (description "Non-sexual frontal nudity") (value 3)) (label (name "Explicit") (description "Provocative frontal nudity") (value 4))) (category (transmit-as "l") (description "Language") (label (name "Slang") (description "Inoffensive slang; no profanity") (value 0)) (label (name "Mild Expletives") (description "Mild expletives") (value 1)) (label (name "Expletives") (description "Expletives; non-sexual anatomical references") (value 2)) (label (name "Obscene Gestures") (description "Strong, vulgar language; obscene gestures") (value 3)) (label (name "Explicit") (description "Crude or explicit sexual references") (value 4))))
SafeSurf, a parents' organization, has established a rating system that is used for self-rating by a large and growing number of sites on the Internet. They have provided a machine-readable version of their service to PICS as a demonstration of a more complex rating system that includes sub-categories as well as a document classification system. The following specification includes a full description of the rating part of the SafeSurf system, with only a small stub to represent the classifications.
((PICS-version 1.1) (rating-system "http://www.classify.org/safesurf/") (rating-service "http://www.classify.org/safesurf/service/") (name "SafeSurf Rating Service") (description "The SafeSurf SS~~ Rating and Classification Standard. Designed with input from thousands of parents and Net citizens worldwide to specifically to handle the vast potential of the Internet, it empowers each family to make informed decisions concerning accessibility of online content. Copyright 1995. All Rights Reserved.") (category (transmit-as "SS~~000") (name "Age Range") (label (name "All Ages") (value 1)) (label (name "Older Children") (value 2)) (label (name "Younger Teens") (value 3)) (label (name "Older Teens") (value 4)) (label (name "Adult Supervision Recommended") (value 5)) (label (name "Adults") (value 6)) (label (name "Limited to Adults") (value 7)) (label (name "Adults Only") (value 8)) (label (name "Explicitly for Adults") (value 9))) (category (transmit-as "SS~~001") (name "Profanity") (label (name "Subtle Innuendo") (description "Subtly Implied through the use of Slang") (value 1)) (label (name "Strong Innuendo") (description "Expressly implied through the use of Slang") (value 2)) (label (name "Technical Reference") (description "Dictionary, encyclopedic, news, technical references") (value 3)) (label (name "Non-Graphic-Artistic") (description "Limited non-sexual expletives used in a artistic fashion") (value 4)) (label (name "Graphic-Artistic") (description "Non-sexual expletives used in a artistic fashion") (value 5)) (label (name "Graphic") (description "Limited use of expletives and obscene gestures") (value 6)) (label (name "Detailed Graphic") (description "Casual use of expletives and obscene gestures") (value 7)) (label (name "Explicit Vulgarity") (description "Heavy use of vulgar language and obscene gestures. Unsupervised Chat Rooms.") (value 8)) (label (name "Explicit and Crude") (description "Saturated with crude sexual references and gestures. Unsupervised Chat Rooms.") (value 9))) (category (transmit-as "SS~~002") (name "Heterosexual Themes") (label (name "Subtle Innuendo") (description "Subtly Implied through the use of metaphor") (value 1)) (label (name "Strong Innuendo") (description "Explicitly implied (not described) through the use of metaphor") (value 2)) (label (name "Technical Reference") (description "Dictionary, encyclopedic, news, medical references") (value 3)) (label (name "Non-Graphic-Artistic") (description "Limited metaphoric descriptions used in a artistic fashion") (value 4)) (label (name "Graphic-Artistic") (description "Metaphoric descriptions used in a artistic fashion") (value 5)) (label (name "Graphic") (description "Descriptions of intimate sexual acts") (value 6)) (label (name "Detailed Graphic") (description "Descriptions of intimate details of sexual acts") (value 7)) (label (name "Explicit Vulgarity") (description "Explicit Descriptions of intimate details of sexual acts designed to arouse. Inviting interactive sexual participation. Unsupervised Sexual Chat Rooms or Newsgroups") (value 8)) (label (name "Explicit and Crude") (description "Profane Graphic Descriptions of intimate details of sexual acts designed to arouse. Inviting interactive sexual participation. Unsupervised Sexual Chat Rooms or Newsgroups") (value 9))) (category (transmit-as "SS~~003") (name "Homosexual Themes") (label (name "Subtle Innuendo") (description "Subtly Implied through the use of metaphor") (value 1)) (label (name "Strong Innuendo") (description "Explicitly implied (not described) through the use of metaphor") (value 2)) (label (name "Technical Reference") (description "Dictionary, encyclopedic, news, medical references") (value 3)) (label (name "Non-Graphic-Artistic") (description "Limited metaphoric descriptions used in a artistic fashion") (value 4)) (label (name "Graphic-Artistic") (description "Metaphoric descriptions used in a artistic fashion") (value 5)) (label (name "Graphic") (description "Descriptions of intimate sexual acts") (value 6)) (label (name "Detailed Graphic") (description "Descriptions of intimate details of sexual acts") (value 7)) (label (name "Explicit Vulgarity") (description "Explicit Descriptions of intimate details of sexual acts designed to arouse. Inviting interactive sexual participation. Unsupervised Sexual Chat Rooms or Newsgroups") (value 8)) (label (name "Explicit and Crude") (description "Profane Graphic Descriptions of intimate details of sexual acts designed to arouse. Inviting interactive sexual participation. Unsupervised Sexual Chat Rooms or Newsgroups") (value 9))) (category (transmit-as "SS~~004") (name "Nudity") (label (name "Subtle Innuendo") (description "Subtly Implied through the use of composition, lighting, shaping, revealing clothing, etc.") (value 1)) (label (name "Strong Innuendo") (description "Explicitly implied (not shown) through the use of composition, lighting, shaping or revealing clothing") (value 2)) (label (name "Technical Reference") (description "Dictionary, encyclopedic, news, medical references") (value 3)) (label (name "Non-Graphic-Artistic") (description "Classic works of art presented in public museums for family viewing") (value 4)) (label (name "Graphic-Artistic") (description "Artistically presented without full frontal nudity") (value 5)) (label (name "Graphic") (description "Artistically presented with frontal nudity") (value 6)) (label (name "Detailed Graphic") (description "Erotic frontal nudity") (value 7)) (label (name "Explicit Vulgarity") (description "Detailed provocative presentation") (value 8)) (label (name "Explicit and Crude") (description "Explicit pornographic presentation") (value 9))) (category (transmit-as "SS~~005") (name "Violence") (label (name "Subtle Innuendo") (value 1)) (label (name "Strong Innuendo") (value 2)) (label (name "Technical Reference") (value 3)) (label (name "Non-Graphic-Artistic") (value 4)) (label (name "Graphic-Artistic") (value 5)) (label (name "Graphic") (value 6)) (label (name "Detailed Graphic") (value 7)) (label (name "Inviting Participation in Graphic Interactive Format") (value 8)) (label (name "Encouraging Personal Participation, Weapon Making") (value 9))) (category (transmit-as "SS~~006") (name "Sex Violence and Profanity") (label (name "Subtle Innuendo") (value 1)) (label (name "Strong Innuendo") (value 2)) (label (name "Technical Reference") (value 3)) (label (name "Non-Graphic-Artistic") (value 4)) (label (name "Graphic-Artistic") (value 5)) (label (name "Graphic") (value 6)) (label (name "Detailed Graphic") (value 7)) (label (name "Explicit Vulgarity") (value 8)) (label (name "Explicit and Crude") (value 9))) (category (transmit-as "SS~~007") (name "Intolerance of another person's racial, religious, or gender backround") (label (name "Subtle Innuendo") (value 1)) (label (name "Strong Innuendo") (value 2)) (label (name "Technical Reference") (value 3)) (label (name "Non-Graphic-Literary") (value 4)) (label (name "Graphic-Literary") (value 5)) (label (name "Graphic Discussions") (value 6)) (label (name "Endorsing Hatred") (value 7)) (label (name "Endorsing Violent or Hateful Action") (value 8)) (label (name "Advocating Violent or Hateful Action") (value 9))) (category (transmit-as "SS~~008") (name "Glorifying Drug Use") (label (name "Subtle Innuendo") (value 1)) (label (name "Strong Innuendo") (value 2)) (label (name "Technical Reference") (value 3)) (label (name "Non-Graphic-Artistic") (value 4)) (label (name "Graphic-Artistic") (value 5)) (label (name "Graphic") (value 6)) (label (name "Detailed Graphic") (value 7)) (label (name "Simulated Interactive Participation") (value 8)) (label (name "Soliciting Personal Participation") (value 9))) (category (transmit-as "SS~~009") (name "Other Adult Themes") (label (name "Subtle Innuendo") (value 1)) (label (name "Strong Innuendo") (value 2)) (label (name "Technical Reference") (value 3)) (label (name "Non-Graphic-Artistic") (value 4)) (label (name "Graphic-Artistic") (value 5)) (label (name "Graphic") (value 6)) (label (name "Detailed Graphic") (value 7)) (label (name "Explicit Vulgarity") (value 8)) (label (name "Explicit and Crude") (value 9))) (category (transmit-as "SS~~00A") (name "Gambling") (label (name "Subtle Innuendo") (value 1)) (label (name "Strong Innuendo") (value 2)) (label (name "Technical Discussion") (value 3)) (label (name "Non-Graphic-Artistic, Advertising") (value 4)) (label (name "Graphic-Artistic, Advertising") (value 5)) (label (name "Simulated Gambling") (value 6)) (label (name "Real Life Gambling without Stakes") (value 7)) (label (name "Encouraging Interactive Real Life Participation with Stakes") (value 8)) (label (name "Providing Means with Stakes") (value 9))) (category (transmit-as "SS~~100") (name "General Information") (min 1) (max 100) (integer true)))Copyright © 1996 W3C (MIT, INRIA, Keio ), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
Webmaster
$Date: 2000/09/08 16:13:46 $