It is highly unlikely that John went to the hallway. It is impossible that Julius is a swan. There is almost no chance that Winona is a wolf. It is probably the case that if 'Julius is a swan' or 'John went to the hallway' or both then Jeff moved to the garden. There is little chance that if either 'Winona is a wolf' or 'John went to the hallway' but not both then Bernhard is gray. It is improbable that if 'Julius is a swan and John went to the hallway' then Mary got the milk.
There is a very good chance that 'Mary got the milk' or 'John went to the hallway' or both.
It is highly unlikely that 'Mary got the milk' or 'John went to the hallway' or both.
There is a very good chance that 'Mary got the milk' or 'John went to the hallway' 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.05::factA.
  0.0::factB.
  0.02::factC.
  %hop1
  0.7::factX:-or(factB,factA).
  0.1::factY:-xor(factC,factA).
  0.1::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Mary got the milk' or 'John went to the hallway' or both.