The resource lookup algorithm searches a specified resource data base and returns the value for the resource binding whose resource name is the closest match to a given complete resource name and class. The intent of the lookup algorithm is to formalize an intuitive notion of the closest match.
Precedence is given to a match which begins higher in the parent-child contact hierarchy. This allows a resource binding with a partial name to define a resource value shared by all members of a window subtree. For example, suppose the resource database contained the following resource bindings:
| Resource Name | Resource Value | 
|---|---|
| (mail * background) | 'red | 
| (* reply background) | 'blue | 
Suppose an application program searched by using the following complete resource name:
      (mail screen-1 reply background) 
    
      then the closest matching value returned would be 'red. 
    
Precedence is given to the more specific match. A name match is more specific than a class match. Either a name or class match is more specific than a wildcard match. For example, suppose the resource database contained the following resource bindings:
| Resource Name | Resource Value | 
|---|---|
| (mail * background) | 'red | 
| (mail * fill) | 'blue | 
Suppose an application program searched by using the following complete resource name and complete resource class:
      (mail screen-1 reply background)
      
      (application root button fill) 
    
      then the closest matching value returned would be 'red.
      However, suppose the resource database contained the following resource
      bindings: 
    
| Resource Name | Resource Value | 
|---|---|
| (mail * background) | 'red | 
| (mail * button background) | 'blue | 
      then the closest matching value returned would be 'blue.