It is highly unlikely that Brian is a rhino. There is almost no chance that Sandra took the milk. It is highly likely that Bernhard is green. It is probable that if 'Sandra took the milk' or 'Bernhard is green' or both then Gertrude is a sheep. Chances are slight that if 'Bernhard is green' or 'Brian is a rhino' or both then Lily is yellow. It is impossible that if either 'Sandra took the milk' or 'Bernhard is green' but not both then Jeff went to the garden.
There is almost no chance that 'Gertrude is a sheep' or 'Sandra took the milk' or both.
There is a better than even chance that 'Gertrude is a sheep' or 'Sandra took the milk' or both.
There is almost no chance that 'Gertrude is a sheep' or 'Sandra took 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.05::factA.
  0.02::factB.
  0.9::factC.
  %hop1
  0.7::factX:-or(factB,factC).
  0.1::factY:-or(factC,factA).
  0.0::factZ:-xor(factB,factC).

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

  query(conclusion).
  
'Gertrude is a sheep' or 'Sandra took the milk' or both.