It is probable that Jessica is a wolf. It is almost certain that Brian is a rhino. There is a very good chance that Julius is gray. It is probably the case that if 'Brian is a rhino and Jessica is a wolf' then Bernhard is green. There is a very good chance that if 'Brian is a rhino and Julius is gray' then Greg is a frog. It is impossible that if 'Julius is gray and Brian is a rhino' then John went to the kitchen.
It is impossible that 'John went to the kitchen and Bernhard is green'.
It is impossible that 'John went to the kitchen and Bernhard is green'.
It is almost certain that 'John went to the kitchen and Bernhard is green'.

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

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

  query(conclusion).
  
'John went to the kitchen and Bernhard is green'.