There is a very good chance that Lily is green. It is probable that John went to the office. It is probable that Bernhard is gray. It is almost certain that if 'John went to the office and Bernhard is gray' then Greg is a rhino. There is a better than even chance that if either 'John went to the office' or 'Bernhard is gray' but not both then Brian is a swan. It is highly likely that if 'John went to the office and Lily is green' then Julius is a lion.
It is highly likely that 'Bernhard is gray and Brian is a swan'.
There is little chance that 'Bernhard is gray and Brian is a swan'.
It is highly likely that 'Bernhard is gray and Brian 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.8::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.95::factX:-and(factB,factC).
  0.6::factY:-xor(factB,factC).
  0.9::factZ:-and(factB,factA).

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

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