We doubt that Brian is a frog. There is almost no chance that Bernhard is gray. There is almost no chance that John went to the office. It is probably not the case that if 'John went to the office' or 'Brian is a frog' or both then Jason is bored. There is a better than even chance that if either 'Bernhard is gray' or 'Brian is a frog' but not both then Antoine is hungry. We doubt that if either 'Bernhard is gray' or 'Brian is a frog' but not both then Julius is a swan.
It is likely that 'Brian is a frog and Julius is a swan'.
It is highly unlikely that 'Brian is a frog and Julius is a swan'.
It is likely that 'Brian is a frog 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.2::factA.
  0.02::factB.
  0.02::factC.
  %hop1
  0.25::factX:-or(factC,factA).
  0.6::factY:-xor(factB,factA).
  0.2::factZ:-xor(factB,factA).

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

  query(conclusion).
  
'Brian is a frog and Julius is a swan'.