It is almost certain that Julius is gray. It is highly likely that Lily is a rhino. There is a better than even chance that Mary dropped the apple. It is certain that if 'Mary dropped the apple' or 'Julius is gray' or both then Jeff went to the bedroom. It is certain that if 'Julius is gray' or 'Mary dropped the apple' or both then Greg is a lion. There is little chance that if either 'Lily is a rhino' or 'Julius is gray' but not both then Emily is a mouse.
It is improbable that either 'Greg is a lion' or 'Lily is a rhino' but not both.
It is improbable that either 'Greg is a lion' or 'Lily is a rhino' but not both.
It is almost certain that either 'Greg is a lion' or 'Lily is a rhino' 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.9::factB.
  0.6::factC.
  %hop1
  1.0::factX:-or(factC,factA).
  1.0::factY:-or(factA,factC).
  0.1::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'Greg is a lion' or 'Lily is a rhino' but not both.