It is highly unlikely that Mary took the football. It is impossible that Brian is a frog. It is impossible that John went to the garden. It is unlikely that if either 'Mary took the football' or 'John went to the garden' but not both then Bernhard is green. There is little chance that if either 'Brian is a frog' or 'Mary took the football' but not both then Greg is gray. We doubt that if 'John went to the garden' or 'Mary took the football' or both then Julius is yellow.
There is a very good chance that 'John went to the garden and Bernhard is green'.
It is impossible that 'John went to the garden and Bernhard is green'.
There is a very good chance that 'John went to the garden and Bernhard 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.05::factA.
  0.0::factB.
  0.0::factC.
  %hop1
  0.2::factX:-xor(factA,factC).
  0.1::factY:-xor(factB,factA).
  0.2::factZ:-or(factC,factA).

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

  query(conclusion).
  
'John went to the garden and Bernhard is green'.