It is certain that John grabbed the apple. It is probably not the case that Fred left the football. There is a very good chance that Daniel took the milk. It is improbable that if either 'Daniel took the milk' or 'Fred left the football' but not both then Brian is gray. It is probably the case that if 'John grabbed the apple' or 'Fred left the football' or both then Bernhard is a frog. There is a very good chance that if either 'John grabbed the apple' or 'Daniel took the milk' but not both then Julius is green.
It is probably the case that either 'Brian is gray' or 'Julius is green' but not both.
It is unlikely that either 'Brian is gray' or 'Julius is green' but not both.
It is probably the case that either 'Brian is gray' 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
  1.0::factA.
  0.25::factB.
  0.8::factC.
  %hop1
  0.1::factX:-xor(factC,factB).
  0.7::factY:-or(factA,factB).
  0.8::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Brian is gray' or 'Julius is green' but not both.