It is almost certain that Fred dropped the milk. It is probably the case that Greg is green. It is certain that John went to the garden. It is unlikely that if either 'Fred dropped the milk' or 'Greg is green' but not both then Bernhard is yellow. There is a better than even chance that if either 'Fred dropped the milk' or 'Greg is green' but not both then Lily is a rhino. It is improbable that if 'Fred dropped the milk and John went to the garden' then Brian is white.
It is likely that either 'Lily is a rhino' or 'Bernhard is yellow' but not both.
We doubt that either 'Lily is a rhino' or 'Bernhard is yellow' but not both.
It is likely that either 'Lily is a rhino' or 'Bernhard is yellow' but not both.

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

  %hop2
  conclusion:-xor(factY,factX).

  query(conclusion).
  
Either 'Lily is a rhino' or 'Bernhard is yellow' but not both.