context: We believe that Sandra dropped the milk. Chances are about even that Sumit is bored. It is highly likely that John got the milk. We believe that if 'Sandra dropped the milk' or 'Sumit is bored' or both then Julius is a rhino. It is highly likely that if 'Sumit is bored and Sandra dropped the milk' then Bernhard is yellow. We believe that if either 'Sandra dropped the milk' or 'John got the milk' but not both then Greg is a frog.
hypothesis: Chances are about even that either 'John got the milk' or 'Sumit is bored' but not both.
valid_hypothesis: Chances are about even that either 'John got the milk' or 'Sumit is bored' but not both.
invalid_hypothesis: It is certain that either 'John got the milk' or 'Sumit is bored' but not both.
problog: 
    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.75::factA.
    0.5::factB.
    0.9::factC.
    %hop1
    0.75::factX:-or(factA,factB).
    0.9::factY:-and(factB,factA).
    0.75::factZ:-xor(factA,factC).
  
    %hop2
    conclusion:-xor(factC,factB).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John got the milk' or 'Sumit is bored' but not both.