It is unlikely that Brian is a frog. It is highly likely that Jason is tired. It is highly unlikely that Greg is green. It is highly unlikely that if 'Brian is a frog' or 'Greg is green' or both then Fred moved to the office. Chances are slight that if either 'Brian is a frog' or 'Greg is green' but not both then Lily is yellow. It is impossible that if 'Brian is a frog' or 'Jason is tired' or both then Mary dropped the apple.
It is almost certain that 'Lily is yellow and Mary dropped the apple'.
It is impossible that 'Lily is yellow and Mary dropped the apple'.
It is almost certain that 'Lily is yellow and Mary dropped the apple'.

  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.2::factA.
  0.9::factB.
  0.05::factC.
  %hop1
  0.05::factX:-or(factA,factC).
  0.1::factY:-xor(factA,factC).
  0.0::factZ:-or(factA,factB).

  %hop2
  conclusion:-and(factY,factZ).

  query(conclusion).
  
'Lily is yellow and Mary dropped the apple'.