It is improbable that Bernhard is green. We believe that Lily is yellow. It is improbable that Greg is a frog. It is probably not the case that if either 'Greg is a frog' or 'Bernhard is green' but not both then Sumit is thirsty. There is a better than even chance that if either 'Bernhard is green' or 'Lily is yellow' but not both then Mary went to the hallway. There is almost no chance that if 'Bernhard is green and Greg is a frog' then Julius is gray.
It is impossible that 'Julius is gray and Sumit is thirsty'.
It is impossible that 'Julius is gray and Sumit is thirsty'.
It is highly likely that 'Julius is gray and Sumit is thirsty'.

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

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

  query(conclusion).
  
'Julius is gray and Sumit is thirsty'.