Internet-Draft                                        Leslie L. Daigle
Expires: December 8, 2000                     Thinking Cat Enterprises
draft-daigle-wppquery-01.txt                          Patrik Faltstrom
                                                         Tele2/Swipnet
                                                          June 8, 2000

                  The application/whoispp-query Content-Type

Status of this Memo

     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.

Abstract

   This document defines the expression of Whois++ protocol (originally
   defined in [RFC1835]  and updated in [draft-daigle-whoispp-00.txt])
   queries within MIME [RFC2046] media types.  The intention of this
   document, in conjunction with [draft-daigle-wppquery-01.txt] is to
   enable MIME-enabled mail software, and other systems using Internet
   media types, to carry out Whois++ transactions.


1.  MIME Registration Information

To: iana@isi.edu
Subject:  Registration of MIME media type application/whoispp-query

MIME Type name:         Application

MIME subtype name:      whoispp-query

Required parameters:    none

Optional parameters:    none

Encoding considerations: Any valid MIME encodings may be used

Security considerations: This content-type contains purely descriptive
information (i.e., no directives).  There are security considerations
with regards to the appropriateness (privacy) of information provided
through the use of this content-type, and the authenticity of the
information so-provided.  This content-type provides no native
mechanisms for authentication.

Published specification:  this document

Person & email address to contact for further information:

                        Leslie L. Daigle
                        leslie@thinkingcat.com

Intended usage:         common



2.  whoispp-query Syntax

The following grammar, which uses BNF-like notation as defined in
[RFC2234] defines the set of acceptable input to a Whois++ server.
As such, it describes the expected structure of a whoispp-query media
type object.


N.B.:  As outlined in the ABNF definition, rule names and string
literals are in the US-ASCII character set, and are case-insensitive.

   whois-command   =   ( system-command
                       / terms [":" globalcnstrnts] ) nl

   system-command  =   "constraints"
                       / "describe"
                       / "commands"
                       / "polled-by"
                       / "polled-for"
                       / "version"
                       / "list"
                       / "show" [1*sp bytestring]
                       / "help" [1*sp bytestring]
                       / "?" [bytestring]

   terms           =   and-expr *("or" and-expr)

   and-expr        =   not-expr *("and" not-expr)

   not-expr        =   ["not"] (term / ( "(" terms ")" ))

   term            =   ( generalterm / specificterm
                       / combinedterm ) localcnstrnts

   generalterm     =   bytestring

   specificterm    =   specificname "=" bytestring

   specificname    =   "handle" / "value" / "template"

   combinedterm    =   attributename "=" bytestring

   globalcnstrnts  =   globalcnstrnt *(";" globalcnstrnt)

   globalcnstrnt   =   "format" "=" format
                       / "maxfull" "=" 1*digit
                       / "maxhits" "=" 1*digit
                       / "case" "=" casevalue
                       / "search" "=" searchvalue
                       / opt-globalcnst

   opt-globalcnst  =   "authenticate" "=" auth-method
                       / "language" "=" language
                       / "incharset" "=" characterset
                       / "outcharset" "=" characterset
                       / "ignore" "=" attriblist
                       / "include" "=" attriblist

   localcnstrnts   =   0*(";" localcnstrnt)

   localcnstrnt    =   "case" "=" casevalue
                       / "search" "=" searchvalue

   format          =   "full" / "abridged" / "handle" / "summary"
                       / "server-to-ask"

   auth-method     =  bytestring

   language        = <The language code defined in RFC1766 [ALVE95]>

   characterset    =   "us-ascii" / "iso-8859-1" / "iso-8859-2" /
                       "iso-8859-3" / "iso-8859-4" / "iso-8859-5" /
                       "iso-8859-6" / "iso-8859-7" / "iso-8859-8" /
                       "iso-8859-9" / "iso-8859-10" /
                       "UNICODE-1-1-UTF-8" / "UNICODE-2-0-UTF-8"
                       "UTF-8"

                         ;"UTF-8" is as defined in [RFC2279].  This is
                         ;the character set label that should be used
                         ;for UTF encoded information; the labels
                         ;"UNICODE-2-0-UTF-8" and "UNICODE-1-1-UTF-8"
                         ;are retained primarily for compatibility with
                         ;older Whois++ servers (and as outlined in
                         ;[RFC2279]).


   searchvalue     =   "exact" / "substring" / "regex" / "fuzzy"
                       / "lstring"

   casevalue       =   "ignore" / "consider"

   bytestring      =   0*charbyte

   attributename   =   1*attrbyte

   attriblist      =   attributename 0*("," attributename)

   charbyte        =   "\" specialbyte / normalbyte

   normalbyte      =   <%d33-255, except specialbyte>

   attrbyte        =   <%d33-127 except specialbyte> /
                       "\" <specialbyte except ":" " " tab nl>

   specialbyte     =   " " / tab / "=" / "," / ":" / ";" / "\" /
                       "*" / "." / "(" / ")" / "[" / "]" / "^" /
                       "$" / "!" / "?"

   tab             =  %d09
   sp              =  %d32        ; space

   digit           =   "0" / "1" / "2" / "3" / "4" /
                       "5" / "6" / "7" / "8" / "9"

   nl              =   %d13 %d10   ; CR LF


   NOTE: Blanks that are significant to a query must be escaped.  The
   following characters, when significant to the query, may be preceded
   and/or followed by a single blank:

     : ; , ( ) = !




3.  References

   [ALVE95]        Alvestrand H., "Tags for the Identification of
                   Languages", RFC 1766, UNINETT, March 1995.

   [RFC2234]       Crocker, D., and P. Overell,  "Augmented BNF for
                   Syntax Specifications: ABNF", RFC 2234, November
                   1997.

   [RFC1835]       Deutsch, P., R. Schoultz, P. Faltstrom and C.
                   Weider.  "Architecture of the WHOIS++ service",
                   RFC 1835. August 1995.

   [RFC2046]       Freed, N., and N. Borenstein, "Multipurpose Internet
                   Mail Extensions (MIME) Part Two: Media Types",
                   RFC 2046, November 1996.

   [HARR85]        Harrenstein K., Stahl M., and E. Feinler,
                   "NICNAME/WHOIS", RFC 954, SRI, October 1985.

   [POST82]        Postel J., "Simple Mail Transfer Protocol", STD 10,
                   RFC 821, USC/Information Sciences Institute,
                   August 1982.

   [IIIR]          Weider C., and P. Deutsch, "A Vision of an
                   Integrated Internet Information Service", RFC 1727
                   Bunyip Information Systems, Inc., December 1994.

   [WINDX]         Weider, C., J. Fullton, and S. Spero, "Architecture
                   of the Whois++ Index Service", RFC 1913, February
                   1996.
   [RFC2279]       F. Yergeau, " UTF-8, a transformation format of ISO
                   10646", RFC 2279, January 1998.




4.  Authors Addresses

   Leslie L. Daigle
   Thinking Cat Enterprises

   Email:  leslie@thinkingcat.com


   Patrik Faltstrom
   Tele2
   Borgarfjordsgatan 16
   BOX 62
   194 64 Kista
   SWEDEN

   Email: paf@swip.net