On June 21, 2005 eight Microsoft employees claimed invention rights for a “content syndication platform,” exemplified by Internet Explorer 7 and its support for aggregating feed content. Patent application 20060288329 pursues the “the right to exclude others from making, using, offering for sale, or selling” (see United States definition of a patent) normalized web feeds made available via an API and centrally stored feed lists. The patent application was revealed yesterday after an 18-month privacy window expired.
Authors Edward Praitis, Jane Kim, Sean Lyndersay, Walter V. von Koch, Bruce Morgan, Cindy Kwan, and Amar Gandhi (now at Google) claim invention rights over a few different pieces of a content syndication system. I’ll walk through each section detailing the specific invention claims and prior art where appropriate.
Centralized access to a shared list of web feed subscriptions
The centralized web feed storage is very similar to existing browser behavior of bookmarks or favorites. Once you find some web content worth revisiting, you can add that content to a special list to revisit at a later date.
Local bookmarks have been inside of web browsers since hotlists in the NCSA Mosaic browser introduced in 1992. Web feeds are treated as special types of bookmarks within web browsers, placed within the “Favorites Center” of Internet Explorer 7 and the bookmarks menu of Mozilla Firefox.
NCSA assigned all commercial rights for the Mosaic browser and its inventions to its commercial spinoff, Spyglass, Inc., in August 1994. Microsoft licensed Mosaic technologies from Spyglass in 1995 and if you view the About section of the Internet Explorer application you will see the “distributed under a licensing agreement with Spyglass, Inc.” message to this day.
Centralized bookmark storage is nothing new, we’ve just learned how to distinguish special types of bookmarks over the years.
Process web feed data supplied in various syndication formats
The Internet Explorer 7 feed platform parses web feed data defined in various syndication formats such as RDF, RSS, and Atom and exposes the processed data to other applications on the desktop such as Internet Explorer, Outlook, and Windows Media Player. This abstraction layer simplifies feed delivery, letting a programmer simply access data without worrying about how it may be expressed in various formats, including common errors of expression.
The name of a feed’s author may be expressed a few different ways, depending on the feed format:
- RDF (aka RSS 1.0)
- <dc:creator>Niall Kennedy</dc:creator>
- RSS 2.0
- <managingEditor>email@example.com (Niall Kennedy)</managingEditor>
- Atom Syndication Format
- <author><name>Niall Kennedy</name></author>
An abstraction layer lets a programmer simply ask for the author name without needing to worry about the feed format, the existence of an e-mail address accompanying the name, or perhaps encoding errors present in the author’s feed. A variety of feed parsing libraries are available in each programming language to assist developers by abstracting feed retrieval and parsing into simple object references.
The Universal Feed Parser project has been available on SourceForge.net since June 17, 2004. The project was formerly known as the Ultra-liberal RSS parser and released by developer Mark Pilgrim on August 13, 2002 under a GPL license.
Determining a feed update schedule
Once a web feed is specified for subscription it may be updated upon application launch and/or at regular intervals. In some cases the feed author specifies additional information such as the minimum time between updates or times the feed aggregator should not attempt to update, such as specific hours and days. Server headers and markup within the individual feed content provide preferences feed readers should obey when interacting with the feed data.
The Microsoft Feed Schedule Module referenced in the patent (section 0046) adjusts update schedules based on a few additional factors. The scheduler scatters feed updates slightly, up to a 15 minute variation from a regularly scheduled update, to avoid hitting a site for new updates every hour on the hour. The module also takes into consideration the “fresh” status of the feed, noting the difference between a feed with no errors and regular updates versus another feed with constant errors or very infrequent updates. Each time a feed download is attempted a new update suggestion is scheduled based on this profiling data.
My.Userland On the Desktop was an early feed aggregator bundled with Radio Userland. Radio 8.0.1, released on January 18, 2002, introduced scattered download schedules by selecting a random minute after the hour for its scheduled updates. Radio 8.0.8, released on May 28, 2002, adjusted its update schedule based on freshness.
Internet Explorer adds a few more update polling smarts than previously implemented by other aggregators. The error checking awareness and scattering an update schedule over a 15 minute variance might be a worthy invention worthy of a patent.
Enclosure download and access
An enclosure is similar to an e-mail attachment. It contains a file or file related to the feed entry available for download depending on the preferences of the consuming application and/or the end-user. Common examples of enclosures include images, audio, and video but may also include calendar data, a word processing document, or any other type of file. A single enclosure item may be available in multiple formats, such as text, Word Doc, or PDF, and expressed through feed markup extensions such as Media RSS. Given multiple choices an application or end-user might prefer a specific format with each download.
The Enclosure Download Module described in the patent (section 0093) references advanced enclosure handling available through application and user settings and exposed via an API. Enhanced enclosure preferences mentioned include a preview version of an enclosure up to a certain size limit (i.e. the first 12 KB of a PDF) and setting an option to stream from the publisher’s server or download the entire file to local disk.
The enhanced download module might be a unique invention and worthy of a utility patent. I am unaware of prior art in this area.
I am not a patent expert or qualified in any way to talk patent law in any depth. This post is an attempt to document the novelty and non-obviousness needed for Microsoft’s patent application to receive legal approval.
I worked for Microsoft’s Windows Live Platform division earlier this year creating an online content syndication platform incorporating many of the ideas outlined in this patent application. I was not aware of the June 2005 patent application by the Internet Explorer team until earlier this week. I have previously documented the unreleased content syndication platforms of My Yahoo! and Google Reader.
Microsoft employees receive an inscribed granite cube and a financial reward for each patent granted. The trophies are often displayed with pride for any visitor to quickly count. If you possibly invented something you’re encouraged to submit a patent to reward yourself and the company. There are multiple reasons why Microsoft employees might file a patent, but only the company or the “inventors” can speak to their reasoning and intent although lots of legal issues get in the way.
I believe parts of Microsoft’s patent application are new and interesting (and possible inventions), but the main areas of the patent, centralized subscription list and feed data normalization, existed long before Internet Explorer awoke from its slumber. The content syndication platform patent was filed three days before the Internet Explorer team announced support announced RSS support. What other “inventions” are yet to be unveiled as the patent system’s 18-month privacy window rolls forward?