A BBN is a special type of diagram (called a graph) together with an associated set of probability tables.
The graph consists of nodes and arcs as shown in the simple example:
The nodes represent variables, which can be discrete or continuous. For example, a node might represent the variable 'Train strike' which is discrete, having the two possible values 'true' and 'false'. The arcs represent causal relationships between variables. For example, suppose we have another variable 'Norman late' which is also discrete with values 'true' and 'false'. Since a train strike can cause Norman to be late we model this relationship by drawing an arc from the node 'Train strike' to the node 'Norman late'
The key feature of BBNs is that they enable us to model and reason about uncertainty. In our example, a train strike does not imply that Norman will definitely be late (he might leave early and drive), but there is an increased probability that he will be late. In the BBN we model this by filling in a probability table for each node. For the node 'Norman late' the probability table (also called the Node Probability Table or NPT) might look like this:

Train Strike 

Norman late 
True 
False 
True 
0.8 
0.1 
False 
0.2 
0.9 
This is actually the conditional probability of the variable 'Norman late' given the variable 'train strike'. The possible values (true or false) for 'Norman late' are shown in the first column. Note that we provide a probability for each combination of events (four in this case), although the rules of probability mean that some of this information is redundant. Informally, the particular values in this table tell us that: Norman is very unlikely to be late normally (that is, the probability Norman is late when there is no train strike is 0.1), but if there is a train strike is he is very likely to be late (the probability is 0.8). Now suppose that Norman has a colleague, Martin, who usually drives to work. To model our uncertainty about whether or not Martin arrives late we add a new node 'Martin late' to the graph and an arc from 'Train strike' to this node. A train strike can still cause Martin to be late because traffic is heavier in that case. However, the probability table for 'Martin late', shown here, is very different in content to the one for 'Norman late':

Train Strike 

Martin late 
True 
False 
True 
0.6 
0.5 
False 
0.4 
0.5 
Informally, Martin is often late, but a train strike only increases the likelihood of his lateness by a small amount. In the event of a train strike Martin is less likely to be late than Norman.
The probability table associated with the node 'Train strike' is somewhat different in nature. This node has no 'parent' nodes in this model (we call it a root node), and therefore we only have to assign a probability to each of the two possible values 'true' and 'false'. In the following table the actual values suggest that a train strike is very unlikely.
Train strike 

True 
0.1 
False 
0.9 
There may be several ways of determining the probabilities of any of the tables. For example, in the previous table we might be able to base the probabilities on previously observed frequencies of days when there were train strikes. Alternatively, if no such statistical data is available we may have to rely on subjective probabilities entered by experts. The beauty of BBNs is that we are able to accommodate both subjective probabilities and probabilities based on objective data.