It is probably not the case that John went to the office. It is probably the case that Lily is white. It is improbable that Jason is tired. It is highly likely that if 'Jason is tired' or 'John went to the office' or both then Mary moved to the garden. It is unlikely that if 'Lily is white and Jason is tired' then Julius is a swan. It is certain that if either 'John went to the office' or 'Jason is tired' but not both then Brian is a rhino.
It is certain that 'Julius is a swan and John went to the office'.
It is impossible that 'Julius is a swan and John went to the office'.
It is certain that 'Julius is a swan and John went 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.25::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.9::factX:-or(factC,factA).
  0.2::factY:-and(factB,factC).
  1.0::factZ:-xor(factA,factC).

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

  query(conclusion).
  
'Julius is a swan and John went to the office'.