Network Working Group                                   Michael Mealling
Request for Comments: DRAFT                      Network Solutions, Inc.
                                                          March 13, 1998


                A MIME Directory Profile for RWhois 1.5 Schema
                      <draft-ietf-schema-rwhois-00.txt>

1. Status of this Memo

   This document is an Internet-Draft.  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.''

   To learn the current status of any Internet-Draft, please check the
   ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).

2. Abstract

   This document defines two MIME directory profiles [1] for holding a
   RWhois 1.5 [2] schema.  It is intended for communication with the
   Internet schema listing service [3]. One profile defines an attribute
   and the other defines a class.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
   this document are to be interpreted as described in RFC 2119 [4].

3. Overview

   RWhois 1.5 has the concepts of attributes and classes. A schema in
   the sense used by Internet schema listing service is analogous to
   an RWhois class. A class definition in RWhois is simply the listing
   of attributes that are well understood for that class. There is a
   desire in many directory services to encourage attribute definition
   re-use. Therefore, this schema description service will separate
   the attribute descriptions from the class descriptions.

   The MIME-DIR specification describes how relationships between
   objects included in a multipart/related MIME type can be specified.
   This is used by the class profile to include by reference all of
   the attribute definitions included within one multipart/related
   MIME object.





Mealling                                                        [Page 1]


draft-ietf-schema-rwhois-00.txt                               March 1998

   Due to the requirements of the schema listing service, there must be
   one 'top' profile, which is called 'schema-rwhois-0'. Since the 'top'
   of the RWhois schema definition is the class, the class definition's
   profile name will be 'schema-rwhois-0'. The attribute definition will
   use the profile name 'rwhois-attribute-0'.


4. Multipart/related header values

   The schema listing service's infrastructure depends on an easily
   parsed and easily navigated structure of filenames in a directory. In
   some cases the definition of a schema is contained in one MIME-DIR
   profile. This makes for a simple correlation to one file and also
   makes it easy to find that file's profile and schema name.

   In the case of RWhois' class and attribute objects this is not so
   simple as the actual schema name would be in the
   multipart/related's start object. Luckily the multipart/related
   standard gives us the "Start-Info" parameter. For the purposes of
   the schema-listing application's use of RWhois schema this parameter
   is used to denote the profile of the start object.

   All other attributes have standard values. This leaves us with
   the following specification:

   'boundary' has its standard RFC2046 specified value
   'start' is the CID of the 'schema-rwhois-0' or class object
   'type' MUST be 'text/directory'
   'start-info' MUST be 'schema-rwhois-0'



























Mealling                                                        [Page 2]


draft-ietf-schema-rwhois-00.txt                               March 1998

   An example:

   To: ietf-schema-review@TBD
   Subject: schema unit listing request
   MIME-Version: 1.0
   Message-Id: <ids1@wherever.com>
   Content-Type: multipart/related; boundary="boundary";
         start=3@foo.com; type="text/directory";
         start-info="schema-rwhois-0"
   Content-ID: top@foo.com

   --boundary
   Content-Type: text/directory; profile="schema-rwhois-0"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 3@foo.com

   (class description elements and values as specified in Section 5,
   which includes a reference to an attribute whose CID is 4@foo.com)

   --boundary
   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 4@foo.com

   (an RWhois attribute definition)

   --boundary


5. schema-rwhois-0 definition

   The schema-rwhois-0 definition is extremely straightforward. It
   is a combination of the '-schema' and '-class' directives defined
   in RFC2167.  The class directive defines the description and version
   of the class.  The schema directive defines the attributes that are
   valid for that class but also lists the description of the values
   themselves. For ease of parsing, this class definition will include
   the attribute name. Therefore, the attribute definition object will not
   have to be parsed in order to allow for the most basic function of
   showing the user the attribute and plain text value.

   Therefore, the well understood attributes for the schema-rwhois-0
   profile are as follows:

   'name' contains the class' name
   'description' contains a plain text description of the class
   'version' contains the version as specified by RFC2167
   'attribute' contains the attribute name and the CID of its definition








Mealling                                                        [Page 3]


draft-ietf-schema-rwhois-00.txt                               March 1998

   The syntax of the 'attribute' value is as follows:

   attribute-value = name " " CID
   name=1*id-char
   CID = Content-ID as defined as used in RFC1873 [5]
   id-char = alpha / digit / "_" / "-"
   alpha = "a".."z" / "A".."Z"
   digit = "0".."9"

   Example:

   Content-Type: text/directory; profile="schema-rwhois-0"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 3@foo.com

   Name: Referral
   Description: Required class for specifying a referral
   Version: 19961101
   Attribute: Referred-Auth-Area 4@foo.com
   Attribute: Referral 5@foo.com

   This example in its entirety would be included as the start object of
   a multipart/related object that included the 4@foo.com and 5@foo.com
   objects.

   The MIME-DIR profile registration template is included in Section 8.

