There is almost no chance that Brian is yellow. It is likely that John went to the garden. There is almost no chance that Mary left the football. There is almost no chance that if either 'Mary left the football' or 'Brian is yellow' but not both then Greg is a swan. There is little chance that if 'John went to the garden and Brian is yellow' then Julius is a rhino. It is impossible that if 'Mary left the football and Brian is yellow' then Sandra put down the milk.
It is impossible that 'John went to the garden' or 'Brian is yellow' or both.
It is probably the case that 'John went to the garden' or 'Brian is yellow' or both.
It is impossible that 'John went to the garden' or 'Brian is yellow' or both.

  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.7::factB.
  0.02::factC.
  %hop1
  0.02::factX:-xor(factC,factA).
  0.1::factY:-and(factB,factA).
  0.0::factZ:-and(factC,factA).

  %hop2
  conclusion:-or(factB,factA).

  query(conclusion).
  
'John went to the garden' or 'Brian is yellow' or both.