Roll your own google

From XPUB & Lens-Based wiki
Revision as of 12:15, 11 March 2014 by Michael Murtaugh (talk | contribs) (→‎tumblrjumpr)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Google dominates contemporary access to the Internet, having become for many net users virtually synonymous not only with search, but online video (through YouTube), and mobile (through the Android platform).

As the web first developed in the 1990s, websites were sparse isolated islands, tethered together by webrings and a patchwork of amateur link lists and proto-portals. Early search sites balanced between (human) editorially maintained portal sites and a variety of "indexes" based on web crawlers. The Altavista search engine was perhaps the first breakthrough in terms of tackling the ever-growing scale of the online web of documents and shot to an early lead among a field of many, often diversely focused web search engines.[1] Google, however, perfected the formula by taking on not only the scale, but leveraging the link structure of the net itself, via its PageRank algorithm to deliver even better search results, while managing (in fact thriving) on the volume of the web. This algorithm, first patented September 4, 2001, forms the basis of Google's commercial success and the exact mechanisms of their current algorithms to produce search results are closely guarded trade secrets.

This exercise is at once a simple exercise in CGI scripting and an opportunity to critically reflect on the state of the Web and the role of centralized commercial services such as Google.


Create a cgi "search engine". It needs to be self-contained, that is contain it's own index based on your own specific crawling of data. Part of the point of doing this is to reflect on the question of data centralization and specificity. What does it mean to create your own index? Your "results" could be "purely" algorithmic, and/or based only on input provided to it (via the search box), and/or using either collected or crawled data you've yourself gathered. It's only fair, that's how Google works too.



  • Start with a simple form (HTTP/Post/Submit!)
  • Can respond with ANY type (image/audio/...)
  • Respond to browser (with audio?)

How search works (according to Google)

The Anatomy of a Large-Scale Hypertextual Web Search Engine (1998)

Each document is converted into a set of word occurrences called hits. The hits record the word, position in document, an approximation of font size, and capitalization. The indexer distributes these hits into a set of "barrels", creating a partially sorted forward index. The indexer performs another important function. It parses out all the links in every web page and stores important information about them in an anchors file. This file contains enough information to determine where each link points from and to, and the text of the link.

Source: The Anatomy of a Large-Scale Hypertextual Web Search Engine Research paper Google c-founders Sergey Brin and Lawrence (Larry) Page. 1998.

Search circa 1996

Computer Chronicles on Search (1996)

Search circa 1896


Emerging standards for electronic books such as epub are interesting in that they bridge web practices and formats with those of tradition publishing.


Alternative Search Engines

In it he uses three alterative search engines:



  • Oamos by Marc Lee, who also participated in the Tracenoizer project...


  • Tracenoizer by Zurich based net art collective LAN a unique "identity" management solution that allows for tactical scraping to create false "clone" homepages & publish them online Screenshots


  • While (in part) at PZI Matthias Hurtl developed soundbrowser that searches and presents the results as a bank of looping audio players allowing for parallel playing and mixing.


Building a search engine in Python


  1. Search Engines Book from 2001 describes the "big 6" search engines of the time: including AltaVista, Yahoo, Excite, and MSN .