It is unlikely that Greg is yellow. There is almost no chance that Jessica is a mouse. Chances are about even that Mary went to the bedroom. It is impossible that if 'Jessica is a mouse and Greg is yellow' then Bernhard is white. It is almost certain that if 'Greg is yellow and Mary went to the bedroom' then John moved to the garden. There is little chance that if 'Mary went to the bedroom and Greg is yellow' then Winona is a sheep.
Chances are about even that 'Winona is a sheep and Bernhard is white'.
It is impossible that 'Winona is a sheep and Bernhard is white'.
Chances are about even that 'Winona is a sheep and Bernhard is white'.

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

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

  query(conclusion).
  
'Winona is a sheep and Bernhard is white'.