{
  "enumDefs": [
    {
      "name": "TermRelationshipStatus",
      "description": "TermRelationshipStatus defines how reliable the relationship is between two glossary terms",
      "typeVersion": "1.0",
      "elementDefs": [
        {
          "ordinal": 0,
          "value": "DRAFT",
          "description": "DRAFT means the relationship is under development."
        },
        {
          "ordinal": 1,
          "value": "ACTIVE",
          "description": "ACTIVE means the relationship is validated and in use."
        },
        {
          "ordinal": 2,
          "value": "DEPRECATED",
          "description": "DEPRECATED means the the relationship is being phased out."
        },
        {
          "ordinal": 3,
          "value": "OBSOLETE",
          "description": "OBSOLETE means that the relationship should not be used anymore."
        },
        {
          "ordinal": 99,
          "value": "OTHER",
          "description": "OTHER means that there is another status."
        }
      ]
    }
  ],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [
    {
      "name": "GlossaryTerm",
      "description": "The vocabulary for the glossary is documented using terms. Each term represents a concept or short phrase in the vocabulary. Just like a category, a term is owned by a glossary. A term can be linked into a category from any glossary.",
      "superTypes": [
        "Referenceable"
      ],
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "displayName",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "shortDescription",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true
        },
        {
          "name": "longDescription",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true
        },
        {
          "name": "examples",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true
        },
        {
          "name": "abbreviation",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true
        },
        {
          "name": "usage",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true
        }
      ]
    }
  ],
  "relationshipDefs": [
    {
      "name": "TermAnchor",
      "typeVersion": "1.0",
      "description": "TermAnchor links each term to exactly one Glossary object. This means that this is its home glossary. If the Glossary object is deleted, then so are all of the terms linked to it.",
      "endDef1": {
        "name": "terms",
        "type": "Glossary",
        "cardinality": "SET",
        "isContainer": true
      },
      "endDef2": {
        "name": "anchor",
        "type": "GlossaryTerm",
        "cardinality": "SINGLE"
      },
      "relationshipCategory": "COMPOSITION",
      "propagateTags": "NONE"
    },
    {
      "name": "TermCategorization",
      "typeVersion": "1.0",
      "description": "TermCategorization is a relationship used to organize terms into categories. A term may be linked with many categories and a category may have many terms linked to it. This relationship may connect terms and categories both in the same glossary or in different glossaries.",
      "endDef1": {
        "name": "terms",
        "type": "GlossaryCategory",
        "cardinality": "SET",
        "isContainer": true
      },
      "endDef2": {
        "name": "categories",
        "type": "GlossaryTerm",
        "cardinality": "SET"
      },
      "relationshipCategory": "AGGREGATION",
      "propagateTags": "NONE",
      "attributeDefs": [
        {
          "name": "description",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "status",
          "typeName": "TermRelationshipStatus",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        }
        ]
    },
    {
      "name": "LibraryTermReference",
      "typeVersion": "1.0",
      "description": "Library Term Reference provides reference information for how this term corresponds to a term in an external glossary.",
      "endDef1": {
        "name": "localTerms",
        "type": "ExternalGlossaryLink",
        "cardinality": "SET"
      },
      "endDef2": {
        "name": "externalGlossaryLinks",
        "type": "GlossaryTerm",
        "cardinality": "SET"
      },
      "relationshipCategory": "ASSOCIATION",
      "propagateTags": "NONE",
      "attributeDefs": [
        {
          "name": "description",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "steward",
          "description": "The steward is the person responsible for assessing the relationship and deciding if it should be approved or not",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "identifier",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "lastVerified",
          "typeName": "date",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        }
      ]
    }
  ]
}
