It is almost certain that Bernhard is gray. It is probably the case that Bill went to the bedroom. It is highly likely that Greg is white. It is highly unlikely that if 'Bill went to the bedroom and Bernhard is gray' then Julius is a rhino. There is little chance that if 'Greg is white and Bernhard is gray' then Mary moved to the office. Chances are slight that if 'Bill went to the bedroom and Greg is white' then John discarded the milk.
It is probable that 'Bernhard is gray and Julius is a rhino'.
There is almost no chance that 'Bernhard is gray and Julius is a rhino'.
It is probable that 'Bernhard is gray and Julius is a rhino'.

  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.9::factC.
  %hop1
  0.05::factX:-and(factB,factA).
  0.1::factY:-and(factC,factA).
  0.1::factZ:-and(factB,factC).

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

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