Internet Draft                                               R. Gellens
Document: draft-ietf-acap-book-05.txt                          QUALCOMM
Expires: September 2001                                      March 2001


                      ACAP Bookmarks Dataset Class


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>.

    A version of this draft document is intended for submission to the
    RFC editor as a Proposed Standard for the Internet Community.
    Discussion and suggestions for improvement are requested.


Copyright Notice

    Copyright (C) The Internet Society 2001.  All Rights Reserved.


















Gellens                 Expires September 2001                 [Page 1]Internet Draft          ACAP Bookmarks Dataset Class          March 2001

Table of Contents

     1.  Abstract . . . . . . . . . . . . . . . . . . . . . . . . . .  2
     2.  Conventions Used in this Document . . . . . . . . . . . . . . 2
     3.  Comments . . . . . . . . . . . . . . . . . . . . . . . . . .  2
     4.  ACAP Bookmarks Dataset Class  . . . . . . . . . . . . . . . . 2
       4.1.  ACAP Bookmarks Dataset Class Prefix  . . . . . . . . . .  3
       4.2.  ACAP Bookmarks Dataset Hierarchy  . . . . . . . . . . . . 3
     5.  Recommended ACAP Bookmarks Dataset Attributes  . . . . . . .  3
       5.1.  Basic Attributes  . . . . . . . . . . . . . . . . . . . . 3
       5.2.  Specific Attributes  . . . . . . . . . . . . . . . . . .  4
     6.  Common ABNF . . . . . . . . . . . . . . . . . . . . . . . . . 5
     7.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . .  6
     8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . 7
     9.  Security Considerations  . . . . . . . . . . . . . . . . . .  7
    10.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7
    11.  Author's Address . . . . . . . . . . . . . . . . . . . . . .  7
    12.  Full Copyright Statement  . . . . . . . . . . . . . . . . . . 8


1.  Abstract

    Storing URLs [URL] for later access has become common in Internet
    applications (for example, web browsers, FTP clients); these saved
    URLs have become known as bookmarks.  It would be desirable to
    access one's bookmarks from multiple clients and multiple machines.

    The Application Configuration Access Protocol [ACAP] provides an
    ideal mechanism for storage of bookmarks, providing for ease of
    coordination and synchronization of bookmarks between diverse
    applications and systems, as well as for hierarchy, inheritance, and
    sharing between users.

    This specification defines a standard ACAP dataset class for
    bookmarks.


2.  Conventions Used in this Document

    The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
    in this document are to be interpreted as defined in "Key words for
    use in RFCs to Indicate Requirement Levels" [KEYWORDS].


3.  Comments

    Public comments can be sent to the IETF ACAP mailing list,
    <ietf-acap+@andrew.cmu.edu>.  To subscribe, send a message to
    <ietf-acap-request+@andrew.cmu.edu> with the word SUBSCRIBE as the
    body.  Private comments should be sent to the author.




Gellens                 Expires September 2001                 [Page 2]Internet Draft          ACAP Bookmarks Dataset Class          March 2001

4.  ACAP Bookmarks Dataset Class

    The ACAP Bookmarks dataset class defines a set of attributes for
    each bookmark, and provides for bookmark inheritance and hierarchy.


4.1.  ACAP Bookmarks Dataset Class Prefix

    Datasets whose names begin with "/bookmarks" are assumed to contain
    bookmark entries as defined in this specification.


4.2.  ACAP Bookmarks Dataset Hierarchy

    Each user may have a hierarchical set of bookmarks.  Nested or
    hierarchical bookmarks (that is, bookmark folders) SHOULD be
    represented using the ACAP Hierarchy.  Any entry in a bookmarks
    dataset can be a hierarchy node by setting the "subdataset"
    attribute.

    Inheritance is likely to be useful both for inheriting sets of site
    or group default bookmarks as well as for inheriting user-specific
    bookmarks when using different machines.


5.  Recommended ACAP Bookmarks Dataset Attributes

    A Bookmarks dataset entry MUST have an "entry" attribute.  All other
    attributes are OPTIONAL.

    Attributes are specified using Augmented Backus-Naur Form [ABNF],
    including the Core Rules.  All attributes are single-valued and
    textual (do not contain binary data) unless otherwise stated.

    The ABNF defines the content of the attribute values prior to their
    encoding as an ACAP string.  Clients MUST conform to the syntax when
    generating these attributes, but MUST NOT assume that the attribute
    values will conform to this syntax on access.  Servers MUST NOT
    enforce the syntax.


