There is almost no chance that Winona is a sheep. It is probably the case that Jason is tired. We doubt that Bernhard is a rhino. It is probably the case that if 'Bernhard is a rhino and Winona is a sheep' then John took the apple. It is highly unlikely that if 'Jason is tired and Winona is a sheep' then Mary left the football. It is impossible that if 'Jason is tired' or 'Bernhard is a rhino' or both then Brian is gray.
It is likely that 'John took the apple' or 'Brian is gray' or both.
It is impossible that 'John took the apple' or 'Brian is gray' or both.
It is likely that 'John took the apple' or 'Brian 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.02::factA.
  0.7::factB.
  0.2::factC.
  %hop1
  0.7::factX:-and(factC,factA).
  0.05::factY:-and(factB,factA).
  0.0::factZ:-or(factB,factC).

  %hop2
  conclusion:-or(factX,factZ).

  query(conclusion).
  
'John took the apple' or 'Brian is gray' or both.