It is unlikely that Mary went to the hallway. It is highly unlikely that Brian is a rhino. There is almost no chance that Daniel put down the milk. It is certain that if 'Mary went to the hallway and Daniel put down the milk' then Lily is a frog. It is probably the case that if 'Daniel put down the milk and Mary went to the hallway' then Julius is gray. There is little chance that if 'Daniel put down the milk and Brian is a rhino' then Jessica is a mouse.
It is likely that either 'Brian is a rhino' or 'Jessica is a mouse' but not both.
It is highly unlikely that either 'Brian is a rhino' or 'Jessica is a mouse' but not both.
It is likely that either 'Brian is a rhino' or 'Jessica is a mouse' but not 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.05::factB.
  0.02::factC.
  %hop1
  1.0::factX:-and(factA,factC).
  0.7::factY:-and(factC,factA).
  0.1::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Brian is a rhino' or 'Jessica is a mouse' but not both.