It is highly unlikely that Lily is yellow. It is highly likely that Greg is gray. It is likely that John went to the office. We doubt that if either 'Lily is yellow' or 'John went to the office' but not both then Jason is tired. We doubt that if either 'Lily is yellow' or 'Greg is gray' but not both then Julius is a frog. It is probable that if 'Lily is yellow and John went to the office' then Bernhard is a swan.
It is probable that 'John went to the office' or 'Lily is yellow' or both.
It is probable that 'John went to the office' or 'Lily is yellow' or both.
It is improbable that 'John went to the office' 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.05::factA.
  0.9::factB.
  0.7::factC.
  %hop1
  0.2::factX:-xor(factA,factC).
  0.2::factY:-xor(factA,factB).
  0.7::factZ:-and(factA,factC).

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

  query(conclusion).
  
'John went to the office' or 'Lily is yellow' or both.