Ferret supports integrating different source of information of a program, such as the static information and run-time information. We call these sources of information a sphere. But a particular element from one sphere may not have a perfect correspondance to any single element in a different sphere. For example, what might a Java interface (from the static JDT sphere) correspond to when considering the program's run-time behaviour?
Ferret's model supports different fidelities of correspondance for elements between different spheres. The fidelity describes the degree of information preservation in the conversion. Ferret provides three levels of fidelity:
The fidelities are propagated across queries: if the query element has an imperfect correspondance to its equivalent in a different sphere, then any queries from that other sphere must be at least as imperfect.