Ferret supports drilling into the results of a query to understand underlying structure through clustering on the different attributes of the results.
For example: the references to a method,
which are generally themselves methods, may be clustered into
different groups identified by attributes such as their access
protection (public, private, package, or default), their containing
type, their package, or boolean attributes such as static vs.
non-static. Some clusterings may have results belong to multiple
groups, such as might arise for a clustering by argument types:
the method Arrays.addList(Collection, Object[])
would
added to groups for Collection
and Object
.