There is almost no chance that Bernhard is a rhino. There is a very good chance that Mary picked up the milk. It is highly likely that Julius is a lion. It is highly unlikely that if either 'Bernhard is a rhino' or 'Mary picked up the milk' but not both then John went to the office. It is likely that if 'Bernhard is a rhino' or 'Julius is a lion' or both then Brian is green. Chances are about even that if 'Julius is a lion and Mary picked up the milk' then Greg is a frog.
It is almost certain that 'Mary picked up the milk and John went to the office'.
It is highly unlikely that 'Mary picked up the milk and John went to the office'.
It is almost certain that 'Mary picked up the milk and John went to the office'.

  and(A,B) :- A,B.
  or(A,B) :- A;B.
  nand(A,B) :- not(and(A,B)).
  nor(A,B) :- not(or(A,B)).
  xor(A,B) :- or(A,B), nand(A,B).

  %hop0
  0.02::factA.
  0.8::factB.
  0.9::factC.
  %hop1
  0.05::factX:-xor(factA,factB).
  0.7::factY:-or(factA,factC).
  0.5::factZ:-and(factC,factB).

  %hop2
  conclusion:-and(factB,factX).

  query(conclusion).
  
'Mary picked up the milk and John went to the office'.