We believe that Winona is a sheep. It is probable that Brian is yellow. It is probably not the case that Greg is white. There is a very good chance that if 'Winona is a sheep and Brian is yellow' then John took the football. It is probable that if 'Greg is white' or 'Brian is yellow' or both then Mary put down the apple. We believe that if either 'Winona is a sheep' or 'Brian is yellow' but not both then Jessica is a cat.
There is almost no chance that either 'Winona is a sheep' or 'Greg is white' but not both.
There is a better than even chance that either 'Winona is a sheep' or 'Greg is white' but not both.
There is almost no chance that either 'Winona is a sheep' or 'Greg is white' 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.75::factA.
  0.7::factB.
  0.25::factC.
  %hop1
  0.8::factX:-and(factA,factB).
  0.7::factY:-or(factC,factB).
  0.75::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Winona is a sheep' or 'Greg is white' but not both.