5.1.  Basic Attributes

    These attributes are defined in ACAP [ACAP] and have meaning in all
    dataset classes.  The section describes how they are used in a
    bookmarks dataset.

    entry
        The "entry" attribute is used to uniquely identify the bookmark.
        The name MUST be unique, but is not expected to be descriptive,
        and generally is not suitable for display to users.  It is
        client-defined.


Gellens                 Expires September 2001                 [Page 3]Internet Draft          ACAP Bookmarks Dataset Class          March 2001

        The "entry" attribute is also used for ordering.  When selecting
        the "entry" attribute for a new bookmark, in addition to
        uniqueness, the client selects a string which causes the new
        entry to appear in the desired order, when sorted using the
        "i;ascii-casemap" comparator [ACAP].  For example, to insert an
        entry between "a1" and "a2", "a1a" could be used.

    subdataset
        The "subdataset" attribute indicates that there is a subdataset
        of this entry.  The value of this attribute specifies the actual
        location of the subdataset, per [ACAP] section 3.1.1.  For the
        bookmarks dataset, a value of "." is most commonly used for a
        user's own entries, indicating that the subdataset exists
        directly beneath this one.  However, especially when inheriting
        bookmarks from group or site collections, the value of this
        attribute may point to a dataset on the same or a different ACAP
        server.


5.2.  Specific Attributes

    These attributes are specific to the Bookmarks dataset class.

    bookmarks.Date.Added
        This contains the date and time of the original creation of this
        entry.  The value is expressed in UTC with a timezone offset,
        indicating the user's local time.

        book-date           = datetime ;specified in Common ABNF

    bookmarks.Description
        This contains the user-assigned description of the entry, as a
        series of CRLF-separated lines.

        book-description    = *line ;specified in Common ABNF

        bookmarks.Last.Modified
        This contains the date and time of the most recent modification
        of the entry.  Modification includes any user-initiated action
        (such as editing the description) but not automatic actions
        (such as updating the "Last.Visited" attribute).  The value is
        expressed in UTC, with a timezone offset indicating the user's
        local time.

        book-modtime        = datetime ;specified in Common ABNF

    bookmarks.Last.Visited
        This contains the date and time of the most recent access of the
        location represented by the entry's URL.  The value is expressed
        in UTC, with a timezone offset indicating the user's local time.

        book-visit          = datetime ;specified in Common ABNF


Gellens                 Expires September 2001                 [Page 4]Internet Draft          ACAP Bookmarks Dataset Class          March 2001

    bookmarks.Name
        This specifies a descriptive name for the entry.  It does not
        need to be unique.

        book-name           = 1*(VCHAR / SP)

    bookmarks.Type
        This contains a token describing the type of the entry.  The
        Separator type indicates the entry is separator for display
        purposes.  The Folder type is used for a container or folder
        (used with ACAP subdatasets).  The Alias type is used for an
        alias entry, in which case the URL is an ACAP URL to an entry in
        an ACAP Bookmarks dataset.  The Link type is used to refer to
        any type of object, for example, a web page or a file.  The
        Frameset type is used to contain the state of a web page with
        frames.  In this case the URL of the main page is contained in
        the 'bookmarks.URL' attribute, and the URLs for other frames are
        contained in subdataset entries.

        book-type           = "separator" / "link" / "alias" / "folder"
                              "frameset"

    bookmarks.URL
        This contains the URL of the object referred to by this entry.
        For Link type entries, this can be any type of URL.  For Alias
        type entries, this is an ACAP URL.  ACAP URLs are specified in
        [ACAP].

        book-url            = url ;defined in [URL]


6.  Common ABNF

    The following [ABNF] rules are used above.

        datetime    =   year month day hour minute second timezone
                        ;UTC and offset to local time

        day         =   2DIGIT

        hour        =   2DIGIT

        line        =   *(VCHAR / SP) CRLF

        minute      =   2DIGIT

        month       =   2DIGIT

        second      =   2DIGIT

        timezone    =   ("+" / "-") 4DIGIT



Gellens                 Expires September 2001                 [Page 5]Internet Draft          ACAP Bookmarks Dataset Class          March 2001

        year        =   4DIGIT


