It is improbable that Brian is green. It is certain that Mary went to the office. It is likely that John left the football. There is a better than even chance that if either 'Brian is green' or 'Mary went to the office' but not both then Daniel put down the milk. We doubt that if either 'Mary went to the office' or 'John left the football' but not both then Bernhard is a rhino. We doubt that if 'John left the football and Brian is green' then Lily is a lion.
Chances are slight that either 'Bernhard is a rhino' or 'John left the football' but not both.
We believe that either 'Bernhard is a rhino' or 'John left the football' but not both.
Chances are slight that either 'Bernhard is a rhino' or 'John left the football' 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.1::factA.
  1.0::factB.
  0.7::factC.
  %hop1
  0.6::factX:-xor(factA,factB).
  0.2::factY:-xor(factB,factC).
  0.2::factZ:-and(factC,factA).

  %hop2
  conclusion:-xor(factY,factC).

  query(conclusion).
  
Either 'Bernhard is a rhino' or 'John left the football' but not both.