It is impossible that John moved to the office. It is highly likely that Mary left the milk. There is a better than even chance that Greg is yellow. It is improbable that if either 'Greg is yellow' or 'Mary left the milk' but not both then Bernhard is a swan. It is improbable that if 'John moved to the office' or 'Mary left the milk' or both then Brian is green. Chances are slight that if 'John moved to the office' or 'Mary left the milk' or both then Jason is thirsty.
It is highly unlikely that 'Jason is thirsty and Greg is yellow'.
It is highly unlikely that 'Jason is thirsty and Greg is yellow'.
It is probably the case that 'Jason is thirsty and Greg is yellow'.

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

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

  query(conclusion).
  
'Jason is thirsty and Greg is yellow'.