Let's say I wanted to implement a facebook, flickr, youtube, or a music store starting from wave.
For managing pieces of information, wave does the job just fine. Linking to others' information is doable, using embedding or a link to another url. Not great, but the bases are covered, so a gadget might be able to smooth things out. I think all those examples have a missing piece in common: there is underlying data (system-generated content), and there is metadata on top (user generated content). In the Google I/O presentation, a flickr-like "photo blog" is demonstrated by using embedding, and comments are a simple thing in wave. But flickr is more than photo storage - and making a flickr gadget would be just reimplementing what flickr is now. Embedding can do so much, and no more. It can chain things together, but not apply wave everywhere. And it leaves the hardest part, implementing wave, to the application writer; it could be the other way around, where wave is the platform, and the application writer just has to find a way to make it do what they want. I guess I'd use wave for both the "application" and the "waves on top." Take flickr as an example -- to borrow a phrase, it's like "email 2.0," only flickr 2.0: a wave holds the structure of your photos and metadata (your flickr account); another wave that's system-generated is public -- tagged photos, or contest winners, or recently uploaded photos, whatever. That system generated wave is where it gets good. Maybe a robot generates the "recently uploaded" wave. The wave is not read only -- other users add comments, update metadata, tags, or report abuse, and just as quickly "leave the wave," not because they want to be anonymous, but because they aren't going to subscribe to everything they touch. The system updates the wave structure too, not to delete any of the original photos, but to change what's in the "recently uploaded" wave. It starts to blur the line between the source material and the system generated material. This flickr 2.0 is a piece of cake if: 1. Users modify wavelets by adding OTs, but the OTs are stored in a separate history list. (The user's data remains "on top of" the wavelet, as metadata.) 2. The system modifies the underlying wave and wavelets just how wave works now. 3. References to other waves (or into this wave) pull in metadata, but it's also "on top of" the base wave. Metadata on top of the wave has a strict priority. In a flickr 2.0, the system generates its photos as the base wave (but they're all references to user's wavelets). The app pulls in the photos as metadata on top of that (doing resizing work and caching the results). Users modify public metadata -- stored in the wave the photo came from -- pulled in by reference and applied as OTs to the system wave. The application easily limits what users can do with just the existing wave permissions model [1]. The base wavelet and cached photos are read-only. Comments are new wavelets, as are tags and annotations. Users can create new wavelets or edit what they have permission to edit, such as their own comments, doing what wave does best. Abuse is controlled using permissions. Instead of embedding whole waves as pieces in a larger application, this model puts the "large application" on a wave platform + references. Writing such an application would be easy. This same model could then be reused for a youtube, a facebook, or a music store. I wonder if other applications would benefit, too. To me, the most interesting part is that this makes it easy to make money off the "wave platform" -- similar to any application development platform, money is made by writing applications. Wave just does it better. :-) Thanks, David [1] http://www.waveprotocol.org/whitepapers/access-control --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en -~----------~----~----~----~------~----~------~--~---
