There is little chance that Brian is green. It is almost certain that Julius is a swan. We believe that Greg is a swan. It is almost certain that if 'Brian is green' or 'Greg is a swan' or both then Lily is yellow. It is probable that if 'Brian is green and Greg is a swan' then Winona is a mouse. It is impossible that if 'Julius is a swan and Brian is green' then Mary took the milk.
There is almost no chance that 'Mary took the milk' or 'Lily is yellow' or both.
We believe that 'Mary took the milk' or 'Lily is yellow' or both.
There is almost no chance that 'Mary took the milk' or 'Lily is yellow' 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.95::factB.
  0.75::factC.
  %hop1
  0.95::factX:-or(factA,factC).
  0.7::factY:-and(factA,factC).
  0.0::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Mary took the milk' or 'Lily is yellow' or both.