Yes, Ewert’s paper states:
Figure 5 shows the tree used for the common descent model of JavaScript applications. The process used to determine this tree is described in the Methods sections. It involves trying many possible trees to determine the tree which gives the best fit of the data to the tree model. Figure 6 shows a simplified version of the true dependency graph for these same applications. The colors correspond to frameworks. A framework is a module that provides the basic tools necessary to build an application. It is like a module that defines a body plan shared amongst several species. Each individual species builds on this basic plan to define the actual species. A framework will contain a large amount of code, consequently an application will share much code with other applications which use the same framework.
Upon inspection, we can see that the tree is actually reflecting the reality of the dependency graph. In the tree, applications using the same framework tend to cluster together, due to the shared code. However, applications which share non-framework modules are put closer together in an attempt to explain that reuse. The applications using the angular2 framework (tan) are oddly placed, branching out of the react based applications (pink). However, this is because hn-ng2 and react-news both use the large firebase module. Mamba, vim-awesome, and sound-redux are pulled closer to the root because they reuse the lodash and immutable modules which are also used by the angular applications (green). The tree is working to approximate the dependency graph.
It should be noted that Figure 6, which Ewert explicitly calls “a simplified version of the true dependency graph” looks nothing like a nest hierarchy.