It is probable that Julius is gray. It is highly likely that Brian is yellow. Chances are about even that Greg is a swan. There is a very good chance that if 'Julius is gray and Brian is yellow' then Gertrude is a mouse. It is improbable that if 'Julius is gray and Greg is a swan' then Lily is green. It is likely that if either 'Greg is a swan' or 'Brian is yellow' but not both then John left the apple.
It is impossible that 'Brian is yellow' or 'Lily is green' or both.
It is highly likely that 'Brian is yellow' or 'Lily is green' or both.
It is impossible 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.7::factA.
  0.9::factB.
  0.5::factC.
  %hop1
  0.8::factX:-and(factA,factB).
  0.1::factY:-and(factA,factC).
  0.7::factZ:-xor(factC,factB).

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

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