We believe that Greg is gray. It is almost certain that Julius is white. There is little chance that Mary went to the bedroom. It is highly likely that if 'Greg is gray' or 'Julius is white' or both then Daniel took the apple. It is likely that if either 'Mary went to the bedroom' or 'Greg is gray' but not both then Lily is a swan. It is highly unlikely that if 'Julius is white' or 'Mary went to the bedroom' or both then Bernhard is a rhino.
It is probably the case that either 'Greg is gray' or 'Mary went to the bedroom' but not both.
It is probably the case that either 'Greg is gray' or 'Mary went to the bedroom' but not both.
There is little chance that either 'Greg is gray' or 'Mary went to the bedroom' 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.75::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.9::factX:-or(factA,factB).
  0.7::factY:-xor(factC,factA).
  0.05::factZ:-or(factB,factC).

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

  query(conclusion).
  
Either 'Greg is gray' or 'Mary went to the bedroom' but not both.