7.  Examples

    /~/bookmarks/

        entry                        a23gzk
        bookmarks.Date.Added         19840101000001+0800
        bookmarks.Description        Where I get my worms
        bookmarks.Last.Modified      19971114071202+0800
        bookmarks.Last.Visited       19980311173545+0800
        bookmarks.Name               Fred's Bait and Tackle
        bookmarks.Type               link
        bookmarks.URL                http://www.fredsbaitandtackle.fog/

        entry                        b1799
        bookmarks.type               separator

        entry                        xyzzy
        bookmarks.Date.Added         19770612140004+0500
        bookmarks.Description        This really cool site I stumbled
                                     on when looking for something
                                     else.  It has detailed and easy
                                     to follow instructions on how to
                                     crush beer cans
        bookmarks.Last.Modified      19971231235902+0800
        bookmarks.Last.Visited       19980311173510+0800
        bookmarks.Name               Yip Yap's Helpful HowTo Page
        bookmarks.Type               link
        bookmarks.URL                http://stud.cheesy.edu/~jru/

        entry                        zz99
        subdataset                   .
        bookmarks.Name               Contemporaneous Contemplations
        bookmarks.Type               folder

    /~/bookmarks/zz99/

        entry                        a1a1
        bookmarks.Date.Added         19990401000002+0800
        bookmarks.Description        I laughed so hard beer came out my
                                     nose and my then my roommate saw
                                     and started laughing and choking
        bookmarks.Last.Modified      19990401000002+0800
        bookmarks.Last.Visited       19990401000001+0800
        bookmarks.Name               Why Beer is Better than ...
        bookmarks.Type               link
        bookmarks.URL                http://trash.example.org/~b1ff/
                                     beer.html

        entry                        b2b2


Gellens                 Expires September 2001                 [Page 6]Internet Draft          ACAP Bookmarks Dataset Class          March 2001

        bookmarks.Date.Added         19990401010003+0800
        bookmarks.Description        Commencement address delivered by
                                     Clinton and Vonnegut to Vassar
        bookmarks.Last.Modified      19990401010003+0800
        bookmarks.Last.Visited       19990401010000+0800
        bookmarks.Name               Clinton and Vonnegut at Vassar
        bookmarks.Type               link
        bookmarks.URL                http://april.fools.oaf/vassar-mit


8.  References

    [ABNF] Crocker, Overell, "Augmented BNF for Syntax Specifications:
    ABNF", RFC 2234, Internet Mail Consortium, Demon Internet Ltd.,
    November 1997. <ftp://ftp.isi.edu/in-notes/rfc2234.txt>

    [ACAP] Newman, Myers, "ACAP -- Application Configuration Access
    Protocol", RFC 2244, Innosoft, Netscape, November 1997.
    <ftp://ftp.isi.edu/in-notes/rfc2244.txt>

    [KEYWORDS] Bradner, "Key words for use in RFCs to Indicate
    Requirement Levels", RFC 2119, Harvard University, March 1997.
    <ftp://ftp.isi.edu/in-notes/rfc2119.txt>

    [URL] Berners-Lee, Masinter, McCahill, "Uniform Resource Locators
    (URL)", RFC 1738, CERN, Xerox Corporation, University of Minnesota,
    December 1994. <ftp://ftp.isi.edu/in-notes/rfc1738.txt>

    [UTF8] Yergeau, F. "UTF-8, a transformation format of ISO 10646",
    RFC 2279, Alis Technologies, January 1998.
    <ftp://ftp.isi.edu/in-notes/rfc2279.txt>


9.  Security Considerations

    As with ACAP datasets in general, it is important that access
    controls are set correctly on Bookmarks datasets.  Attributes may
    contain personal information which should not be disclosed except by
    explicit owner request.


10.  Acknowledgments

    Many thanks to the participants of the IETF ACAP working group for
    their help, comments, and suggestions.


11.  Author's Address

   Randall Gellens                    +1 858 651 5115
   QUALCOMM Incorporated              randy@qualcomm.com
   5775 Morehouse Drive


Gellens                 Expires September 2001                 [Page 7]Internet Draft          ACAP Bookmarks Dataset Class          March 2001

   San Diego, CA  92121-2779
   U.S.A.


12.  Full Copyright Statement

    Copyright (C) The Internet Society 2001.  All Rights Reserved.

    This document and translations of it may be copied and furnished to
    others, and derivative works that comment on or otherwise explain it
    or assist in its implementation may be prepared, copied, published
    and distributed, in whole or in part, without restriction of any
    kind, provided that the above copyright notice and this paragraph
    are included on all such copies and derivative works.  However, this
    document itself may not be modified in any way, such as by removing
    the copyright notice or references to the Internet Society or other
    Internet organizations, except as needed for the purpose of
    developing Internet standards in which case the procedures for
    copyrights defined in the Internet Standards process must be
    followed, or as required to translate it into languages other than
    English.

    The limited permissions granted above are perpetual and will not be
    revoked by the Internet Society or its successors or assigns.

    This document and the information contained herein is provided on an
    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.























Gellens                 Expires September 2001                 [Page 8]