It is probably not the case that Gertrude is a sheep. There is a very good chance that Mary picked up the milk. There is little chance that Brian is a swan. Chances are about even that if 'Mary picked up the milk' or 'Brian is a swan' or both then Bernhard is green. Chances are about even that if 'Brian is a swan' or 'Mary picked up the milk' or both then John took the football. It is unlikely that if 'Mary picked up the milk' or 'Gertrude is a sheep' or both then Bill went to the office.
There is a better than even chance that 'John took the football' or 'Bernhard is green' or both.
There is a better than even chance that 'John took the football' or 'Bernhard is green' or both.
It is highly unlikely that 'John took the football' or 'Bernhard is green' 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.25::factA.
  0.8::factB.
  0.1::factC.
  %hop1
  0.5::factX:-or(factB,factC).
  0.5::factY:-or(factC,factB).
  0.2::factZ:-or(factB,factA).

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

  query(conclusion).
  
'John took the football' or 'Bernhard is green' or both.