09.04.2013 Views

SNOMED CT® Release Format 1 (RF1) Guide - ihtsdo

SNOMED CT® Release Format 1 (RF1) Guide - ihtsdo

SNOMED CT® Release Format 1 (RF1) Guide - ihtsdo

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

344 | <strong>SNOMED</strong> CT <strong>Release</strong> <strong>Format</strong> 1 (<strong>RF1</strong>) <strong>Guide</strong> July 2012<br />

4.5.5.1.1. Recursive testing of subtype Relationships<br />

It is possible to determine whether one concept subsumes another concept by recursively following every<br />

possible sequences of | is a | Relationships from a candidate concept until the predicate concept is reached<br />

or until all possible paths have been exhausted.<br />

This approach is far too slow to deliver effective implementations in all environments in which it has been<br />

tested to date.<br />

4.5.5.1.2. Semantic type Identifiers and hierarchy flags<br />

Flags added to the internal representation of each Concept can be used to indicate the set of high-level<br />

concept nodes of which that concept is a subtype. A concept can only subsume concepts that include the<br />

same set of high-level concept flags.This approach can reduce the number of tests that need to be performed<br />

to recursively test the subtype relationships:<br />

• If a candidate does not have all the high-level node flags that the predicate has, no further tests are needed.<br />

The candidate is not a subtype of the predicate.<br />

• Even if a candidate shares the high-level node flags with the predicate, any path that reaches a concept<br />

that does not share those flags need not be further tested.<br />

While faster than the unaided recursive testing approach, this is too slow to deliver effective implementations<br />

and is not scalable.<br />

4.5.5.1.3. Use of proprietary database features<br />

Some databases include additional features to support the recursive testing of a chain of hierarchical<br />

relationships. Other methods of optimization that may be applied to allow more rapid computation of subtype<br />

descendant relationships are outlined in the following subsections.<br />

Current experiences of databases that support this type of approach indicate that (while easy to implement)<br />

the performance is substantially inferior to use of branch-numbering or transitive closure (see Precomputed<br />

Transitive Closure table ).<br />

4.5.5.1.4. Branch numbering<br />

The internal representation of each Concept can be extended to include a branch-number and a set of<br />

branch-number -ranges.<br />

A branch-numbering algorithm can then be applied when each release of <strong>SNOMED</strong> CT is imported.<br />

A typical branch-numbering algorithm processes the subtype hierarchy in the following way:<br />

• A depth first tree walk is performed starting from the root Concept (branch-number 1) and an incrementing<br />

number is applied to each Concept when it is encountered for the first time.<br />

• After the branch numbers have been computed a further tree walk allocates one or more branch-number<br />

ranges to each Concept with any subtype descendants:<br />

• Many Concepts will have a single branch number range containing all their descendants.<br />

• Some Concepts will have several non-contiguous ranges of descendant Concept branch numbers:<br />

• This is because a Concept may have multiple supertypes.Therefore, the descendants of a Concept<br />

may have branch numbers that were allocated as a result of their relationship to another ancestor<br />

Concept. However, the path from any Concept to the root Concept always converges at or before<br />

the top-level Concept. Therefore, multiple ranges coalesce when reaching more general common<br />

supertype ancestors.<br />

• At run time, rather than needing to traverse many subtype Relationships, the branch number of each<br />

Concept is tested for inclusion in the branch number range of the putative ancestor.<br />

© 2002-2012 International Health Terminology Standards Development Organisation CVR #: 30363434

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!