There is little chance that Lily is green. It is likely that Emily is a sheep. It is improbable that Sumit is thirsty. There is little chance that if either 'Lily is green' or 'Sumit is thirsty' but not both then Brian is white. It is probably not the case that if 'Sumit is thirsty and Emily is a sheep' then Daniel grabbed the milk. Chances are slight that if either 'Sumit is thirsty' or 'Lily is green' but not both then Bernhard is a swan.
It is highly likely that 'Daniel grabbed the milk and Bernhard is a swan'.
It is impossible that 'Daniel grabbed the milk and Bernhard is a swan'.
It is highly likely that 'Daniel grabbed the milk and Bernhard is a swan'.

  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.7::factB.
  0.1::factC.
  %hop1
  0.1::factX:-xor(factA,factC).
  0.25::factY:-and(factC,factB).
  0.1::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Daniel grabbed the milk and Bernhard is a swan'.