The Persona Aggregator is a web aggregator that gathers latest information about a person in various fields and provides a unified access to this information both as a web service and through a web interface. The motivation to create the Persona Aggregator comes from the realization that today, with all of the social and other tools embracing us, our life and persona is distributed in many disparate places that do not talk to each other. This fact causes our web based "alter ego" to be fragmented and cumborsome to interact with. It also, sometimes, causes the owners of these tools to start believing they "own" us in some way because we've hosted our list of friends on their service. The aim of the Persona Aggregator (PA) is to converge all of those fragmented pieces of our web selfs into a single, easily accesible interface that will provide constant updates about me and my life to people I'm interested to share this information with, and more importantly will inspire the buildup of new tools that mashup together life's various facets. The PA contains these two parts:
The Persona registrer is a registration web app which allows users to register streams of their web presence through a front end so that the Persona aggregator will be able to aggregate those streams routinely or upon request.
Sample streams include:
Each stream will contain a set of possible Dapps that relate to sites who contain such personal information. For example the Pictures stream will contain Dapps for: Flickr, Picasa Web, Photobucket, Facebook Pictures etc.
A user will be able to register in each stream to one or more Dapps by providing needed related information such as his Flickr ID. The Registrer will then store in a database the user's information and configuration.
The Persona aggregator is a web service that accepts requests to get personal information related to one of its users. It could be the list of friends of Jon, latest pictures uploaded by Eran etc. All requsts details are encoded in a get URL.
There will be two types of URLs, private and public. Private URLs will be ones used by a user to access his information, and authentication for them will be cookie based. So for example when Britney accesses the url:
http://www.MyWebPersona.com/BritneySpears/Photos
she will get a response with an update on her latest photos. However if she'll want to give her friends access to this feed she will be able (in the persona registrer) to do one of the following:
1. Define a stream as public. That will make the private URL public and will prevent the authentication check to be performed for the related stream.
2. Retrieve the public url for the stream which contains an encoded hash value. She can then send this url to whoever she would like. Example URL:
http://www.MyWebPersona.com/BritneyS...47593tqgr298af.
Once the PA retrieves a legitimate request for a stream, it will go and find the dapp calls associated with this stream. It then runs over all of them and fetches each member call. The PA then merges all of the calls into one response and sends it back in the requested format.
By default, the content is returned in html format, not unlike the results of the Dapper html transformer. However, a request may ask to get content in one of the following formats:
1. Generic XML (Schema defined per stream)
2. JSON
3. RSS/ATOM
Individual streams may support additional contextual formats (e.g. events stream may support an iCal format, MyLocations stream may support a map format etc.)
Example url to access a stream in JSON format:
| Field | Type | Allow Null | Default Value |
|---|---|---|---|
| UserID | varchar(12) | No | |
| UserIndex | bigint(20) | No | |
| UserFirstName | varchar(20) | No | |
| UserLastName | varchar(20) | No | |
| UserPassword | varchar(8) | No | |
| OpenID | varchar(255) | No | |
| Field | Type | Allow Null | Default Value |
|---|---|---|---|
| userStreamIndex | int(11) | No | |
| extraArgsString | varchar(200) | No | |
| transformer | varchar(30) | No | |