It is probably not the case that Julius is a swan. It is probably not the case that Mary went to the bedroom. It is highly unlikely that Daniel put down the milk. There is almost no chance that if either 'Mary went to the bedroom' or 'Julius is a swan' but not both then Bernhard is white. Chances are slight that if 'Mary went to the bedroom' or 'Julius is a swan' or both then Lily is gray. There is little chance that if 'Julius is a swan and Daniel put down the milk' then Brian is a frog.
It is impossible that 'Daniel put down the milk and Brian is a frog'.
It is impossible that 'Daniel put down the milk and Brian is a frog'.
It is likely that 'Daniel put down the milk and Brian is a frog'.

  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.25::factA.
  0.25::factB.
  0.05::factC.
  %hop1
  0.02::factX:-xor(factB,factA).
  0.1::factY:-or(factB,factA).
  0.1::factZ:-and(factA,factC).

  %hop2
  conclusion:-and(factC,factZ).

  query(conclusion).
  
'Daniel put down the milk and Brian is a frog'.