There is almost no chance that Mary got the football. We doubt that Daniel left the milk. There is little chance that Greg is yellow. We believe that if 'Daniel left the milk' or 'Greg is yellow' or both then Lily is a rhino. It is almost certain that if 'Mary got the football and Greg is yellow' then John went to the garden. It is probably the case that if 'Greg is yellow and Daniel left the milk' then Bernhard is a frog.
We doubt that either 'Lily is a rhino' or 'Greg is yellow' but not both.
We doubt that either 'Lily is a rhino' or 'Greg is yellow' but not both.
It is certain that either 'Lily is a rhino' or 'Greg 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.02::factA.
  0.2::factB.
  0.1::factC.
  %hop1
  0.75::factX:-or(factB,factC).
  0.95::factY:-and(factA,factC).
  0.7::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Lily is a rhino' or 'Greg is yellow' but not both.