It is probably the case that John got the milk. It is improbable that Greg is white. It is highly unlikely that Lily is a lion. It is certain that if either 'John got the milk' or 'Lily is a lion' but not both then Mary took the football. It is improbable that if 'Greg is white and John got the milk' then Brian is green. There is a better than even chance that if either 'Lily is a lion' or 'John got the milk' but not both then Bernhard is a rhino.
It is certain that 'Mary took the football and Brian is green'.
It is impossible that 'Mary took the football and Brian is green'.
It is certain that 'Mary took the football 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.7::factA.
  0.1::factB.
  0.05::factC.
  %hop1
  1.0::factX:-xor(factA,factC).
  0.1::factY:-and(factB,factA).
  0.6::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Mary took the football and Brian is green'.