There is little chance that Bernhard is white. It is almost certain that Winona is a wolf. It is impossible that Julius is yellow. It is almost certain that if 'Bernhard is white' or 'Winona is a wolf' or both then Brian is a rhino. There is a better than even chance that if either 'Bernhard is white' or 'Julius is yellow' but not both then Mary dropped the milk. We believe that if 'Bernhard is white and Julius is yellow' then Lily is a lion.
It is almost certain that 'Lily is a lion and Brian is a rhino'.
It is impossible that 'Lily is a lion and Brian is a rhino'.
It is almost certain that 'Lily is a lion and Brian is a rhino'.

  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.1::factA.
  0.95::factB.
  0.0::factC.
  %hop1
  0.95::factX:-or(factA,factB).
  0.6::factY:-xor(factA,factC).
  0.75::factZ:-and(factA,factC).

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

  query(conclusion).
  
'Lily is a lion and Brian is a rhino'.