It is likely that Mary got the milk. It is probable that Greg is green. Chances are about even that Bernhard is a rhino. There is little chance that if either 'Greg is green' or 'Bernhard is a rhino' but not both then Yann is thirsty. It is highly likely that if 'Mary got the milk and Greg is green' then Jeff moved to the garden. Chances are about even that if 'Greg is green and Mary got the milk' then Sandra dropped the milk.
There is little chance that 'Jeff moved to the garden' or 'Mary got the milk' or both.
It is probable that 'Jeff moved to the garden' or 'Mary got the milk' or both.
There is little chance that 'Jeff moved to the garden' or 'Mary 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.7::factA.
  0.7::factB.
  0.5::factC.
  %hop1
  0.1::factX:-xor(factB,factC).
  0.9::factY:-and(factA,factB).
  0.5::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Jeff moved to the garden' or 'Mary got the milk' or both.