Chances are about even that Lily is a lion. It is improbable that John moved to the garden. There is little chance that Bernhard is yellow. It is probably not the case that if 'John moved to the garden and Bernhard is yellow' then Brian is a rhino. It is likely that if 'Bernhard is yellow' or 'Lily is a lion' or both then Mary went to the garden. It is probably the case that if either 'Lily is a lion' or 'Bernhard is yellow' but not both then Sandra put down the milk.
It is probably the case that 'Sandra put down the milk' or 'Brian is a rhino' or both.
It is probably not the case that 'Sandra put down the milk' or 'Brian is a rhino' or both.
It is probably the case that 'Sandra put down the milk' or 'Brian is a rhino' 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.1::factC.
  %hop1
  0.25::factX:-and(factB,factC).
  0.7::factY:-or(factC,factA).
  0.7::factZ:-xor(factA,factC).

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

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