Extensibility Strawman Proposal using PICS


Introduction and Motivation

The Platform for Internet Content Selection (PICS) defines two recommendations. One for the Rating Services and Systems and the other for Label Syntax and Communications. The former defines the rating system (via a RAT file), the second tells you how to use it for your content (via Label information).

Supporting extensible text-based metadata, with minimal changes to the PICS recommendation, is possible with the addition of the string data type and exploitation of the PICS Extension Mechanism. The PICS extension mechanism (by defining two such extensions):

A client which sees rat-inherit in a service description should interpret it as meaning that the quotedURL will point to another RAT system which must be read and incorporated into the current RAT system. This will enable simple inheritance of RAT systems. The extension is always mandatory.

A client which sees sub-label in a service description should interpret it as meaning that the quotedURL will point to a RAT system which could be read and incorporated into the current RAT system as label sub-elements information. This RAT file would only contain numeric RAT information and would be applied to a specific (string-based) label in the original RAT system. The extension is optional, meaning that it is not necessary for the successful use of the RAT system, but could be mandatory is this is required.

Example Rating Service and System using text-based Metadata

To illustrate the use of the string data type and the above defined PICS extension mechanisms, the Dublin Core metadata set will be used. The Dublin Core metadata set has also a set of qualifiers or sub-elements and standard object types defined.

Four example cases are shown below:

1. PICS service with Dublin Core

