Integrating Top-Down And Bottom-Up Approaches In Inductive Logic Programming: Applications In Natural Language Processing And Relational Data Mining