We believe that Sandra grabbed the apple. We believe that John took the football. Chances are about even that Bernhard is green. It is impossible that if 'Bernhard is green' or 'Sandra grabbed the apple' or both then Brian is yellow. It is probably not the case that if either 'John took the football' or 'Sandra grabbed the apple' but not both then Jessica is a cat. It is highly unlikely that if either 'Bernhard is green' or 'Sandra grabbed the apple' but not both then Mary dropped the milk.
It is certain that 'Jessica is a cat' or 'Mary dropped the milk' or both.
There is little chance that 'Jessica is a cat' or 'Mary dropped the milk' or both.
It is certain that 'Jessica is a cat' or 'Mary dropped 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.75::factA.
  0.75::factB.
  0.5::factC.
  %hop1
  0.0::factX:-or(factC,factA).
  0.25::factY:-xor(factB,factA).
  0.05::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Jessica is a cat' or 'Mary dropped the milk' or both.