6. rwhois-attribute-0 definition

   The rwhois attribute definition profile is also fairly
   straightforward since it follows the '-schema' directive very closely.
   The RFC2167 defined attribute properties are:

    Attribute    This is the name of the attribute.

    Description  This is a natural language description of the
                 attribute.

    Type         This is a parameter that broadly indicates the use
                 of the attribute to the protocol. There are three
                 standard types:  TEXT, ID, and SEE-ALSO.

    Format       This is an interpretable string that describes the
                 acceptance format of the value.

    Indexed      This is a true or false flag indicating that this
                 attribute should be indexed (and therefore able to be
                 searched).

    Required     This is a true or false flag indicating that this
                 attribute must have a value in an instance of the
                 class.




Mealling                                                        [Page 4]


draft-ietf-schema-rwhois-00.txt                               March 1998

    Multi-Line   This is a true or false flag indicating that this
                 attribute may have multiple instances in a class, but
                 all of the instances are to be considered as multiple
                 lines of the same attribute instance. This allows
                 normal line terminators to terminate values.

    Repeatable   This is a true or false flag indicating that there may
                 be multiple instances of this attribute in a class and
                 each instance is to be interpreted as a separate
                 instance (in contrast to Multi-Line).

    Primary      This is a true or false flag that indicates that this
                 attribute is a primary key.

    Hierarchical This is a true or false flag that indicates that this
                 attribute is lexically hierarchical.

    Private      This is a true or false flag that indicates whether or
                 not this attribute is private (that is, publicly not
                 viewable).


   Each of these properties corresponds exactly to an attribute in the
   'rwhois-attribute-0' profile except that 'rwhoisAttrDef' is
   prepended to the attribute name. The values follow the ABNF specified
    in RFC2167.

   Example:

   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 4@foo.com

   rwhoisAttrDefAttribute: Referral
   rwhoisAttrDefFormat: none
   rwhoisAttrDefDescription: Referral to an RWhois server
   rwhoisAttrDefIndexed: OFF
   rwhoisAttrDefRequired: ON
   rwhoisAttrDefMulti-line: OFF
   rwhoisAttrDefRepeatable: ON
   rwhoisAttrDefHierarchical: OFF
   rwhoisAttrDefPrivate: OFF
   rwhoisAttrDefType: Text
   rwhoisAttrDefPrimary: OFF












Mealling                                                        [Page 5]


draft-ietf-schema-rwhois-00.txt                               March 1998

7. Full example

   This is a full example of a schema object that is intended to be
   registered with the schema listing service. It represents the Base
   class which every RWhois class must include.

   To: ietf-schema-review@TBD
   Subject: schema unit listing request
   MIME-Version: 1.0
   Message-Id: <ids1@wherever.com>
   Content-Type: multipart/related; boundary="boundary";
         start=3@foo.com; type="text/directory";
         start-info="schema-rwhois-0"
   Content-ID: top@foo.com

   --boundary
   Content-Type: text/directory; profile="schema-rwhois-0"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 3@foo.com

   Name: Base
   Description: The RWhois 1.5 Base class from which all classes inherit
   Version: 19961101
   Attribute: Class-Name 4@foo.com
   Attribute: Auth-Area 5@foo.com
   Attribute: ID 6@foo.com
   Attribute: Updated 7@foo.com
   Attribute: Guardian 8@foo.com
   Attribute: Private 9@foo.com
   Attribute: TTL 10@foo.com

   --boundary
   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 4@foo.com

   rwhoisAttrDefAttribute: Class-Name
   rwhoisAttrDefFormat: none
   rwhoisAttrDefDescription: Type of the object.
   rwhoisAttrDefIndexed: OFF
   rwhoisAttrDefRequired: ON
   rwhoisAttrDefMulti-line: OFF
   rwhoisAttrDefRepeatable: OFF
   rwhoisAttrDefHierarchical: OFF
   rwhoisAttrDefPrivate: OFF
   rwhoisAttrDefType: Text
   rwhoisAttrDefPrimary: OFF

   --boundary







Mealling                                                        [Page 6]


