Three types of pseudocodewords for LDPC codes are found in the literature: graph cover pseudocodewords, linear programming pseudocodewords, and computation tree pseudocodewords. In this paper we first review these three notions and known connections between them. We then propose a new decoding rule — universal cover decoding — for LDPC codes. This new decoding rule also has a notion of pseudocodeword attached, and this fourth notion provides a framework in which we can better understand the other three