It is highly unlikely that Gertrude is a cat. It is improbable that Sandra left the milk. Chances are about even that Brian is gray. It is highly unlikely that if either 'Sandra left the milk' or 'Gertrude is a cat' but not both then Lily is green. It is probable that if 'Brian is gray' or 'Sandra left the milk' or both then John went to the kitchen. We doubt that if 'Sandra left the milk' or 'Brian is gray' or both then Julius is a frog.
Chances are about even that 'John went to the kitchen' or 'Julius is a frog' or both.
Chances are about even that 'John went to the kitchen' or 'Julius is a frog' or both.
It is highly unlikely that 'John went to the kitchen' or 'Julius is a frog' 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.1::factB.
  0.5::factC.
  %hop1
  0.05::factX:-xor(factB,factA).
  0.7::factY:-or(factC,factB).
  0.2::factZ:-or(factB,factC).

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

  query(conclusion).
  
'John went to the kitchen' or 'Julius is a frog' or both.