# Get Definition of a Concept

## Overview

Each SNOMED CT concept has a concept definition.

A concept definition is a set of one or more axioms that partially or sufficiently specify the meaning of a SNOMED CT concept.

{% hint style="info" %}
**Notes**

* *Concept definitions* are represented in two ways in SNOMED CT release files:\
  \* As a stated view represented by axioms that conform to the OWL Functional Syntax distributed in the OWL Expression Reference Set file.\
  \* As an inferred view represented by defining relationships that are distributed in the relationship file. The *inferred view* is generated by applying description logic classification to the *stated view*.
* *Concept definitions* include two distinct elements
  * Axioms that assert that a concept is a subtype of one or more other concepts. In the inferred view these are represented as subtype relationships.
  * Axioms that assert characteristics of a concept that distinguish it from its supertypes. In the inferred view these are represented as attribute relationships.
    {% endhint %}

## Requirements and Options

The table below describes several distinct types of access to concept definitions and the client application functionalities that each of these access types supports.

General purpose terminology services that are able to access subtype relationships relationships can be used to meet a limited set of SNOMED CT use cases. However, SNOMED CT terminology services should also provide access to the inferred view of concept definitions.

Advanced SNOMED CT terminology services require the ability to access and interpret the axioms that represent the stated view of concept definitions. They should also enable description logic classification either as a built in service or via an interface to separate classifier. Services that support classification provide added value for data retrieval and analysis by enabling post-coordinated expressions to be classified and appropriately located in the subtype hierarchy.

The required services listed in the table below omit services that only require access to subtype relationships, as these are described in [Get and Test Concept Subtypes and Supertypes](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.5-get-and-test-concept-subtypes-and-supertypes).

#### Practical Requirements for Access to Concept Definitions

<table data-full-width="true"><thead><tr><th>Service Name and Status</th><th>Input</th><th>Output</th></tr></thead><tbody><tr><td><strong>Access to subtype relationships</strong></td><td>- Concept identifier<br>- Edition and version</td><td>- Set of conceptIds of all concepts with a direct subtype relationship to or from the specified concept.<br>- Optionally, additional information such as the fully specified name or preferred term of each concept in the set.</td></tr><tr><td><strong>Access to the transitive closure of subtype relationships</strong></td><td>- Concept identifier<br>- Edition and version</td><td>- Set of conceptIds of all concepts with a direct or transitive subtype relationship to or from the specified concept.<br>- Optionally, additional information such as the fully specified name or preferred term of each concept in the set.</td></tr><tr><td><strong>Access to the complete inferred view of concept definitions, including subtype relationships and attribute relationships</strong></td><td>- Concept identifier<br>- Edition and version</td><td>- Inferred definition of the specified concept represented as a compositional grammar expression or as a data object representing all active rows in the snapshot view of the relationship file.<br>- Optionally, concept identifiers in the definition may be supplemented with the preferred term or fully specified name in a specified language or dialect.</td></tr><tr><td><strong>Access to the complete stated view of concept definitions, as OWL axioms</strong></td><td>- Concept identifier<br>- Edition and version</td><td>- Stated definition of the concept represented as a set of one or more OWL axioms or as a SNOMED CT compositional grammar expression.<br>- Optionally, concept identifiers in the definition may be supplemented with the preferred term or fully specified name in a specified language or dialect.</td></tr></tbody></table>

#### Services Required

<table data-full-width="true"><thead><tr><th>Service Name and Status</th><th>Input</th><th>Output</th></tr></thead><tbody><tr><td><strong>Get inferred necessary normal form definition of a concept</strong><br><strong>REQUIRED</strong></td><td>- Edition and version<br>- Concept identifier<br>- Language/dialect (optional)</td><td>- Inferred definition of the specified concept as a SNOMED CT compositional grammar expression or as a data object representing all active rows in the snapshot view of the relationship file.<br>- Optionally, concept identifiers in the definition may be supplemented with the preferred term or fully specified name in a specified language or dialect.</td></tr><tr><td><strong>Get stated definition of a concept</strong><br><strong>ADVANCED</strong></td><td>- Edition and version<br>- Concept identifier<br>- Language/dialect (optional)</td><td>- Stated definition of the concept as a set of one or more OWL axioms or as a SNOMED CT compositional grammar expression.<br>- Optionally, concept identifiers in the definition may be supplemented with the preferred term or fully specified name in a specified language or dialect.</td></tr></tbody></table>

## Interdependencies

#### Required By

