We believe that John went to the office. It is likely that Jason is tired. Chances are slight that Bernhard is gray. Chances are slight that if either 'Jason is tired' or 'Bernhard is gray' but not both then Sandra took the football. There is a very good chance that if 'Bernhard is gray and Jason is tired' then Greg is a rhino. There is little chance that if 'Bernhard is gray' or 'Jason is tired' or both then Julius is a swan.
There is almost no chance that 'Bernhard is gray and Julius is a swan'.
There is almost no chance that 'Bernhard is gray and Julius is a swan'.
It is highly likely that 'Bernhard is gray and Julius is a swan'.

  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.75::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.1::factX:-xor(factB,factC).
  0.8::factY:-and(factC,factB).
  0.1::factZ:-or(factC,factB).

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

  query(conclusion).
  
'Bernhard is gray and Julius is a swan'.