Google stick parameter decoder

There is a stick, so let's find the carrot

decoded output will show here

how to use

  1. copy & paste a google url with stick parameter to the input field
  2. press "decode"
  3. enjoy

background

May 16th, 2012 Google introduced the world to the knowledge graph. A large database containing information about entities (things or better: concepts), their attributes and the connection to one another. The knowledge graph was powered by Freebase by Metaweb which was acquired by Google in 2010. In 2014 researches from Google released a paper introducing the Knowledge Vault (or KV for short) an approach to scale the aquisition of knowledge from the web.

The information is stored in the form of RDF triples (subject, predicate, object) and associated with a confidence score this relation is believed to be true. An example triple looks like this </m/07cz2, MovieToActor, /m/0479b> and describes the relationship (MovieToActor) between the movie Matrix (/m/07cz2) and the actor Keanu Reeves (/m/0479b).

If you search for something Google can connect to an entity (e.g. matrix) Google will show a knowledge panel as a result to your query. Within the panel you will be shown a selection of attributes associated with the entity and a bunch of relations to other entities. If you click on another entity, Google will open a new search result which is connected to the previous one. This connection is visible in the URL as a GET-parameter "stick". What looks like a rather random string is actually a representation of the connection between the two entities / searches.

technical stuff

Google is using three standards for encoding the data. One is base64 (url-safe variant) which is a very well known binary to text encoding scheme. In this particular case the binary data is compressed using gzip. The last one is protocol buffers a not so well known alternative to json. Google is using protocol buffers in a lot of places. Protocol buffers is something technical readers of this page might want to look into.

In the input field above you can insert a Google-URL containing the stick-parameter. The tool then extracts the stick-value and decodes it. There are some limitation since the whole process was reverse engineered. Do not hestitate to contact me if you have a question or encounter a bug.

credits and attribution

The fame for the initial findings on how the stick-parameter is encoded (base64/gzip) belongs to Andreas Thalhammer who reported it back in June 2012 to the Semantic Web mailing list. He also published his java code on github.

feedback welcome

If you like this tool, experience any problems, have ideas for upgrades or just want to say hi, feel free to contact me on Mastodon @VorticonCmdr.