* Other Services
  * [4.5-get-and-test-concept-subtypes-and-supertypes](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.5-get-and-test-concept-subtypes-and-supertypes "mention")
  * [4.6-get-and-test-reference-set-membership](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.6-get-and-test-reference-set-membership "mention")
  * [4.7-validate-and-apply-expression-constraints](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.7-validate-and-apply-expression-constraints "mention")
  * [4.8-find-concepts](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.8-find-concepts "mention")
  * [https://github.com/SNOMED-Documents/snomed-terminology-services-guide/blob/main/4%20terminology-service-types/broken-reference/README.md](https://github.com/SNOMED-Documents/snomed-terminology-services-guide/blob/main/4%20terminology-service-types/broken-reference/README.md "mention")
  * [4.15-test-expression-subsumption](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.15-test-expression-subsumption "mention")
* Use Cases
  * [explore-and-review-snomed-ct](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/3-terminology-service-use-cases/explore-and-review-snomed-ct "mention")
  * [support-terminology-authoring-and-review](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/3-terminology-service-use-cases/support-terminology-authoring-and-review "mention")

#### Depends On

* [4.1-select-edition-and-version](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.1-select-edition-and-version "mention")
* [4.2-get-a-concept-description-or-relationship](https://snomed-international.gitbook.io/uat-snomed-international-docs/kdfQQ4zexrP8YsnhBh12/snomed-practical-guides/snomed-ct-terminology-services-guide/4-terminology-service-types/4.2-get-a-concept-description-or-relationship "mention")

## Service Examples

{% hint style="success" %}
The Snowstorm and FHIR examples are presented in plain text and URL encoded versions. Always use the "Encoded URL" when testing the example service requests. The plain text version is included to aid readability but using this version in a service request may result in errors. These errors result from characters that have to be encoded as they are not permitted in a URL (see [IETF RFC1738](https://www.ietf.org/rfc/rfc1738.txt)).
{% endhint %}

### Snowstorm API

<table data-full-width="false"><thead><tr><th width="230.0234375">Service Name</th><th>API Call</th><th>Result</th></tr></thead><tbody><tr><td><strong>Get the inferred necessary normal form definition of a concept</strong></td><td><pre data-overflow="wrap"><code>GET [snowstorm]/[branch]/concepts/[conceptId]/normal-form?includeTerms=[true|false]
</code></pre><p>for example</p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN/2020-01-31/concepts/6025007/normal-form?includeTerms=true
</code></pre><hr><p><em>Encoded URL</em></p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN%2F2020-01-31/concepts/6025007/normal-form?includeTerms=true
</code></pre><p>or without including the terms</p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN/2020-01-31/concepts/6025007/normal-form
</code></pre><hr><p><em>Encoded URL</em></p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN%2F2020-01-31/concepts/6025007/normal-form
</code></pre></td><td><p>Returns a JSON data object containing a compositional grammar expression representing the inferred definition of the concept.</p><p>If the optional includeTerms parameter is set to <strong>true</strong> the expression includes the fully specified names of each concept referenced in the expression. Otherwise only the expression only includes the concept identifiers.</p></td></tr><tr><td><strong>Get the stated definition of a concept</strong></td><td><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN%2F2020-01-31/members?referenceSet=733073007&#x26;referencedComponentId=[conceptId]
</code></pre><p>for example</p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN%2F2020-01-31/members?referenceSet=733073007&#x26;referencedComponentId=6025007
</code></pre><hr><p><em>Encoded URL</em></p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN%2F2020-01-31/members?referenceSet=733073007&#x26;amp;referencedComponentId=6025007
</code></pre><p>or as example of a concept defined by more than one axiom</p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN%2F2020-01-31/members?referenceSet=733073007&#x26;referencedComponentId=473011001
</code></pre><hr><p><em>Encoded URL</em></p><pre data-overflow="wrap"><code>GET [snowstorm]/MAIN%2F2020-01-31/members?referenceSet=733073007&#x26;amp;referencedComponentId=473011001
</code></pre></td><td><p>This service returns a JSON representation of one or more members of in the OWL expression reference set that together represent the stated definition of the identified concept. Each of these reference set members contains an axiom, represented using OWL Functional Syntax, in the additionalFields.owlExpression property string.</p><p><br></p></td></tr></tbody></table>

### FHIR API

<table data-full-width="true"><thead><tr><th>Service Name</th><th>API Call</th><th>Result</th></tr></thead><tbody><tr><td><strong>Get the inferred necessary normal form definition of a concept</strong><br></td><td><pre data-overflow="wrap"><code>[fhir]/CodeSystem/$lookup?system=http://snomed.info/sct&#x26;code=[conceptId]&#x26;property=normalForm&#x26;_format=json
</code></pre><p>for example</p><pre data-overflow="wrap"><code>GET [fhir]/CodeSystem/$lookup?system=http://snomed.info/sct&#x26;code=6025007&#x26;property=normalForm&#x26;_format=json
</code></pre></td><td><p>Returns a JSON representation of information containing the definition of the concept.</p><p>The data returned includes the necessary inferred, normal form definition of the concept represented as a compositional grammar expression.</p></td></tr><tr><td><strong>Get the stated definition of a concept</strong></td><td>N/A</td><td>This service is not supported by the FHIR terminology services API</td></tr></tbody></table>

### MySQL Example Database

<table data-full-width="true"><thead><tr><th>Service Name</th><th>SQL Query</th><th>Result</th></tr></thead><tbody><tr><td><strong>Get the inferred necessary normal form definition of a concept</strong></td><td><p>for example</p><p>or including terms</p></td><td>Returns the set of rows each containing one defining relationship with its associated relationship group number.</td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get inferred defining relationshipsSELECT</code> <code>typeId,destinationId,groupFROM</code> <code>snap_relationship WHERE</code> <code>AND</code> <code>active=1 AND</code> <code>sourceId=[conceptId] AND</code> <code>characteristicType=900000000000011006;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get inferred defining relationshipsSELECT</code> <code>typeId,destinationId,groupFROM</code> <code>snap_relationship WHERE</code> <code>active=1 AND</code> <code>characteristicType=900000000000011006 AND</code> <code>sourceId=6025007;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get inferred defining relationships with termsSELECT CONCAT(typeId,"|",typeTerm,"|=", destinationId,"|",destinationTerm,"|") 'value', relationshipGroup 'group'FROM</code> <code>snap_rel_def_fsn WHERE</code> <code>sourceId=6025007;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get inferred defining relationshipsSELECT</code> <code>typeId,destinationId,groupFROM</code> <code>snap_relationship WHERE</code> <code>AND</code> <code>active=1 AND</code> <code>sourceId=[conceptId] AND</code> <code>characteristicType=900000000000011006;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get inferred defining relationshipsSELECT</code> <code>typeId,destinationId,groupFROM</code> <code>snap_relationship WHERE</code> <code>active=1 AND</code> <code>characteristicType=900000000000011006 AND</code> <code>sourceId=6025007;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get inferred defining relationships with termsSELECT CONCAT(typeId,"|",typeTerm,"|=", destinationId,"|",destinationTerm,"|") 'value', relationshipGroup 'group'FROM</code> <code>snap_rel_def_fsn WHERE</code> <code>sourceId=6025007;</code></td><td></td><td></td></tr><tr><td><strong>Get the stated definition of a concept</strong></td><td><p>for example</p><p>or as example of a concept defined by more than one axiom</p></td><td><p>Returns the set of rows each containing one OWL axiom.</p><p>The sort order used in this query ensures that class axioms appear before any GCI axioms</p></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get stated defining axiomsSELECT</code> <code>owlExpressionFROM</code> <code>snap_refset_owlexpression WHERE</code> <code>active=1 AND</code> <code>refsetId=733073007 AND</code> <code>referencedComponentId=[conceptId] ORDER</code> <code>BY</code> <code>owlExpression;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get stated defining axiomsSELECT</code> <code>owlExpressionFROM</code> <code>snap_refset_owlexpression WHERE</code> <code>active=1 AND</code> <code>refsetId=733073007 AND</code> <code>referencedComponentId=6025007 ORDER</code> <code>BY</code> <code>owlExpression;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get stated defining axiomsSELECT</code> <code>owlExpressionFROM</code> <code>snap_refset_owlexpression WHERE</code> <code>active=1 AND</code> <code>refsetId=733073007 AND</code> <code>referencedComponentId=473011001 ORDER</code> <code>BY</code> <code>owlExpression;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get stated defining axiomsSELECT</code> <code>owlExpressionFROM</code> <code>snap_refset_owlexpression WHERE</code> <code>active=1 AND</code> <code>refsetId=733073007 AND</code> <code>referencedComponentId=[conceptId] ORDER</code> <code>BY</code> <code>owlExpression;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get stated defining axiomsSELECT</code> <code>owlExpressionFROM</code> <code>snap_refset_owlexpression WHERE</code> <code>active=1 AND</code> <code>refsetId=733073007 AND</code> <code>referencedComponentId=6025007 ORDER</code> <code>BY</code> <code>owlExpression;</code></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td><code>-- Get stated defining axiomsSELECT</code> <code>owlExpressionFROM</code> <code>snap_refset_owlexpression WHERE</code> <code>active=1 AND</code> <code>refsetId=733073007 AND</code> <code>referencedComponentId=473011001 ORDER</code> <code>BY</code> <code>owlExpression;</code></td><td></td><td></td></tr></tbody></table>

<a href="https://docs.google.com/forms/d/e/1FAIpQLScTmbZIf0UEQwYDkY27EEWBkaiYkHSbR0_9DmFrMLXoQLyL7Q/viewform?usp=pp_url&#x26;entry.1767247133=SNOMED+Terminology+Services+Guide&#x26;entry.670899847=Get%20Definition%20of%20a%20Concept" class="button primary">Provide Feedback</a>
