Network Working Group                                           J. Snell
Internet-Draft                                                 E. Torres
Expires: March 28, 2006                               September 24, 2005


          Atom Publishing Protocol - Blog Publishing Controls
               draft-snell-atompub-app-blogcontrol-00.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   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.

   This Internet-Draft will expire on March 28, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This document introduces weblog specific publishing control
   extensions for use with the Atom Publishing Protocol pub:control
   mechanism.









Snell & Torres           Expires March 28, 2006                 [Page 1]


Internet-Draft                 Feed Thread                September 2005


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Notational Conventions . . . . . . . . . . . . . . . . . . . .  3
   3.  The 'blog:private' element . . . . . . . . . . . . . . . . . .  3
   4.  The 'blog:notify' element  . . . . . . . . . . . . . . . . . .  3
   5.  The 'blog:enable' element  . . . . . . . . . . . . . . . . . .  4
   6.  The 'blog:scheduled' element . . . . . . . . . . . . . . . . .  7
   7.  Example  . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
   8.  Security Considerations  . . . . . . . . . . . . . . . . . . .  8
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  8
   10.   References . . . . . . . . . . . . . . . . . . . . . . . . .  8
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . .  9
   A.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  9
       Intellectual Property and Copyright Statements . . . . . . . . 10




































Snell & Torres           Expires March 28, 2006                 [Page 2]


Internet-Draft                 Feed Thread                September 2005


1.  Introduction

   This document introduces weblog specific publishing control
   extensions for use with the Atom Publishing Protocol pub:control
   mechanism.

2.  Notational Conventions

   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 BCP 14, [RFC2119], as
   scoped to those conformance targets.

   In this specification, "entry" refers to an atom:entry element.

   In this specification, "publishing control" refers to the Atom
   Publishing Protocol pub:control element.

   This specification uses XML Namespaces [W3C.REC-xml-names-19990114]
   to uniquely identify XML element names.  It uses the following
   namespace prefix for the indicated namespace URI;
     "blog": "http://purl.org/atompub/blogcontrols/1.0"

   This specification uses terms from the XML Infoset [W3C.REC-xml-
   infoset-20040204].  However, this specification uses a shorthand; the
   phrase "Information Item" is omitted when naming Element Information
   Items.  Therefore, when this specification uses the term "element,"
   it is referring to an Element Information Item in Infoset terms.

3.  The 'blog:private' element

   The 'blog:private' element is used to indicate that a weblog entry
   should only be made available to a limited audience.  It is up to
   specific implementations to provide the mechanism for determining the
   audience.  If missing, the value is assumed to be indeterminate.
     blogPrivate = element blog:private { 'yes' | 'no' }

4.  The 'blog:notify' element

   The 'blog:notify' element is used to specific a collection of
   endpoints that should be notified upon the creation or update of the
   entry.









Snell & Torres           Expires March 28, 2006                 [Page 3]


Internet-Draft                 Feed Thread                September 2005


     blogNotify = element blog:notify {
       element blogEndpoint *,
       undefinedContent
     }

     blogEndpoint = element blog:endpoint {
       attribute type { IRI },
       ( IRI )
     }

   The blog:endpoint element specifies an IRI to which a notification
   should be sent.  The type attribute specifies a IRI indicating the
   type of notification to send.

   Ed.  Note: Should notify be ignored on updates??

5.  The 'blog:enable' element

   The 'blog:enable' element is used to specify whether specific
   features should be enabled for the entry.  Examples of such features
   include whether or not to enable comments or trackbacks for an entry,
   or whether or not to enable a given text-encoding mechanism or
   plugin.




























Snell & Torres           Expires March 28, 2006                 [Page 4]


Internet-Draft                 Feed Thread                September 2005


     blogEnable = element blog:enable {
       element blogComments ?,
       element blogTrackbacks ?,
       element blogPingbacks ?,
       element blogCommentsNotify ?,
       element blogTrackbacksNotify ?,
       element blogPingbacksNotify ?,
       element blogTextEncoding *,
       element blogPlugin *,
       undefinedContent
     }

     blogComments = element blog:comments {
       attribute until { dateTime }?,
       ('yes','no','moderated','registered')
     }

     blogTrackbacks = element blog:trackbacks {
       attribute until { dateTime }?,
       ('yes','no','moderated','registered')
     }

     blogPingbacks = element blog:pingbacks {
       attribute until { dateTime }?,
       ('yes','no','moderated','registered')
     }

     blogCommentsNotify =
       element blog:comments-notify { 'yes' | 'no' }

     blogTrackbacksNotify =
       element blog:trackbacks-notify { 'yes' | 'no' }

     blogPingbacksNotify =
       element blog:pingbacks-notify { 'yes' | 'no' }

     blogTextEncoding = element blog:text-encoding {
       attribute id { IRI },
       undefinedContent
     }

     blogPlugin = element blog:plugin {
       attribute id { IRI },
       undefinedContent
     }






Snell & Torres           Expires March 28, 2006                 [Page 5]


