There is a very good chance that Greg is a rhino. Chances are about even that Sumit is thirsty. Chances are slight that Mary went to the garden. There is little chance that if 'Greg is a rhino and Sumit is thirsty' then Daniel got the football. We doubt that if either 'Sumit is thirsty' or 'Mary went to the garden' but not both then John dropped the apple. It is highly unlikely that if either 'Sumit is thirsty' or 'Greg is a rhino' but not both then Lily is green.
We believe that either 'John dropped the apple' or 'Lily is green' but not both.
Chances are slight that either 'John dropped the apple' or 'Lily is green' but not both.
We believe that either 'John dropped the apple' or 'Lily is green' 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.8::factA.
  0.5::factB.
  0.1::factC.
  %hop1
  0.1::factX:-and(factA,factB).
  0.2::factY:-xor(factB,factC).
  0.05::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'John dropped the apple' or 'Lily is green' but not both.