We believe that Jason is tired. It is impossible that Sandra grabbed the milk. Chances are about even that Julius is a swan. It is probable that if 'Jason is tired' or 'Sandra grabbed the milk' or both then Bernhard is a lion. It is almost certain that if 'Julius is a swan' or 'Jason is tired' or both then John took the apple. There is a better than even chance that if either 'Sandra grabbed the milk' or 'Julius is a swan' but not both then Greg is yellow.
It is impossible that 'Sandra grabbed the milk and John took the apple'.
It is impossible that 'Sandra grabbed the milk and John took the apple'.
There is a better than even chance that 'Sandra grabbed the milk and John took the apple'.

  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.0::factB.
  0.5::factC.
  %hop1
  0.7::factX:-or(factA,factB).
  0.95::factY:-or(factC,factA).
  0.6::factZ:-xor(factB,factC).

  %hop2
  conclusion:-and(factB,factY).

  query(conclusion).
  
'Sandra grabbed the milk and John took the apple'.