It is probable that Bernhard is gray. It is highly unlikely that Greg is a swan. Chances are slight that Winona is a wolf. There is almost no chance that if 'Greg is a swan' or 'Winona is a wolf' or both then Brian is green. There is a very good chance that if 'Winona is a wolf' or 'Greg is a swan' or both then Lily is a rhino. There is a very good chance that if either 'Winona is a wolf' or 'Greg is a swan' but not both then Mary got the apple.
There is little chance that 'Brian is green' or 'Mary got the apple' or both.
There is little chance that 'Brian is green' or 'Mary got the apple' or both.
It is probably the case that 'Brian is green' or 'Mary got the apple' 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.7::factA.
  0.05::factB.
  0.1::factC.
  %hop1
  0.02::factX:-or(factB,factC).
  0.8::factY:-or(factC,factB).
  0.8::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Brian is green' or 'Mary got the apple' or both.