There is a better than even chance that Mary moved to the office. It is probably not the case that Daniel left the milk. It is highly likely that Bernhard is yellow. Chances are slight that if 'Mary moved to the office' or 'Bernhard is yellow' or both then Greg is a frog. It is almost certain that if 'Bernhard is yellow and Daniel left the milk' then Julius is gray. We doubt that if either 'Mary moved to the office' or 'Daniel left the milk' but not both then John discarded the apple.
It is probably not the case that 'Julius is gray' or 'Greg is a frog' or both.
It is probably not the case that 'Julius is gray' or 'Greg is a frog' or both.
It is certain that 'Julius is gray' or 'Greg is a frog' 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.6::factA.
  0.25::factB.
  0.9::factC.
  %hop1
  0.1::factX:-or(factA,factC).
  0.95::factY:-and(factC,factB).
  0.2::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Julius is gray' or 'Greg is a frog' or both.