We doubt that Mary put down the apple. It is almost certain that Greg is yellow. It is unlikely that Brian is a rhino. It is probably not the case that if either 'Greg is yellow' or 'Mary put down the apple' but not both then Sandra took the milk. It is almost certain that if either 'Mary put down the apple' or 'Brian is a rhino' but not both then Julius is a frog. It is almost certain that if either 'Greg is yellow' or 'Brian is a rhino' but not both then John went to the garden.
It is highly likely that either 'John went to the garden' or 'Brian is a rhino' but not both.
It is highly likely that either 'John went to the garden' or 'Brian is a rhino' but not both.
We doubt that either 'John went to the garden' or 'Brian 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.2::factA.
  0.95::factB.
  0.2::factC.
  %hop1
  0.25::factX:-xor(factB,factA).
  0.95::factY:-xor(factA,factC).
  0.95::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'John went to the garden' or 'Brian is a rhino' but not both.