There is a better than even chance that Brian is green. It is probably not the case that Fred went to the garden. There is little chance that Greg is white. There is a better than even chance that if either 'Brian is green' or 'Fred went to the garden' but not both then Bernhard is a swan. It is impossible that if either 'Fred went to the garden' or 'Greg is white' but not both then Jessica is a cat. There is a better than even chance that if 'Fred went to the garden' or 'Brian is green' or both then John picked up the apple.
It is certain that 'Greg is white' or 'Jessica is a cat' or both.
There is little chance that 'Greg is white' or 'Jessica is a cat' or both.
It is certain that 'Greg is white' or 'Jessica is a cat' 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.6::factA.
  0.25::factB.
  0.1::factC.
  %hop1
  0.6::factX:-xor(factA,factB).
  0.0::factY:-xor(factB,factC).
  0.6::factZ:-or(factB,factA).

  %hop2
  conclusion:-or(factC,factY).

  query(conclusion).
  
'Greg is white' or 'Jessica is a cat' or both.