There is a better than even chance that Julius is gray. There is little chance that Yann is hungry. Chances are slight that Winona is a wolf. It is probably not the case that if 'Yann is hungry' or 'Julius is gray' or both then Fred went to the office. We doubt that if either 'Yann is hungry' or 'Julius is gray' but not both then Mary dropped the milk. It is highly likely that if either 'Julius is gray' or 'Winona is a wolf' but not both then Greg is a swan.
There is almost no chance that 'Mary dropped the milk' or 'Greg is a swan' or both.
Chances are about even that 'Mary dropped the milk' or 'Greg is a swan' or both.
There is almost no chance that 'Mary dropped the milk' or 'Greg is a swan' 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.1::factB.
  0.1::factC.
  %hop1
  0.25::factX:-or(factB,factA).
  0.2::factY:-xor(factB,factA).
  0.9::factZ:-xor(factA,factC).

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

  query(conclusion).
  
'Mary dropped the milk' or 'Greg is a swan' or both.