Developers: 10 Things You Can do Now For Data Portability

Until the official Data Portability technical blueprint is completed, here are 10 things you can implement now into your web application to make it more friendly, open, and data portable.

  1. Implement OpenID
    Add support for OpenID as a consuming site for both login and registration. Employ a library that supports Attribute Exchange for sign-ups to pre-populate the account sign-up form (name, email etc.).
  2. Implement XFN
    Add XFN to all relevant links that appear on user profile pages and lists of contacts pages.
    <a href="http://josh.example.com/" rel="friend met">Josh</a>
    <a href="http://kate.example.com/" rel="met acquaintance">Kate</a>
    <a href="http://mary.example.com/" rel="co-worker friend met">Mary</a>
  3. Implement an verifiable identity layer and Microformats
    To enable users to claim ownership over their hosted content, add MicroID to user profile pages in the <head> section and in the visible HTML for all other user content (comments, hCard etc.).
    <meta name="microid" content="mailto+http:sha1:ca94387152e8ea62fee73c45c4bae79e54543485"/>
    <span class="comment microid-mailto+http:sha1:ca94387152e8ea62fee73c45c4bae79e54543485">Comment.</span>
    Add hCard contact details to user profile pages, and add a MicroID to it as well.
    <div class="vcard microid-mailto+http:sha1:ca94387152e8ea62fee73c45c4bae79e54543485">
    <a class="url fn" href="http://example.com/">Jon</a>
    <div class="tel">+1-303-308-3282</div>
    <div class="title">Web Developer</div>
    </div>
  4. Implement machine readable exports with auto-discovery
    Support as many flavors of export data as possible, such as RSS, ATOM, JSON, APML etc. Add glyphs to the files in the visible HTML and to allow for auto-discovery, add <link> tags to each feed in the <head> section.
    <link href="http://example.com/rss.xml" title="RSS" type="application/rss+xml" rel="alternate"/>
  5. Implement FOAF
    Create a FOAF file for each user that includes a section about that owner, with all their data. Include all public data as well as the mbox_sha1sum but don’t include an email address unless it’s shown publicly. Include a list of “friends” consisting of just a unique ID (mbox_sha1sum, OpenID) and also link to their FOAF file. To allow for discovery add a <link> tag to the FOAF file.
    <link rel="meta" type="application/rdf+xml" title="FOAF" href="foaf.rdf" />
  6. Build RESTful APIs and web services
    Allow your data to be updated from other services using REST (GET, PUT, POST, DELETE). Employ other well known APIs from elsewhere, such as Flickr, Amazon, Twitter etc.
  7. Add OAuth to your API
    Use OAuth authentication to give users access to their data and protect their account credentials.
  8. Build member search index by email, OpenID and mbox_sha1sum
    Support indexed searches of your users by email address, OpenID and personal mailbox URI name. Importing portable lists of contacts are likely to use these values.
  9. Join a Data Portability open project
    Several projects are working to create a reference implementation of DP. These groups will hopefully produce documentation, open libraries and ready-made APIs that the rest of the developer community will be able to leverage and build upon.

  10. Contribute to the technical blueprint discussion
    Join in the discussion and aid in the specification design. The technical blueprint is what will eventually define data portability.

To get started, browse the code listing of available libraries and implementations from dataportability.org


1 Comment so far

  1. nbtwoy on October 22nd, 2008

    lfiidekjuynmpkqwakdgirzgqqvpdh

Leave a Reply