It is highly likely that Greg is gray. There is a better than even chance that Mary left the milk. It is likely that Brian is green. It is highly likely that if 'Brian is green' or 'Greg is gray' or both then Jeff dropped the apple. It is certain that if either 'Brian is green' or 'Greg is gray' but not both then Julius is a rhino. It is probably not the case that if 'Brian is green and Mary left the milk' then Lily is a swan.
It is highly likely that either 'Greg is gray' or 'Jeff dropped the apple' but not both.
It is unlikely that either 'Greg is gray' or 'Jeff dropped the apple' but not both.
It is highly likely that either 'Greg is gray' or 'Jeff dropped the apple' 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.9::factA.
  0.6::factB.
  0.7::factC.
  %hop1
  0.9::factX:-or(factC,factA).
  1.0::factY:-xor(factC,factA).
  0.25::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Greg is gray' or 'Jeff dropped the apple' but not both.