<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mashup Guide &#187; Chapter 02</title>
	<atom:link href="http://blog.mashupguide.net/category/chapter-02/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mashupguide.net</link>
	<description>A blog about Raymond Yee&#039;s Book Pro Web 2.0 Mashups: Remixing Data and Web Services</description>
	<lastBuildDate>Wed, 23 Feb 2011 13:35:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
  <link>http://blog.mashupguide.net</link>
  <url>http://blog.mashupguide.net/favicon.ico</url>
  <title>Mashup Guide</title>
</image>
		<item>
		<title>Chapter 2&#8211; second draft posted</title>
		<link>http://blog.mashupguide.net/2007/07/16/chapter-2-second-draft-posted/</link>
		<comments>http://blog.mashupguide.net/2007/07/16/chapter-2-second-draft-posted/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 16:49:40 +0000</pubDate>
		<dc:creator>raymond.yee</dc:creator>
				<category><![CDATA[Chapter 02]]></category>
		<category><![CDATA[Chapter 10]]></category>

		<guid isPermaLink="false">http://blog.mashupguide.net/2007/07/16/chapter-2-second-draft-posted/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Chapter+2%26%238211%3B+second+draft+posted&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Chapter+02&amp;rft.subject=Chapter+10&amp;rft.source=Mashup+Guide&amp;rft.date=2007-07-16&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/07/16/chapter-2-second-draft-posted/&amp;rft.language=English"></span>