Internet-Draft                 Feed Thread                September 2005


   o  The blog:comments element specifies whether to enable comments for
      the entry.  The value of the element is either 'yes', indicating
      that comments are fully enabled; 'no', indicating that comments
      are fully disabled; 'moderated', indicating that comments must be
      reviewed and approved prior to acceptance; and 'registered',
      indicating that users posting comments must be registered in order
      to submit comments.  The option @until attribute must specify a
      timestamp conformant with the Atom Date Construct that specifies a
      moment after which comments will no longer be accepted.
   o  The blog:trackbacks element specifies whether to enable trackbacks
      for the entry.  The value of the element is either 'yes',
      indicating that trackbacks are fully enabled; 'no', indicating
      that trackbacks are fully disabled; 'moderated', indicating that
      trackbacks must be reviewed and approved prior to acceptance; and
      'registered', indicating that users posting trackbacks must be
      registered.  The option @until attribute must specify a timestamp
      conformant with the Atom Date Construct that specifies a moment
      after which trackbacks will no longer be accepted.
   o  The blog:pingbacks element specifies whether to enable pingbacks
      for the entry.  The value of the element is either 'yes',
      indicating that pingbacks are fully enabled; 'no', indicating that
      pingbacks are fully disabled; 'moderated', indicating that
      pingbacks must be reviewed and approved prior to acceptance; and
      'registered', indicating that users posting pingbacks must be
      registered.  The option @until attribute must specify a timestamp
      conformant with the Atom Date Construct that specifies a moment
      after which pingbacks will no longer be accepted.
   o  The blog:comments-notify element specifies whether or not
      notifications should be sent when new comments are posted.  The
      elements value is either 'yes' or 'no'.
   o  The blog:comments-notify element specifies whether or not
      notifications should be sent when new comments are posted.  The
      elements value is either 'yes' or 'no'.
   o  The blog:trackbacks-notify element specifies whether or not
      notifications should be sent when new trackbacks are posted.  The
      elements value is either 'yes' or 'no'.
   o  The blog:pingbacks-notify element specifies whether or not
      notifications should be sent when new pingbacks are posted.  The
      elements value is either 'yes' or 'no'.
   o  The blog:text-encoding element @id attribute specifies an IRI
      identifying a text-encoding scheme to apply to the post.  The
      blog:text-encoding element MAY contain any number of namespace-
      qualified child elements that MAY be considered relevant to the
      application of the identified text-encoding scheme.
   o  The blog:plugin element @id attribute specifies an IRI identifying
      a plugin to enable for the post.  The blog:plugin element MAY
      contain any number of namespace-qualified child elements that MAY
      be considered relevant to the application of the identified



Snell & Torres           Expires March 28, 2006                 [Page 6]


Internet-Draft                 Feed Thread                September 2005


      plugin.

6.  The 'blog:scheduled' element

   The 'blog:scheduled' element is used to specify a date and time
   conformant to the Atom Date Construct that indicates when the posted
   entry should be published.  If specified, sofware implementations
   MUST NOT make the element externally available until the moment
   specified in the element passes.

   The 'blog:scheduled' element is only effective on new or scheduled
   entries that have not yet been published and MUST be ignored if
   included in updates to existing published entries.
     blogScheduled = element blog:scheduled { atomDateConstruct }

7.  Example

   The following Atom Entry illustrates the construction of an Atom
   Publishing Protocol post in which:

   o  The entry is consider to be public
   o  Trackback and Ping notifications should be sent
   o  Comments and trackbacks are moderated and enabled until midnight,
      December 12, 2005
   o  The post should not be published until midnight, November 11, 2005


























Snell & Torres           Expires March 28, 2006                 [Page 7]


Internet-Draft                 Feed Thread                September 2005


     <entry xmlns="http://www.w3.org/2005/Atom"
            xmlns:pub="..."
            xmlns:blog="...">
       <id>tag:example.com,2005:/entries/1234</id>
       <title>A simple blog entry</title>
       <updated>2005-10-10T00:00:00Z</updated>
       <content>This is a simple blog entry</content>
       <pub:control>
         <blog:private>no</blog:private>
         <blog:notify>
           <blog:endpoint
             type="http://www.movabletype.org/trackback/"> \
             http://www.example.com/entry1.tb</blog:endpoint>
           <blog:endpoint
             type="http://www.technorati.com/developers/ping/"> \
             http://www.technorati.com/ping/</blog:endpoint>
         </blog:notify>
         <blog:enable>
           <blog:comments
             until="2005-12-12T00:00:00Z">moderated</blog:comments>
           <blog:trackbacks
             until="2005-12-12T00:00:00Z">moderated</blog:trackbacks>
         </blog:enable>
         <blog:scheduled>2005-11-11T00:00:00Z</blog:scheduled>
       </pub:control>
     </entry>

8.  Security Considerations

   There are no security considerations introduced by this
   specification.

9.  IANA Considerations

   There are no IANA considerations introduced by this specification.

10.  References

   [I-D.ietf-atompub-format]
              Sayre, R. and M. Nottingham, "The Atom Syndication
              Format", draft-ietf-atompub-format-11 (work in progress),
              August 2005.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [W3C.REC-xml-infoset-20040204]
              Tobin, R. and J. Cowan, "XML Information Set (Second



Snell & Torres           Expires March 28, 2006                 [Page 8]


Internet-Draft                 Feed Thread                September 2005


              Edition)", W3C REC REC-xml-infoset-20040204,
              February 2004.

   [W3C.REC-xml-names-19990114]
              Hollander, D., Bray, T., and A. Layman, "Namespaces in
              XML", W3C REC REC-xml-names-19990114, January 1999.

   [W3C.REC-xmlschema-2-20041028]
              Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes
              Second Edition", W3C REC REC-xmlschema-2-20041028,
              October 2004.


Authors' Addresses

   James M Snell


   Phone:
   Email: jasnell@gmail.com
   URI:   http://snellspace.com


   Elias Torres


   Phone:
   Email: elias@torrez.us
   URI:   http://torrez.us

Appendix A.  Acknowledgements

   TBD


















Snell & Torres           Expires March 28, 2006                 [Page 9]


Internet-Draft                 Feed Thread                September 2005


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM 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.


Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Snell & Torres           Expires March 28, 2006                [Page 10]