There is little chance that Bernhard is a swan. There is a very good chance that Lily is green. We doubt that John moved to the garden. It is highly unlikely that if either 'Bernhard is a swan' or 'John moved to the garden' but not both then Antoine is hungry. We believe that if 'John moved to the garden and Lily is green' then Brian is yellow. There is almost no chance that if 'John moved to the garden' or 'Lily is green' or both then Greg is gray.
It is probably not the case that 'Brian is yellow' or 'Lily is green' or both.
There is a very good chance that 'Brian is yellow' or 'Lily is green' or both.
It is probably not the case that 'Brian is yellow' or 'Lily is green' 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.8::factB.
  0.2::factC.
  %hop1
  0.05::factX:-xor(factA,factC).
  0.75::factY:-and(factC,factB).
  0.02::factZ:-or(factC,factB).

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

  query(conclusion).
  
'Brian is yellow' or 'Lily is green' or both.