There is almost no chance that Sandra left the milk. There is little chance that John went to the hallway. It is highly unlikely that Brian is white. It is highly unlikely that if 'Brian is white and Sandra left the milk' then Lily is green. It is unlikely that if 'John went to the hallway' or 'Sandra left the milk' or both then Bernhard is yellow. We doubt that if either 'John went to the hallway' or 'Brian is white' but not both then Winona is a sheep.
It is certain that 'Winona is a sheep and Brian is white'.
It is impossible that 'Winona is a sheep and Brian is white'.
It is certain that 'Winona is a sheep and Brian 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.02::factA.
  0.1::factB.
  0.05::factC.
  %hop1
  0.05::factX:-and(factC,factA).
  0.2::factY:-or(factB,factA).
  0.2::factZ:-xor(factB,factC).

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

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