There is little chance that Winona is a wolf. We believe that Jeff moved to the garden. It is probably not the case that Mary went to the office. It is likely that if either 'Mary went to the office' or 'Jeff moved to the garden' but not both then Greg is a lion. It is probably not the case that if either 'Winona is a wolf' or 'Mary went to the office' but not both then John picked up the apple. It is highly likely that if either 'Mary went to the office' or 'Jeff moved to the garden' but not both then Brian is a frog.
There is a better than even chance that 'Winona is a wolf' or 'Brian is a frog' or both.
There is a better than even chance that 'Winona is a wolf' or 'Brian is a frog' or both.
It is impossible that 'Winona is a wolf' or 'Brian is a frog' or 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.75::factB.
  0.25::factC.
  %hop1
  0.7::factX:-xor(factC,factB).
  0.25::factY:-xor(factA,factC).
  0.9::factZ:-xor(factC,factB).

  %hop2
  conclusion:-or(factA,factZ).

  query(conclusion).
  
'Winona is a wolf' or 'Brian is a frog' or both.