It is impossible that Sandra got the milk. It is probable that Mary picked up the apple. It is likely that John went to the kitchen. Chances are about even that if either 'John went to the kitchen' or 'Mary picked up the apple' but not both then Greg is yellow. It is probably not the case that if 'Sandra got the milk and Mary picked up the apple' then Julius is a frog. It is highly unlikely that if 'Sandra got the milk' or 'Mary picked up the apple' or both then Brian is a rhino.
It is highly unlikely that 'Brian is a rhino' or 'Sandra got the milk' or both.
It is highly unlikely that 'Brian is a rhino' or 'Sandra got the milk' or both.
Chances are about even that 'Brian is a rhino' or 'Sandra got the milk' or both.

  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.0::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.5::factX:-xor(factC,factB).
  0.25::factY:-and(factA,factB).
  0.05::factZ:-or(factA,factB).

  %hop2
  conclusion:-or(factZ,factA).

  query(conclusion).
  
'Brian is a rhino' or 'Sandra got the milk' or both.