Inductive logic programming at 30: a new introduction