Learning Dynamic Bayesian Networks from Data: Foundations, First Principles and Numerical Comparisons