Chances are about even that Jeff went to the bedroom. It is probably not the case that Brian is white. Chances are about even that Bernhard is gray. It is certain that if 'Bernhard is gray' or 'Brian is white' or both then Greg is a swan. It is impossible that if either 'Brian is white' or 'Bernhard is gray' but not both then Julius is gray. Chances are about even that if either 'Jeff went to the bedroom' or 'Brian is white' but not both then Emily is a cat.
Chances are about even that either 'Bernhard is gray' or 'Emily is a cat' but not both.
Chances are about even that either 'Bernhard is gray' or 'Emily is a cat' but not both.
There is almost no chance that either 'Bernhard is gray' or 'Emily is a cat' 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.5::factA.
  0.25::factB.
  0.5::factC.
  %hop1
  1.0::factX:-or(factC,factB).
  0.0::factY:-xor(factB,factC).
  0.5::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Bernhard is gray' or 'Emily is a cat' but not both.