It is likely that Brian is white. It is almost certain that Greg is a lion. Chances are about even that Julius is a swan. Chances are slight that if either 'Brian is white' or 'Julius is a swan' but not both then Mary went to the office. There is almost no chance that if 'Greg is a lion and Julius is a swan' then Lily is a rhino. It is certain that if either 'Greg is a lion' or 'Brian is white' but not both then Bernhard is green.
It is probable that either 'Mary went to the office' or 'Brian is white' but not both.
It is probable that either 'Mary went to the office' or 'Brian is white' but not both.
There is little chance that either 'Mary went to the office' or 'Brian is white' 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
  0.7::factA.
  0.95::factB.
  0.5::factC.
  %hop1
  0.1::factX:-xor(factA,factC).
  0.02::factY:-and(factB,factC).
  1.0::factZ:-xor(factB,factA).

  %hop2
  conclusion:-xor(factX,factA).

  query(conclusion).
  
Either 'Mary went to the office' or 'Brian is white' but not both.