WHAT IS A FEED?
Think about all of the information that you access on the Web on a day-to-day basis; news headlines, search results, job vacancies, and so forth. A large amount of this content can be thought of as a list; although it probably isn’t in HTML elements, the information is list-oriented.
Most people need to track a number of these lists, but it becomes difficult once there are more than a handful of sources. This is because they have to go to each page, load it, remember how it’s formatted, and find where they last left off in the list.
A feed is an XML-based format that allows the syndication of information, or metadata, that helps viewers decide whether they want to follow the link.
This allows peoples’ computers to fetch and understand the information, so that all of the lists they’re interested in can be tracked and personalized for them. It is a format that’s intended for use by computers on behalf of people, rather than being directly presented to them (like HTML).
To enable this, a Web site will make a feed, or channel, available, just like any other file or resource on the server. Once a feed is available, computers can regularly fetch the file to get the most recent items on the list. Most often, people will do this with an aggregator, a program that manages a number of lists and presents them in a single interface.
Feeds can also be used for other kinds of list-oriented information, such as syndicating the content itself (often weblogs) along with the links. However, this tutorial focuses on the use of a specific kind of Feed called Event Standard Syndication (ESS) which is meant specifically for the syndication of events (concerts, theater, festivals, cinema, sports matches etc) on the web according to the the web user/reader's interests.
WHAT’S IN A FEED?
A feed contains a list of items or entries, each of which is identified by a link. Each item can have any amount of other metadata associated with it as well.
The most basic metadata for an entry includes a title for the link and a description of it; when syndicating news headlines, these fields might be used for the story title and the first paragraph or a summary. A simple entry might look like;
<item> <title>Earth Invaded</title> <link>http://news.example.com/2004/12/17/invasion</link> <description>The earth was attacked by an invasion fleet from halfway across the galaxy; luckily, a fatal miscalculation of scale resulted in the entire armada being eaten by a small dog.</description> </item>
Additionally, the feed itself can have metadata associated with it, so that it can be given a title (e.g., “Bob’s news headlines”), description, and other fields like publisher and copyright terms.
For an idea of what full feeds look like, see ‘ESS Versions and Modules’.
HOW DO PEOPLE USE FEEDS?
Aggregators are the most common use of feeds, and there are several types. Web aggregators (sometimes called portals) make this view available in a Web page; my Yahoo is a well-known example of this. Aggregators have also been integrated into e-mail clients, users’ desktops, or standalone, dedicated software.
Aggregators can offer a variety of special features, including combining several related feeds into a single view, hiding entries that the viewer has already seen, and categorizing feeds and entries.
Other uses of feeds include site tracking by search engines and other software; because the feed is machine-readable, the search software doesn’t have to figure out which parts of the site are important and which parts are just the navigation and presentation. You may also choose to allow people to republish your feeds on their Web sites, giving them the ability to represent your content as they require.
WHY SHOULD I MAKE A FEED AVAILABLE?
As an event promoter or publisher your presumable goal is to get people to come to your events. An ESS Feed allows your potential audience to be informed of your events.
This will improve your site’s visibility and make it easier for your users to keep up with your site — allowing them to see it the way they want to — it’s more likely that they’ll know when something that interests them is available on your site.
For example, imagine that you are promoting or trying to get the word out about a film festival. Without a feed, your viewers have to remember to come to your site and see if they find anything new — if they have time. If you provide a feed for them, they can point their aggregator or other software at it, and it will give them a link and a description of developments at your site almost as soon as they happen.
News is similar; because there are so many sources of news on the Web, most of your viewers won’t come to your site every day. By providing a feed, you are in front of them constantly, improving the chances that they’ll click through to an article that catches their eye.
BUT ISN’T THAT GIVING AWAY MY CONTENT?
No! You still retain copyright on your content (if you wish to) and all links to your event go directly to your events page or site.
You also control what information is syndicated in the feed, whether it’s a full article or just a teaser. Your content can still be protected by your current access control mechanisms; only the links and metadata are distributed. You can also protect the ESS feed itself with SSL encryption and HTTP username/password authentication too, if you’d like.
In many ways, syndication is similar to the subscription newsletters that many sites offer to keep viewers up-to-date. The big difference is that they don’t have to supply an e-mail address, lowering the barrier of privacy concerns, while still giving you a direct channel to your viewers. Also, they get to see the content in the manner that’s most convenient to them, which means that you get more eyes looking at your content.
CHOOSING CONTENT FOR YOUR FEEDS
Any list-oriented information on your site that your viewers might be interested in tracking or reusing is a good candidate for a feed. This can encompass press releases and event listings for conferences, films, concerts, theater shows etc.
Categories- The principle XML element that characterizes an ESS event is the category under which that event is labeled
Places - One of the most important elements of an event is where it is happening
Dates - An event can be unique/one time or recurring. ESS allows for both
Prices - Defines the cost to attend an event. Event prices can be fixed or varied, one time or recurring
People - Describes the people involved in the event and the number of people involved in the events' organization depending on the size and scale of the event
Media - Defines and displays any media files that represent the event
Relations - Describes relations with any other events (common categories, same performers, same organizers etc.)
Authors - Describes the person(s)/company who generates or promotes the event
ESS allows for all the above categories in one feed.
If your site offers a personalized view of data (e.g., people can choose categories of information that will show up on their home page), offers this as a feed, so that the viewers’ Web pages match the content of their feeds.
PUBLISHING YOUR FEED
The easiest way to publish your content with ESS is through the ESS code libraries from which event publishers can take the code in their web language and implement it into the part of the CMS where events are published. This will generate an ESS feed.
If that option isn’t available, you have a number of choices;Self-scraping — The easiest way to publish a feed from existing content. Scraping tools fetch your Web page and pull out the relevant parts for the feed, so that you don’t have to change your publishing system. Some use regular expressions or XPath expressions, while others require you to mark up your page with minimal hints (usually using
Feed integration — If your site is dynamically generated (using languages like Perl, Python or PHP), it may have a ESS library available, so that you can integrate the feed into your publishing process. Starting with the feed — Alternatively, you can manage the list-oriented parts of your content in the ESS feed itself, and generate your Web pages (as well as other content, like e-mail lists) from the feed. This has the advantage of always having the correct information in the feed, and tools like XSLT make this option easy, especially if you’re starting from scratch. Third party scraping — If none of these options work for you, some people on the Web will scrape your site for you and make the feed available. Be warned, however, that this is never as reliable or accurate as doing it yourself, because they don’t know the details of your content or your system. Also, using third parties introduces another point of failure in the delivery process; problems there (network, server or business) will cause your feed to be unavailable. For more information about all of these options, see “Feed Tools” and “More Information”.
TELLING PEOPLE ABOUT YOUR FEED
An important step after publishing a feed is letting your viewers know that it exists; there are a lot of feeds available on the Web now, but it’s hard to find them, making it difficult for viewers to utilize them.
Pages that have an associated ESS feed should clearly indicate this to viewers by using a link containing like ‘ESS feed’. For example,
<a type="application/ess+xml" href="feed.ess">ESS feed for this page</a>
where ‘feed.ess’ is the URL for the feed. the ‘type’ attribute tells browsers that this is a link to an ESS feed in a way that they understand.
Additionally, some programs look for a link in the <head> section of your HTML. To support this, include a <link> tag;
<head> <title>My Page</title> <link rel="alternate" type="application/ess+xml" href="feed.ess" title="ESS feed for My Page"> </head> </xml> These links should be placed on the Web page that is most similar to the feed content; this enables people to find them as they browse. Note that Atom feeds should use application/atom+xml rather than application/ess+xml in both styles of use. Finally, there are a number of guides and registries for ESS feeds that people can search and browse through, much like the Yahoo directory for Web sites; it’s a good idea to register your feed; see More Information.