The Wayback Machine - http://web.archive.org/web/20051228094539/http://developers.technorati.com:80/wiki/attentionxml

> attentionxml

Attention.XML

  1. Attention.XML
    1. Draft Specification 2004-12-28
      1. Editor
      2. Concept
      3. Authors
      4. Copyright
      5. Patents
      6. Acknowledgments
    2. Introduction
      1. Problem Statement
    3. Format
      1. Format Summary
      2. Format Schema
    4. Example
      1. per-feed
      2. per-post
    5. Proof of Concept
    6. Profiles
      1. Minimal Feed Sync Profile
      2. Feed Reader Profile
      3. Attention Storage/Sync Service Profile
    7. Sample Code
    8. References
      1. Normative References
      2. Informative References
      3. Implementations
    9. Significant changes From previous versions
      1. 2005-06-09
      2. 2004-12-28
      3. 2004-10-01
    10. Discussion

Draft Specification 2004-12-28

Editor

Concept

Authors

Copyright

For the moment this specification is (C)2004-2005 by the author(s) and Technorati. However, Technorati intends to submit this specification to a standards body with a liberal copyright/licensing policy such as the [WWW]GMPG. See the [WWW]GMPG Principles for more details. Anyone wishing to contribute to this effort MUST read those principles, especially those regarding copyright and licensing, and agree to them before contributing.

Patents

Technorati neither holds nor intends to apply for any patents on anything required to implement this specification.

Acknowledgments

Thanks to:

Introduction

Attention.XML is an open standard, built on open source (see XOXOSampleCode) that helps you keep track of what you've read, what you're spending time on, and what you should be paying attention to.

Problem Statement

Attention.XML is designed to to solve these problems and enable a whole new class of blog and feed related applications.

Format

Format Summary

Attention.XML is an XML file (specifically an XOXO file) that contains an outline of feeds/blogs, where each feed itself is an outline, and each post is also an outline under the feed. This hierarchical outline structure is then annotated with per-feed and per-post information which captures such information as, the last time the feed/post was accessed, the duration of time spent on the feed/post, recent times of feed/post access, user set (dis)approval of posts, etc.

Format Schema

The Attention.XML outline contains the following types of list items. Property values are text strings unless otherwise stated.

Example

per-feed

The following OPML legacy fragment, after the head information, for per-feed information, as it already exists:

<outline text="atitle" 
         description="descstr"
         url="aurl"
         atomurl="anatomurl"
         xmlurl="anrssurl"
         type="typestr" ...>

would look like this in typical Attention.XML XOXO fragment:

<li><a href="aurl" type="typestr">atitle</a> 
    <dl><dt>description</dt><dd>descstr</dd>
        <dt>alturls</dt>
        <dd><ul><li><a href="anatomurl">atomurl</a></li>
                <li><a href="anrssurl">xmlurl</a></li></ul></dd>
    </dl>
</li>

Attention.XML extends this with the properties noted in the schema above:

per-post

In OPML legacy, each feed has a set of sub-elements, represented by a set of outlines.

<outline type="item" 
         permalink="permalink or guid"
         guid="permalink or guid"
         lastread="ISO-8601 date"
         duration="seconds value"
         followedlinks="http://example.com/1 http://example.com/2"
         rev="votelink">

which would look like this in typical Attention.XML XOXO:

<li><a href="permalink or guid" rev="votelink">title</a> 
        <dl><dt>lastread</dt><dd>ISO-8601 date</dd>
            <dt>duration</dt><dd>seconds value</dd>
            <dt>followedlinks</dt>
            <dd><ul><li><a href="http://example.com/1">link1</a></li>
                    <li><a href="http://example.com/2">link2</a></li></ul></dd>
        </dl>
</li>

So that's the format. AttentionSample outputs are also available.

Proof of Concept

To see what Technorati might do with an Attention.XML file or OPML subscription list export (like NetNewsWire's), use the following URL:

http://www.technorati.com/attention.html

BTW, when we're out of prototype stage, the URL for the webservice will probably change from http://www.technorati.com/attention.html to something else, but that should be a minor change to make.

See also Technorati's AttentionQuery documentation of Technorati's Attention.XML web service API.

Profiles

There are many different types and classes of Attention.XML applications. Defining a set of profiles appropriate for each helps ensure a high level of interoperability even among varied tools.

Minimal Feed Sync Profile

A minimal feed syncing application or service must support the following subset of the Attention.XML schema:

When activated/launched, the application must access the user's Attention.XML file from storage (e.g. local storage or be a web-based synching service) and load it into memory.

When the user clicks or otherwise selects a feed, the application must update the "lastread" property for that feed in the in-memory store.

When the user clicks or otherwise selects an item from a feed, the application must update the "lastread" property for that item in the in-memory store.

All other either unrecognized or unsupported properties present in the Attention.XML that is retrieved from storage must simply be maintained and roundtripped when stored.

When deactivated/quit, the application MUST write the local in-memory Attention.XML to storage (e.g. local storage or a web-based synching service), by doing the following: re-read the Attention.XML (in case it has been changed since last read by another client) from storage, merge in local changes made in the client, and finally write out the resultant updated Attention.XML. The application SHOULD sync the Attention.XML at other opportune times (perhaps every so often, or when the user has idled a certain amount), in order to both share local client changes with any other clients, and to reflect any updated "lastread" states from other clients.

Feed Reader Profile

In addition to supporting the minimum sync profile as detailed above, typical blog/feed reading software should support the complete Attention.XML schema as follows.

Attention Storage/Sync Service Profile

An Attention Storage/Sync Service MUST support the following verbs:

Sample Code

References

Normative References

Informative References

Implementations

Significant changes From previous versions

2005-06-09

2004-12-28

2004-10-01

Discussion