It is highly unlikely that Sumit is tired. It is impossible that Brian is a rhino. It is probably not the case that Mary left the football. There is a very good chance that if 'Mary left the football and Brian is a rhino' then John went to the bedroom. It is almost certain that if either 'Sumit is tired' or 'Brian is a rhino' but not both then Daniel got the milk. It is certain that if either 'Brian is a rhino' or 'Sumit is tired' but not both then Bernhard is gray.
It is likely that either 'John went to the bedroom' or 'Mary left the football' but not both.
It is probably not the case that either 'John went to the bedroom' or 'Mary left the football' but not both.
It is likely that either 'John went to the bedroom' or 'Mary left the football' 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.05::factA.
  0.0::factB.
  0.25::factC.
  %hop1
  0.8::factX:-and(factC,factB).
  0.95::factY:-xor(factA,factB).
  1.0::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'John went to the bedroom' or 'Mary left the football' but not both.