It is probably not the case that Gertrude is a wolf. There is a better than even chance that Greg is a swan. It is probable that Brian is a rhino. There is a very good chance that if 'Gertrude is a wolf' or 'Greg is a swan' or both then Jeff moved to the garden. Chances are about even that if either 'Gertrude is a wolf' or 'Greg is a swan' but not both then John went to the office. It is probable that if 'Gertrude is a wolf and Brian is a rhino' then Sandra left the football.
It is probably not the case that 'John went to the office' or 'Sandra left the football' or both.
It is probably not the case that 'John went to the office' or 'Sandra left the football' or both.
It is probably the case that 'John went to the office' or 'Sandra left the football' 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.6::factB.
  0.7::factC.
  %hop1
  0.8::factX:-or(factA,factB).
  0.5::factY:-xor(factA,factB).
  0.7::factZ:-and(factA,factC).

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

  query(conclusion).
  
'John went to the office' or 'Sandra left the football' or both.