It is almost certain that John moved to the garden. There is a better than even chance that Julius is yellow. We doubt that Mary went to the office. It is probably not the case that if 'John moved to the garden and Julius is yellow' then Sandra left the apple. There is a better than even chance that if 'Julius is yellow' or 'John moved to the garden' or both then Greg is a lion. There is little chance that if 'John moved to the garden and Mary went to the office' then Lily is a rhino.
There is a better than even chance that either 'Lily is a rhino' or 'Julius is yellow' but not both.
There is a better than even chance that either 'Lily is a rhino' or 'Julius is yellow' but not both.
Chances are slight that either 'Lily is a rhino' or 'Julius 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.6::factB.
  0.2::factC.
  %hop1
  0.25::factX:-and(factA,factB).
  0.6::factY:-or(factB,factA).
  0.1::factZ:-and(factA,factC).

  %hop2
  conclusion:-xor(factZ,factB).

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