1. A method of activity discovery comprising; establishing a relational database; populating, augmenting or updating the database using a free form natural language, the populating, augmenting or updating establishing a defined event; responding to the defined event by setting at least one criterion for collection of further data; obtaining a user input for acceptance of the criterion; establishing a list of events, and associating the events with data associations obtained by the collection of the further data; using the collection of the further data to generate a further search relevant to the lists of events; and iterating the sequence by further populating, augmenting or updating the database using agent-based architectures and their respective knowledge bases, programming languages, and generated expert compilers to build a directed mining and linking system.