It is impossible that Jason is tired. It is probable that Yann is thirsty. It is probably not the case that Daniel got the milk. It is probable that if 'Yann is thirsty and Jason is tired' then Greg is yellow. It is highly unlikely that if either 'Jason is tired' or 'Yann is thirsty' but not both then Bernhard is green. It is probably not the case that if 'Yann is thirsty and Jason is tired' then Mary went to the hallway.
It is certain that 'Mary went to the hallway' or 'Daniel got the milk' or both.
It is probably not the case that 'Mary went to the hallway' or 'Daniel got the milk' or both.
It is certain that 'Mary went to the hallway' or 'Daniel got the milk' 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.0::factA.
  0.7::factB.
  0.25::factC.
  %hop1
  0.7::factX:-and(factB,factA).
  0.05::factY:-xor(factA,factB).
  0.25::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Mary went to the hallway' or 'Daniel got the milk' or both.