draft-ietf-schema-rwhois-00.txt                               March 1998

   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 5@foo.com

   rwhoisAttrDefAttribute: Auth-Area
   rwhoisAttrDefFormat: none
   rwhoisAttrDefDescription: Authority area to which the object belongs
   rwhoisAttrDefIndexed: OFF
   rwhoisAttrDefRequired: ON
   rwhoisAttrDefMulti-line: OFF
   rwhoisAttrDefRepeatable: OFF
   rwhoisAttrDefHierarchical: ON
   rwhoisAttrDefPrivate: OFF
   rwhoisAttrDefType: Text
   rwhoisAttrDefPrimary: OFF

   --boundary
   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 6@foo.com

   rwhoisAttrDefAttribute: ID
   rwhoisAttrDefFormat: none
   rwhoisAttrDefDescription: Globally unique object identifier
   rwhoisAttrDefIndexed: ON
   rwhoisAttrDefRequired: OFF
   rwhoisAttrDefMulti-line: OFF
   rwhoisAttrDefRepeatable: OFF
   rwhoisAttrDefHierarchical: ON
   rwhoisAttrDefPrivate: OFF
   rwhoisAttrDefType: Text
   rwhoisAttrDefPrimary: OFF

   --boundary
   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 7@foo.com

   rwhoisAttrDefAttribute: Updated
   rwhoisAttrDefFormat: none
   rwhoisAttrDefDescription: Last modification time/serial number
   rwhoisAttrDefIndexed: OFF
   rwhoisAttrDefRequired: OFF
   rwhoisAttrDefMulti-line: OFF
   rwhoisAttrDefRepeatable: OFF
   rwhoisAttrDefHierarchical: OFF
   rwhoisAttrDefPrivate: OFF
   rwhoisAttrDefType: Text
   rwhoisAttrDefPrimary: OFF

   --boundary





Mealling                                                        [Page 7]


draft-ietf-schema-rwhois-00.txt                               March 1998

   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 8@foo.com

   rwhoisAttrDefAttribute: Guardian
   rwhoisAttrDefFormat: none
   rwhoisAttrDefDescription: Guardian object
   rwhoisAttrDefIndexed: OFF
   rwhoisAttrDefRequired: OFF
   rwhoisAttrDefMulti-line: OFF
   rwhoisAttrDefRepeatable: ON
   rwhoisAttrDefHierarchical: OFF
   rwhoisAttrDefPrivate: OFF
   rwhoisAttrDefType: ID
   rwhoisAttrDefPrimary: OFF

   --boundary
   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 9@foo.com

   rwhoisAttrDefAttribute:Private
   rwhoisAttrDefFormat:none
   rwhoisAttrDefDescription:object is private
   rwhoisAttrDefIndexed:OFF
   rwhoisAttrDefRequired:OFF
   rwhoisAttrDefMulti-line:OFF
   rwhoisAttrDefRepeatable:OFF
   rwhoisAttrDefHierarchical:OFF
   rwhoisAttrDefPrivate:ON
   rwhoisAttrDefType:Text
   rwhoisAttrDefPrimary:OFF

   --boundary
   Content-Type: text/directory; profile="rwhois-attribute-0>"
   Content-Transfer-Encoding: Quoted-Printable
   Content-ID: 10@foo.com

   rwhoisAttrDefAttribute:TTL
   rwhoisAttrDefFormat:none
   rwhoisAttrDefDescription:Time to live
   rwhoisAttrDefIndexed:OFF
   rwhoisAttrDefRequired:OFF
   rwhoisAttrDefMulti-line:OFF
   rwhoisAttrDefRepeatable:OFF
   rwhoisAttrDefHierarchical:OFF
   rwhoisAttrDefPrivate:OFF
   rwhoisAttrDefType:Text
   rwhoisAttrDefPrimary:OFF

   --boundary





Mealling                                                        [Page 8]


draft-ietf-schema-rwhois-00.txt                               March 1998

8. Registration Templates

 8.1 'schema-rwhois-0' profile registration template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory profile "schema-rwhois-0"

   Profile name: schema-rwhois-0

   Profile purpose: To represent the RWhois 1.5 class definition as
                    defined in RFC2167.

   Profile types: name, description, version, attribute

   Profile special notes:

   Neither the "BEGIN" and "END" types nor type grouping are used
   in contents of this profile.

   The only type which is allowed to be multi-valued is 'attribute'.

   The SOURCE type is optional, and if values are present it is
   suggested that they be a rwhois URI as RWhois schema definitions
   from other sources have not been investigated.

   Intended usage: COMMON

 8.2 'schema-rwhois-0' 'rwhoisAttrDefAttribute' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefAttribute

   Type name: rwhoisAttrDefAttribute

   Type purpose: This is the name of the attribute.

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.3 'schema-rwhois-0' 'rwhoisAttrDefDescription' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefDescription

   Type name: rwhoisAttrDefDescription

   Type purpose: This is a natural language description of the
                 attribute.


