1. A method for discovering a group defined by a common characteristic, the method comprising: building a data structure that represents a portion of a friend-network of a starting person, wherein the starting person has a given characteristic and the starting person provides one or more items of personal data; wherein building the data structure includes: obtaining an id of the starting person in a social network; accessing a friend list in the social network using the starting person's id; entering into the data structure each friend in the friend list that has one degree of friendship with the starting person; and; entering into the data structure each friend having one degree of friendship with each friend in the starting person's friend list; discovering clusters in the data structure and collecting the discovered clusters into a set, wherein each discovered cluster has a given size, internal density, and external sparseness; for any clusters in the set that are sufficiently similar to each other, merging together the similar clusters in the set, wherein similarity is determined by a relative cluster overlap threshold; computing a weighted sum based at least on the internal density and external sparseness of each cluster in the set to select a cluster having a high probability of representing the members of the group; and if the starting person indicates that the selected cluster accurately includes the members of the group, displaying the members in the selected cluster.