Chances are slight that Emily is a sheep. It is highly likely that Antoine is hungry. There is a very good chance that Greg is yellow. It is probably the case that if 'Emily is a sheep' or 'Antoine is hungry' or both then Brian is green. It is probably not the case that if 'Greg is yellow' or 'Emily is a sheep' or both then John discarded the apple. It is probably not the case that if 'Emily is a sheep and Antoine is hungry' then Daniel dropped the milk.
It is highly unlikely that either 'Daniel dropped the milk' or 'Brian is green' but not both.
There is a better than even chance that either 'Daniel dropped the milk' or 'Brian is green' but not both.
It is highly unlikely that either 'Daniel dropped the milk' or 'Brian 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.1::factA.
  0.9::factB.
  0.8::factC.
  %hop1
  0.7::factX:-or(factA,factB).
  0.25::factY:-or(factC,factA).
  0.25::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Daniel dropped the milk' or 'Brian is green' but not both.