Internet DRAFT - draft-snell-atompub-app-blogcontrol
draft-snell-atompub-app-blogcontrol
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]