1. A method comprising: (a) embodying data structures on a computer readable medium, the data structures comprising: (i) data objects, each data object including a vector with a plurality of elements of a corresponding respective type; (ii) feature matrices, there being a feature matrix corresponding with each data object; (iii) relationship matrices describing pairwise relationships between the data objects; and (iv) weighting matrices; (b) effecting a spectral clustering algorithm on at least one data processing device, the spectral clustering algorithm comprising: (i) assigning, to each of a plurality of vigorous cluster indicator matrices, leading eigenvectors derived from a formula that is a function of the feature matrices, the relationship matrices, the weight matrices and at least one cluster indicator matrix other than the one receiving the assigning; (ii) iteratively improving the vigorous cluster indicator matrices; and (iii) transforming the vigorous cluster indicator matrices into a set of cluster indicator matrices comprising a cluster indicator matrix for each data object; and (c) recognizing a clustering of the elements within a data object based on the cluster indicator matrices.