Difference between revisions of "Syndication"
(→Licensed Content Discovery) |
|||
(16 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
License statements may be included in various synication formats, generally at the feed and item level, where the latter overrides the former. | License statements may be included in various synication formats, generally at the feed and item level, where the latter overrides the former. | ||
− | + | Select examples of producers and consumers of license-annotated feeds being added, in progress. | |
− | + | == [[RSS 1.0]] == | |
− | + | [http://web.resource.org/rss/1.0/ RSS 1.0] is an [http://www.w3.org/TR/rdf-syntax-grammar/ RDF+XML] format for feeds. A [http://web.resource.org/rss/1.0/modules/cc/ module] for licensing has been published. More information and examples are available [[RSS 1.0|here]]. | |
− | + | == [[RSS 2.0]] == | |
− | + | [http://www.rssboard.org/rss-specification RSS 2.0] is a simplified feed format. A [http://backend.userland.com/creativeCommonsRssModule module] for licensing has been published. More information and examples are available [[RSS 2.0|here]]. | |
− | http:// | + | == [[Atom|Atom 1.0]] == |
+ | |||
+ | The [http://ietf.org IETF] has published [http://www.ietf.org/rfc/rfc4946.txt RFC-4946] defining an extension to Atom 1.0 for specifying license information. See [[Atom|this page]] for examples and more information. | ||
== Human-visible notice == | == Human-visible notice == | ||
Line 34: | Line 36: | ||
} | } | ||
# no explicit license in feed, fetch feed item URL | # no explicit license in feed, fetch feed item URL | ||
+ | # see http://wiki.creativecommons.org/Marking_works#Web | ||
feedItemContent = httpGet(feedItem.itemURL()); | feedItemContent = httpGet(feedItem.itemURL()); | ||
if (parseLicenseFromHTML(feedItemContent) != null) { | if (parseLicenseFromHTML(feedItemContent) != null) { | ||
Line 41: | Line 44: | ||
# item referred to in enclosure if there is one, | # item referred to in enclosure if there is one, | ||
# look for embedded metadata | # look for embedded metadata | ||
+ | # see http://wiki.creativecommons.org/Marking_works#Non-Web | ||
if (feedItem.enclosure() != null) { | if (feedItem.enclosure() != null) { | ||
enclosureContent = httpGet(feedItem.enclosure()); | enclosureContent = httpGet(feedItem.enclosure()); | ||
Line 50: | Line 54: | ||
This is obviously just a sketch. Aggregators may wish to use different heuristics for different feeds. Different aggregators will want to be more or less aggressive -- e.g., many will not want to go through the step of downloading and attempting to parse enclosure content. See [[content curators]] for some sites with feeds of CC licensed content. | This is obviously just a sketch. Aggregators may wish to use different heuristics for different feeds. Different aggregators will want to be more or less aggressive -- e.g., many will not want to go through the step of downloading and attempting to parse enclosure content. See [[content curators]] for some sites with feeds of CC licensed content. | ||
− | + | {{Challenge_Enabled}} | |
[[Category:Developer]] | [[Category:Developer]] | ||
[[Category:Metadata]] | [[Category:Metadata]] | ||
− | [[Category: | + | [[Category:Syndication]] |
Latest revision as of 23:30, 3 March 2008
License statements may be included in various synication formats, generally at the feed and item level, where the latter overrides the former.
Select examples of producers and consumers of license-annotated feeds being added, in progress.
RSS 1.0
RSS 1.0 is an RDF+XML format for feeds. A module for licensing has been published. More information and examples are available here.
RSS 2.0
RSS 2.0 is a simplified feed format. A module for licensing has been published. More information and examples are available here.
Atom 1.0
The IETF has published RFC-4946 defining an extension to Atom 1.0 for specifying license information. See this page for examples and more information.
Human-visible notice
Some podcast players display the contents of a copyright
element found in a feed. Example usage, not intended to be machine-parsable, customize for communication with human readers, but do include URL of the relevant CC license and most importantly URL where users can get back to your site:
- <copyright>All the songs in this podcast, and the podcast itself, are licensed to the public under http://creativecommons.org/licenses/by-nc-sa/1.0/ verify at http://magnatune.com/info/openmusic</copyright>
Licensed Content Discovery
Not all feeds include license metadata. In psuedocode, here are heuristics for discovering licensed content via feeds, perhaps useful in particular for aggregators.
function feedItemLicense(feedItem) { # license found for feed item URL (e.g., rel="license")? if (feedItem.license() != null) { return feedItem.license(); } # license found at feed top level? if (feedItem.feed().license() != null) { return feedItem.feed().license(); } # no explicit license in feed, fetch feed item URL # see http://wiki.creativecommons.org/Marking_works#Web feedItemContent = httpGet(feedItem.itemURL()); if (parseLicenseFromHTML(feedItemContent) != null) { return parseLicenseFromHTML(feedItemContent); } # no license found in content at feed item URL, fetch # item referred to in enclosure if there is one, # look for embedded metadata # see http://wiki.creativecommons.org/Marking_works#Non-Web if (feedItem.enclosure() != null) { enclosureContent = httpGet(feedItem.enclosure()); return parseLicenseFromMedia(enclosureContent); } }
This is obviously just a sketch. Aggregators may wish to use different heuristics for different feeds. Different aggregators will want to be more or less aggressive -- e.g., many will not want to go through the step of downloading and attempting to parse enclosure content. See content curators for some sites with feeds of CC licensed content.
Syndication | |
---|---|
Have an idea about this page? Want to help build the CC ecosystem? Check out the challenges related to Syndication, or add one of your own below. | |
Open Challenges | |
{{#ask: Is Complete::no
Related To::Syndication|format=table}} |
|
Completed Challenges | |
{{#ask: Is Complete::yes
Related To::Syndication|format=table}} |
|
{{#forminput:Challenge|35 | Challenge[related_to]=Syndication }} |