It is improbable that Bernhard is green. We doubt that Greg is gray. It is almost certain that Lily is green. It is unlikely that if either 'Greg is gray' or 'Lily is green' but not both then Brian is yellow. There is a very good chance that if 'Bernhard is green and Lily is green' then Jessica is a cat. It is unlikely that if 'Bernhard is green' or 'Lily is green' or both then John took the apple.
It is improbable that 'Jessica is a cat and Bernhard is green'.
It is improbable that 'Jessica is a cat and Bernhard is green'.
There is a better than even chance that 'Jessica is a cat and Bernhard is green'.

  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.1::factA.
  0.2::factB.
  0.95::factC.
  %hop1
  0.2::factX:-xor(factB,factC).
  0.8::factY:-and(factA,factC).
  0.2::factZ:-or(factA,factC).

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

  query(conclusion).
  
'Jessica is a cat and Bernhard is green'.