Is pymc3 suitable for implementation of PGMs?

Everywhere in tutorials they show toy examples of a water-sprinkler or student network with only categorical values and known conditional probabilities (CPD), so, basically, the PGM network is established by prior knowledge.

What if I “draw” a PGM with several nodes connected with edges based on my prior knowledge, but without exact CPDs known. And I want to use a dataset to derive CPDs from it. Is this possible at all?

I read about Bayesian network + Machine Learning binding, but couldn’t find any actual examples.

I will be grateful for any advises or references.