It is probable that John picked up the apple. It is highly likely that Daniel put down the milk. It is unlikely that Mary left the football. It is likely that if either 'John picked up the apple' or 'Daniel put down the milk' but not both then Julius is a swan. There is a very good chance that if either 'Mary left the football' or 'Daniel put down the milk' but not both then Greg is a lion. We believe that if either 'Mary left the football' or 'Daniel put down the milk' but not both then Lily is white.
It is likely that 'Julius is a swan and Lily is white'.
It is improbable that 'Julius is a swan and Lily is white'.
It is likely that 'Julius is a swan and Lily is white'.

  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.2::factC.
  %hop1
  0.7::factX:-xor(factA,factB).
  0.8::factY:-xor(factC,factB).
  0.75::factZ:-xor(factC,factB).

  %hop2
  conclusion:-and(factX,factZ).

  query(conclusion).
  
'Julius is a swan and Lily is white'.