There is almost no chance that Bernhard is yellow. It is probable that Emily is a wolf. It is unlikely that John went to the office. It is likely that if either 'Bernhard is yellow' or 'Emily is a wolf' but not both then Greg is a rhino. It is impossible that if either 'John went to the office' or 'Bernhard is yellow' but not both then Mary got the apple. It is highly likely that if either 'John went to the office' or 'Emily is a wolf' but not both then Lily is a swan.
It is impossible that 'Mary got the apple and Emily is a wolf'.
It is impossible that 'Mary got the apple and Emily is a wolf'.
There is a better than even chance that 'Mary got the apple and Emily is a wolf'.

  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.02::factA.
  0.7::factB.
  0.2::factC.
  %hop1
  0.7::factX:-xor(factA,factB).
  0.0::factY:-xor(factC,factA).
  0.9::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Mary got the apple and Emily is a wolf'.