Trust and reputation allow agents to make informed decisions about potential interactions. Trust in an agent is derived from direct experience with that agent, while reputation is determined by the experiences reported by other witness agents with potentially differing viewpoints. These experiences are typically aggregated in a trust and reputation model, of which there are several types that focus on different aspects. Such aspects include handling subjective perspectives of witnesses, dishonesty, or assessing the reputation of new agents. In this paper, we distil reputation systems into their fundamental aspects, discussing first how trust and reputation information is represented and second how it is disseminated among agents. Based on these discussions, a unifying abstraction is presented for trust and reputation systems, which is demonstrated by instantiating it with a broad range of reputation systems found in the literature. The abstraction is then instantiated to combine the range of capabilities of existing reputation systems in the Machine Learning Reputation System, which is evaluated using a marketplace simulation.