It is likely that Greg is yellow. We doubt that Mary got the football. It is probably the case that John went to the garden. It is probably not the case that if either 'Greg is yellow' or 'Mary got the football' but not both then Bernhard is a frog. We believe that if either 'Greg is yellow' or 'Mary got the football' but not both then Brian is a swan. We believe that if either 'Greg is yellow' or 'John went to the garden' but not both then Sandra left the milk.
It is unlikely that 'John went to the garden' or 'Mary got the football' or both.
We believe that 'John went to the garden' or 'Mary got the football' or both.
It is unlikely that 'John went to the garden' or 'Mary got 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.7::factA.
  0.2::factB.
  0.7::factC.
  %hop1
  0.25::factX:-xor(factA,factB).
  0.75::factY:-xor(factA,factB).
  0.75::factZ:-xor(factA,factC).

  %hop2
  conclusion:-or(factC,factB).

  query(conclusion).
  
'John went to the garden' or 'Mary got the football' or both.