It is improbable that Emily is a mouse. It is certain that Daniel got the milk. We believe that Greg is white. It is probably the case that if 'Greg is white' or 'Daniel got the milk' or both then Bernhard is green. It is improbable that if 'Greg is white and Daniel got the milk' then Julius is a swan. It is probably the case that if 'Greg is white' or 'Emily is a mouse' or both then Brian is green.
It is highly unlikely that 'Bernhard is green and Julius is a swan'.
It is highly unlikely that 'Bernhard is green and Julius is a swan'.
It is probably the case that 'Bernhard is green and Julius is a swan'.

  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.1::factA.
  1.0::factB.
  0.75::factC.
  %hop1
  0.7::factX:-or(factC,factB).
  0.1::factY:-and(factC,factB).
  0.7::factZ:-or(factC,factA).

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

  query(conclusion).
  
'Bernhard is green and Julius is a swan'.