It is probably not the case that John picked up the apple. It is unlikely that Brian is a rhino. It is likely that Greg is a lion. There is a very good chance that if either 'Greg is a lion' or 'Brian is a rhino' but not both then Sandra got the football. We doubt that if 'John picked up the apple and Greg is a lion' then Lily is a swan. It is impossible that if 'John picked up the apple and Greg is a lion' then Julius is gray.
It is almost certain that 'Sandra got the football and Julius is gray'.
It is impossible that 'Sandra got the football and Julius is gray'.
It is almost certain that 'Sandra got the football and Julius 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.25::factA.
  0.2::factB.
  0.7::factC.
  %hop1
  0.8::factX:-xor(factC,factB).
  0.2::factY:-and(factA,factC).
  0.0::factZ:-and(factA,factC).

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

  query(conclusion).
  
'Sandra got the football and Julius is gray'.