(( PICS-version 2.0)
   (rating-service "http://metadata.net/dublin-core/")
   (rating-system "http://metadata.net/dublin-core/V1.0/")
   (name "The Dublin Core Metadata Element Set Service")

   (default (multivalue true) (unordered false) )

   (category
      (transmit-as "dc.title")
      (name "Title")
      (description "The name given to the resource by the creator or publisher")
      (string)
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/std.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/title.rat" ))

   (category
      (transmit-as "dc.creator")
      (name "Author/Creator")
      (description "The person(s) primarily responsible for the intellectual content of the
                    resource")
      (string)
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/std.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/person.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/creator.rat" ))

   (category
      (transmit-as "dc.subject")
      (name "Subject/Keywords")
      (description "The topic or keywords of the work that describe the subject or content
                    of the resource")
      (string)
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/std.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/subject.rat" ))

   (category
      (transmit-as "dc.description")
      (name "Description")
      (description "A textual description (eg abstract) of the content of the resource")
      (string (multiline true) )
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/std.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/description.rat" ))

   (category
      (transmit-as "dc.contributors")
      (name "Other Contributors")
      (description "The other creators who have made significant (but secondary) intellectual
                    contributions to the resource")
      (string)
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/std.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/person.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/contributor.rat" ))

    ....
Note: To support I18N, it is a good idea for transmit-as values to be mainly numeric, but for readability and understanding (in this document), longer english terms will be used.

2. PICS Dublin Core Sub-Label service

Common sub-labels
(( PICS-version 2.0)
   (rating-service "http://metadata.net/dublin-core/")
   (rating-system "http://metadata.net/dublin-core/V1.0/sub/std/")
   (name "Common sub-labels for all Dublin Core elements")

   (default (multivalue false) (unordered false) (label-only true))

   (category
      (transmit-as "Language")
      (name "Language")
      (description "The Language used for the value of the element from ISO 639")
      (label (name "Unknown") (value 0))
      (label (name "EN")      (value 1))
      (label (name "FR")      (value 2))
      (label (name "IT")      (value 3)))

   (category
      (transmit-as "Charset")
      (name "Character Set")
      (description "The Character Set used for the value of the element")
      (label (name "Unknown")    (value 0))
      (label (name "ISO.8859-1") (value 1))
      (label (name "UTF-8")      (value 2))
      (label (name "Unicode")    (value 3))))
Person sub-labels
(( PICS-version 2.0)
   (rating-service "http://metadata.net/dublin-core/")
   (rating-system "http://metadata.net/dublin-core/V1.0/sub/person/")
   (name "Person sub-labels for some Dublin Core elements")

   (default (multivalue false) (unordered false) (label-only true))

   (category
      (transmit-as "Person")
      (name "Person")
      (description "Person specific information")
      (label (name "Name") (value 0))
      (label (name "Affiliation") (value 1))
      (label (name "Address")     (value 2))
      (label (name "Email")       (value 3))
      (label (name "Phone")       (value 4))
      (label (name "Fax")         (value 5))))
Sub-labels for Other Contributor element
(( PICS-version 2.0)
   (rating-service "http://metadata.net/dublin-core/")
   (rating-system "http://metadata.net/dublin-core/V1.0/sub/contributor/")
   (name "Sub-Labels for Other Contributor element")

   (default (multivalue false) (unordered false) (label-only true))

   (category
      (transmit-as "scheme")
      (name "Schemes for Contributors")
      (description "The Schemes used to describe the encoding of the values for the Contributors")
      (label (name "None")   (value 0))
      (label (name "SGML")   (value 1))
      (label (name "USMARC") (value 2)))
  
   (category
      (transmit-as "role")
      (name "Roles for Contributors")
      (description "The Roles undertaken by the Contributors")
      (label (name "None")         (value 0))
      (label (name "Editor")       (value 1))
      (label (name "Illustrator")  (value 2))
      (label (name "Translator")   (value 3))
      (label (name "Reviewer")     (value 4))
      (label (name "Commentary")   (value 5))))

3. Extending PICS Dublin Core with more elements, creating a new Metadata service

(( PICS-version 2.0)
   (rating-service "http://metadata.net.au/st-lucia/")
   (rating-system "http://metadata.net.au/st-lucia/V1.0/")
   (name "The St Lucia Metadata Element Set Service, based on Dublin Core")

   (extension (mandatory "http://www.w3.org/pub/WWW/PICS/extensions/rat-inherit"
                         "http://metadata.net/dublin-core/V1.0/dc.rat" ))

   (category
      (transmit-as "sl.method")
      (name "Methodology")
      (description "The methodology used to create the resource")
      (string)
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net/dublin-core/V1.0/sub/std.rat" ))
      (extension (optional "http://www.w3.org/pub/WWW/PICS/extensions/sub-label"
                           "http://metadata.net.au/st-lucia/V1.0/sub/method.rat" ))

4. Extending PICS Dublin Core with more sub-labels, creating a new Metadata service

(( PICS-version 2.0)
   (rating-service "http://metadata.net.au/yeronga/")
   (rating-system "http://metadata.net.au/yeronga/V1.0/")
   (name "The Yeronga Metadata Element Set Service, based on Dublin Core")

   (extension (mandatory "http://www.w3.org/pub/WWW/PICS/extensions/rat-inherit"
                         "http://metadata.net/dublin-core/V1.0/dc.rat" ))

    (category
      (transmit-as "dc.contributor/role")
      (label (name "Compiler") (value 1001))))
Note: The transmit-as has to be an exact match from the source.

Example Label Syntax using text-based Metadata

Given the above RAT service specifications, the generation of the Labels should be straight-forward. The PICS labels might look like the following:
(PICS-2.0 "http://metadata.net/dublin-core/V1.0/"
   labels for "http://www.marliyn.net/book/"
   ra ( ( dc.title "Viva!"
          dc.title/language 1/type 1 "An album of photographs in praise of the star from
                                      Mae West to Marilyn Monroe")
          dc.title/language 3/type 1 "Un album di photographia che fortuna di la star da
                                      Mae West to Marilyn Monroe")
       ( dc.creator "Paul Flora" )
        ( dc.contributor/person 0/role 5 "Spike Milligan"
          dc.contributor/person 1 "United Artists"
          dc.contributor/person 3 "spike@ua.com" )
        ( dc.publisher "D. Dobson"
          dc.publisher/type 1 "London")
        ( dc.date "1965" )
        ( dc.language/scheme 1 "en" )
        ( dc.subject "Marilyn Monroe, Mae West"
          dc.subject/scheme 1 "Actors and actresses - Portraits"
        { ( dc.type "Monograph" )
          ( dc.format "118 Pages, 21cm" )
          ( dc.identifier/scheme 4 "60014597" ) }
        { ( dc.type/type 3 "" )
          ( dc.format/scheme 1 "" )
          ( dc.identifier/scheme 1 "http://www.marliyn.net/book/viva/" ) } ) )

DSTC

Copyright DSTC Pty Ltd 1997
For further information, contact Renato Iannella at <renato@dstc.edu.au> or browse the RDU Home Page at http://www.dstc.edu.au/RDU/

DSTC Pty Ltd, Level 7, Gehrmann Laboratories
The University of Queensland, Qld 4072, Australia
Telephone: +61 7 3365 4310, Fax: +61 7 3365 4311

Acknowledgement: The work reported in this paper has been funded in part by the Cooperative Research Centres Program, through the Department of the Prime Minister and Cabinet of Australia.