It is probably not the case that Julius is a rhino. We doubt that Bill went to the bedroom. It is impossible that Bernhard is a frog. There is a very good chance that if 'Julius is a rhino' or 'Bernhard is a frog' or both then Antoine is hungry. It is probably not the case that if 'Bill went to the bedroom and Bernhard is a frog' then Lily is a lion. We doubt that if 'Julius is a rhino' or 'Bernhard is a frog' or both then John left the football.
There is a very good chance that either 'Bill went to the bedroom' or 'Antoine is hungry' but not both.
It is probably not the case that either 'Bill went to the bedroom' or 'Antoine is hungry' but not both.
There is a very good chance that either 'Bill went to the bedroom' or 'Antoine is hungry' 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.25::factA.
  0.2::factB.
  0.0::factC.
  %hop1
  0.8::factX:-or(factA,factC).
  0.25::factY:-and(factB,factC).
  0.2::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Bill went to the bedroom' or 'Antoine is hungry' but not both.