We doubt that Julius is yellow. There is a very good chance that Yann is thirsty. It is highly unlikely that Mary went to the hallway. Chances are about even that if either 'Yann is thirsty' or 'Julius is yellow' but not both then Brian is gray. It is probably not the case that if 'Mary went to the hallway and Julius is yellow' then Bernhard is yellow. It is probable that if either 'Yann is thirsty' or 'Julius is yellow' but not both then John put down the milk.
It is certain that 'Bernhard is yellow and Mary went to the hallway'.
It is impossible that 'Bernhard is yellow and Mary went to the hallway'.
It is certain that 'Bernhard is yellow and Mary went to the hallway'.

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

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

  query(conclusion).
  
'Bernhard is yellow and Mary went to the hallway'.