It is almost certain that Brian is a frog. It is probably the case that Greg is a rhino. We believe that John went to the office. It is certain that if 'Brian is a frog and Greg is a rhino' then Bernhard is yellow. We believe that if 'Brian is a frog and John went to the office' then Julius is a swan. We believe that if either 'John went to the office' or 'Brian is a frog' but not both then Lily is yellow.
It is certain that 'Bernhard is yellow and Lily is yellow'.
There is little chance that 'Bernhard is yellow and Lily is yellow'.
It is certain that 'Bernhard is yellow and Lily 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.95::factA.
  0.7::factB.
  0.75::factC.
  %hop1
  1.0::factX:-and(factA,factB).
  0.75::factY:-and(factA,factC).
  0.75::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Bernhard is yellow and Lily is yellow'.