It is impossible that Brian is white. It is impossible that Winona is a wolf. It is probable that Mary grabbed the milk. It is highly unlikely that if either 'Brian is white' or 'Winona is a wolf' but not both then Greg is green. It is almost certain that if 'Brian is white and Mary grabbed the milk' then Lily is a swan. There is little chance that if 'Winona is a wolf' or 'Brian is white' or both then Julius is a frog.
We believe that either 'Brian is white' or 'Greg is green' but not both.
It is impossible that either 'Brian is white' or 'Greg is green' but not both.
We believe that either 'Brian is white' or 'Greg is green' 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.0::factA.
  0.0::factB.
  0.7::factC.
  %hop1
  0.05::factX:-xor(factA,factB).
  0.95::factY:-and(factA,factC).
  0.1::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Brian is white' or 'Greg is green' but not both.