Chances are about even that Sandra took the milk. It is probably not the case that Gertrude is a wolf. It is highly likely that Mary went to the bedroom. It is likely that if either 'Mary went to the bedroom' or 'Sandra took the milk' but not both then Julius is gray. It is almost certain that if 'Mary went to the bedroom' or 'Gertrude is a wolf' or both then Brian is a swan. It is highly likely that if 'Mary went to the bedroom and Sandra took the milk' then Greg is a swan.
It is almost certain that 'Sandra took the milk' or 'Greg is a swan' or both.
Chances are about even that 'Sandra took the milk' or 'Greg is a swan' or both.
It is almost certain that 'Sandra took 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.5::factA.
  0.25::factB.
  0.9::factC.
  %hop1
  0.7::factX:-xor(factC,factA).
  0.95::factY:-or(factC,factB).
  0.9::factZ:-and(factC,factA).

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

  query(conclusion).
  
'Sandra took the milk' or 'Greg is a swan' or both.