It is highly likely that Brian is gray. We doubt that Daniel took the apple. There is a better than even chance that Bernhard is a rhino. It is certain that if either 'Brian is gray' or 'Bernhard is a rhino' but not both then Bill left the milk. It is impossible that if 'Brian is gray' or 'Daniel took the apple' or both then Mary moved to the office. There is little chance that if either 'Bernhard is a rhino' or 'Daniel took the apple' but not both then Lily is a lion.
It is highly unlikely that 'Lily is a lion and Bernhard is a rhino'.
It is highly unlikely that 'Lily is a lion and Bernhard is a rhino'.
There is a better than even chance that 'Lily is a lion and Bernhard is a rhino'.

  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.2::factB.
  0.6::factC.
  %hop1
  1.0::factX:-xor(factA,factC).
  0.0::factY:-or(factA,factB).
  0.1::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Lily is a lion and Bernhard is a rhino'.