We believe that Mary moved to the office. We believe that Jessica is a mouse. It is highly unlikely that Daniel got the apple. Chances are slight that if either 'Daniel got the apple' or 'Mary moved to the office' but not both then Yann is thirsty. It is probably not the case that if 'Jessica is a mouse' or 'Mary moved to the office' or both then Brian is gray. There is a very good chance that if 'Mary moved to the office and Jessica is a mouse' then Jeff discarded the milk.
It is probably the case that 'Brian is gray and Jeff discarded the milk'.
There is little chance that 'Brian is gray and Jeff discarded the milk'.
It is probably the case that 'Brian is gray and Jeff discarded the milk'.

  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.75::factA.
  0.75::factB.
  0.05::factC.
  %hop1
  0.1::factX:-xor(factC,factA).
  0.25::factY:-or(factB,factA).
  0.8::factZ:-and(factA,factB).

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

  query(conclusion).
  
'Brian is gray and Jeff discarded the milk'.