Network Working Group                                           J. Snell
Internet-Draft                                                   A. Sewe
Expires: February 18, 2007                               August 17, 2006


                        Atom Ranking Extensions
                 draft-snell-atompub-feed-index-10.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 February 18, 2007.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document defines an Atom Syndication Format extension for
   numerically ranking entries within a syndication feed.










Snell & Sewe            Expires February 18, 2007               [Page 1]


Internet-Draft                  Atom Rank                    August 2006


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Examples . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.2.  Namespace and Version  . . . . . . . . . . . . . . . . . .  4
     1.3.  Notational Conventions . . . . . . . . . . . . . . . . . .  4
   2.  The "re:rank" Element  . . . . . . . . . . . . . . . . . . . .  5
     2.1.  The "scheme" Attribute . . . . . . . . . . . . . . . . . .  6
     2.2.  The "domain" Attribute . . . . . . . . . . . . . . . . . .  6
     2.3.  The "label" Attribute  . . . . . . . . . . . . . . . . . .  6
   3.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  6
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . .  6
   5.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     5.1.  Normative References . . . . . . . . . . . . . . . . . . .  7
     5.2.  Informative References . . . . . . . . . . . . . . . . . .  7
   Appendix A.  Acknowledgements  . . . . . . . . . . . . . . . . . .  8
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .  9
   Intellectual Property and Copyright Statements . . . . . . . . . . 10

































Snell & Sewe            Expires February 18, 2007               [Page 2]


Internet-Draft                  Atom Rank                    August 2006


1.  Introduction

   This document specifies an extension to the Atom Syndication Format
   that allows feed publishers to convey one or more numeric rankings
   for entries contained within Atom Feed or Entry Documents, each of
   which can be used, independently or in conjunction with the others,
   to establish a sorting order.

1.1.  Examples

   For example, the feed below includes two entries representing student
   exam scores.  Each entry contains, in the form of "re:rank" elements,
   both the overall score for each student and their score for the
   mathematics portion of the test.

     <feed xmlns="http://www.w3.org/2005/Atom"
           xmlns:re="http://purl.org/atompub/rank/1.0">
       <id>http://example.org/sat/scores</id>
       ...
       <entry>
         <id>http://students.example.org/~alice</id>
         <title>Alice</title>
         <re:rank scheme="tag:example.org,2006:sat/score/overall"
                 label="98">2100</re:rank>
         <re:rank scheme="tag:example.org,2006:sat/score/math"
                 label="99+">750</re:rank>
         ...
       </entry>
       <entry>
         <id>http://students.example.org/~bob</id>
         <title>Bob</title>
         <re:rank scheme="tag:example.org,2006:sat/score/overall"
           label="99+">2300</re:rank>
         <re:rank scheme="tag:example.org,2006:sat/score/math"
           label="96">700</re:rank>
         ...
       </entry>
     </feed>

   Implementations can use the "scheme" attribute associated with each
   rank to determine how to interpret and validate the numeric value of
   a "re:rank" element.  For instance, a rank value of 700 might have a
   different meaning and significance when expressed in terms of overall
   exam scores than it would when expressed in terms of just the
   mathematics portion of the test.

   In others situations, rank values that should be interpreted in the
   same way differ only in terms of the context in which they have been



Snell & Sewe            Expires February 18, 2007               [Page 3]


Internet-Draft                  Atom Rank                    August 2006


   applied.  For example, the feed below includes two entries
   representing movies from two different genres.  Each entry contains
   one popularity ranking relative to all movies regardless of genre,
   and one ranking that is relative only to other movies in the same
   genre.

     <feed xmlns="http://www.w3.org/2005/Atom"
           xmlns:re="http://purl.org/atompub/rank/1.0">
       ...
       <entry>
         <id>http://example.com/movies/starwars</id>
         <title>Star Wars</title>
         <re:rank domain="http://example.com/genres#all"
           scheme="http://example.com/ratings#popularity">123</re:rank>
         <re:rank domain="http://example.com/genres#scifi"
           scheme="http://example.com/ratings#popularity">53</re:rank>
         ...
       </entry>
       <entry>
         <id>http://example.com/movies/citylights</id>
         <title>Charlie Chaplin: City Lights</title>
         <re:rank domain="http://example.com/genres#all"
           scheme="http://example.com/ratings#popularity">5734</re:rank>
         <re:rank domain="http://example.com/genres#comedy"
           scheme="http://example.com/ratings#popularity">27</re:rank>
         ...
       </entry>
     </feed>

1.2.  Namespace and Version

   The XML Namespaces URI [W3C.REC-xml-names-19990114] for the XML
   elements and attributes described in this specification is
   http://purl.org/atompub/rank/1.0

   For convenience, this extension may be referred to as "Feed Rank
   1.0".

1.3.  Notational Conventions

   In this document, the namespace prefix "re:" is used for the above
   Namespace URI.  Note that the choice of namespace prefix is arbitrary
   and not semantically significant.

   This extension is, like the Atom Syndication Format [RFC4287] itself,
   specified using terms from the XML Infoset [W3C.REC-xml-infoset-
   20040204].  However, this specification uses a shorthand form for two
   commons terms: The phrase "Information Item" is omitted when naming



Snell & Sewe            Expires February 18, 2007               [Page 4]


