It is certain that Mary went to the bedroom. It is almost certain that Greg is gray. Chances are slight that Bernhard is a rhino. It is probable that if either 'Mary went to the bedroom' or 'Greg is gray' but not both then Daniel took the milk. There is almost no chance that if either 'Greg is gray' or 'Mary went to the bedroom' but not both then Jeff moved to the office. There is a very good chance that if either 'Bernhard is a rhino' or 'Greg is gray' but not both then Julius is white.
It is likely that 'Jeff moved to the office and Julius is white'.
It is impossible that 'Jeff moved to the office and Julius is white'.
It is likely that 'Jeff moved to the office 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
  1.0::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.7::factX:-xor(factA,factB).
  0.02::factY:-xor(factB,factA).
  0.8::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Jeff moved to the office and Julius is white'.