Tom Coates, Yahoo! ================== Designing Web 2.0-native Products for Fun and Profit "Native web of data" Rounded corners and gradient fills. Talking about: What the web is changing in to; what you can and should build on it; architectural principles for Web 2.0 Web 2.0: Buzzword Conference Marketing A new bubble All of these and less? Really an attempt to understand what is happening in a market undergoing enormous change. Reference Tim O'Reilly article - www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html Web 2.0 can't really support the number of ideas going on - it's just too broad. Tom will concentrate on stuff linked together. The web that is: a collection of silos of information publishing pages which link to each other. The web of the future: the data sources move to the center and become more connected together. "A web of data sources, services for exploring and manipulating data, and ways that users can connect them together." Mash-ups are gesturing in the right direction - there are things you can do with two bits of data hybridised together. Example: Astronewsology. Browse the news by things that happened to capricorns. Compare what was supposed to happen to someone with what actually did. Extremely interesting for exploring obituaries. Takes two data sources and hybridises them together in a way that makes each one better. Result: a network effect of services. * Every new service that you create can potentially build on top of every other existing service. * Every service and yiece of data that's added to the web makes every other service potentially more powerful. Massive creative possibilities. Accelerating innovation. Increasing competitive services. Increasingly componentised services. Increasing specialised services. Not just a nice hippy dream - there is money to be made here! * Use APIs to drive people to your stuff - e.g. Amazon * Make your service more attractive and useful with less central development * Use syndicated content as a platform for other things - e.g. Google Maps + advertising platform = more targetted ads. * Turn your API in to a pay-for service. So the same things that keep the hippies happy keep the evil capitalists happy. They all have to play in the same ecosystem. If not, you end up in a backwater, disconnected from the cool stuff that's happening. strength in sharing and participating So if you're in an ecosystem that lets you build faster, cooler, better... Choosing what to build What can I build that will make the whole Web better? Can you help people put their data online? Can you help them organise their lives? How can I add value to the aggregate web? "A web of >data sources<, services for exploring and manipulating data, and ways that users can connect them together." (again) Can you provide better data sources? Quote from Tim O'Reilly: "The race is on to own certain classes of core data: locations, identity, calendaring of public events, product identifiers and namespaces" "In many cases ... there may be an opportunity for an Intel Inside kind of play, with a single source for the data. In others, the winner will bet the company that first reaches critical mass via user aggregation and turns them in to ... A web of data sources, services for exploring and manipulating data, and ways that users can connect them together." Can you find better ways for users to connect things together? e.g FeedBurner "Architectural principals" Matt Biddulph : The Application of Weblike Design to Data: Designing Data for Reuse http://hackdiary.com/slides/xtech2005/ Some core components: Data sources Standard ways of representing data Identifiers and urls Mechanisms for distributing data Ways to interact with and engage data Rights framework and financiol 1. Look to add value to the Aggregate web of data 2. Build for normal users, developers and machines Users want a good service, developers are looking for hooks/APIs - machines means predicabilty, so they can explore it 3. Start designing with data (objects), not with pages Get the data right - navigable, explorable, reusable 4. Identify your first order object and make them addressable The "things" that people are going to refer to and reference e.g. programmes in PIPs (not schedules or broadcasts), also "versions of objects" eg shortened broadcasts, these are second order Addressable: has a unique and well structured URL If you do that you're already kind of winning. Search engines can see you, aggregators (like Technorati) can track you. Communities can refer to you. del.icio.us can tag you, accreting metadata. 5. Use readable, reliable, and hackable URLs Good URLs should: be permanent references to resources have a 1-to-1 correlation with concepts use directories to represent hierarchy (e.g. subordinate parts) NOT reflect the underlying technology - especially if it might change reflect the structure of the data be predictable/guessable/hackable be as human readable as possible There are places where this breaks down - e.g. identifiers sometimes be - or expose - identifiers Good URLs are beautiful and a mark of design quality 6. Correlate with external identifier schemes (or coin a new standard) e.g. IMDB own URLs for films, cross the web identifier schemes 7. Build list views and batch manipulation interfaces Three types of core pages on the web: Destination page - a core first-order concept and its subordinate information List view page - a slice of your data used to navigate between first-order concepts Manipulation interface - Interface for the batch manipulation of first-order concepts - a trend that is only recently emerging (Ajax). With Ajax (or Flash), DON'T BREAK THE WEB. Use it to manipulate only the concept on that page (or the list). Flickr photo page with annotation, tags etc doesn't break the web. Odeo uses Flash widgets to let you explore within MP3s. Again, good. 8. Parallel data representations Represent the destination, list-view and manipulation interfaces with parallel data. See diagram. APIs good for all three Microformats - embed semantics in page. Tom doesn't like it, thinks naive users will break their templates (this is really important, getting non-tech people to avoid breaking things). Avoids lots of fights though. Parallel XML and RSS are Tom's preferred ways. del.icio.us does parallel RSS really well. Parallel RSS means that every page (on del.icio.us, for example) also has an RSS representation. Ended on a recommensation to look again at microformats though 9. Make your data as discoverable as possible And that's it! 1. Look to add value to the Aggregate web of data 2. Build for normal users, developers and machines 3. Start designing with data (objects), not with pages 4. Identify your first order object and make them addressable 5. Use readable, reliable, and hackable URLs 6. Correlate with external identifier schemes (or coin a new standard) 7. Build list views and batch manipulation interfaces 8. Parallel data representations 9. Make your data as discoverable as possible Links: www.plasticbag.org to download this talk developer.yahoo.net for Cool Web Services(TM) Add names here: Simon Willison - http://simon.incutio.com/ Gavin Bell - http://takeoneonion.org/ Drew McLellan - http://allinthehead.com/ Paul Farnell - http://www.salted.com/ Olly Willans - http://www.torchbox.com Thx. (Simon will put these notes online later)