FeedSync for Atom and RSS, previously Simple Sharing Extensions, are extensions to RSS and Atom feed formats designed to enable the bi-directional synchronization of information by using a variety of data sources. Initially developed by Ray Ozzie, Chief Software Architect at Microsoft, it is now maintained by Jack Ozzie, George Moromisato, Matt Augustine, Paresh Suthar and Steven Lees. Dave Winer, the designer of the UserLand Software RSS specification variants, has given input for the specifications.
The last version of FeedSync for Atom and RSS specification is 1.02. [1] FeedSync for Atom and RSS is licensed under the Creative Commons Attribution-ShareAlike License (version 2.5) and the Microsoft Open Specification Promise.
The scope of FeedSync for Atom and RSS is to define the minimum extensions necessary to enable loosely cooperating applications to use Atom and RSS feeds as the basis for item sharing – that is, the bi-directional, asynchronous synchronization of new and changed items amongst two or more cross-subscribed feeds.
Note that while much of FeedSync is currently defined in terms of Atom and RSS feeds, at its core what FeedSync strictly requires is:
This means that FeedSync can be implemented by almost any programming language have its metadata represented in many structured data formats.
<?xml version="1.0" encoding="utf-8"?><rssversion="2.0"xmlns:sx="http://feedsync.org/2007/feedsync"><channel><title>ToDoList</title><description>Alistofitemstodo</description><link>https://www.example.com/something/foo/bar/</link><sx:sharingsince="2005-02-13T18:30:02Z"until="2005-05-23T18:30:02Z"><sx:relatedlink="[http://example.com/all.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="complete"/><sx:relatedlink="[http://example.com/B.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="aggregated"title="To Do List (Jacks Copy)"/></sx:sharing><item><title>Buygroceries</title><description>Getmilk,eggs,butterandbread</description><sx:syncid="item_1_myapp_2005-05-21T11:43:33Z"updates="3"><sx:historysequence="3"when="2005-05-21T11:43:33Z"by="JEO2000"/><sx:historysequence="2"when="2005-05-21T10:43:33Z"by="REO1750"/><sx:historysequence="1"when="2005-05-21T09:43:33Z"by="REO1750"/></sx:sync></item></channel></rss>
<?xml version="1.0" encoding="utf-8"?><feedxmlns="http://www.w3.org/2005/Atom"xmlns:sx="http://feedsync.org/2007/feedsync"><title>ToDoList</title><subtitle>Alistofitemstodo</subtitle><linkrel="self"href="http://example.com/partial.xml"/{{deadlink|date=December2016|bot=InternetArchiveBot|fix-attempted=yes}}><author><name>RayOzzie</name></author><updated>2005-05-21T11:43:33Z</updated><id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0aaa</id><sx:sharingsince="2005-02-13T18:30:02Z"until="2005-05-23T18:30:02Z"><sx:relatedlink="[http://example.com/all.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="complete"/><sx:relatedlink="[http://example.com/B.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}"type="aggregated"title="To Do List (Jacks Copy)"/></sx:sharing><entry><title>Buygroceries</title><content>Getmilk,eggs,butterandbread</content><id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0aa0</id><author><name>RayOzzie</name></author><updated>2005-05-21T11:43:33Z</updated><sx:syncid="item_1_myapp_2005-05-21T11:43:33Z"updates="3"><sx:historysequence="3"when="2005-05-21T11:43:33Z"by="JEO2000"/><sx:historysequence="2"when="2005-05-21T10:43:33Z"by="REO1750"/><sx:historysequence="1"when="2005-05-21T09:43:33Z"by="REO1750"/></sx:sync></entry></feed>
<?xml version="1.0" encoding="utf-8"?><item><subject>Buygroceries</subject><body>Getmilkandeggs</body><sx:syncid="item_1_myapp_2005-05-21T11:43:33Z"updates="1"><sx:historysequence="1"when="2005-05-21T09:43:33Z"by="REO1750"/></sx:sync></item>
{"title":"Buy groceries","description":"Get milk and eggs","sync":{"id":"item_1_myapp_2005-05-21T11:43:33Z","updates":"1","history":[{"sequence":"1","when":"2005-05-21T09:43:33Z","by":"REO1750"}]}}
There are several examples of "real world" use of FeedSync feeds to synchronize data between applications.
This prototype developer service is an implementation of HTTP-based FeedSync endpoint. Applications can use HTTP GET and POST commands to synchronize feeds, where the latter performs the FeedSync merge operation on the feed hosted by the FeedSync Service. The service is not active anymore.
FeedSync feeds were used extensively at the Strong Angel III exercise in August 2006 as a lightweight middle-ware to link applications from Microsoft, Google, ESRI and others on desktops and mobile devices. The service is not active anymore.
The comprehensive Java RSS project, ROME, is an implementation of the FeedSync specification since it creates a Java layer for developers to create apps that will use the FeedSync service.
Mesh4x, an open-source set of libraries, tools, applications and services for mesh-based applications, uses FeedSync as the versioning standard, and implements a Feedsync-inspired packet-based protocol to synchronize data over SMS text messages.
A document type definition (DTD) is a specification file that contains set of markup declarations that define a document type for an SGML-family markup language. The DTD specification file can be used to validate documents.
Synchronized Multimedia Integration Language ) is a World Wide Web Consortium recommended Extensible Markup Language (XML) markup language to describe multimedia presentations. It defines markup for timing, layout, animations, visual transitions, and media embedding, among other things. SMIL allows presenting media items such as text, images, video, audio, links to other SMIL presentations, and files from multiple web servers. SMIL markup is written in XML, and has similarities to HTML.
RSS is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. Subscribing to RSS feeds can allow a user to keep track of many different websites in a single news aggregator, which constantly monitor sites for new content, removing the need for the user to manually check them. News aggregators can be built into a browser, installed on a desktop computer, or installed on a mobile device.
SyncML is the former name for a platform-independent information synchronization standard. The project is currently referred to as Open Mobile Alliance Data Synchronization and Device Management. The purpose of SyncML is to offer an open standard as a replacement for existing data synchronization solutions, which have mostly been somewhat vendor-, application- or operating system specific. SyncML 1.0 specification was released on December 17, 2000, and 1.1 on February 26, 2002.
The name Atom applies to a pair of related Web standards. The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol is a simple HTTP-based protocol for creating and updating web resources.
On the World Wide Web, a web feed is a data format used for providing users with frequently updated content. Content distributors syndicate a web feed, thereby allowing users to subscribe a channel to it by adding the feed resource address to a news aggregator client. Users typically subscribe to a feed by manually entering the URL of a feed or clicking a link in a web browser or by dragging the link from the web browser to the aggregator, thus "RSS and Atom files provide news updates from a website in a simple form for your computer."
Channel Definition Format (CDF) was an XML file format formerly used in conjunction with Microsoft's Active Channel, Active Desktop and Smart Offline Favorites technologies. The format was designed to "offer frequently updated collections of information, or channels, from any web server for automatic delivery to compatible receiver programs." Active Channel allowed users to subscribe to channels and have scheduled updates delivered to their desktop. Smart Offline Favorites, like channels, enabled users to view webpages from the cache.
OpenSearch is a collection of technologies that allow the publishing of search results in a format suitable for syndication and aggregation. Introduced in 2005, it is a way for websites and search engines to publish search results in a standard and accessible format.
Speech Recognition Grammar Specification (SRGS) is a W3C standard for how speech recognition grammars are specified. A speech recognition grammar is a set of word patterns, and tells a speech recognition system what to expect a human to say. For instance, if you call an auto-attendant application, it will prompt you for the name of a person. It will then start up a speech recognizer, giving it a speech recognition grammar. This grammar contains the names of the people in the auto attendant's directory and a collection of sentence patterns that are the typical responses from callers to the prompt.
Attention Profiling Mark-up Language (APML) is an XML-based markup language for documenting a person's interests and dislikes.
Windows Live Mesh is a discontinued free-to-use Internet-based file synchronization application by Microsoft designed to allow files and folders between two or more computers to be in sync with each other on Windows and Mac OS X computers or the Web via SkyDrive. Windows Live Mesh also enabled remote desktop access via the Internet.
GeoRSS is a specification for encoding location as part of a Web feed. (Web feeds are used to describe feeds of content, such as news articles, Audio blogs, video blogs and text blog entries. These web feeds are rendered by programs such as aggregators and web browsers.) The name "GeoRSS" is derived from RSS, the most known Web feed and syndication format.
The Microsoft Office XML formats are XML-based document formats introduced in versions of Microsoft Office prior to Office 2007. Microsoft Office XP introduced a new XML format for storing Excel spreadsheets and Office 2003 added an XML-based format for Word documents.
The Pronunciation Lexicon Specification (PLS) is a W3C Recommendation, which is designed to enable interoperable specification of pronunciation information for both speech recognition and speech synthesis engines within voice browsing applications. The language is intended to be easy to use by developers while supporting the accurate specification of pronunciation information for international use.
Microsoft Sync Framework is a data synchronization platform from Microsoft that can be used to synchronize data across multiple data stores. Sync Framework includes a transport-agnostic architecture, into which data store-specific synchronization providers, modelled on the ADO.NET data provider API, can be plugged in. Sync Framework can be used for offline access to data, by working against a cached set of data and submitting the changes to a master database in a batch, as well as to synchronize changes to a data source across all consumers and peer-to-peer synchronization of multiple data sources. Sync Framework features built-in capabilities for conflict detection – whether data to be changed has already been updated – and can flag them for manual inspection or use defined policies to try to resolve the conflict. Sync Services includes an embedded SQL Server Compact database to store metadata about the synchronization relationships as well as about each sync attempt. The Sync Framework API is surfaced both in managed code, for use with .NET Framework applications, as well as unmanaged code, for use with COM applications. It was scheduled to ship with Visual Studio 2008 in late November 2007.
Animation of Scalable Vector Graphics, an open XML-based standard vector graphics format is possible through various means:
EPUB is an e-book file format that uses the ".epub" file extension. The term is short for electronic publication and is sometimes stylized as ePub. EPUB is supported by many e-readers, and compatible software is available for most smartphones, tablets, and computers. EPUB is a technical standard published by the International Digital Publishing Forum (IDPF). It became an official standard of the IDPF in September 2007, superseding the older Open eBook (OEB) standard.
In computing, Open Data Protocol (OData) is an open protocol that allows the creation and consumption of queryable and interoperable Web service APIs in a standard way. Microsoft initiated OData in 2007. Versions 1.0, 2.0, and 3.0 are released under the Microsoft Open Specification Promise. Version 4.0 was standardized at OASIS, with a release in March 2014. In April 2015 OASIS submitted OData v4 and OData JSON Format v4 to ISO/IEC JTC 1 for approval as an international standard. In December 2016, ISO/IEC published OData 4.0 Core as ISO/IEC 20802-1:2016 and the OData JSON Format as ISO/IEC 20802-2:2016.
XHTML+RDFa is an extended version of the XHTML markup language for supporting RDF through a collection of attributes and processing rules in the form of well-formed XML documents. XHTML+RDFa is one of the techniques used to develop Semantic Web content by embedding rich semantic markup. Version 1.1 of the language is a superset of XHTML 1.1, integrating the attributes according to RDFa Core 1.1. In other words, it is an RDFa support through XHTML Modularization.
The Open Publication Distribution System (OPDS) catalog format is a syndication format for electronic publications based on Atom and HTTP. OPDS catalogs enable the aggregation, distribution, discovery, and acquisition of electronic publications. OPDS catalogs use existing or emergent open standards and conventions, with a priority on simplicity.