RFC 4946

Atom License Extension

πŸ“… published July 2007, from ietf

RFC 4946: Atom License Extension πŸ¦‹

okay bestie, here's the title block πŸ’–

  • Network Working Group 🌸
  • Request for Comments: 4946
  • Author: J. Snell (James M Snell) ✍️
  • Date: July 2007 πŸ“…
  • Category: Experimental πŸ§ͺ
  • Obsoletes / Updates: none listed in the header

Status of This Memo ✨

This memo defines an Experimental Protocol for the Internet community πŸŽ€. It does not specify an Internet standard of any kind. Discussion and suggestions for improvement are requested, so tell the people building this what you think 🫢. Distribution of this memo is unlimited 🌈.

Copyright (C) The IETF Trust (2007). The legal stuff, but it's the IETF's πŸ’….

Abstract 🌸

This memo adds an extension to the Atom Syndication Format for describing the licenses attached to Atom feeds and entries πŸŽ€.

Table of Contents πŸ“‘

   1. Introduction ....................................................2
      1.1. Notational Conventions .....................................2
      1.2. Terminology ................................................2
   2. The "license" Link Relation .....................................3
      2.1. Unspecified License Links ..................................3
      2.2. Comparing License Links ....................................3
      2.3. Example ....................................................3
      2.4. Inherited Licenses .........................................4
      2.5. Relationship with the atom:rights Element ..................4
   3. Security Considerations .........................................5
   4. IANA Considerations .............................................5
   5. Normative References ............................................5
   Appendix A.  Acknowledgements ......................................7

1. Introduction ✨

Okay so this doc adds an extension to Atom (the feed format πŸ“) that lets you attach links to feeds or entries. Those links point at resources that spell out the explicit rights granted to whoever consumes the content. Main character energy πŸ‘‘.

Describing licenses this way is still considered largely experimental, no cap πŸ§ͺ. Lots of feed publishers attach licenses to their syndicated content, but there are very few feed consumers that actually use that metadata. Nobody's totally sure how well it works yet πŸ™ˆ. Since it's not clear how these mechanisms will be used, implementers and feedback are super encouraged 🫢.

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

1.2. Terminology 🧠

The term "link relation" refers to the value of the Atom link element's rel attribute, as defined in Section 4.2.7.2 of [RFC4287].

The term "license" refers to a potentially machine-readable description of explicit rights that have been granted to consumers of an Atom feed or entry. Rights granted by a license may be associated with obligations that must be assumed by those exercising those rights πŸ’Ό.

Atom allows the use of Internationalized Resource Identifiers (IRIs) [RFC3987]. Every URI [RFC3986] is also an IRI, so a URI can go anywhere an IRI is named further down. When an IRI that is not also a URI is given for dereferencing, it MUST be mapped to a URI using the steps in Section 3.1 of [RFC3987] πŸ”.

Atom allows the use of the xml:base attribute [W3C.REC-xmlbase-20010627] to set the base URI (or IRI). That base is used to resolve any relative references, as described in Section 5.1.1 of [RFC3986] 🧭.

Atom allows the use of the xml:lang attribute to indicate the natural language of an element, its attributes, and its descendents. The language context only matters for elements and attributes declared to be "Language-Sensitive" as described in [RFC4287]. The title attribute of the atom:link element is defined as being Language-Sensitive 🌍.

The "license" link relation is how you associate licenses with a feed or entry πŸŽ€.

Feed and entry elements MAY contain any number of "license" link relations, but they MUST NOT contain more than one with the same combination of href and type attribute values. The IRI in the link's href attribute SHOULD be dereferenceable so it returns a representation of the license. The license representation MAY be machine readable πŸ€–.

Feeds and entries can be dual-licensed by including multiple "license" link relations with different href attribute values πŸ‘―. If multiple "license" link relations are specified, each SHOULD contain a title attribute with a human-readable label for the license 🏷️.

