There is a better than even chance that Jessica is a sheep. It is certain that Lily is a frog. It is probably not the case that Julius is a rhino. It is highly unlikely that if 'Lily is a frog and Julius is a rhino' then John went to the bedroom. It is highly unlikely that if 'Jessica is a sheep and Julius is a rhino' then Bernhard is green. We believe that if either 'Lily is a frog' or 'Jessica is a sheep' but not both then Brian is white.
It is probably the case that either 'John went to the bedroom' or 'Brian is white' but not both.
It is probably not the case that either 'John went to the bedroom' or 'Brian is white' but not both.
It is probably the case that either 'John went to the bedroom' or 'Brian is white' 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.6::factA.
  1.0::factB.
  0.25::factC.
  %hop1
  0.05::factX:-and(factB,factC).
  0.05::factY:-and(factA,factC).
  0.75::factZ:-xor(factB,factA).

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

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