There is a very good chance that Bernhard is yellow. We believe that Brian is white. It is likely that Mary grabbed the milk. There is a very good chance that if either 'Mary grabbed the milk' or 'Bernhard is yellow' but not both then Julius is gray. It is probably the case that if 'Bernhard is yellow and Mary grabbed the milk' then Sumit is thirsty. There is little chance that if 'Brian is white' or 'Mary grabbed the milk' or both then Jessica is a mouse.
It is probably not the case that either 'Brian is white' or 'Bernhard is yellow' but not both.
It is probably not the case that either 'Brian is white' or 'Bernhard is yellow' but not both.
It is probable that either 'Brian is white' or 'Bernhard is yellow' 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.8::factA.
  0.75::factB.
  0.7::factC.
  %hop1
  0.8::factX:-xor(factC,factA).
  0.7::factY:-and(factA,factC).
  0.1::factZ:-or(factB,factC).

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

  query(conclusion).
  
Either 'Brian is white' or 'Bernhard is yellow' but not both.