It is unlikely that Brian is yellow. It is unlikely that Lily is a frog. It is impossible that Bill went to the office. It is improbable that if 'Bill went to the office and Brian is yellow' then Greg is a swan. It is certain that if either 'Lily is a frog' or 'Bill went to the office' but not both then Bernhard is a lion. Chances are about even that if 'Brian is yellow' or 'Bill went to the office' or both then Julius is green.
It is probably not the case that either 'Bernhard is a lion' or 'Julius is green' but not both.
It is probably not the case that either 'Bernhard is a lion' or 'Julius is green' but not both.
It is certain that either 'Bernhard is a lion' or 'Julius is green' 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.2::factA.
  0.2::factB.
  0.0::factC.
  %hop1
  0.1::factX:-and(factC,factA).
  1.0::factY:-xor(factB,factC).
  0.5::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Bernhard is a lion' or 'Julius is green' but not both.