"Native to a Web of Data: Designing a Part of the Aggregate Web" presented by Tom Coates ------------------------------ contributors: Gabe Hollombe - gabe@avantbard.com - http://avantbard.com/ Leon Chism - leon@chism.org Nick Zadrozny ------------------------------ tom says: "nothing i say today represented yahoo! corporate policy" play along at bingo.scrumjax.com - buzzword bingo Design and Web2.0 - gradient fills, rounded edges, Arial rounded bold - Chatsum.com - Blinksale.com - rollyo.com - blogger.com Mac infection has resulted in the focus on prettiness. Questions: -what is the web changing into? -what can you build on it? -architectural principles a web of data markus anggermeier slide of 2.0 map and buzz words. architecture level; standards level; lots of big silos of information, pages that hook into one another turning into an aggregate web of connected data sources and services still connected, but more deeply so. away from page connectedness and moving to data and functionality connectedness. pipes for the web. small sites loosely joined. "a web of data sources, services for exploring and manipulating data, and ways that users can connect them together" - not just weather information. media, any chunk of data. - mashups are the pilot fish of what is coming. where are the sharks? astronewsology - news about celebrities based on their astrological signs - see what happened to libras today vs what was supposed to happen to libras - two disparate blobs of data that are navigatable and storable in terms of each other - together, each data source is more rich and more useful than it was. yeilds a network effect of services. everything new should build on everything that comes before it + and each new service adds value to those that came before it Consequences: Massive creative possibilities Accelerating innovation Increasingly competetive services Increasingly componentized services Increasingly specialzed services There _is_ money to be made 1. use apis to drive people to your stuff. amazon web services for free drive sales (revenue) and api is a referal system. 2. Make your service more attractivre and useful with less central development. Outsource development and to some extent innovation. 3. Use syndicated content as a platform (map provider can target ads with geographic specificity, for example) 4. Turn your API into a pay-for service. Works best in a b2b environment. money is good. drives adoption more quickly, and as in all networks, popularity begets popularity. if you build seperately from this ecosystem, you're screwed Choosing what to build - what can i build thast will make the _whole Web_ better? - 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 - help people organize their lives Tim O'Reilly, "what is web 2.0?" "The race is on to own certain classes of core data: location, identity, calendaring of public events, product identifiers and namespaces." "In many cases there may be an oppoprtunity for an Intel Inside style play, with a single source for the data. In others, wthe winner will be the company that first reaches critical ..." [crap window poped...] Navtech is a common example. Feedburner - lets you do more things in this aggregate environment services to store and manipulate data ways forusers to connect them together Architectural principles - Designing for Data Reuse (see Matt Biddulph) Core components - data sources - standard ways of representing data - identifiers & urls - mechanisms for distributing data - ways to interact with / enhance data - rights frameworks & financial "If you don't have these things in place, you're in trouble." "be suspicious of list of 3 things or 10 things" 1. Look to add value to the _aggregate_ web of data - improve a data source - build a new interface for manipulating data 2. Build for _normal users_, _developers_, and _machines_. - at least 3 types of users - normal users will want to discover/explore data - developers looking for hooks - bots 3. Start by designing explorable (navigatable) data, not pages don't ignore design, but think about data design before graphic design. 4. Identify your first order objects and make them addressable - could be people, events, addresses, photos, tv programs - give em all unique urls (we'll talk about that soon) - "destination pages" - gives us easy search - storable; emailable; bookmarkable 5. Correlate with external identifier schemes (or coin a new standard) - urls arent the only kind of addressability, real-world objects dont have urls (more than one page about a movie or a book), [not sure these are good notes of this point] - biggest controlled vocabulary we have right now is wikipedia (disambiguation pages) 6. Use readable, reliabble, and hackable URLs Good URLS: - permanent references to resources - have a 1 to 1 correlation with concepts - use directories to represent hierarchy - not reflect the underlying technology - reflect the structure of data - be predictable / guesable / hackable - be as human readable as possible - be - or expose - identifiers dates are often good for search but not a good way to categorize and structure data. "if human readability breaks, then it's wrong" URL design is almost becoming user interface URLs are becoming like command-line interface because it's so powerful, important and simple Good urls are beautiful and a mark of design quality, "If you're not doing it properly you're just dirty and wrong" (laughter, applause) 7. Build list views and batch manipulation interfaces after you build the first order objects, make it easy to navigate and explore them as groups. 3 types of pages on the web - destination page (core first-order concept and it's subordinate information) (ex: flickr photo detail page) - list-view page (a slice of your data used to navigate between first-order concepts) (ex: flickr photo tag search results page) - manipulation interface (interfacve for the batch manipulation of first-order concepts) (ex: flickr photo set creation/edit page) if you want to use ajax/flash/whatever, dont break the web. any widgets on the page should reference/interact with the object on the page or let you nav between objects (example: flickr photo notes, or the fwd/back thumbnails buttons in flickr) 8. Create parallel data representations APIs (REST/SOAP etc) - let you reference the data on all 3 page types Microformats parallel XML, RSS 9. Make your data as discoverable as possible - you should already be here 10. Give everything an appropriate license (recap of ways to make money) Resources: http://www.plasticbag.org/ mp3 of this talk given in London: http://www.webuser.co.uk/carsonworkshops/TomCoates.mp3 __END__