4. Program Internals 4.1 Introduction Our application consists of an internal engine and a user interface. The engine uses Google’s api to build a graph of similar pages. It is parameterized by 2 values:
1. Fanout: Fanout limits the number of results we look at. While the absolute maximum limit on fanout is 10, there is little practical purpose to set fanout greater than 6 because that causes the graph to be too dense and hard to read.
2. Depth: The depth of the tree is kept to a certain value. When the depth of the tree falls below this value, the engine will automatically run queries to find pages similar to the leaves, to increase its depth. If the depth of the tree is greater than this value, the nodes that appear beyond this depth is not displayed.
The tree is created by an initial query that the user provides. This query forms the root node of the tree and is the only node in the tree that is not actually a search result. The engine then goes off and recursively builds the tree until its depth reaches the specified depth.
We built a simple java application on top of the engine that allows the user to perform simple searches and display a tree. The interface also allows the user to manipulate the tree by making a certain node become the root node, thus, rotating the tree.