There is almost no chance that Mary moved to the office. It is improbable that Brian is yellow. It is highly likely that Julius is green. It is certain that if 'Julius is green' or 'Brian is yellow' or both then Winona is a wolf. Chances are about even that if either 'Brian is yellow' or 'Mary moved to the office' but not both then Bernhard is a rhino. It is improbable that if 'Brian is yellow and Julius is green' then Emily is a mouse.
It is likely that either 'Winona is a wolf' or 'Julius is green' but not both.
It is impossible that either 'Winona is a wolf' or 'Julius is green' but not both.
It is likely that either 'Winona is a wolf' or 'Julius 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.02::factA.
  0.1::factB.
  0.9::factC.
  %hop1
  1.0::factX:-or(factC,factB).
  0.5::factY:-xor(factB,factA).
  0.1::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'Winona is a wolf' or 'Julius is green' but not both.