It is unlikely that John picked up the milk. It is highly likely that Brian is a lion. It is highly likely that Bernhard is gray. It is highly likely that if either 'Brian is a lion' or 'John picked up the milk' but not both then Winona is a wolf. It is probably not the case that if 'Brian is a lion' or 'John picked up the milk' or both then Mary got the football. It is unlikely that if either 'Brian is a lion' or 'Bernhard is gray' but not both then Julius is white.
It is certain that 'Mary got the football and Julius is white'.
It is impossible that 'Mary got the football and Julius is white'.
It is certain that 'Mary got the football and Julius 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.9::factB.
  0.9::factC.
  %hop1
  0.9::factX:-xor(factB,factA).
  0.25::factY:-or(factB,factA).
  0.2::factZ:-xor(factB,factC).

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

  query(conclusion).
  
'Mary got the football and Julius is white'.