It is likely that Jessica is a cat. It is probably not the case that Fred dropped the apple. Chances are slight that Greg is gray. There is almost no chance that if 'Greg is gray' or 'Jessica is a cat' or both then Sumit is thirsty. It is almost certain that if 'Greg is gray' or 'Fred dropped the apple' or both then Bernhard is green. There is almost no chance that if either 'Jessica is a cat' or 'Fred dropped the apple' but not both then Mary moved to the office.
It is impossible that 'Sumit is thirsty and Mary moved to the office'.
It is impossible that 'Sumit is thirsty and Mary moved to the office'.
It is highly likely that 'Sumit is thirsty and Mary moved to the office'.

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

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

  query(conclusion).
  
'Sumit is thirsty and Mary moved to the office'.