It is highly unlikely that Lily is white. It is impossible that Greg is gray. It is improbable that Julius is a rhino. There is almost no chance that if 'Julius is a rhino and Greg is gray' then Brian is green. Chances are about even that if either 'Lily is white' or 'Greg is gray' but not both then Yann is hungry. It is unlikely that if either 'Greg is gray' or 'Lily is white' but not both then Mary left the milk.
It is probable that 'Julius is a rhino and Brian is green'.
It is impossible that 'Julius is a rhino and Brian is green'.
It is probable that 'Julius is a rhino and Brian is green'.

  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.1::factC.
  %hop1
  0.02::factX:-and(factC,factB).
  0.5::factY:-xor(factA,factB).
  0.2::factZ:-xor(factB,factA).

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

  query(conclusion).
  
'Julius is a rhino and Brian is green'.