We believe that John went to the office. It is likely that Bernhard is yellow. Chances are about even that Julius is white. It is probably the case that if 'John went to the office' or 'Bernhard is yellow' or both then Mary grabbed the milk. It is likely that if either 'Bernhard is yellow' or 'Julius is white' but not both then Sandra left the milk. There is a better than even chance that if either 'Bernhard is yellow' or 'Julius is white' but not both then Jessica is a mouse.
It is probably not the case that 'John went to the office and Sandra left the milk'.
It is probably not the case that 'John went to the office and Sandra left the milk'.
We believe that 'John went to the office and Sandra left the milk'.

  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.7::factB.
  0.5::factC.
  %hop1
  0.7::factX:-or(factA,factB).
  0.7::factY:-xor(factB,factC).
  0.6::factZ:-xor(factB,factC).

  %hop2
  conclusion:-and(factA,factY).

  query(conclusion).
  
'John went to the office and Sandra left the milk'.