It is unlikely that Brian is green. It is impossible that Jeff moved to the garden. We doubt that Mary went to the office. It is certain that if 'Brian is green' or 'Jeff moved to the garden' or both then Daniel dropped the apple. It is likely that if 'Brian is green' or 'Jeff moved to the garden' or both then Sandra left the milk. It is highly likely that if 'Jeff moved to the garden and Brian is green' then Greg is gray.
It is almost certain that 'Jeff moved to the garden' or 'Greg is gray' or both.
It is impossible that 'Jeff moved to the garden' or 'Greg is gray' or both.
It is almost certain that 'Jeff moved to the garden' or 'Greg is gray' or both.

  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.0::factB.
  0.2::factC.
  %hop1
  1.0::factX:-or(factA,factB).
  0.7::factY:-or(factA,factB).
  0.9::factZ:-and(factB,factA).

  %hop2
  conclusion:-or(factB,factZ).

  query(conclusion).
  
'Jeff moved to the garden' or 'Greg is gray' or both.