It is unlikely that Mary went to the office. It is probable that Brian is gray. It is certain that Greg is white. Chances are slight that if 'Mary went to the office and Greg is white' then Winona is a wolf. It is almost certain that if either 'Brian is gray' or 'Greg is white' but not both then Lily is a frog. It is likely that if either 'Mary went to the office' or 'Greg is white' but not both then Sandra took the milk.
It is probably not the case that 'Winona is a wolf' or 'Lily is a frog' or both.
It is probably not the case that 'Winona is a wolf' or 'Lily is a frog' or both.
It is highly likely that 'Winona is a wolf' or 'Lily 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.2::factA.
  0.7::factB.
  1.0::factC.
  %hop1
  0.1::factX:-and(factA,factC).
  0.95::factY:-xor(factB,factC).
  0.7::factZ:-xor(factA,factC).

  %hop2
  conclusion:-or(factX,factY).

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