It is highly unlikely that Sandra left the milk. It is probable that Mary went to the office. There is almost no chance that Bernhard is yellow. Chances are slight that if 'Mary went to the office and Bernhard is yellow' then Julius is a swan. There is little chance that if 'Mary went to the office and Bernhard is yellow' then Brian is green. It is almost certain that if 'Sandra left the milk and Mary went to the office' then Greg is a rhino.
It is probably the case that 'Julius is a swan and Mary went to the office'.
It is impossible that 'Julius is a swan and Mary went to the office'.
It is probably the case that 'Julius is a swan and Mary went to the office'.

  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.02::factC.
  %hop1
  0.1::factX:-and(factB,factC).
  0.1::factY:-and(factB,factC).
  0.95::factZ:-and(factA,factB).

  %hop2
  conclusion:-and(factX,factB).

  query(conclusion).
  
'Julius is a swan and Mary went to the office'.