AlgoDB: A Search Engine for Algorithms

Grant Timmerman
Jan 1, 2016 · 15 min read
Algorithms are complex!

Goal

Some of the technology we used in building AlgoDB.

System Design

Our project architecture. Algorithms and implementations are combined through the linker and uploaded to ElasticSearch, which is what the front end search engine queries.

Algorithm Database

Wikipedia Linking

Rosetta Code Linking

npm Linking

Crosswikis

Search Engine Front-End

The home page for AlgoDB.
The elasticsearch query for ranking search results — db.js
Eight search results appear after 0.109 seconds.
Algorithm page for “Least common multiple” filtered by language “Ruby”.

Experiments and Results

NEL Evaluation

NEL for Rosetta Code

Linking the Rosetta Code and Wikipedia datasets through NEL.
The composition of total matches for each version.
The precision-recall curve for the 6 versions.

NEL for npm

Distribution of results in a fixed 100-package random sample.
Precision vs. Recall across iterations.

Full system results

Surprises

Conclusion

Future Work

Build it yourself!


Grant Timmerman

Written by

Google • Explorer

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade