Chances are slight that Jeff dropped the apple. It is probably the case that Bill left the milk. It is highly likely that Mary went to the office. It is highly likely that if 'Mary went to the office' or 'Bill left the milk' or both then John moved to the garden. There is almost no chance that if 'Jeff dropped the apple' or 'Mary went to the office' or both then Jessica is a mouse. It is almost certain that if either 'Bill left the milk' or 'Jeff dropped the apple' but not both then Bernhard is a rhino.
It is almost certain that 'John moved to the garden' or 'Bernhard is a rhino' or both.
It is almost certain that 'John moved to the garden' or 'Bernhard is a rhino' or both.
It is probably not the case that 'John moved to the garden' or 'Bernhard is a rhino' 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.1::factA.
  0.7::factB.
  0.9::factC.
  %hop1
  0.9::factX:-or(factC,factB).
  0.02::factY:-or(factA,factC).
  0.95::factZ:-xor(factB,factA).

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

  query(conclusion).
  
'John moved to the garden' or 'Bernhard is a rhino' or both.