It is certain that John moved to the office. It is likely that Yann is thirsty. It is likely that Julius is a swan. It is certain that if either 'John moved to the office' or 'Yann is thirsty' but not both then Mary went to the garden. It is unlikely that if 'Yann is thirsty' or 'Julius is a swan' or both then Brian is white. It is almost certain that if either 'Julius is a swan' or 'Yann is thirsty' but not both then Lily is a rhino.
It is almost certain that 'Yann is thirsty and Brian is white'.
Chances are slight that 'Yann is thirsty and Brian is white'.
It is almost certain that 'Yann is thirsty and Brian is white'.

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

  %hop2
  conclusion:-and(factB,factY).

  query(conclusion).
  
'Yann is thirsty and Brian is white'.