At this article I am going to present yasiv. What is Yasiv? No, Yasiv is not populated place in Afghanistan :) This is a beautiful assistant in books search, a web site developed by Andrei Kashcha (aka Anvaka). Yasiv visualizes a relation network of books on Amazon, from the statistics data "customers who bought this item also bought", by digging related books again and again. You also can faster see description and google book preview, if it is available for this book.
Yasiv is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com. Yasiv – most popular amazon books visualization tool. First book is the center most important and similar books are line signified relationships with book. The more line is book has than book is more purchased, that makes book strength bigger. Check this out excellent tool to navigate surround the books.
Andrew didn't know anything about graph drawing algorithms, so he had to read a lot of scientific papers to implement his own engine for Silverlight for books search. Every time user enters the search term it goes to Amazon and searches for the term. Then it picks the first result, goes to Amazon again and asks for similar books. Finally for every similar book in Amazon's response it goes to Amazon last time and asks to provide similar books for them. After that graph drawing engine gets down to the business. The first run goes beyond the scene to make good initial positions for the books. This is done by Graph Embedding (GEM) algorithm which is quite fast but not pleasant aesthetically when you visualize it. The second round is taken by very straightforward force-based graph drawing algorithm.
Andrey developed very simple physics engine to calculate all forces and get books positions. I really enjoy how this books arranged on the screen by this algorithm, best book is in the center of the screen. Google App Engine used to sign requests prior to sending them to Amazon (as it is required by API). It was not hard to get the books and people's decisions from Amazon. The API is well documented and comes with examples. The hard (or the fun) part was to display books nicely on the screen. "Nicely" is a hard term to define in programming language. You can't write "if (graph_layout is nice) then ..." But there are certain criteria that adds to "nicely" and can be measured in a program. For example the smallest number of intersections between links, or uniform distance between connected nodes, or symmetry. It turns out there is no straightforward algorithm to solve the problem and the problem itself is from NP-complete class. But what's truly amazing you can get nice layout by reusing what Mother Nature has invented. Physics. Simply pretend that each node is an electronic particle with the same sign (so they repel each other) and every link is a spring (so they attract connected nodes). Now calculate all forces acting on each node and the system will try to find the best position itself.
WWW.YASIV.COM site history, by Andrey (nick name Anvaka) words: The story of the site begins in summer of 2010. I was invited to speak at national IT conference in Ukraine and was free to choose a topic. By that time I was inspired by Hans Rosling's presentation at TED and was reading "Beautiful Visualization" book. So it was easy choice for me. I'll give a presentation on Data Visualization in Silverlight, I said. And if you are making a presentation about visualization I think the only right way to do it is to show it. So I set out to create visualizations to backup my presentation. In "Beautiful Visualization" there is breath-taking chapter written by Valdis Krebs "Your Choices Reveal Who You Are". This is where I heard about social graphs first time. On this graph each node is a person and the lines between nodes are decisions. If two persons make exactly the same decision we assume there is a connection between them and draw a subtle line. If the same pair makes another similar decision we strengthen the connection. The more decisions they make in the same way the stronger is our assumption of their connection. A decision could be anything. Buying the same book for example. Yasiv uses Amazon's database of products and purchases. In 2010 Amazon.com had in net sales 90 million dollars every day. While you were reading this article Amazon has sold goods to the amount of $150 000. And all this information is available at our disposal.
Yasiv takes it and transform it into more consumable format.
Links: Yet another podcast silverlight passion by Jesse Liberity
Download Podcast about Yasiv with Andrei.
This a fantastic assistant in books universe. You can almost always find what do you want not only by book name, but even by any keyword connected to book or book that is connected to book that you want to buy. You can quickly see book description, connections with other books, you can click to the amazon web site link and buy book that you want quickly and easily. I am going to use this web site right now to by a book about algorithms that I found today.