It is certain that Lily is green. Chances are slight that John picked up the apple. It is almost certain that Brian is a swan. It is highly unlikely that if 'Lily is green' or 'John picked up the apple' or both then Bernhard is yellow. It is almost certain that if either 'John picked up the apple' or 'Brian is a swan' but not both then Greg is a swan. There is a better than even chance that if 'Lily is green' or 'Brian is a swan' or both then Mary went to the office.
There is a better than even chance that either 'Mary went to the office' or 'John picked up the apple' but not both.
There is a better than even chance that either 'Mary went to the office' or 'John picked up the apple' but not both.
There is little chance that either 'Mary went to the office' or 'John picked up the apple' but not 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
  1.0::factA.
  0.1::factB.
  0.95::factC.
  %hop1
  0.05::factX:-or(factA,factB).
  0.95::factY:-xor(factB,factC).
  0.6::factZ:-or(factA,factC).

  %hop2
  conclusion:-xor(factZ,factB).

  query(conclusion).
  
Either 'Mary went to the office' or 'John picked up the apple' but not both.