It is probably the case that Mary went to the kitchen. It is highly likely that Sandra dropped the apple. We believe that Greg is a rhino. It is probable that if either 'Greg is a rhino' or 'Sandra dropped the apple' but not both then Julius is a swan. It is probably not the case that if 'Sandra dropped the apple' or 'Greg is a rhino' or both then Brian is gray. It is highly unlikely that if either 'Sandra dropped the apple' or 'Mary went to the kitchen' but not both then Daniel took the football.
It is impossible that 'Sandra dropped the apple' or 'Greg is a rhino' or both.
It is certain that 'Sandra dropped the apple' or 'Greg is a rhino' or both.
It is impossible that 'Sandra dropped the apple' or 'Greg is a rhino' 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.7::factA.
  0.9::factB.
  0.75::factC.
  %hop1
  0.7::factX:-xor(factC,factB).
  0.25::factY:-or(factB,factC).
  0.05::factZ:-xor(factB,factA).

  %hop2
  conclusion:-or(factB,factC).

  query(conclusion).
  
'Sandra dropped the apple' or 'Greg is a rhino' or both.