There is almost no chance that Greg is green. It is improbable that John dropped the apple. It is impossible that Brian is a swan. It is almost certain that if either 'Brian is a swan' or 'John dropped the apple' but not both then Julius is white. It is certain that if 'John dropped the apple and Greg is green' then Mary went to the office. It is almost certain that if either 'Greg is green' or 'John dropped the apple' but not both then Yann is hungry.
We believe that 'Mary went to the office and Julius is white'.
It is impossible that 'Mary went to the office and Julius is white'.
We believe that 'Mary went to the office and Julius 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
  0.02::factA.
  0.1::factB.
  0.0::factC.
  %hop1
  0.95::factX:-xor(factC,factB).
  1.0::factY:-and(factB,factA).
  0.95::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Mary went to the office and Julius is white'.