It is highly unlikely that Mary moved to the garden. It is impossible that Julius is gray. It is likely that Lily is green. It is certain that if 'Julius is gray' or 'Lily is green' or both then John dropped the milk. It is highly likely that if either 'Julius is gray' or 'Lily is green' but not both then Daniel got the milk. We doubt that if 'Julius is gray and Mary moved to the garden' then Greg is yellow.
It is highly likely that 'Mary moved to the garden and Julius is gray'.
It is impossible that 'Mary moved to the garden and Julius is gray'.
It is highly likely that 'Mary moved to the garden and Julius is gray'.

  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.0::factB.
  0.7::factC.
  %hop1
  1.0::factX:-or(factB,factC).
  0.9::factY:-xor(factB,factC).
  0.2::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Mary moved to the garden and Julius is gray'.