It is highly unlikely that Yann is hungry. It is likely that John went to the hallway. There is a very good chance that Bernhard is green. It is unlikely that if 'John went to the hallway and Yann is hungry' then Emily is a wolf. It is probably the case that if either 'John went to the hallway' or 'Bernhard is green' but not both then Brian is yellow. It is almost certain that if 'John went to the hallway and Yann is hungry' then Lily is a rhino.
We doubt that 'Bernhard is green and Brian is yellow'.
We doubt that 'Bernhard is green and Brian is yellow'.
It is certain that 'Bernhard is green and Brian is yellow'.

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

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

  query(conclusion).
  
'Bernhard is green and Brian is yellow'.