It is likely that Greg is a rhino. There is a very good chance that John went to the bedroom. There is little chance that Fred moved to the office. It is impossible that if 'Fred moved to the office' or 'Greg is a rhino' or both then Julius is a lion. We doubt that if 'Greg is a rhino' or 'Fred moved to the office' or both then Emily is a wolf. It is probably the case that if 'Fred moved to the office' or 'Greg is a rhino' or both then Sandra left the apple.
We believe that either 'Fred moved to the office' or 'John went to the bedroom' but not both.
We believe that either 'Fred moved to the office' or 'John went to the bedroom' but not both.
It is impossible that either 'Fred moved to the office' or 'John 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.7::factA.
  0.8::factB.
  0.1::factC.
  %hop1
  0.0::factX:-or(factC,factA).
  0.2::factY:-or(factA,factC).
  0.7::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Fred moved to the office' or 'John went to the bedroom' but not both.