It is almost certain that Jessica is a cat. It is certain that Lily is a lion. It is highly unlikely that Julius is white. It is almost certain that if 'Lily is a lion and Jessica is a cat' then Brian is yellow. There is little chance that if either 'Lily is a lion' or 'Julius is white' but not both then Greg is a frog. It is highly unlikely that if either 'Lily is a lion' or 'Julius is white' but not both then John took the apple.
It is highly unlikely that 'John took the apple and Brian is yellow'.
It is highly unlikely that 'John took the apple and Brian is yellow'.
There is a very good chance that 'John took the apple and Brian is yellow'.

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

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

  query(conclusion).
  
'John took the apple and Brian is yellow'.