{
  "enumDefs": [
    {
      "name": "TermAssignmentStatus",
      "description": "TermAssignmentStatus defines how much the semantic assignment should be trusted.",
      "typeVersion": "1.0",
      "elementDefs": [
        {
          "value": "DISCOVERED",
          "ordinal": 0,
          "description": "DISCOVERED means that the semantic assignment was added by a discovery engine."
        },
        {
          "value": "PROPOSED",
          "ordinal": 1,
          "description": "PROPOSED means that the semantic assignment was proposed by person - they may be a subject matter expert, or consumer of the Referenceable asset"
        },
        {
          "value": "IMPORTED",
          "ordinal": 2,
          "description": "IMPORTED means that the semantic assignment has been imported from outside of the open metadata cluster"
        },
        {
          "value": "VALIDATED",
          "ordinal": 3,
          "description": "VALIDATED means that the semantic assignment has been reviewed and is highly trusted."
        },
        {
          "value": "DEPRECATED",
          "ordinal": 4,
          "description": "DEPRECATED means that the semantic assignment is being phased out. There may be another semantic assignment to the Referenceable that will ultimately replace this one."
        },
        {
          "value": "OBSOLETE",
          "ordinal": 5,
          "description": "OBSOLETE means that the semantic assignment is no longer in use,"
        },
        {
          "value": "OTHER",
          "ordinal": 6,
          "description": "OTHER means that the semantic assignment value does not match any of the other Term Assignment Status values"
        }
      ]
    }
  ],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [],
  "relationshipDefs": [
    {
      "name": "SemanticAssignment",
      "description": "SemanticAssignment is a relationship used to assign a term to a referenceable object. This means that the term describes the meaning of the referenceable object. The semantic assignment needs to be a controlled relationship when glossary definitions are used to provide classifications for the data assets and hence define how the data is to be governed.",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "description",
          "description": "The description field can be used to add details about the semantic assignment.",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true
        },
        {
          "name": "expression",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true
        },
        {
          "name": "status",
          "typeName": "TermRelationshipStatus",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true
        },
        {
          "name": "confidence",
          "description": "The confidence attribute in the semantic assignment stores the level of confidence (0-100%) in the correctness of the semantic assignment - it is typically used by discovery engines.",
          "typeName": "int",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true
        },
        {
          "name": "createdBy",
          "description": "The semantic assignment is created by the user (person or engine) identified by the createdBy attribute.",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true
        },
        {
          "name": "steward",
          "description": "The steward is the person responsible for assessing the semantic assignment and deciding if it should be approved or not.",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true
        },
        {
          "name": "source",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true
        }
      ],
      "relationshipCategory": "ASSOCIATION",
      "propagateTags": "ONE_TO_TWO",
      "endDef1": {
        "type": "GlossaryTerm",
        "name": "assignedEntities",
        "isContainer": false,
        "cardinality": "SET",
        "isLegacyAttribute": false
      },
      "endDef2": {
        "type": "Referenceable",
        "name": "meanings",
        "isContainer": false,
        "cardinality": "SET",
        "isLegacyAttribute": false
      },
      "relationshipLabel": "r:SemanticAssignment"
    }
  ]
}