1. A method of deriving first order logic language rules for use in analyzing new data to identify anomalies in the new data, the method comprising: formatting, via at least one processor of a computer, historical data to be in a form suitable for application of a machine-learning algorithm thereto; applying, via the at least one processor of the computer, the machine-learning algorithm to said formatted historical data to generate a set of first order logic language rules that cover said formatted historical data; wherein the machine-learning algorithm includes inductive logic programming and comprises, for each example in turn: (1) successively refining, via the at least one processor of the computer, the example by the application of refinement operators to obtain one or more first order logic language rules, wherein at each refinement step a sample of refinement operators are chosen according to a probability distribution, and (2) storing the refinement steps in a hypothesis tree data structure with refinement choices and probabilities at each node, and first order logic language rules at each leaf node, the hypothesis tree and probability distribution being updated and refined for each successive example in turn; and, analyzing, via the at least one processor of the computer, said set of first order logic language rules to obtain a subset of said set of first order logic language rules which is usable as first order logic language rules in analyzing new data.