Chances are about even that Brian is yellow. There is little chance that Jason is thirsty. There is a very good chance that John picked up the milk. It is improbable that if either 'John picked up the milk' or 'Brian is yellow' but not both then Jessica is a cat. It is probably not the case that if 'Jason is thirsty' or 'Brian is yellow' or both then Jeff moved to the garden. It is highly unlikely that if 'John picked up the milk and Jason is thirsty' then Mary dropped the apple.
There is a very good chance that 'Jeff moved to the garden' or 'John picked up the milk' or both.
There is a very good chance that 'Jeff moved to the garden' or 'John picked up the milk' or both.
It is unlikely that 'Jeff moved to the garden' or 'John picked up 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.5::factA.
  0.1::factB.
  0.8::factC.
  %hop1
  0.1::factX:-xor(factC,factA).
  0.25::factY:-or(factB,factA).
  0.05::factZ:-and(factC,factB).

  %hop2
  conclusion:-or(factY,factC).

  query(conclusion).
  
'Jeff moved to the garden' or 'John picked up the milk' or both.