THIS THESIS GIVES an account of my investigations into the logical foundations of inductive reasoning. Roughly speaking, induction consists in identifying the similarities between observed objects or events, and hypothetically extending those similarities to unobserved objects or future events. It constitutes a mode of reasoning which plays a role in the acquisition of scientific theories, as well as the acquisition of the descriptive vocabulary needed to reason about the objects and events encountered in everyday life, although, it must be added, philosophers (and psychologists) disagree about the importance of induction in these processes. In recent years researchers in artificial intelligence have explored the realisation of inductive procedures by means of computer programs, not only with the purpose to automate the formation of scientific theories and concept taxonomies, but also aiming at extending inductive techniques to new tasks, such as the construction of computer programs from examples of their intended behaviour (like in inductive logic programming). The initial motivation for the present study grew out of a perceived need for a formal framework in which the various inductive techniques that are used in practice can be precisely characterised and related to each other. As such, it should be viewed as a methodological investigation into the formal aspects of inductive methods as used in computer science in general, and artificial intelligence in particular.