It is highly unlikely that Bernhard is green. It is likely that Jeff went to the bedroom. It is highly likely that John left the apple. It is highly unlikely that if either 'Jeff went to the bedroom' or 'John left the apple' but not both then Jessica is a cat. It is probably not the case that if 'John left the apple' or 'Jeff went to the bedroom' or both then Daniel dropped the milk. It is almost certain that if 'John left the apple' or 'Jeff went to the bedroom' or both then Greg is a rhino.
It is probably not the case that 'Jessica is a cat' or 'Daniel dropped the milk' or both.
It is probably not the case that 'Jessica is a cat' or 'Daniel dropped the milk' or both.
It is probable that 'Jessica is a cat' or 'Daniel dropped the milk' or 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.05::factA.
  0.7::factB.
  0.9::factC.
  %hop1
  0.05::factX:-xor(factB,factC).
  0.25::factY:-or(factC,factB).
  0.95::factZ:-or(factC,factB).

  %hop2
  conclusion:-or(factX,factY).

  query(conclusion).
  
'Jessica is a cat' or 'Daniel dropped the milk' or both.