Mealling                                                        [Page 9]


draft-ietf-schema-rwhois-00.txt                               March 1998

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.4 'schema-rwhois-0' 'rwhoisAttrDefType' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefType

   Type name: rwhoisAttrDefType

   Type purpose: This is a parameter that broadly indicates the use
                 of the attribute to the protocol. There are three
                 standard types:  TEXT, ID, and SEE-ALSO.

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.5 'schema-rwhois-0' 'rwhoisAttrDefFormat' type registration template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory MIME type rwhoisAttrDefFormat

   Type name: rwhoisAttrDefFormat

   Type purpose: This is an interpretable string that describes the
                 acceptance format of the value.


   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.6 'schema-rwhois-0' 'rwhoisAttrDefIndexed' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefIndexed

   Type name: rwhoisAttrDefIndexed

Mealling                                                       [Page 10]


draft-ietf-schema-rwhois-00.txt                               March 1998

   Type purpose: This is a true or false flag indicating that this
                 attribute should be indexed (and therefore able to be
                 searched).

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.7 'schema-rwhois-0' 'rwhoisAttrDefRequired' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefRequired

   Type name: rwhoisAttrDefRequired

   Type purpose: This is a true or false flag indicating that this
                 attribute must have a value in an instance of
                 the class.

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.8 'schema-rwhois-0' 'rwhoisAttrDefMulti-Line' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefMulti-Line

   Type name: rwhoisAttrDefMulti-Line

   Type purpose: This is a true or false flag indicating that this
                 attribute may have multiple instances in a class, but
                 all of the instances are to be considered as multiple
                 lines of the same attribute instance. This allows
                 normal line terminators to terminate values.

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON


Mealling                                                       [Page 11]


draft-ietf-schema-rwhois-00.txt                               March 1998

 8.9 'schema-rwhois-0' 'rwhoisAttrDefRepeatable' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefRepeatable

   Type name: rwhoisAttrDefRepeatable

   Type purpose: This is a true or false flag indicating that there may
                 be multiple instances of this attribute in a class and
                 each instance is to be interpreted as a separate
                 instance (in contrast to Multi-Line).

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.10 'schema-rwhois-0' 'rwhoisAttrDefPrimary' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory MIME type rwhoisAttrDefPrimary

   Type name: rwhoisAttrDefPrimary

   Type purpose: This is a true or false flag that indicates that this
                 attribute is a primary key.
   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.11 'schema-rwhois-0' 'rwhoisAttrDefHierarchical' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory type rwhoisAttrDefHierarchical

   Type name: rwhoisAttrDefHierarchical

   Type purpose: This is a true or false flag that indicates that this
                 attribute is lexically hierarchical.

   Type encoding: 8bit

   Type valuetype: text




Mealling                                                       [Page 12]


draft-ietf-schema-rwhois-00.txt                               March 1998

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

 8.12 'schema-rwhois-0' 'rwhoisAttrDefPrivate' type template

   To: ietf-mime-direct@imc.org
   Subject: Registration of text/directory MIME type rwhoisAttrDefPrivate

   Type name: rwhoisAttrDefPrivate

   Type purpose: This is a true or false flag that indicates whether or
                 not this attribute is private (that is, publicly not
                 viewable).

   Type encoding: 8bit

   Type valuetype: text

   Type special notes: This value must follow the rules as specified
   in RFC2167.

   Intended usage: COMMON

9. Author's Contact

   Michael Mealling
   Network Solutions
   505 Huntmar Park Drive
   Herndon, VA  22070
   voice: (703) 742-0400
   fax: (703) 742-9552
   email: michaelm@netsol.com
   URL: http://www.netsol.com/

10. References:

   [1] Howes, Tim, Mark Smith, Frank Dawson. "A MIME Content-Type for
       Directory Information", 07/24/1997, INTERNET DRAFT
       <draft-ietf-asid-mime-direct-04.txt>.

   [2] Williamson, S., M. Kosters, et al. "Referral Whois (RWhois)
       Protocol V1.5", 06/01/1997, RFC2167.

   [3] Apple, C. "Directory Schema Listing Requirements", 08/28/1997,
       INTERNET DRAFT <draft-ietf-schema-rqmts-list-00.txt>.

   [4] Bradner, S. "Key words for use in RFCs to Indicate Requirement
       Levels", 3/01/1997, RFC2119.

   [5] Levinson, E., J. Clark, "Message/External-Body Content-ID Access
       Type", RFC1872, 12/01/95.



Mealling                                                       [Page 13]