Open Personal Portable Lifetime Store

The Open Personal Portable Lifetime Store, “Perpolis,” is an idea for a set of standards that gives you ownership of and puts you in control of your own data

— whether it’s your blog posts, status updates, emails, SMS messages, IM conversations, photos, bookmarks, address book, calendar, to-do lists, medical records, product reviews, or location/travel history — while allowing you to easily access it and use it everywhere (e.g., your computer, your phone, your Facebook account, your Flickr account, and your Picasa account).

The idea is simple: everything personal, such as a blog post or address book, should be yours. If you choose to have your blog hosted by, say, Tumblr, and your address book hosted by Danger (T-Mobile Sidekick), then this may not be the case. These data are difficult to take with you should you decide to move to another service, or if either of these services ceases operations.

You should be able to, if you wanted to, move or keep all this data on your own computer or portable data drive.

By separating data format, data, data hosting, and discovery, you can have control of the data that you own.

Eric Schmidt, Google CEO; Jan 25, 2011

Personal

You own your data; all of it.

Universal

You should be able to put anything and everything in here (address book, bookmarks, blog posts, pictures, etc.).

Portable

You can take your data with you (whether from one service to another, or physically on your own data drive) because your data are stored in open standard formats

Hostable/Accessible

You could keep all your data on your own data drive, but for easiest access, let a service host it for you

Cachable / Syncable (Versioned)

You should be able to use your data even when not connected with your primary data store, including on your phone, laptop, or through the web browser of a public computer

Integrated

Your data are designed to be used, shared, and integrated across services, and giving you the flexibility to mix and match by whom or where your data are stored.

Discoverable

If you want it to be, your data should be easy to find by other services or even other people so that they can interact with it.

Safe

It’s easy to backup. Because it’s Portable, it’s easy to backup in a way that can be restored apart from the current host. By hosting your store with one service and backing up somewhere else (to your own portable drive, for example), you’ll never lose your data

Secure

You define who gets to access what data, whether it be another service or another person. Data on your devices can be encrypted, of course, so if they’re lost or stolen, the data can’t be accessed.

Lifetime / Durable

Put together Portable and Safe, and you have Durable — It will be significantly harder for you to lose access to your data if it is stored in open standard formats, and you should never lose your data if you keep a backup far from the original.

Portable

Essential to you being able to own your data is portability – you should be able to take your data with you. Perpolis defines or relies on a wide range of open, extensible formats for all your important data, including address books, blog entries, to-do lists, messages, product reviews, and blog posts.

By keeping your data in these formats (or at least being able to have it readily exported or imported in these formats), you can move your data from one service to another with no hassle.

Take an address book for example, and let’s say that yours is stored in Apple’s Address Book application on your MacBook. Many have already approached portability of address book, and Apple Address Book is no exception. You can export individual contacts as vCards and or the entire address book as an “Address Book Archive.” But neither of these options (which are options in just about every address book application, whether web or desktop based) gives you true portability. It’s not practical to move or access this address book from anywhere. You can’t take the address book to Outlook on a Windows machine and view, use, and modify the address book on there, then bring it right back to your MacBook (without cumbersome steps of exporting and importing, or complex software).

Imagine if this address book were stored in a standard format that you kept on a small USB “key” drive. While plugged into your MacBook, you can use (view, add, modify, or remove) your contacts (whether looking up a phone number, or sending an email using the Mail application). Then, when you want to use Outlook instead, simply take that USB key and connect it to the Windows machine instead. There you can also use your contacts for the same tasks just as easily.

Better yet, rather than have to make sure you have this USB key with you all the time, what if your address book lived online and your Apple Mail or Microsoft Outlook could both access them? We’ll get into that more in the Hostable / Accessible section.

Portability gives you two things:

  1. The ability to use your data in multiple places, using different software
  2. A better ability to keep your data forever.

The main thing is that by being stored in a standard format, you have the ability take and use this data wherever you want it. And this is an essential aspect if you want to be able to keep your data forever.

Lifetime / Durable

How many times have you left behind contacts in your old computer’s address book or in your previous web-based email services?

Particular software and services may not stick around forever (probably not, even). If, for example, you had kept all of your contacts (address book) in Palm Desktop, you will have likely found yourself needing to find new address book software, and exporting your data there. If you don’t export your contacts to other address book software before you lose Palm’s desktop software (or the ability to use it), you may it difficult or impossible to get to your contacts. This is known as digital obsolescence.

By keeping your data in an open, standard, software-agnostic format; and with service providers keeping your data up-to-date with evolving standards, you should never lose the ability to access your data.

Hostable / Accessible

The best way to keep your data easily accessible and forever is to have it hosted.

By having your data hosted, it’s easy to access the data from any of your computers (work and home), portable devices (smart phones), or while at someone else’s computer. More on this in the Cachable / Syncable section, next.

Further, by being hosted, your data’s life will easily outlive your computers, phones, and portable drives. All you have to do is ensure that you have a backup and that your data is moved if your host discontinues service.

It is important that your data can be accessed and interacted with when it’s hosted, and for this to be able to be done in a portable way (any software or service can use it), there must also be a standard way to interact with this data. Perpolis defines the operations that may be performed on your data – an implicit API both when operating on a locally available data store, or remotely (likely a RESTful service).

Cacheable / Syncable (Versioned)

Because your data is most likely hosted it’s important that the data is cacheable. Your phone, for example, should be able to keep a copy of your address book so that you can use it even when your phone isn’t actively communicating with your host (“connected”).

And since you’ll be making changes to your address book while your phone isn’t connected, and/or because you’re likely to want to use your data with multiple devices or services, it’s important that the data be syncable so that changes can be exchanged with the host, so that all of your devices can see and make use of changes made elsewhere.

Implicit in Syncable is version control. Because devices may update data while not “connected,” there must be a way to determine what has changed and needs to be synchronized. This is accomplished with version control. With a Subversion or git-like structure, changes are tracked and browsable, and clients may be able to store the entire repository with history (git-like, for backup or desktop clients), or just a current snapshot (svn-like, for portable devices or 3rd-party services).

Integrated

Because of the myriad of types of personal data that you’ll want to store, you should be able to use one type of data from another service. This is actually implicit in the fact that the data should be Hostable / Accessible.

For example, if you use Gmail for email and Perpolis.com to host your address book, Gmail should be able to use your Perpolis address book when you want to choose email recipients. Gmail could choose to either rely completely on your address book host for all contact-related operations (see “accessible”), or it could keep a snapshot of your address book and make sure it stays in sync. Further, Gmail could provide only read-only access to your address book, or allow you to edit your Perposils.com address book using “syncability”.

Discoverable

It’s very likely that you’ll want different hosts to host different types of your data. Gmail, for example, may host your email, while Perpolis.com hosts your address book, and Blogger.com hosts your blog entries. When you log into your email service, it should be easy for it to find out where your address book is.

It’s worth clarifying here that everything that you own — your address book, email, and blog posts — all belong to one entity. This entity is likely to be something like OpenID.

Perpolis facilitates discoverability by defining a directory associated with your OpenID. So, when you log into your email service with your OpenID, your OpenID can be used to make it quick and easy to use your address book.

Secure

You define who gets to access what data.

All permissions to data is managed with keys and stored with your OpenID.

For example, when Gmail wants to use your address book, you can grant it the ability to access it. You could, at any time, revoke access.

Further, you can define what kind of access other services get. For example, you would allow your own smartphone full access to your calendar, but you could grant just free/busy information to your coworkers.