It is highly unlikely that Mary went to the office. We believe that John took the football. There is almost no chance that Bernhard is yellow. We doubt that if either 'Mary went to the office' or 'John took the football' but not both then Jessica is a mouse. It is likely that if 'Bernhard is yellow' or 'John took the football' or both then Brian is a frog. It is probably the case that if either 'Mary went to the office' or 'John took the football' but not both then Fred dropped the milk.
It is highly unlikely that 'Brian is a frog' or 'Jessica is a mouse' or both.
There is a better than even chance that 'Brian is a frog' or 'Jessica is a mouse' or both.
It is highly unlikely that 'Brian is a frog' or 'Jessica is a mouse' 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.75::factB.
  0.02::factC.
  %hop1
  0.2::factX:-xor(factA,factB).
  0.7::factY:-or(factC,factB).
  0.7::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Brian is a frog' or 'Jessica is a mouse' or both.