It is probable that Greg is gray. It is unlikely that Brian is a swan. We doubt that Julius is a lion. It is probably the case that if 'Julius is a lion' or 'Greg is gray' or both then Gertrude is a cat. It is probably not the case that if 'Brian is a swan' or 'Julius is a lion' or both then John grabbed the apple. It is probable that if 'Julius is a lion' or 'Greg is gray' or both then Jeff put down the milk.
We believe that 'John grabbed the apple' or 'Greg is gray' or both.
We believe that 'John grabbed the apple' or 'Greg is gray' or both.
It is unlikely that 'John grabbed the apple' or 'Greg is gray' 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.7::factA.
  0.2::factB.
  0.2::factC.
  %hop1
  0.7::factX:-or(factC,factA).
  0.25::factY:-or(factB,factC).
  0.7::factZ:-or(factC,factA).

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

  query(conclusion).
  
'John grabbed the apple' or 'Greg is gray' or both.