It is highly likely that John took the apple. It is highly unlikely that Bernhard is green. It is probably not the case that Mary went to the office. There is little chance that if 'Bernhard is green' or 'John took the apple' or both then Greg is a swan. It is probable that if 'John took the apple and Mary went to the office' then Brian is a rhino. It is almost certain that if either 'Bernhard is green' or 'Mary went to the office' but not both then Lily is a lion.
It is impossible that 'Greg is a swan and Bernhard is green'.
It is impossible that 'Greg is a swan and Bernhard is green'.
There is a very good chance that 'Greg is a swan 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.9::factA.
  0.05::factB.
  0.25::factC.
  %hop1
  0.1::factX:-or(factB,factA).
  0.7::factY:-and(factA,factC).
  0.95::factZ:-xor(factB,factC).

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

  query(conclusion).
  
'Greg is a swan and Bernhard is green'.