It is impossible that Julius is a rhino. It is impossible that Lily is a rhino. Chances are about even that Mary left the football. Chances are about even that if 'Mary left the football and Julius is a rhino' then Gertrude is a sheep. Chances are about even that if 'Julius is a rhino' or 'Lily is a rhino' or both then John went to the bedroom. It is highly unlikely that if 'Mary left the football' or 'Lily is a rhino' or both then Brian is yellow.
There is almost no chance that either 'John went to the bedroom' or 'Brian is yellow' but not both.
There is almost no chance that either 'John went to the bedroom' or 'Brian is yellow' but not both.
There is a better than even chance that either 'John went to the bedroom' or 'Brian 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.0::factA.
  0.0::factB.
  0.5::factC.
  %hop1
  0.5::factX:-and(factC,factA).
  0.5::factY:-or(factA,factB).
  0.05::factZ:-or(factC,factB).

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

  query(conclusion).
  
Either 'John went to the bedroom' or 'Brian is yellow' but not both.