I. Introduction
An important task in network analysis is community detection, or finding groups of similar vertices which can then be analyzed separately [1]. Community structures offer clues to the processes which generated the graph, on scales ranging from face-to-face social interaction [2] through social-media communications [3] to the organization of food webs [4]. While previous work often defines a “community” as a group of vertices with high density of connections, we are interested in a more general definition of functional community—a group of vertices that connect to the rest of the network in similar ways. A set of similar predators form a functional group in a food web, not because they eat each other, but because they feed on similar prey. In English, nouns often follow adjectives, but seldom follow other nouns.