Business concepts and definitions - the foundation of business vocabulary
The GlossaryTerm entity represents a business concept with its definition, synonyms, related terms, and relationships to data assets. It is the primary mechanism for linking business context to technical data assets.
graph TD
%% Main entity
GT[GlossaryTerm<br/>Customer]
%% Parent glossary
GLOSS[Glossary<br/>BusinessGlossary] -->|contains| GT
%% Parent term hierarchy
PARENT[GlossaryTerm<br/>Party] -->|parent of| GT
%% Child terms
GT -->|has child| CHILD1[GlossaryTerm<br/>EnterpriseCustomer]
GT -->|has child| CHILD2[GlossaryTerm<br/>IndividualCustomer]
GT -->|has child| CHILD3[GlossaryTerm<br/>VIPCustomer]
%% Related terms
GT -.->|related to| REL1[GlossaryTerm<br/>Order]
GT -.->|related to| REL2[GlossaryTerm<br/>Revenue]
GT -.->|related to| REL3[GlossaryTerm<br/>Account]
%% Synonyms
GT -.->|synonym| SYN1[Synonym<br/>Client]
GT -.->|synonym| SYN2[Synonym<br/>Buyer]
GT -.->|synonym| SYN3[Synonym<br/>Purchaser]
%% Governance relationships
USR[User<br/>Jane Doe] -.->|owns| GT
REV[Team<br/>DataGovernance] -.->|reviews| GT
DOM[Domain<br/>Sales] -.->|groups| GT
%% Classification tags
TAG1[Tag<br/>Governance.Approved] -.->|classifies| GT
TAG2[Tag<br/>PII.NonSensitive] -.->|classifies| GT
%% Applied to data assets
GT -.->|describes| TBL1[Table<br/>customers]
GT -.->|describes| TBL2[Table<br/>customer_accounts]
GT -.->|describes| COL1[Column<br/>customer_id]
GT -.->|describes| COL2[Column<br/>customer_type]
GT -.->|describes| DASH[Dashboard<br/>Customer Analytics]
GT -.->|describes| ML[MLModel<br/>customer_churn]
%% External references
GT -.->|references| REF1[External Link<br/>Wikipedia]
GT -.->|references| REF2[External Link<br/>GDPR Docs]
%% Styling
classDef glossary fill:#8B5CF6,stroke:#7C3AED,color:#fff
classDef term fill:#A78BFA,stroke:#8B5CF6,color:#fff
classDef synonym fill:#DDD6FE,stroke:#A78BFA,color:#000
classDef governance fill:#059669,stroke:#047857,color:#fff
classDef data fill:#2563EB,stroke:#1E40AF,color:#fff
classDef external fill:#64748B,stroke:#475569,color:#fff
class GLOSS glossary
class GT,PARENT,CHILD1,CHILD2,CHILD3,REL1,REL2,REL3 term
class SYN1,SYN2,SYN3 synonym
class USR,REV,DOM,TAG1,TAG2 governance
class TBL1,TBL2,COL1,COL2,DASH,ML data
class REF1,REF2 external
View the complete GlossaryTerm schema in your preferred format:
=== "JSON Schema"
**Complete JSON Schema Definition**
```json
{
"$id": "https://open-metadata.org/schema/entity/data/glossaryTerm.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "GlossaryTerm",
"description": "This schema defines te Glossary term entities.",
"$comment": "@om-entity-type",
"type": "object",
"javaType": "org.openmetadata.schema.entity.data.GlossaryTerm",
"javaInterfaces": ["org.openmetadata.schema.EntityInterface"],
"definitions": {
"termReference": {
"type": "object",
"properties": {
"name": {
"description": "Name that identifies the source of an external glossary term. Example `HealthCare.gov`.",
"type": "string"
},
"endpoint": {
"description": "Name that identifies the source of an external glossary term. Example `HealthCare.gov`.",
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
}
},
"properties": {
"id": {
"description": "Unique identifier of a glossary term instance.",
"$ref": "../../type/basic.json#/definitions/uuid"
},
"name": {
"description": "Preferred name for the glossary term.",
"$ref": "../../type/basic.json#/definitions/entityName"
},
"displayName": {
"description": "Display Name that identifies this glossary.",
"type": "string"
},
"description": {
"description": "Description of the glossary term.",
"$ref": "../../type/basic.json#/definitions/markdown"
},
"style": {
"$ref": "../../type/basic.json#/definitions/style"
},
"fullyQualifiedName": {
"description": "A unique name that identifies a glossary term. It captures name hierarchy of glossary of terms in the form of `glossaryName.parentTerm.childTerm`.",
"$ref": "../../type/basic.json#/definitions/fullyQualifiedEntityName"
},
"synonyms": {
"description": "Alternate names that are synonyms or near-synonyms for the glossary term.",
"type": "array",
"items": {
"$ref": "../../type/basic.json#/definitions/entityName"
}
},
"glossary": {
"description": "Glossary that this term belongs to.",
"$ref": "../../type/entityReference.json"
},
"parent": {
"description": "Parent glossary term that this term is child of. When `null` this term is the root term of the glossary.",
"$ref": "../../type/entityReference.json"
},
"children": {
"description": "Other glossary terms that are children of this glossary term.",
"$ref": "../../type/entityReferenceList.json"
},
"relatedTerms": {
"description": "Other glossary terms that are related to this glossary term.",
"$ref": "../../type/entityReferenceList.json"
},
"references": {
"description": "Link to a reference from an external glossary.",
"type": "array",
"items": {
"$ref": "../../entity/data/glossaryTerm.json#/definitions/termReference"
}
},
"version": {
"description": "Metadata version of the entity.",
"$ref": "../../type/entityHistory.json#/definitions/entityVersion"
},
"updatedAt": {
"description": "Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.",
"$ref": "../../type/basic.json#/definitions/timestamp"
},
"updatedBy": {
"description": "User who made the update.",
"type": "string"
},
"impersonatedBy": {
"description": "Bot user that performed the action on behalf of the actual user.",
"$ref": "../../type/basic.json#/definitions/impersonatedBy"
},
"href": {
"description": "Link to the resource corresponding to this entity.",
"$ref": "../../type/basic.json#/definitions/href"
},
"reviewers": {
"description": "User names of the reviewers for this glossary.",
"$ref": "../../type/entityReferenceList.json"
},
"owners": {
"description": "Owners of this glossary term.",
"$ref": "../../type/entityReferenceList.json"
},
"usageCount": {
"description": "Count of how many times this and it's children glossary terms are used as labels.",
"type": "integer"
},
"tags": {
"description": "Tags associated with this glossary term. These tags captures relationship of a glossary term with a tag automatically. As an example a glossary term 'User.PhoneNumber' might have an associated tag 'PII.Sensitive'. When 'User.Address' is used to label a column in a table, 'PII.Sensitive' label is also applied automatically due to Associated tag relationship.",
"type": "array",
"items": {
"$ref": "../../type/tagLabel.json"
},
"default": []
},
"changeDescription": {
"description": "Change that lead to this version of the entity.",
"$ref": "../../type/entityHistory.json#/definitions/changeDescription"
},
"incrementalChangeDescription": {
"description": "Change that lead to this version of the entity.",
"$ref": "../../type/entityHistory.json#/definitions/changeDescription"
},
"entityStatus": {
"description": "Approval status of the glossary term.",
"$ref": "../../type/status.json"
},
"deleted": {
"description": "When `true` indicates the entity has been soft deleted.",
"type": "boolean",
"default": false
},
"provider": {
"$ref": "../../type/basic.json#/definitions/providerType"
},
"disabled": {
"description": "System glossary can't be deleted. Use this flag to disable them.",
"type": "boolean"
},
"mutuallyExclusive": {
"description": "Glossary terms that are children of this term are mutually exclusive. When mutually exclusive is `true` only one term can be used to label an entity from this group. When mutually exclusive is `false`, multiple terms from this group can be used to label an entity.",
"type": "boolean",
"default": "false"
},
"extension": {
"description": "Entity extension data with custom attributes added to the entity.",
"$ref": "../../type/basic.json#/definitions/entityExtension"
},
"domains": {
"description": "Domains the Glossary Term belongs to. When not set, the Glossary TErm inherits the domain from the Glossary it belongs to.",
"$ref": "../../type/entityReferenceList.json"
},
"dataProducts": {
"description": "List of data products this entity is part of.",
"$ref": "../../type/entityReferenceList.json"
},
"votes": {
"description": "Votes on the entity.",
"$ref": "../../type/votes.json"
},
"childrenCount": {
"description": "Count of immediate children glossary terms.",
"type": "integer"
}
},
"required": ["id", "name", "description", "glossary"],
"additionalProperties": false
}
```
**EntityStatus enum** (from `../../type/status.json`):
- `Draft` - Term is being defined
- `In Review` - Term is under review
- `Approved` - Term has been reviewed and approved
- `Deprecated` - Term is no longer recommended for use
- `Rejected` - Term was rejected during review
- `Unprocessed` - Default status for new terms
**[View Full JSON Schema →](https://github.com/open-metadata/OpenMetadataStandards/blob/main/schemas/entity/data/glossaryTerm.json)**
=== "RDF"
**RDF/OWL Ontology Definition**
```turtle
@prefix om: <https://open-metadata.org/schema/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2001/XMLSchema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
# GlossaryTerm Class Definition
om:GlossaryTerm a owl:Class ;
rdfs:subClassOf om:GovernanceAsset, skos:Concept ;
rdfs:label "GlossaryTerm" ;
rdfs:comment "A business concept with definition and relationships" ;
om:hierarchyLevel 2 .
# Properties
om:termName a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range xsd:string ;
rdfs:label "name" ;
rdfs:comment "Name of the glossary term" .
om:fullyQualifiedName a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range xsd:string ;
rdfs:label "fullyQualifiedName" ;
rdfs:comment "Complete hierarchical name: glossary.term" .
om:termDefinition a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range xsd:string ;
rdfs:label "definition" ;
rdfs:comment "Definition of the business term" ;
owl:equivalentProperty skos:definition .
om:synonym a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range xsd:string ;
rdfs:label "synonym" ;
rdfs:comment "Alternate name for this term" ;
owl:equivalentProperty skos:altLabel .
om:entityStatus a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:EntityStatus ;
rdfs:label "entityStatus" ;
rdfs:comment "Approval status: Draft, In Review, Approved, Deprecated, Rejected, Unprocessed" .
om:belongsToGlossary a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:Glossary ;
rdfs:label "belongsToGlossary" ;
rdfs:comment "Parent glossary" ;
owl:equivalentProperty skos:inScheme .
om:hasParentTerm a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:GlossaryTerm ;
rdfs:label "hasParentTerm" ;
rdfs:comment "Parent term in hierarchy" ;
owl:equivalentProperty skos:broader .
om:hasChildTerm a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:GlossaryTerm ;
rdfs:label "hasChildTerm" ;
rdfs:comment "Child term in hierarchy" ;
owl:equivalentProperty skos:narrower .
om:relatedTo a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:GlossaryTerm ;
rdfs:label "relatedTo" ;
rdfs:comment "Related glossary term" ;
owl:equivalentProperty skos:related .
om:appliedToAsset a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:DataAsset ;
rdfs:label "appliedToAsset" ;
rdfs:comment "Data assets tagged with this term" .
om:hasOwner a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:Owner ;
rdfs:label "hasOwner" ;
rdfs:comment "Owners of this glossary term" .
om:belongsToDomain a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:Domain ;
rdfs:label "belongsToDomain" ;
rdfs:comment "Domains the glossary term belongs to" .
om:partOfDataProduct a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:DataProduct ;
rdfs:label "partOfDataProduct" ;
rdfs:comment "Data products this term is part of" .
om:hasVotes a owl:ObjectProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range om:Votes ;
rdfs:label "hasVotes" ;
rdfs:comment "Votes on the glossary term" .
om:childrenCount a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range xsd:integer ;
rdfs:label "childrenCount" ;
rdfs:comment "Count of immediate children glossary terms" .
om:disabled a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range xsd:boolean ;
rdfs:label "disabled" ;
rdfs:comment "System glossary can't be deleted. Use this flag to disable them" .
om:mutuallyExclusive a owl:DatatypeProperty ;
rdfs:domain om:GlossaryTerm ;
rdfs:range xsd:boolean ;
rdfs:label "mutuallyExclusive" ;
rdfs:comment "Whether children terms are mutually exclusive" .
# Entity Status Enumeration
om:EntityStatus a owl:Class ;
owl:oneOf (
om:DraftStatus
om:InReviewStatus
om:ApprovedStatus
om:DeprecatedStatus
om:RejectedStatus
om:UnprocessedStatus
) .
# Example Instance
ex:customerTerm a om:GlossaryTerm, skos:Concept ;
om:termName "Customer" ;
om:fullyQualifiedName "BusinessGlossary.Customer" ;
om:displayName "Customer" ;
om:termDefinition "An individual or organization that purchases goods or services" ;
om:synonym "Client" ;
om:synonym "Account" ;
om:entityStatus om:ApprovedStatus ;
om:belongsToGlossary ex:businessGlossary ;
om:relatedTo ex:orderTerm ;
om:hasChildTerm ex:enterpriseCustomerTerm ;
om:appliedToAsset ex:customersTable ;
om:hasOwner ex:janeDoe ;
om:hasReviewer ex:dataGovernanceTeam ;
om:belongsToDomain ex:salesDomain ;
om:partOfDataProduct ex:customerDataProduct ;
om:childrenCount 3 ;
om:mutuallyExclusive false .
```
**[View Full RDF Ontology →](https://github.com/open-metadata/OpenMetadataStandards/blob/main/rdf/ontology/openmetadata.ttl)**
=== "JSON-LD"
**JSON-LD Context and Example**
```json
{
"@context": {
"@vocab": "https://open-metadata.org/schema/",
"om": "https://open-metadata.org/schema/",
"skos": "http://www.w3.org/2004/02/skos/core#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"GlossaryTerm": "om:GlossaryTerm",
"Concept": "skos:Concept",
"name": {
"@id": "om:termName",
"@type": "xsd:string"
},
"fullyQualifiedName": {
"@id": "om:fullyQualifiedName",
"@type": "xsd:string"
},
"displayName": {
"@id": "om:displayName",
"@type": "xsd:string"
},
"description": {
"@id": "om:termDefinition",
"@type": "xsd:string"
},
"definition": {
"@id": "skos:definition",
"@type": "xsd:string"
},
"synonyms": {
"@id": "skos:altLabel",
"@type": "xsd:string",
"@container": "@set"
},
"entityStatus": {
"@id": "om:entityStatus",
"@type": "@vocab"
},
"glossary": {
"@id": "skos:inScheme",
"@type": "@id"
},
"parent": {
"@id": "skos:broader",
"@type": "@id"
},
"children": {
"@id": "skos:narrower",
"@type": "@id",
"@container": "@set"
},
"relatedTerms": {
"@id": "skos:related",
"@type": "@id",
"@container": "@set"
},
"owners": {
"@id": "om:hasOwner",
"@type": "@id",
"@container": "@set"
},
"reviewers": {
"@id": "om:hasReviewer",
"@type": "@id",
"@container": "@set"
},
"tags": {
"@id": "om:hasTag",
"@type": "@id",
"@container": "@set"
},
"domains": {
"@id": "om:belongsToDomain",
"@type": "@id",
"@container": "@set"
},
"dataProducts": {
"@id": "om:partOfDataProduct",
"@type": "@id",
"@container": "@set"
},
"votes": {
"@id": "om:hasVotes",
"@type": "@id"
},
"childrenCount": {
"@id": "om:childrenCount",
"@type": "xsd:integer"
},
"disabled": {
"@id": "om:disabled",
"@type": "xsd:boolean"
},
"mutuallyExclusive": {
"@id": "om:mutuallyExclusive",
"@type": "xsd:boolean"
}
}
}
```
**Example JSON-LD Instance**:
```json
{
"@context": "https://open-metadata.org/context/glossaryTerm.jsonld",
"@type": ["GlossaryTerm", "Concept"],
"@id": "https://example.com/glossary/business/Customer",
"name": "Customer",
"fullyQualifiedName": "BusinessGlossary.Customer",
"displayName": "Customer",
"description": "# Customer\n\nAn individual or organization that purchases goods or services from the company.\n\n## Key Attributes\n- Must have a unique customer ID\n- Can be individual or business entity\n- Has associated contact information",
"entityStatus": "Approved",
"synonyms": ["Client", "Account", "Buyer"],
"glossary": {
"@id": "https://example.com/glossary/business",
"@type": "Glossary",
"name": "BusinessGlossary"
},
"parent": {
"@id": "https://example.com/glossary/business/Party",
"@type": "GlossaryTerm",
"name": "Party"
},
"children": [
{
"@id": "https://example.com/glossary/business/EnterpriseCustomer",
"@type": "GlossaryTerm",
"name": "EnterpriseCustomer"
},
{
"@id": "https://example.com/glossary/business/IndividualCustomer",
"@type": "GlossaryTerm",
"name": "IndividualCustomer"
}
],
"relatedTerms": [
{
"@id": "https://example.com/glossary/business/Order",
"@type": "GlossaryTerm",
"name": "Order"
},
{
"@id": "https://example.com/glossary/business/Revenue",
"@type": "GlossaryTerm",
"name": "Revenue"
}
],
"references": [
{
"name": "Customer Definition - Wikipedia",
"endpoint": "https://en.wikipedia.org/wiki/Customer"
}
],
"owners": [
{
"@id": "https://example.com/users/jane.doe",
"@type": "User",
"name": "jane.doe",
"displayName": "Jane Doe"
}
],
"reviewers": [
{
"@id": "https://example.com/teams/data-governance",
"@type": "Team",
"name": "DataGovernance"
}
],
"tags": [
{
"@id": "https://open-metadata.org/tags/Governance/Approved",
"tagFQN": "Governance.Approved"
}
],
"domains": [
{
"@id": "https://example.com/domains/sales",
"@type": "Domain",
"name": "Sales"
}
],
"dataProducts": [
{
"@id": "https://example.com/dataProducts/customer-analytics",
"@type": "DataProduct",
"name": "CustomerAnalytics"
}
],
"usageCount": 45,
"childrenCount": 2,
"mutuallyExclusive": false
}
```
**[View Full JSON-LD Context →](https://github.com/open-metadata/OpenMetadataStandards/blob/main/rdf/contexts/glossaryTerm.jsonld)**
- Define business concepts with clear definitions
- Link business terms to technical data assets (tables, columns, dashboards)
- Build hierarchical business vocabularies (parent-child relationships)
- Document synonyms and alternate names
- Track term approval status and lifecycle
- Enable business-oriented data discovery
- Support regulatory compliance with standardized terminology
- Facilitate cross-team understanding of business concepts
- Document relationships between business concepts
Type: string (UUID format)
Required: Yes (system-generated)
Description: Unique identifier for this glossary term
{
"id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e"
}Type: string
Required: Yes
Pattern: ^[^.]*$ (no dots allowed)
Min Length: 1
Max Length: 256
Description: Name of the glossary term
{
"name": "Customer"
}Type: string
Required: Yes (system-generated)
Pattern: ^((?!::).)*$
Description: Fully qualified name in the format glossary.term or glossary.parentTerm.term
{
"fullyQualifiedName": "BusinessGlossary.Customer"
}Type: string
Required: No
Description: Human-readable display name
{
"displayName": "Customer"
}Type: string (Markdown format)
Required: Yes
Description: Rich text definition of the business term
{
"description": "# Customer\n\nAn individual or organization that purchases goods or services from the company.\n\n## Key Attributes\n- Must have a unique customer ID\n- Can be individual or business entity\n- Has associated contact information\n\n## Usage Guidelines\nUse this term when referring to entities that have a purchasing relationship with the company."
}Type: object
Required: Yes
Description: Reference to parent glossary
{
"glossary": {
"id": "glossary-uuid",
"type": "glossary",
"name": "BusinessGlossary",
"fullyQualifiedName": "BusinessGlossary"
}
}Type: object
Required: No
Description: Parent glossary term in hierarchy
{
"parent": {
"id": "parent-term-uuid",
"type": "glossaryTerm",
"name": "Party",
"fullyQualifiedName": "BusinessGlossary.Party"
}
}Type: array of GlossaryTerm references
Required: No
Description: Child glossary terms
{
"children": [
{
"id": "child-term-uuid-1",
"type": "glossaryTerm",
"name": "EnterpriseCustomer",
"fullyQualifiedName": "BusinessGlossary.Customer.EnterpriseCustomer"
},
{
"id": "child-term-uuid-2",
"type": "glossaryTerm",
"name": "IndividualCustomer",
"fullyQualifiedName": "BusinessGlossary.Customer.IndividualCustomer"
}
]
}Type: array of GlossaryTerm references
Required: No
Description: Related glossary terms (non-hierarchical relationships)
{
"relatedTerms": [
{
"id": "related-term-uuid-1",
"type": "glossaryTerm",
"name": "Order",
"fullyQualifiedName": "BusinessGlossary.Order"
},
{
"id": "related-term-uuid-2",
"type": "glossaryTerm",
"name": "Revenue",
"fullyQualifiedName": "BusinessGlossary.Revenue"
}
]
}Type: array of strings
Required: No
Description: Alternate names for this term
{
"synonyms": ["Client", "Account", "Buyer", "Purchaser"]
}Type: array of reference objects
Required: No
Description: External references and documentation
TermReference Object:
| Property | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Reference name |
endpoint |
uri | Yes | URL to external resource |
{
"references": [
{
"name": "Customer Definition - Wikipedia",
"endpoint": "https://en.wikipedia.org/wiki/Customer"
},
{
"name": "GDPR Customer Rights",
"endpoint": "https://gdpr-info.eu/art-15-gdpr/"
}
]
}Type: string enum
Required: No (default: Unprocessed)
Allowed Values:
Draft- Term is being definedIn Review- Term is under reviewApproved- Term has been reviewed and approvedDeprecated- Term is no longer recommended for useRejected- Term was rejected during reviewUnprocessed- Default status for new terms
{
"entityStatus": "Approved"
}Type: array of User or Team references
Required: No
Description: Users or teams that own this term
{
"owners": [
{
"id": "owner-uuid",
"type": "user",
"name": "jane.doe",
"displayName": "Jane Doe"
},
{
"id": "owner-uuid-2",
"type": "team",
"name": "DataGovernance",
"displayName": "Data Governance Team"
}
]
}Type: array of User or Team references
Required: No
Description: Users or teams that can review and approve this term
{
"reviewers": [
{
"id": "reviewer-uuid",
"type": "team",
"name": "DataGovernance",
"displayName": "Data Governance Team"
}
]
}Type: array of Domain references
Required: No
Description: Data domains this term belongs to. When not set, the term inherits the domain from the Glossary it belongs to.
{
"domains": [
{
"id": "domain-uuid",
"type": "domain",
"name": "Sales",
"fullyQualifiedName": "Sales"
},
{
"id": "domain-uuid-2",
"type": "domain",
"name": "Marketing",
"fullyQualifiedName": "Marketing"
}
]
}Type: array
Required: No
Description: Classification tags applied to the term
{
"tags": [
{
"tagFQN": "Governance.Approved",
"source": "Classification",
"labelType": "Manual",
"state": "Confirmed"
}
]
}Type: array of DataProduct references
Required: No
Description: List of data products this entity is part of
{
"dataProducts": [
{
"id": "dataproduct-uuid",
"type": "dataProduct",
"name": "CustomerAnalytics",
"fullyQualifiedName": "CustomerAnalytics"
}
]
}Type: object
Required: No
Description: Votes on the entity (upvotes/downvotes)
{
"votes": {
"upVotes": 15,
"downVotes": 2,
"upVoters": [
{"id": "user-uuid-1", "type": "user", "name": "user1"},
{"id": "user-uuid-2", "type": "user", "name": "user2"}
],
"downVoters": [
{"id": "user-uuid-3", "type": "user", "name": "user3"}
]
}
}Type: object
Required: No
Description: UI style configuration for the term (color, iconURL)
{
"style": {
"color": "#1E88E5",
"iconURL": "https://example.com/icons/customer.svg"
}
}Type: boolean
Required: No
Description: System glossary can't be deleted. Use this flag to disable them.
{
"disabled": false
}Type: boolean
Required: No (default: false)
Description: Glossary terms that are children of this term are mutually exclusive. When true, only one term can be used to label an entity from this group. When false, multiple terms from this group can be used to label an entity.
{
"mutuallyExclusive": false
}Type: string enum
Required: No
Description: Provider type (e.g., system, user)
{
"provider": "user"
}Type: object
Required: No
Description: Entity extension data with custom attributes added to the entity
{
"extension": {
"customField1": "value1",
"customField2": 123
}
}Type: integer
Required: No (system-generated)
Description: Count of immediate children glossary terms
{
"childrenCount": 5
}Type: string (URI format)
Required: No (system-generated)
Description: Link to the resource corresponding to this entity
{
"href": "https://example.com/api/v1/glossaryTerms/2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e"
}Type: boolean
Required: No (default: false)
Description: When true indicates the entity has been soft deleted
{
"deleted": false
}Type: object
Required: No (system-managed)
Description: Change that lead to this version of the entity
{
"changeDescription": {
"fieldsAdded": [{"name": "tags", "newValue": "[{\"tagFQN\":\"PII.Sensitive\"}]"}],
"fieldsUpdated": [{"name": "description", "oldValue": "Old description", "newValue": "New description"}],
"fieldsDeleted": [],
"previousVersion": 1.0
}
}Type: object
Required: No (system-managed)
Description: Incremental change that lead to this version of the entity
{
"incrementalChangeDescription": {
"fieldsAdded": [],
"fieldsUpdated": [{"name": "entityStatus", "oldValue": "Draft", "newValue": "Approved"}],
"fieldsDeleted": [],
"previousVersion": 1.5
}
}Type: string
Required: No (system-managed)
Description: Bot user that performed the action on behalf of the actual user
{
"impersonatedBy": "ingestion-bot"
}Type: integer
Required: No (system-generated)
Description: Number of data assets tagged with this term
{
"usageCount": 45
}Type: number
Required: Yes (system-managed)
Description: Metadata version number, incremented on changes
{
"version": 2.1
}Type: integer (Unix epoch milliseconds)
Required: Yes (system-managed)
Description: Last update timestamp
{
"updatedAt": 1704240000000
}Type: string
Required: Yes (system-managed)
Description: User who made the update
{
"updatedBy": "jane.doe"
}{
"id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"name": "Customer",
"fullyQualifiedName": "BusinessGlossary.Customer",
"displayName": "Customer",
"description": "# Customer\n\nAn individual or organization that purchases goods or services from the company.",
"entityStatus": "Approved",
"style": {
"color": "#1E88E5",
"iconURL": "https://example.com/icons/customer.svg"
},
"synonyms": ["Client", "Account", "Buyer"],
"glossary": {
"id": "glossary-uuid",
"type": "glossary",
"name": "BusinessGlossary"
},
"parent": {
"id": "parent-uuid",
"type": "glossaryTerm",
"name": "Party",
"fullyQualifiedName": "BusinessGlossary.Party"
},
"children": [
{
"id": "child-uuid-1",
"type": "glossaryTerm",
"name": "EnterpriseCustomer",
"fullyQualifiedName": "BusinessGlossary.Customer.EnterpriseCustomer"
}
],
"relatedTerms": [
{
"id": "related-uuid-1",
"type": "glossaryTerm",
"name": "Order",
"fullyQualifiedName": "BusinessGlossary.Order"
}
],
"references": [
{
"name": "Customer Definition - Wikipedia",
"endpoint": "https://en.wikipedia.org/wiki/Customer"
}
],
"owners": [
{
"id": "owner-uuid",
"type": "user",
"name": "jane.doe",
"displayName": "Jane Doe"
}
],
"reviewers": [
{
"id": "reviewer-uuid",
"type": "team",
"name": "DataGovernance"
}
],
"domains": [
{
"id": "domain-uuid",
"type": "domain",
"name": "Sales"
}
],
"dataProducts": [
{
"id": "dataproduct-uuid",
"type": "dataProduct",
"name": "CustomerAnalytics"
}
],
"tags": [
{
"tagFQN": "Governance.Approved"
}
],
"votes": {
"upVotes": 15,
"downVotes": 2
},
"usageCount": 45,
"childrenCount": 1,
"mutuallyExclusive": false,
"disabled": false,
"version": 2.1,
"updatedAt": 1704240000000,
"updatedBy": "jane.doe",
"href": "https://example.com/api/v1/glossaryTerms/2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"deleted": false
}@prefix om: <https://open-metadata.org/schema/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2001/XMLSchema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
om:GlossaryTerm a owl:Class ;
rdfs:subClassOf om:GovernanceAsset, skos:Concept ;
rdfs:label "GlossaryTerm" ;
rdfs:comment "A business concept with definition and relationships" ;
om:hasProperties [
om:name "string" ;
om:definition "string" ;
om:synonyms "string[]" ;
om:status "TermStatus" ;
om:parent "GlossaryTerm" ;
om:children "GlossaryTerm[]" ;
om:relatedTerms "GlossaryTerm[]" ;
] .@prefix om: <https://open-metadata.org/schema/> .
@prefix ex: <https://example.com/glossary/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
ex:customerTerm a om:GlossaryTerm, skos:Concept ;
om:termName "Customer" ;
om:fullyQualifiedName "BusinessGlossary.Customer" ;
om:displayName "Customer" ;
skos:definition "An individual or organization that purchases goods or services" ;
skos:altLabel "Client" ;
skos:altLabel "Account" ;
om:entityStatus om:ApprovedStatus ;
skos:inScheme ex:businessGlossary ;
skos:broader ex:partyTerm ;
skos:narrower ex:enterpriseCustomerTerm ;
skos:related ex:orderTerm ;
om:hasOwner ex:janeDoe ;
om:hasReviewer ex:dataGovernanceTeam ;
om:belongsToDomain ex:salesDomain ;
om:partOfDataProduct ex:customerDataProduct ;
om:appliedToAsset ex:customersTable ;
om:childrenCount 1 ;
om:mutuallyExclusive false ;
om:disabled false .{
"@context": {
"@vocab": "https://open-metadata.org/schema/",
"om": "https://open-metadata.org/schema/",
"skos": "http://www.w3.org/2004/02/skos/core#",
"GlossaryTerm": "om:GlossaryTerm",
"Concept": "skos:Concept",
"name": "om:termName",
"description": "skos:definition",
"synonyms": "skos:altLabel",
"glossary": "skos:inScheme",
"parent": "skos:broader",
"children": "skos:narrower",
"relatedTerms": "skos:related"
}
}{
"@context": "https://open-metadata.org/context/glossaryTerm.jsonld",
"@type": ["GlossaryTerm", "Concept"],
"@id": "https://example.com/glossary/business/Customer",
"name": "Customer",
"fullyQualifiedName": "BusinessGlossary.Customer",
"description": "An individual or organization that purchases goods or services",
"entityStatus": "Approved",
"synonyms": ["Client", "Account"],
"glossary": {
"@id": "https://example.com/glossary/business",
"@type": "Glossary"
},
"parent": {
"@id": "https://example.com/glossary/business/Party",
"@type": "GlossaryTerm"
},
"owners": [
{
"@id": "https://example.com/users/jane.doe",
"@type": "User",
"name": "jane.doe"
}
],
"domains": [
{
"@id": "https://example.com/domains/sales",
"@type": "Domain",
"name": "Sales"
}
],
"childrenCount": 1,
"mutuallyExclusive": false
}- Glossary: The glossary this term belongs to
- GlossaryTerm: Parent term (for hierarchical terms)
- GlossaryTerm: Child terms in hierarchy
- Owner: User or team owning this term
- Reviewer: Users or teams that can review
- Domain: Business domain assignment
- Tag: Classification tags
- DataAsset: Tables, columns, dashboards, etc. tagged with this term
graph TD
%% Hierarchical relationships (parent-child)
GLOSS[Glossary<br/>BusinessGlossary] -->|contains| GT1[GlossaryTerm<br/>Customer]
GT1 -->|has child| GT2[GlossaryTerm<br/>Individual Customer]
GT1 -->|has child| GT3[GlossaryTerm<br/>Corporate Customer]
%% Cross-entity relationships - Governance
USR[User/Team] -.->|owns| GT1
REV[User<br/>Reviewer] -.->|reviews| GT1
DOM[Domain<br/>Sales] -.->|groups| GT1
TAG[Tag] -.->|classifies| GT1
%% Related terms
GT1 -.->|related to| GT4[GlossaryTerm<br/>Account]
GT1 -.->|synonym| SYN[Synonym<br/>Client]
%% Cross-entity relationships - Data Assets
GT1 -.->|describes| TBL[Table<br/>customers]
GT1 -.->|describes| COL[Column<br/>customer_type]
GT1 -.->|describes| DASH[Dashboard<br/>Customer Analytics]
GT1 -.->|describes| ML[MLModel<br/>churn_predictor]
%% Styling
classDef glossary fill:#8B5CF6,stroke:#7C3AED,color:#fff
classDef term fill:#A78BFA,stroke:#8B5CF6,color:#fff
classDef governance fill:#059669,stroke:#047857,color:#fff
classDef data fill:#2563EB,stroke:#1E40AF,color:#fff
class GLOSS glossary
class GT1,GT2,GT3,GT4,SYN term
class USR,REV,DOM,TAG governance
class TBL,COL,DASH,ML data
This entity supports custom properties through the extension field.
Common custom properties include:
- Data Classification: Sensitivity level
- Cost Center: Billing allocation
- Retention Period: Data retention requirements
- Application Owner: Owning application/team
See Custom Properties for details on defining and using custom properties.
GET /v1/glossaryTerms
Query Parameters:
- glossary: Filter by glossary ID or name
- parent: Filter by parent term ID
- directChildrenOf: List immediate children of specified term
- fields: Fields to include (children, relatedTerms, reviewers, owners, tags, usageCount, domains, dataProducts, votes, extension, childrenCount)
- limit: Number of results (1-1000000, default 10)
- before: Cursor for previous page
- after: Cursor for next page
- include: all | deleted | non-deleted (default: non-deleted)
Response: GlossaryTermListExample Request:
GET /v1/glossaryTerms?glossary=BusinessGlossary&fields=children,relatedTerms,owners,status&limit=50POST /v1/glossaryTerms
Content-Type: application/json
{
"name": "Customer",
"displayName": "Customer",
"description": "# Customer\n\nAn individual or organization that purchases goods or services from a business.\n\n## Key Attributes\n- Unique customer identifier\n- Contact information\n- Purchase history\n- Account status",
"glossary": "BusinessGlossary",
"parent": {
"id": "parent-term-uuid",
"type": "glossaryTerm"
},
"synonyms": ["Client", "Account", "Buyer"],
"relatedTerms": [
{
"id": "order-term-uuid",
"type": "glossaryTerm"
},
{
"id": "revenue-term-uuid",
"type": "glossaryTerm"
}
],
"references": [
{
"name": "CRM Documentation",
"endpoint": "https://docs.example.com/crm/customer"
}
],
"entityStatus": "Draft",
"owners": [
{
"id": "user-uuid",
"type": "user"
}
],
"reviewers": [
{
"id": "reviewer-uuid",
"type": "user"
}
],
"tags": [
{"tagFQN": "Governance.Approved"},
{"tagFQN": "PII.NonSensitive"}
],
"domains": [
{
"id": "domain-uuid",
"type": "domain"
}
],
"dataProducts": [
{
"id": "dataproduct-uuid",
"type": "dataProduct"
}
]
}
Response: GlossaryTermPOST /v1/glossaryTerms/createMany
Content-Type: application/json
[
{
"name": "Order",
"displayName": "Order",
"description": "A customer's request to purchase products or services",
"glossary": "BusinessGlossary"
},
{
"name": "Invoice",
"displayName": "Invoice",
"description": "A document requesting payment for goods or services",
"glossary": "BusinessGlossary"
}
]
Response: List of created GlossaryTermsGET /v1/glossaryTerms/name/{fqn}
Query Parameters:
- fields: Fields to include (parent, children, relatedTerms, reviewers, owners, tags, usageCount, domains, dataProducts, votes, extension, childrenCount)
- include: all | deleted | non-deleted (default: non-deleted)
Response: GlossaryTermExample Request:
GET /v1/glossaryTerms/name/BusinessGlossary.Customer?fields=parent,children,relatedTerms,usageCountGET /v1/glossaryTerms/{id}
Query Parameters:
- fields: Fields to include
- include: all | deleted | non-deleted (default: non-deleted)
Response: GlossaryTermPATCH /v1/glossaryTerms/{id}
Content-Type: application/json-patch+json
[
{
"op": "replace",
"path": "/entityStatus",
"value": "Approved"
},
{
"op": "add",
"path": "/synonyms/-",
"value": "Purchaser"
},
{
"op": "replace",
"path": "/description",
"value": "Updated term description with additional details"
},
{
"op": "add",
"path": "/tags/-",
"value": {"tagFQN": "BusinessCritical"}
}
]
Response: GlossaryTermPUT /v1/glossaryTerms
Content-Type: application/json
{
"name": "Revenue",
"displayName": "Revenue",
"description": "Income generated from normal business operations",
"glossary": "BusinessGlossary",
"synonyms": ["Income", "Sales"],
"entityStatus": "Approved"
}
Response: GlossaryTermDELETE /v1/glossaryTerms/{id}
Query Parameters:
- hardDelete: true | false (default: false - soft delete)
- recursive: true | false (default: false)
Response: GlossaryTermDELETE /v1/glossaryTerms/async/{id}
Query Parameters:
- hardDelete: true | false (default: false)
- recursive: true | false (default: false)
Response: Async deletion job detailsGET /v1/glossaryTerms/{id}/assets
Query Parameters:
- limit: Number of results (1-1000000, default 10)
- before: Cursor for previous page
- after: Cursor for next page
Response: List of data assets tagged with this termGET /v1/glossaryTerms/name/{fqn}/assets
Query Parameters:
- limit: Number of results (1-1000000, default 10)
- before: Cursor for previous page
- after: Cursor for next page
Response: List of data assets tagged with this termPUT /v1/glossaryTerms/{id}/assets/add
Content-Type: application/json
{
"assets": [
{
"id": "table-uuid-1",
"type": "table"
},
{
"id": "dashboard-uuid-1",
"type": "dashboard"
},
{
"id": "column-uuid-1",
"type": "column"
}
]
}
Response: ChangeEventPUT /v1/glossaryTerms/{id}/assets/remove
Content-Type: application/json
{
"assets": [
{
"id": "table-uuid-1",
"type": "table"
}
]
}
Response: ChangeEventPUT /v1/glossaryTerms/{id}/moveAsync
Content-Type: application/json
{
"newParent": {
"id": "new-parent-uuid",
"type": "glossaryTerm"
}
}
Response: Async move operation detailsGET /v1/glossaryTerms/{id}/versions/{version}
Response: GlossaryTerm (specific version)GET /v1/glossaryTerms/{id}/versions
Response: EntityHistory (all versions)GET /v1/glossaryTerms/search
Query Parameters:
- q: Search query
- glossary: Filter by glossary
- entityStatus: Filter by status (Draft, In Review, Approved, Deprecated, Rejected, Unprocessed)
- fields: Fields to include
- limit: Number of results
- from: Offset for pagination
Response: SearchResults with GlossaryTermsExample Request:
GET /v1/glossaryTerms/search?q=customer&glossary=BusinessGlossary&entityStatus=Approved&limit=20PUT /v1/glossaryTerms/restore
Content-Type: application/json
{
"id": "term-uuid"
}
Response: GlossaryTerm (restored)PUT /v1/glossaryTerms/{id}/vote
Content-Type: application/json
{
"vote": "upvote"
}
Response: ChangeEventGET /v1/glossaryTerms/{id}/tags/validate
Query Parameters:
- includeChildren: true | false (default: false)
Response: Validation results for tags applied to the term- Glossary - Glossary containers
- Classification - Tag hierarchies
- Tag - Individual tags
- Table - Linking terms to tables
- SKOS Standard - W3C Simple Knowledge Organization System