It is improbable that Julius is a frog. It is likely that Mary went to the hallway. It is improbable that Brian is white. It is impossible that if 'Julius is a frog' or 'Mary went to the hallway' or both then Jeff discarded the milk. There is a very good chance that if 'Mary went to the hallway' or 'Brian is white' or both then John picked up the apple. There is a better than even chance that if 'Julius is a frog and Brian is white' then Greg is gray.
There is little chance that either 'Brian is white' or 'Greg is gray' but not both.
There is little chance that either 'Brian is white' or 'Greg is gray' but not both.
It is probable that either 'Brian is white' or 'Greg is gray' 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.1::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.0::factX:-or(factA,factB).
  0.8::factY:-or(factB,factC).
  0.6::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Brian is white' or 'Greg is gray' but not both.