It is probably the case that Bernhard is yellow. Chances are slight that Gertrude is a sheep. It is almost certain that Bill went to the garden. It is highly likely that if 'Gertrude is a sheep and Bernhard is yellow' then Yann is tired. We doubt that if either 'Bill went to the garden' or 'Gertrude is a sheep' but not both then Julius is white. It is probably not the case that if 'Gertrude is a sheep' or 'Bernhard is yellow' or both then Greg is green.
There is almost no chance that either 'Bill went to the garden' or 'Yann is tired' but not both.
It is highly likely that either 'Bill went to the garden' or 'Yann is tired' but not both.
There is almost no chance that either 'Bill went to the garden' or 'Yann is tired' 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.7::factA.
  0.1::factB.
  0.95::factC.
  %hop1
  0.9::factX:-and(factB,factA).
  0.2::factY:-xor(factC,factB).
  0.25::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Bill went to the garden' or 'Yann is tired' but not both.