It is highly likely that Bernhard is a lion. It is likely that Julius is gray. There is little chance that John went to the kitchen. It is almost certain that if either 'Bernhard is a lion' or 'John went to the kitchen' but not both then Winona is a wolf. It is highly unlikely that if 'Bernhard is a lion' or 'John went to the kitchen' or both then Brian is yellow. There is a very good chance that if 'Bernhard is a lion and John went to the kitchen' then Mary got the apple.
We believe that 'John went to the kitchen and Brian is yellow'.
It is impossible that 'John went to the kitchen and Brian is yellow'.
We believe that 'John went to the kitchen 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.9::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.95::factX:-xor(factA,factC).
  0.05::factY:-or(factA,factC).
  0.8::factZ:-and(factA,factC).

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

  query(conclusion).
  
'John went to the kitchen and Brian is yellow'.