We doubt that Sandra dropped the milk. Chances are slight that Brian is gray. It is probably the case that Yann is tired. There is almost no chance that if 'Brian is gray and Yann is tired' then Lily is a frog. It is probably not the case that if either 'Yann is tired' or 'Brian is gray' but not both then Julius is green. It is highly likely that if 'Sandra dropped the milk' or 'Brian is gray' or both then John moved to the office.
It is likely that 'Julius is green' or 'Brian is gray' or both.
It is probably not the case that 'Julius is green' or 'Brian is gray' or both.
It is likely that 'Julius is green' or 'Brian is gray' or both.

  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.2::factA.
  0.1::factB.
  0.7::factC.
  %hop1
  0.02::factX:-and(factB,factC).
  0.25::factY:-xor(factC,factB).
  0.9::factZ:-or(factA,factB).

  %hop2
  conclusion:-or(factY,factB).

  query(conclusion).
  
'Julius is green' or 'Brian is gray' or both.