Bayesian Netwotk structure learning

Using the bnlearn package I can learn the structure of a BN just by passing my dataset as parameter, for example:

bn1 <- blnearn :: hc (dataset) 

Or must I pass some edges as prior knowledge eg:

wl = data.frame (from = c ("A", "B"), to = c ("B", "C")) 
bn1 <- blnearn :: hc (datase, whitelist = wl)

What I mean is the bnlearn algorithms has capacity to learn the structure from data only or always need some help with prior knowledge.