Internet-Draft                  Atom Rank                    August 2006


   Element and Attribute Information Items.  Therefore, when this
   specification uses the term "element," it is referring to an Element
   Information Item in Infoset terms.  Likewise, when it uses the term
   "attribute," it is referring to an Attribute Information Item.

   Some sections of this specification are illustrated with fragments of
   a non-normative RELAX NG Compact schema [RFC4287].  In those sections
   this specification uses the atomCommonAttributes and atomURI patterns
   defined in [RFC4287].  However, the text of this specification
   provides the sole definition of conformance.

   This specification allows the use of IRIs [RFC3987].  Every URI
   [RFC3986] is also an IRI, so a URI may be used wherever an IRI is
   named.  Note that the definition of "IRI" excludes relative
   references.

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


2.  The "re:rank" Element

   The "re:rank" element conveys a numeric rank associated with an
   entry.

     rankingValue = element re:rank {
       atomCommonAttributes,
       attribute scheme { atomUri },
       attribute domain { atomUri }?,
       attribute label { text }?,
       { xsd:decimal }
     }

   The text content of the element is a decimal value conforming to the
   lexical representation of the XML Schema decimal data type [W3C.REC-
   xmlschema-2-20041028].  Whitespace that leads or trails the value is
   insignificant.

   Entries MAY contain zero or more "re:rank" elements but MUST NOT
   contain more than one with the same combination of "scheme" and
   "domain" attribute values.

   This specification assigns no significance to the order of "re:rank"
   elements within an entry.






Snell & Sewe            Expires February 18, 2007               [Page 5]


Internet-Draft                  Atom Rank                    August 2006


2.1.  The "scheme" Attribute

   Each "re:rank" element MUST have a "scheme" attribute that conveys a
   permanent, universally unique identifier for a ranking scheme.

   The content of the attribute MUST be an IRI, as defined by [RFC3987].
   Though the IRI might use a dereferencable scheme, processors MUST NOT
   assume it can be dereferenced.

   Scheme IRIs MUST be compared on a case-sensitive, character-by-
   character basis.  For further information refer to section 4.2.6 of
   [RFC4287].

2.2.  The "domain" Attribute

   Each "re:rank" element MAY have a "domain" attribute that conveys a
   permanent, universally unique identifier for a ranking domain.  If
   the "domain" atribute is not specified, the domain identifier is
   either

   o  The "atom:id" of the containing entry's "atom:source" element, if
      present, or
   o  The "atom:id" of an "atom:feed" containing the entry, if any, or
   o  The value of the ranked entry's "atom:id".

   The content of the attribute MUST be an IRI, as defined by [RFC3987].
   Though the IRI might use a dereferencable scheme, processors MUST NOT
   assume it can be dereferenced.

   Domain IRIs MUST be compared on a case-sensitive, character-by-
   character basis.  For further information refer to section 4.2.6 of
   [RFC4287].

2.3.  The "label" Attribute

   Each "re:rank" element MAY have a "label" attribute which coneys a
   Language-Sensitive, human-readable label for the rank.  Entities such
   as "&amp;" and "&lt;" represent their corresponding characters ("&"
   and "<", respectively), not markup.


3.  IANA Considerations

   There are no IANA considerations introduced by this specification.


4.  Security Considerations




Snell & Sewe            Expires February 18, 2007               [Page 6]


Internet-Draft                  Atom Rank                    August 2006


   The security considerations discussed in section 8 of [RFC4287]
   apply.

   Malicious content producers can use illegitimate "r:rank" values to
   inappropriately boost the positions of their own entries or
   negatively impact the postions of other entries in ordered sets.


5.  References

5.1.  Normative References

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

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, January 2005.

   [RFC3987]  Duerst, M. and M. Suignard, "Internationalized Resource
              Identifiers (IRIs)", RFC 3987, January 2005.

   [RFC4287]  Nottingham, M., Ed. and R. Sayre, Ed., "The Atom
              Syndication Format", RFC 4287, December 2005.

   [W3C.REC-xml-infoset-20040204]
              Cowan, J. and R. Tobin, "XML Information Set (Second
              Edition)", World Wide Web Consortium Recommendation
              http://www.w3.org/TR/2004/REC-xml-infoset-20040204,
              February 2004.

   [W3C.REC-xml-names-19990114]
              Bray, T., Hollander, D., and A. Layman, "Namespaces in
              XML", World Wide Web Consortium Recommendation http://
              www.w3.org/TR/1999/REC-xml-names-19990114, January 1999.

   [W3C.REC-xmlschema-2-20041028]
              Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes
              Second Edition", World Wide Web Consortium Recommendation
              http://www.w3.org/TR/2004/REC-xmlschema-2-20041028,
              October 2004.

5.2.  Informative References

   [RELAXNG]  Clark, J., "RELAX NG Compact Syntax", December 2001,
              <http://www.oasis-open.org/committees/relax-ng/
              compact-20021121.html>.




Snell & Sewe            Expires February 18, 2007               [Page 7]


Internet-Draft                  Atom Rank                    August 2006


Appendix A.  Acknowledgements

   The authors gratefully acknowledge the feedback from the Atom
   Publishing working group during the development of this
   specification.  Some portions of text in this specification have been
   copied verbatim from [RFC4287] for the purpose of maintaining
   stylistic and functional consistency with that specification.












































Snell & Sewe            Expires February 18, 2007               [Page 8]


Internet-Draft                  Atom Rank                    August 2006


Authors' Addresses

   James M Snell

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


   Andreas Sewe

   Email: sewe@rbg.informatik.tu-darmstadt.de
   URI:







































Snell & Sewe            Expires February 18, 2007               [Page 9]


Internet-Draft                  Atom Rank                    August 2006


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 (2006).  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 & Sewe            Expires February 18, 2007              [Page 10]