Chances are slight that Jason is tired. It is almost certain that Winona is a cat. We doubt that Bernhard is yellow. It is highly unlikely that if either 'Bernhard is yellow' or 'Winona is a cat' but not both then Lily is a lion. It is likely that if 'Winona is a cat and Bernhard is yellow' then Brian is green. It is probably the case that if 'Jason is tired' or 'Bernhard is yellow' or both then John went to the office.
It is likely that 'Brian is green and Bernhard is yellow'.
It is improbable that 'Brian is green and Bernhard is yellow'.
It is likely that 'Brian is green and Bernhard is yellow'.

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

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

  query(conclusion).
  
'Brian is green and Bernhard is yellow'.