context: It is almost certain that Sandra grabbed the apple. Chances are about even that Mary went to the bedroom. It is impossible that Daniel got the milk. There is little chance that if 'Sandra grabbed the apple' or 'Mary went to the bedroom' or both then Jeff moved to the office. Chances are about even that if 'Daniel got the milk and Sandra grabbed the apple' then Julius is a swan. There is a very good chance that if 'Sandra grabbed the apple and Mary went to the bedroom' then Emily is a wolf.
hypothesis: It is certain that either 'Emily is a wolf' or 'Julius is a swan' but not both.
valid_hypothesis: Chances are about even that either 'Emily is a wolf' or 'Julius is a swan' but not both.
invalid_hypothesis: It is certain that either 'Emily is a wolf' or 'Julius is a swan' 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.95::factA.
    0.5::factB.
    0.0::factC.
    %hop1
    0.1::factX:-or(factA,factB).
    0.5::factY:-and(factC,factA).
    0.8::factZ:-and(factA,factB).
  
    %hop2
    conclusion:-xor(factZ,factY).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Emily is a wolf' or 'Julius is a swan' but not both.