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
-~----------~----~----~----~------~----~------~--~---

Reply via email to