It is probable that Bill left the milk. It is certain that Greg is a rhino. It is improbable that Julius is a lion. Chances are about even that if either 'Greg is a rhino' or 'Julius is a lion' but not both then Bernhard is a frog. It is probably not the case that if 'Bill left the milk and Greg is a rhino' then Lily is gray. It is likely that if either 'Greg is a rhino' or 'Julius is a lion' but not both then John discarded the apple.
It is improbable that 'John discarded the apple and Lily is gray'.
It is improbable that 'John discarded the apple and Lily is gray'.
It is probable that 'John discarded the apple and Lily is gray'.

  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.
  1.0::factB.
  0.1::factC.
  %hop1
  0.5::factX:-xor(factB,factC).
  0.25::factY:-and(factA,factB).
  0.7::factZ:-xor(factB,factC).

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

  query(conclusion).
  
'John discarded the apple and Lily is gray'.