There is a very good chance that Jeff went to the garden. We believe that Lily is yellow. There is a very good chance that Emily is a mouse. It is unlikely that if either 'Lily is yellow' or 'Emily is a mouse' but not both then Brian is a swan. Chances are about even that if 'Jeff went to the garden' or 'Lily is yellow' or both then Julius is a frog. It is probably not the case that if either 'Jeff went to the garden' or 'Lily is yellow' but not both then John took the football.
There is almost no chance that 'Lily is yellow' or 'Brian is a swan' or both.
There is a very good chance that 'Lily is yellow' or 'Brian is a swan' or both.
There is almost no chance that 'Lily is yellow' or 'Brian is a swan' 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.8::factA.
  0.75::factB.
  0.8::factC.
  %hop1
  0.2::factX:-xor(factB,factC).
  0.5::factY:-or(factA,factB).
  0.25::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Lily is yellow' or 'Brian is a swan' or both.