There is a very good chance that Bernhard is gray. Chances are about even that Greg is a swan. There is almost no chance that Jeff went to the hallway. It is likely that if either 'Jeff went to the hallway' or 'Greg is a swan' but not both then Brian is a rhino. It is impossible that if either 'Jeff went to the hallway' or 'Bernhard is gray' but not both then Julius is white. It is probable that if 'Greg is a swan and Jeff went to the hallway' then John moved to the office.
It is impossible that 'Jeff went to the hallway and Julius is white'.
It is impossible that 'Jeff went to the hallway and Julius is white'.
We believe that 'Jeff went to the hallway and Julius is white'.

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

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

  query(conclusion).
  
'Jeff went to the hallway and Julius is white'.