||Knowledge discovery or data mining is the search for relationships and global patterns that exist in large databases. One of the main problems for knowledge discovery is that the number of possible relationships is very large, thus prohibiting the search for the correct ones by simply validating each of them. Special logic/intelligence has to be used in the discovery strategies such that the target relationships can be found effectively. In this thesis, a general rule discovery algorithm, DA-2, is proposed to discover non-recursive Datalog rules from a set of background information with the input of a set of training data or examples. Most other discovery algorithms use greedy approaches to find the target knowledge. In a greedy approach, the system cannot guarantee the quality of the found rule(s). DA-2 uses a best first search type of logic together with a 'goodness' measure to determine the target knowledge. Unlike algorithms that use greedy approaches, DA-2 can guarantee that the rules found are the 'best' amongst the solution space within given constraints and without exhaustive search.