A publisher can use an "unspecified license link" (a "license" link relation whose href attribute value is equal to http://purl.org/atompub/license#unspecified) to say that a feed or license has not been explicitly linked to a license description πŸ€·β€β™€οΈ.

A feed or entry containing an unspecified license link MUST NOT contain any other "license" link relations 🚫.

Atom implementations that can support "license" links SHOULD use the simple string-comparison method described in [RFC3987], Section 5.3.1, to decide whether multiple "license" links are equivalent. The other comparison methods discussed in Section 5.1 of the IRI specification MAY be used. If the "license" link uses a relative reference, it MUST be converted to its fully qualified form before comparison πŸ”.

2.3. Example πŸŽ€

Here's the vibe check, a full example feed πŸ’…:

     <feed xmlns="http://www.w3.org/2005/Atom">
       <id>http://www.example.com/myfeed</id>
       <title>My Example Feed</title>
       <updated>2005-07-28T12:00:00Z</updated>
       <link href="http://www.example.com/myfeed" />
       <link rel="license" type="application/rdf+xml"
         href="http://creativecommons.org/licenses/by-nc/2.5/rdf" />

       <rights>
         Copyright (c) 2005.  Some rights reserved.  This feed
         is licensed under a Creative Commons Attribute-NonCommercial
         Use License.  It contains material originally published by
         Jane Smith at http://www.example.com/entries/1 under the
         Creative Commons Attribute License.
       </rights>
       <author><name>James</name></author>
       <entry>
         <id>tag:entries.org,2005:1</id>
         <title>Atom Powered Robots Run Amok</title>
         <updated>2005-06-28T12:00:00Z</updated>
         <link href="http://www.example.org/entries/1" />
         <summary>Atom Powered Robots Run Amok</summary>
         <author><name>Jane Smith</name></author>
         <link rel="license" type="text/html"
           href="http://creativecommons.org/licenses/by/2.5/" />
       </entry>
     </feed>

2.4. Inherited Licenses πŸ‘‘

"License" links set within atom:feed or atom:source elements get inherited by entries 🧬. Generally, a more specific license overrides a less specific one, bestie πŸ’–. More precisely, if an atom:entry has any "license" link relations (including the "undefined" license), it does not inherit any license from its containing atom:feed element or its contained atom:source element. If an entry has no "license" link relations and contains an atom:source element, it inherits licenses from that atom:source. If the atom:source element has no "license" links, or the entry has no atom:source element, the entry inherits licenses from the containing atom:feed πŸͺœ.

An entry's license MAY be inherited by media resources associated with the entry πŸ“Έ. Some media types have their own ways of including license information, and that always overrides the entry's licensing ⚑.

An agent searching for entries that fall under a specific license (for example, a search for entries with pictures and the word "knitting" where the entry is under any Creative Commons license) MUST check the most granular license definition available, rather than assume license inheritance without checking 🧢. Don't just vibe-assume it, check it!

2.5. Relationship with the atom:rights Element 🌷

"License" link relations are related to the atom:rights element, since both are meant to communicate information about the rights associated with an Atom document πŸ“œ. The difference is that atom:rights is strictly a human-readable assertion of rights held over a work, while the "license" link relation is a potentially machine-readable description of what rights have been granted to others πŸ€–. The two can overlap, and conflicts could come up if they contradict each other 😬. It's important that publishers make sure the atom:rights and "license" link relations stay consistent with one another 🫢.

If an atom:entry without an atom:source is copied from one feed into another, and the feed it's copied into contains a license, an atom:source element SHOULD be added to the copied entry πŸ“‹. If a source feed contains a license, that license SHOULD be preserved in an atom:source element added to any entries copied from that source feed that don't already have atom:source elements πŸ”.

3. Security Considerations πŸ”

Okay, this part is seriously important, so pay attention 😭. When "license" link relations are used in Atom documents, the security considerations specified in [RFC4287] Section 8 apply. Read them before you ship anything πŸ›‘οΈ.

4. IANA Considerations πŸ“

This specification defines one new Atom link relation type, which needs to be registered in the IANA Registry of Link Relations as defined by [RFC4287] πŸ—‚οΈ.

       Attribute Value: license
       Description: Specifies the IRI of a license associated with
                    the containing feed, entry, or source element.
       Expected display characteristics: None
       Security considerations: When "license" link relations are used
                    in Atom documents, the security considerations for
                    handling links in Atom documents apply.

5. 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-xmlbase-20010627]
              Marsh, J., "XML Base", World Wide Web Consortium
              Recommendation REC-xmlbase-20010627, June 2001,
              <http://www.w3.org/TR/2001/REC-xmlbase-20010627>.

Appendix A. Acknowledgements πŸ’–

The author gratefully acknowledges the feedback from Mike Linksvayer, Robin Cover, Lisa Dusseault, Bjorn Hohrmann, Frank Ellermann, and the members of Atom Publishing Format and Protocol working group during the development of this specification 🫢🌸.

Author's Address πŸ’Œ

   James M Snell

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

Okay bestie, this part is the legal fine print at the end, but it's still important, so here we go 🧚

Copyright (C) The IETF Trust (2007) πŸ“œ

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

This document and the information in it are provided "AS IS", and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE totally disclaim ALL WARRANTIES, EXPRESS OR IMPLIED πŸ™ˆ That includes, but isn't limited to, any warranty that using the information here won't infringe any rights, and any implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE πŸ’€


Intellectual Property πŸ¦‹

The IETF takes no position on whether any Intellectual Property Rights or other rights that someone might claim for the technology in this document are valid or in scope. It also doesn't say whether any license under those rights might or might not be available. It hasn't made any independent effort to find those rights either πŸ€·β€β™€οΈ If you want the procedures for rights in RFC documents, check out BCP 78 and BCP 79 πŸ“š

Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses that will be made available, and the results of any attempt to get a general license or permission for implementers or users to use these proprietary rights can be found in the IETF online IPR repository at http://www.ietf.org/ipr 🌸

The IETF invites anyone who's interested to bring to its attention any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org πŸ’Œ


Acknowledgement 🫢

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

πŸ“¦ where this page comes from