Chances are slight that John went to the office. It is highly unlikely that Bill left the football. Chances are slight that Sandra grabbed the apple. It is certain that if 'Bill left the football' or 'Sandra grabbed the apple' or both then Bernhard is a rhino. There is little chance that if either 'Sandra grabbed the apple' or 'John went to the office' but not both then Lily is yellow. There is little chance that if either 'Bill left the football' or 'John went to the office' but not both then Winona is a wolf.
It is impossible that 'Lily is yellow and Bernhard is a rhino'.
It is impossible that 'Lily is yellow and Bernhard is a rhino'.
It is highly likely that 'Lily is yellow and Bernhard is a rhino'.

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

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

  query(conclusion).
  
'Lily is yellow and Bernhard is a rhino'.