Comprehenders can predict upcoming words given a partial input. Similarly, many modern computer apps can predict upcoming words given a partial input. Both rely on some form of memory about past linguistic input to generate prediction. In this talk, I will argue that comprehenders, unlike many computer apps, generate prediction (mostly) based on the semantic memory that is abstracted away from the surface (i.e., form-related) properties of previously encountered strings. Based on this view, I will then describe a model in which linguistic prediction is decomposed into two processes: (i) the process by which a relevant semantic memory is retrieved and (ii) the process by which the retrieved semantic memory is used to generate the surface representation of upcoming input. I will show that this model can explain when we predict successfully and when we predict not so successfully.