1. A method for generating a recommendation, the method comprising: receiving a user-defined recommendation request issued by a user as a user query; receiving a user-defined declarative community definition; selecting a sampling group belonging to a community defined by the declarative community definition; for each particular member in the sampling group, retrieving, from a recommendation database, a particular rating data of each particular member based on the user-defined recommendation request; for each particular rating data, generating a particular perturbed rating data, such that there is a predetermined probability that the particular perturbed rating data is different from a respective particular rating data; aggregating all the particular perturbed rating data into a plurality of perturbed rating data; and generating the recommendation based on the plurality of perturbed rating data.