For your reading pleasure, I just posted the second draft of Chapter 2 ("Uncovering the Mashup Potential of Websites").  It is a thoroughly rewritten version of the first draft,  a much deeper piece of work.  It did take me a lot of rethinking to get this 39 page chapter in order -- but I think [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Chapter+2%26%238211%3B+second+draft+posted&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Chapter+02&amp;rft.subject=Chapter+10&amp;rft.source=Mashup+Guide&amp;rft.date=2007-07-16&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/07/16/chapter-2-second-draft-posted/&amp;rft.language=English"></span>
<p>For your reading pleasure, I just posted the second draft of Chapter 2 ("<a href="http://mashupguide.net/drafts/858Xch02__.pdf">Uncovering the Mashup Potential of Websites</a>").  It is a thoroughly rewritten version of the first draft,  a much deeper piece of work.  It did take me a lot of rethinking to get this 39 page chapter in order -- but I think you'll like it.  This concentrated effort also accounts for my silence on this blog....</p>
<p>At this point, I have written a first of draft of everything in the book, except Chapters 10, 11, and 12.  (I have a <a href="http://docs.google.com/Doc?id=dkkzw5z_133mh4v7">pre-first-draft version of Chapter 10 online</a> that I've uploaded so that my students can work from it.)</p>
<p><em>Update</em> (2010-03-03):  The link to the old version of Chapter 10 no longer works.  The link to the <a href="http://mashupguide.net/1.0/html/ch10.xhtml">published version of Chapter 10</a> is available.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mashupguide.net/2007/07/16/chapter-2-second-draft-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screen-scraping references</title>
		<link>http://blog.mashupguide.net/2007/05/24/screen-scraping-references/</link>
		<comments>http://blog.mashupguide.net/2007/05/24/screen-scraping-references/#comments</comments>
		<pubDate>Thu, 24 May 2007 14:15:22 +0000</pubDate>
		<dc:creator>raymond.yee</dc:creator>
				<category><![CDATA[Chapter 02]]></category>
		<category><![CDATA[screen scraping]]></category>

		<guid isPermaLink="false">http://blog.mashupguide.net/2007/05/24/screen-scraping-references/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Screen-scraping+references&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Chapter+02&amp;rft.subject=screen+scraping&amp;rft.source=Mashup+Guide&amp;rft.date=2007-05-24&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/05/24/screen-scraping-references/&amp;rft.language=English"></span>
Even though my book focuses on the use of formal APIs for mashups, I'd like to provide guidance on screen-scraping and other forms of reverse engineering to my readers. There's plenty of mashup work that can be done even if you confine yourself to using only formal APIs. Sometimes, it's handy or even necessary to [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Screen-scraping+references&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Chapter+02&amp;rft.subject=screen+scraping&amp;rft.source=Mashup+Guide&amp;rft.date=2007-05-24&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/05/24/screen-scraping-references/&amp;rft.language=English"></span>
<p>  Even though my book focuses on the use of formal APIs for mashups, I'd  like to provide guidance on screen-scraping and other forms of reverse  engineering to my readers. There's plenty of mashup work that can be  done even if you confine yourself to using only formal APIs. Sometimes,  it's handy or even necessary to supplement your use of formal APIs with  other ways to get at the data, functionality, or user-interface  elements that you want to recombine or mashup.</p>
<p>Some inter-related areas to cover (or at least to make reference to):</p>
<ul>
<li>   screen-scraping (<a href="http://en.wikipedia.org/wiki/Screen_scraping" class="external">Screen scraping - Wikipedia, the free encyclopedia</a> and <a href="http://en.wikipedia.org/wiki/Web_scraping" class="external">Web scraping - Wikipedia, the free encyclopedia</a>)</li>
<li>   spidering (e.g., <a href="http://www.amazon.com/Spidering-Hacks-Kevin-Hemenway/dp/0596005776" class="external">Amazon.com: Spidering Hacks: Books: Kevin Hemenway,Tara Calishain</a>)</li>
<li>   parsing of HTML with libraries such as <a href="http://www.crummy.com/software/BeautifulSoup/" class="external">Beautiful Soup</a>.</li>
</ul>
<p>Some issues I want to address:</p>
<ul>
<li> In the book, we seek to exploit as many of the structured  information available designed for consumption by programs as we can  before we move on to interpreting output meant primarily for human  viewing. Screen-scraping brings up a lot of issues, technical and  social, that we can get back to once you learn how to use APIs.</li>
<li>   legal issues, terms of use -- see <a href="http://en.wikipedia.org/wiki/Web_scraping#Legal_issues" class="external">Web scraping - Wikipedia, the free encyclopedia</a></li>
</ul>
<p>Some references:</p>
<ul>
<li>   <a href="http://www.nostarch.com/webbots.htm" class="external">No Starch Press: Webbots, Spiders, and Screen Scrapers</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mashupguide.net/2007/05/24/screen-scraping-references/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Work to do for the second draft of Chapter 2</title>
		<link>http://blog.mashupguide.net/2007/05/23/work-to-do-for-the-second-draft-of-chapter-2/</link>
		<comments>http://blog.mashupguide.net/2007/05/23/work-to-do-for-the-second-draft-of-chapter-2/#comments</comments>
		<pubDate>Thu, 24 May 2007 01:30:21 +0000</pubDate>
		<dc:creator>raymond.yee</dc:creator>
				<category><![CDATA[Chapter 02]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://blog.mashupguide.net/2007/05/23/work-to-do-for-the-second-draft-of-chapter-2/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Work+to+do+for+the+second+draft+of+Chapter+2&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Chapter+02&amp;rft.subject=REST&amp;rft.source=Mashup+Guide&amp;rft.date=2007-05-23&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/05/23/work-to-do-for-the-second-draft-of-chapter-2/&amp;rft.language=English"></span>
Chapter 2 analyzes Flickr for what makes it a mashup platform par excellence through which you can learn how to remix a specific application and exploit features that make it so remixable. The chapter compares and contrasts Flickr with other remixable platforms: del.icio.us, Google Maps, and amazon.com. On my plate is writing the second draft [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Work+to+do+for+the+second+draft+of+Chapter+2&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Chapter+02&amp;rft.subject=REST&amp;rft.source=Mashup+Guide&amp;rft.date=2007-05-23&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/05/23/work-to-do-for-the-second-draft-of-chapter-2/&amp;rft.language=English"></span>
<p><a href="http://mashupguide.net/drafts/858Xch02__.pdf">  Chapter 2</a> analyzes Flickr for what makes it a mashup platform par  excellence through which you can learn how to remix a specific  application and exploit features that make it so remixable. The chapter  compares and contrasts Flickr with other remixable platforms:  del.icio.us, Google Maps, and amazon.com. On my plate is writing the  second draft of Chapter 2. Besides correcting small scale errors,  refining the prose of the chapter and giving it a jazzier and more  accurate title, my focus is on providing more details about mashups  that could actually be created from the features I write about. I write  that "a goal of this chapter is to train you [readers] to deconstruct  applications for their remix and mashup potential." While I do spell  out in substantial detail the ways URLs are constructed and organized  for Flickr, amazon.com, Google Maps, and del.icio.us, I need to  describe how to generalize these ideas to other circumstances and  suggest possible mashups that can be built.</p>
<p>Here are some other issues to work out:</p>
<h3 id="head-1bf645fb4ba4e12abba18f7c6ebc537f572d91f6">URLs as little languages and the connection to REST</h3>
<p>I spend a lot of effort in Chapter 2 on the notion of "URLs as little  languages to understand and to speak." I think that it's easy for  experienced programmers to these ideas about URLs (e.g., <a href="http://jerz.setonhill.edu/writing/e-text/url-hacking.htm" class="external">Hacking the URL</a>) for granted.   But I want to show the importance of being able to link to specific resources. For instance, <a href="http://raymondyee.net/wiki/LibraryLookup">LibraryLookup</a>  depends on being able to point to a book by constructing a URL based on  an ISBN. If you can't easily link to a resource, you are going to be  hard-pressed to reuse it, especially if there is not formal API. (Note:  Some library catalogues have odd session-dependent cookies that make it  difficult to forge such a URL to the book. You can sometimes manage to  create a URL that will work (temporarily), through a multi-step  screen-scraping -- in contrast to just dropping an ISBN into a URL.)</p>
<p>Having a simple URL to represent a specific resource means one of the  simplest mashup design patterns is possible: you can substitute some  parameters and get the corresponding web page. For websites that don't  have formal APIs, such URLs are the closest one comes to a programming  interface. (Sometimes, even if there is an API, it is simpler to use  the human user interface URL and do a bit of screen-scraping. And  sometimes even with an API that does not cover the functionality that  you care about, having access to the URL is the only way to go.)</p>
<p>I have a sense that there are deep connections between RESTful  architecture and the importance of little URL languages -- but I can't  put my fingers on the specific connections. I just ordered a copy of  Leonard Richardson and Sam Ruby's <em>Restful Web Services</em> (<a href="http://www.crummy.com/writing/RESTful-Web-Services/" class="external">RESTful Web Services</a>) to help me better understand REST.  Some impressions that I have about REST that I believe to be correct</p>
<ul>
<li>   A fundamental idea behind REST is using URLs to represent resources.</li>
<li> If the website that you are trying to mashup is truly RESTful, then  figuring out the structures of URLs is akin to figuring how resources are named in the application -- what are the "nouns".</li>
<li>   There would be pretty strong continuity between the structure of the human-facing website and any API in a RESTful site.</li>
<li>   Coherent, clean URL languages correlate with good REST design.</li>
</ul>
<h3 id="head-5b5f6d70be6f16fcd3837be025a8348ecfa8d076">Identifiers as glue</h3>
<p>I want to strengthen my description of how to use identifiers, tags,  and search terms to correlate similar or the same things within and  across websites and applications. Think about the use of an ISBN in <a href="http://raymondyee.net/wiki/LibraryLookup">LibraryLookup</a>  and latitude and longitude in Google Maps in Flickr -- how those  identifiers and broadly used ways of describing things connect websites  together.</p>
<h3 id="head-13497bb3a487481df5a57ae561da0efb1f603b52">How the mashups we studied in Chapter 1 make use of the techniques of Chapter 2</h3>
<p>To make the three mashups we studied in chapter 1, their creators had  to understand the functioning of the constituent applications they were  recombining. For instance:</p>
<ul>
<li>   for <a href="http://raymondyee.net/wiki/LibraryLookup">LibraryLookup</a>,  Udell needed to understand the use of ISBNs as identifiers among  library catalogs and other book-oriented websites (such as amazon.com  and other bookstores). Then you can use this ISBN (and speak the URL  languages of various library catalogs) to glue together these various  websites via JavaScript. (There are some challenges: it was difficult  for Jon Udell to craft a totally user-friendly system for easily  creating the <a href="http://raymondyee.net/wiki/LibraryLookup">LibraryLookup</a> bookmarklet just for your library.)</li>
<li> for GMiF, a Greasemonkey script -- which is very much about  remixing the existing user interface of an application, CK Yuan had  need to understand the user interface of Flickr in order to insert the  GMap icon among the other icons, how others have exploited the user  tagging can be hacked to hold location data (in a system that  ultimately become productized by Flickr in to machine tags). Moreover,  on a prosaic level, you have to understand how to form URLs for each of  the pictures.</li>
<li> housingmaps.com depends on craigslist, which has no formal API.  Hence, Paul Rademacher has to parse the HTML and understand the URL  structure of craigslist, what cities are covered, how to make use of  the RSS and supplement that data with screen-scraping.</li>
</ul>
<h3 id="head-5aa8ed676e63b09b8c0cdf80c5d2c82ec44727a5">What you get by studying the application and not just the API</h3>
<p>My point is the developers need to understand apps as end-users too and  not just jump into the API. Learn the application first (if you are an  experienced developer and user of these types of applications, it won't  take that long.). It's worth the investment of time. Why not just jump  into the API?</p>
<ul>
<li>   You're more likely to make a more useful mashup by availing yourself of knowledge as an end-user</li>
<li>   You can plug the mashup into the context of how users are already using the application</li>
<li>   You understand what is currently missing from the application and can be improved</li>
<li>   You see hooks into the application that are not necessarily obvious from the API alone</li>
<li> You can more easily make sense of the API when you know what key  data entities are and some of the functionality -- you can ask, how  might it be reflected in the APIs.</li>
</ul>
<h3 id="head-a4f00702e05d27ff81156553a94abf53a5e28397">Looking for signs of mashability; ties to further chapters</h3>
<p>Chapter 2 is also a prelude to the chapters that immediately follow it,  elements of a website that make it more remixable. Indeed, the topics  are the basis of a checklist of questions to pose in assessing the  mashability/remixability/recombinatorial potential of applications:</p>
<ul>
<li>   Are tags used to describe resources on the website (described in greater detail in Chapter 3)</li>
<li>   Are RSS and other syndication feeds available? (We will deal with this issue in greater depth in Chapter 4)</li>
<li>   Do you see functionality for integrating with weblogs? (Chapter 5)</li>
<li>   Is there an API for the application (Chapter 6, 7, and 8.)</li>
</ul>
<p>In addition, you would look for the existence of browser toolbars,  desktop clients, and mobile interfaces that interact with the websites  -- they not only show that the website is remixable but often show how  you can do so. (I will have to give specific examples here in the  chapter, but I have some already installed in my own browser: <a href="http://del.icio.us/help/firefox/extension" class="external">del.icio.us Firefox extension</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/3247" class="external">Amazon S3 Firefox Organizer(S3Fox)</a>).</p>
<h3 id="head-22dd31cf2bbd52417dd752398f15ff61005b37ae">Data formats, nouns, and Verbs</h3>
<p>"What is the underlying data format?" -- and a related question "What  are the core entities or resources in the website" -- are useful  questions to pose when studying an application. If we use grammatical  analogies, what are the "nouns"? When we look then at what  functionality there is around the entities, we are asking what the  "verbs" are. If there is an API, it will make a lot more sense if you  have a sense of what those entities and their functionality are.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mashupguide.net/2007/05/23/work-to-do-for-the-second-draft-of-chapter-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon URL structures</title>
		<link>http://blog.mashupguide.net/2007/04/19/amazon-url-structures/</link>
		<comments>http://blog.mashupguide.net/2007/04/19/amazon-url-structures/#comments</comments>
		<pubDate>Thu, 19 Apr 2007 16:36:37 +0000</pubDate>
		<dc:creator>raymond.yee</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Chapter 02]]></category>

		<guid isPermaLink="false">http://blog.mashupguide.net/2007/04/19/amazon-url-structures/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Amazon+URL+structures&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Amazon&amp;rft.subject=Chapter+02&amp;rft.source=Mashup+Guide&amp;rft.date=2007-04-19&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/04/19/amazon-url-structures/&amp;rft.language=English"></span>
I spend a substantial part of Chapter 2 on the topic of understanding the syntax and semantics of URLs in web applications. Knowing how URLs are formed lays the foundation of mashing them up later but also enables users to recombine content from various sites without much programming. In the chapter, I look at URLs [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Amazon+URL+structures&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Amazon&amp;rft.subject=Chapter+02&amp;rft.source=Mashup+Guide&amp;rft.date=2007-04-19&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/04/19/amazon-url-structures/&amp;rft.language=English"></span>
<p>I spend a substantial part of Chapter 2 on the topic of understanding the syntax and semantics of URLs in web applications.   Knowing how URLs are formed lays the foundation of mashing them up later but also enables users to recombine content from various sites without much programming.</p>
<p>In the chapter, I look at URLs in Flickr. Google Maps, del.icio.us, and amazon.com.  Below is an excerpt of the chapter about amazon.com.  One major question I have is whether someone has documented the URL structures for amazon.com in a more comprehensive fashion, akin to  what <a href="http://mapki.com/wiki/Google_Map_Parameters">Google Map Parameters - Google Mapki</a> does for Google Maps.  I will post that question on the appropriate forums when I figure what they are.  Anyone out there know the answer?</p>
<h1>Amazon walkthrough</h1>
<p class="BodyTextFirst">Amazon.com is another interesting site to look at.<span>  </span>Not only is it a popular e-commerce site, it is a pioneering e-commerce platform which is easily remixed and recombined with other content.<span>  </span>Although we will study the Amazon APIs later, we focus here on how amazon.com from the view of an end-user.<span>  </span>Moreover, the goal in this section is not learn all the features of amazon.com but rather to study the structure of URLs used in amazon.com -- specifically the question of how to link to the site.<span>  </span>(While Amazon sells a lot of merchandise other than books, we will look at books to focus our walk-through.<span>  </span>Moreover, we focus here on amazon.com, the site geared to the <st1:country-region w:st="on">USA</st1:country-region> instead of the network of sites aimed to customers outside the <st1:country-region w:st="on"><st1:place w:st="on">USA</st1:place></st1:country-region>.)</p>
<p class="MsoBodyText">The strategy we follow here is to discern the key entities of the amazon.com site through a combination of using and experimenting with the site, sifting through documentation, seeing what other users have done.<span>  </span><span> </span>Note that since some of the conclusions are not supported by official documentation from amazon.com, there is no long term guarantee behind the URLs.<span>  </span></p>
<h2>Amazon items</h2>
<p class="MsoBodyText">It doesn't take much use of amazon.com to see that the central entity of the site is an item for sale (akin to a photo in Flickr).<span>  </span>By looking at the URL of a given item and looking throughout a page describing it, you will see that Amazon uses ASIN (Amazon Standard Identification Number) as a unique identifier for its products.<a href="#_ftn1" title="_ftnref1" name="_ftnref1"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 11.5pt">[1]</span></span><!--[endif]--></span></span></a><span>  </span>For books that have an ISBN, the ASIN is the same as the ISBN for the book.<span>    </span>According to the Wikipedia article, on amazon.com, you can point to a product with an ASIN with the following URL:</p>
<p class="CodeSingle"><span>    </span>http://www.amazon.com/gp/product/[ASIN]</p>
<p class="MsoBodyText">Take for instance, Czeslaw Milosz’s <em>New and Collected Poems</em> (paperback edition), which has an ISBN of 0060514485.<span>  </span>You can find it on amazon.com at</p>
<p class="CodeSingle"><a href="http://www.amazon.com/gp/product/0060514485">http://www.amazon.com/gp/product/0060514485</a></p>
<p class="MsoBodyText">It is important to know that the way to link to amazon.com has changed in the past and will likely continue to change.<span>  </span>For instance, you can also linkt to the book with</p>
<p class="CodeSingle"><a href="http://www.amazon.com/exec/obidos/ASIN/0060514485">http://www.amazon.com/exec/obidos/ASIN/0060514485</a></p>
<p class="MsoBodyText" style="text-indent: 0in">or even a shorter form.<span>  </span></p>
<p class="CodeSingle"><a href="http://amazon.com/o/ASIN/0060514485">http://amazon.com/o/ASIN/0060514485</a></p>
<p class="MsoBodyText" style="text-indent: 0in">The use of this syntax would ideally be founded on some official documentation from amazon.com.<span>  </span>Where would one find definitive documentation on how to structure a link to a product of a given ASIN?<span>    </span>A search through the amazon developers' site leads to the the technical documentation<a href="#_ftn2" title="_ftnref2" name="_ftnref2"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 11.5pt">[2]</span></span><!--[endif]--></span></span></a>, whose latest version at the time of writing is the<span>  </span>2007-04-04 edition of the technical docs<a href="#_ftn3" title="_ftnref3" name="_ftnref3"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 11.5pt">[3]</span></span><!--[endif]--></span></span></a><span>  </span>That trial leads ultimately to a page on the use of identifiers , which, alas, does not spell out how to formuate the URL for an item with a given ASIN.<a href="#_ftn4" title="_ftnref4" name="_ftnref4"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 11.5pt">[4]</span></span><!--[endif]--></span></span></a><span>  </span><strong><span>  </span></strong>The bottom line for now: the Wikipedia plus experimentation is the best way to discern the URL structures of amazon.com.</p>
<p class="MsoBodyText">Let's apply this approach to other functions of amazon.com.<span>  </span>For instance, can we generate a URL for a full-text search?<span>  </span>Go to amazon.com and drop in your favorite search term.<span>  </span>Take for example, flower. When you hit submit, you'll get a URL that looks like:</p>
<p class="CodeSingle"><a href="http://amazon.com/s/ref=nb_ss_gw/102-1755462-2944952?url=search-alias%3Daps&amp;field-keywords=flower&amp;Go.x=0&amp;Go.y=0">http://amazon.com/s/ref=nb_ss_gw/102-1755462-2944952?url=search-alias%3Daps&amp;field-keywords=flower&amp;Go.x=0&amp;Go.y=0</a></p>
<p class="BodyTextCont">If you do the search again, say in a different browser, you will get another URL.<span>  </span>I got:</p>
<p class="CodeSingle"><a href="http://amazon.com/s/ref=nb_ss_gw/102-8204915-1347316?url=search-alias%3Daps&amp;field-keywords=flower&amp;Go.x=0&amp;Go.y=0&amp;Go=Go">http://amazon.com/s/ref=nb_ss_gw/102-8204915-1347316?url=search-alias%3Daps&amp;field-keywords=flower&amp;Go.x=0&amp;Go.y=0&amp;Go=Go</a></p>
<p class="MsoBodyText">Notice where things are similar and where the URLs are different from one another. Looking for what's common (the <span class="CodeInline"><span style="font-size: 10pt">http://amazon.com/s</span></span> prefix and <span class="CodeInline"><span style="font-size: 10pt">?url=search-alias%3Daps&amp;field-keywords=flower&amp;Go.x=0&amp;Go.y=0&amp;Go=Go </span></span>argument), you might try to eliminate the sections which are different:</p>
<p class="CodeSingle"><a href="http://amazon.com/s/?url=search-alias%3Daps&amp;field-keywords=flower&amp;Go.x=0&amp;Go.y=0&amp;Go=Go">http://amazon.com/s/?url=search-alias%3Daps&amp;field-keywords=flower&amp;Go.x=0&amp;Go.y=0&amp;Go=Go</a></p>
<p class="BodyTextCont">which seems to work fine. You can even eliminate <span class="CodeInline"><span style="font-size: 10pt">&amp;Go.x=0&amp;Go.y=0&amp;Go=Go</span></span> to boil the request down to</p>
<p class="CodeSingle"><a href="http://amazon.com/s/?url=search-alias%3Daps&amp;field-keywords=flower">http://amazon.com/s/?url=search-alias%3Daps&amp;field-keywords=flower</a></p>
<p class="MsoBodyText" style="text-indent: 0in">How to limit it to books?<span>  </span>If you go to amazon.com and select the book section and use a flower keyword, you will get a URL similar to</p>
<p class="CodeSingle"><a href="http://amazon.com/s/ref=nb_ss_gw/102-6984159-2338509?url=search-alias%3Dstripbooks&amp;field-keywords=flower&amp;Go.x=12&amp;Go.y=6">http://amazon.com/s/ref=nb_ss_gw/102-6984159-2338509?url=search-alias%3Dstripbooks&amp;field-keywords=flower&amp;Go.x=12&amp;Go.y=6</a></p>
<p class="BodyTextCont">Stripping away the parameters that we had done before give you:</p>
<p class="CodeSingle"><a href="http://amazon.com/s/?url=search-alias%3Dstripbooks&amp;field-keywords=flower">http://amazon.com/s/?url=search-alias%3Dstripbooks&amp;field-keywords=flower</a></p>
<p class="MsoBodyText">This trick works for the other departments.<span>  </span>For example, to do a search on flowers in Home &amp; Garden:</p>
<p class="CodeSingle"><a href="http://amazon.com/s/?url=search-alias%3Dgarden&amp;field-keywords=flower">http://amazon.com/s/?url=search-alias%3Dgarden&amp;field-keywords=flower</a></p>
<p class="MsoBodyText" style="text-indent: 0in">Let's run through the syntax of other organizational structures:</p>
<h2>Lists</h2>
<p class="BodyTextFirst">To go to the wishlist section:</p>
<p class="CodeSingle"><a href="http://www.amazon.com/gp/registry/wishlist/">http://www.amazon.com/gp/registry/wishlist/</a></p>
<p class="MsoBodyText">If you are logged in, you will see a list of your lists on the left.<span>  </span>Look at the URL of one of them, which will look like</p>
<p class="CodeSingle"><a href="http://www.amazon.com/gp/registry/wishlist/1U5EXVPVS3WP5/ref=cm_wl_rlist_go/102-5889202-4328156">http://www.amazon.com/gp/registry/wishlist/1U5EXVPVS3WP5/ref=cm_wl_rlist_go/102-5889202-4328156</a></p>
<p class="MsoBodyText">You'll see that the since the right hand number (e.g., <span class="CodeInline"><span style="font-size: 10pt">102-5889202-4328156</span></span>) remains the same but one number (e.g.,<span class="CodeInline"><span style="font-size: 10pt"> 1U5EXVPVS3WP5</span></span>) changes for each list that <span class="CodeInline"><span style="font-size: 10pt">1U5EXVPVS3WP5</span></span> is the identifier for the list.<span>  </span>You can point to a list by its list identifier by</p>
<p class="CodeSingle"><a href="http://www.amazon.com/gp/registry/wishlist/1U5EXVPVS3WP5">http://www.amazon.com/gp/registry/wishlist/1U5EXVPVS3WP5</a></p>
<h2>Tags</h2>
<p class="BodyTextFirst">Tags are a recent introduction to Amazon.com. You will see links like</p>
<p class="CodeSingle"><a href="http://www.amazon.com/tag/czeslaw%20milosz/ref=tag_dp_ct/102-8204915-1347316">http://www.amazon.com/tag/czeslaw%20milosz/ref=tag_dp_ct/102-8204915-1347316</a></p>
<p class="BodyTextCont">which can be reduced to</p>
<p class="CodeSingle"><a href="http://www.amazon.com/tag/czeslaw%20milosz/">http://www.amazon.com/tag/czeslaw%20milosz/</a></p>
<h2>Subject headings</h2>
<p class="MsoBodyText" style="text-indent: 0in">In looking through the Browse-subject section of amazon.com (http://www.amazon.com/Subjects-Books/b/?ie=UTF8&amp;node=1000), you can find a link such as</p>
<p class="CodeSingle"><a href="http://www.amazon.com/b/ref=amb_link_1760642_21/104-0367717-9318361?ie=UTF8&amp;node=5&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-3&amp;pf_rd_r=0J0MADE0YSN1VRBA6XZS&amp;pf_rd_t=101&amp;pf_rd_p=233185601&amp;pf_rd_i=1000">http://www.amazon.com/b/ref=amb_link_1760642_21/104-0367717-9318361?ie=UTF8&amp;node=5&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-3&amp;pf_rd_r=0J0MADE0YSN1VRBA6XZS&amp;pf_rd_t=101&amp;pf_rd_p=233185601&amp;pf_rd_i=1000</a></p>
<p class="BodyTextCont">(which refers to the Computers &amp; Internet Section) to</p>
<p class="CodeSingle"><a href="http://www.amazon.com/b/?ie=UTF8&amp;node=5">http://www.amazon.com/b/?ie=UTF8&amp;node=5</a></p>
<p class="NoteTipCaution">(The fact that the node is specified by number rather than any word-based descriptor makes one concerned about the long term stability of the link.<span>  </span>Will 5 always refer to computers or if there is another section added that goes before it alphabetically, will the link break?)</p>
<p class="MsoBodyText" style="text-indent: 0in">There are plenty of other entities whose URL structures can be discerned, including Listmania lists (e.g., <span class="CodeInline"><span style="font-size: 10pt"><a href="http://www.amazon.com/favorite-literary-poles/lm/1FH0E3G892IA/">http://www.amazon.com/favorite-literary-poles/lm/1FH0E3G892IA/</a> </span></span>and <a href="http://www.amazon.com/lm/1FH0E3G892IA/"><span class="CodeInline"><span style="font-size: 10pt">http://www.amazon.com/lm/1FH0E3G892IA/</span></span></a>), <span> </span>So You'd Like to Guides (e.g., <a href="http://www.amazon.com/gp/richpub/syltguides/fullview/3T3I3YDBG889B"><span class="CodeInline"><span style="font-size: 10pt">http://www.amazon.com/gp/richpub/syltguides/fullview/3T3I3YDBG889B</span></span></a>), personal profiles (e.g., <a href="http://www.amazon.com/gp/pdp/profile/A2D978B87TKMS2/"><span class="CodeInline"><span style="font-size: 10pt">http://www.amazon.com/gp/pdp/profile/A2D978B87TKMS2/</span></span></a>)</p>
<p><!--[if !supportFootnotes]--><br clear="all" /></p>
<hr align="left" size="1" width="33%" />  <!--[endif]--></p>
<p id="ftn1">&nbsp;</p>
<p class="MsoFootnoteText"><a href="#_ftnref1" title="_ftn1" name="_ftn1"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 10pt">[1]</span></span><!--[endif]--></span></span></a> <a href="http://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number">http://en.wikipedia.org/wiki/Amazon_Standard_Identification_Number</a></p>
<p id="ftn2">&nbsp;</p>
<p class="MsoFootnoteText"><a href="#_ftnref2" title="_ftn2" name="_ftn2"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 10pt">[2]</span></span><!--[endif]--></span></span></a> <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=19">http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=19</a></p>
<p id="ftn3"><a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=19"> </a></p>
<p class="MsoFootnoteText"><a href="#_ftnref3" title="_ftn3" name="_ftn3"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 10pt">[3]</span></span><!--[endif]--></span></span></a> <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=703&amp;categoryID=19">http://developer.amazonwebservices.com/connect/entry.jspa?externalID=703&amp;categoryID=19</a></p>
<p id="ftn4">&nbsp;</p>
<p class="MsoFootnoteText"><a href="#_ftnref4" title="_ftn4" name="_ftn4"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 10pt">[4]</span></span><!--[endif]--></span></span></a> <a href="http://docs.amazonwebservices.com/AWSECommerceService/2007-04-04/DG/ItemIdentifiers.html">http://docs.amazonwebservices.com/AWSECommerceService/2007-04-04/DG/ItemIdentifiers.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mashupguide.net/2007/04/19/amazon-url-structures/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chapter 2:  First draft</title>
		<link>http://blog.mashupguide.net/2007/04/19/chapter-2-first-draft/</link>
		<comments>http://blog.mashupguide.net/2007/04/19/chapter-2-first-draft/#comments</comments>
		<pubDate>Thu, 19 Apr 2007 15:38:11 +0000</pubDate>
		<dc:creator>raymond.yee</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Chapter 02]]></category>
		<category><![CDATA[del.icio.us]]></category>
		<category><![CDATA[drafts]]></category>
		<category><![CDATA[Google Maps]]></category>

		<guid isPermaLink="false">http://blog.mashupguide.net/2007/04/19/chapter-2-first-draft/</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Chapter+2%3A++First+draft&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Amazon&amp;rft.subject=Chapter+02&amp;rft.subject=del.icio.us&amp;rft.subject=drafts&amp;rft.subject=Google+Maps&amp;rft.source=Mashup+Guide&amp;rft.date=2007-04-19&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/04/19/chapter-2-first-draft/&amp;rft.language=English"></span>
I have posted the first draft of Chapter 2 (pdf) "Looking at Flickr, Del.icio.us, Google maps, and Amazon.com as end-user tools". The chapter analyzes Flickr (as our primary extended example) for what makes it the remix platform par excellence for learning how to remix a specific application and exploit its many features that make it [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Chapter+2%3A++First+draft&amp;rft.aulast=Yee&amp;rft.aufirst=Raymond&amp;rft.subject=Amazon&amp;rft.subject=Chapter+02&amp;rft.subject=del.icio.us&amp;rft.subject=drafts&amp;rft.subject=Google+Maps&amp;rft.source=Mashup+Guide&amp;rft.date=2007-04-19&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://blog.mashupguide.net/2007/04/19/chapter-2-first-draft/&amp;rft.language=English"></span>
<p>I have posted the first draft of Chapter 2 (<a href="http://mashupguide.net/drafts/858Xch02__.pdf">pdf</a>) "Looking at Flickr, Del.icio.us, Google maps, and Amazon.com as end-user tools".  The chapter analyzes Flickr (as our primary extended example) for what makes it the remix platform <em>par excellence </em>for learning how to remix a specific application and exploit its many features that make it so remixable. The chapter compares and contrasts flickr with other remixable platforms: del.icio.us, Google Maps, and amazon.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mashupguide.net/2007/04/19/chapter-2-first-draft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

