Chances are slight that Bernhard is green. We doubt that Greg is gray. We believe that Bill went to the kitchen. We doubt that if 'Greg is gray and Bernhard is green' then Fred dropped the milk. Chances are slight that if 'Greg is gray' or 'Bernhard is green' or both then Brian is a frog. There is a better than even chance that if 'Bill went to the kitchen and Bernhard is green' then Julius is a swan.
It is probably the case that either 'Julius is a swan' or 'Greg is gray' but not both.
It is probably not the case that either 'Julius is a swan' or 'Greg is gray' but not both.
It is probably the case that either 'Julius is a swan' or 'Greg is gray' 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.
  0.2::factB.
  0.75::factC.
  %hop1
  0.2::factX:-and(factB,factA).
  0.1::factY:-or(factB,factA).
  0.6::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Julius is a swan' or 'Greg is gray' but not both.