# pub.chive.graph.node

> Published by [chive.pub](https://lexicon.garden/identity/did:plc:7natp5xae72bddaqlkef2t4e)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:7natp5xae72bddaqlkef2t4e/pub.chive.graph.node)
- [Documentation](https://lexicon.garden/lexicon/did:plc:7natp5xae72bddaqlkef2t4e/pub.chive.graph.node/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:7natp5xae72bddaqlkef2t4e/pub.chive.graph.node/examples)

## Definitions

### `pub.chive.graph.node`

**Type**: `record`

Unified knowledge graph node combining concepts, organizations, authorities, fields, and facets. All relationships are via edges.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | `string` | Yes | UUID identifier (also used as rkey) |
| `kind` | `string` | Yes | Node kind: 'type' for classifications/categories, 'object' for instances |
| `slug` | `string` | No | Human-readable URL-safe identifier (e.g., 'pdf', 'computer-science') |
| `label` | `string` | Yes | Primary display label |
| `status` | `string` | Yes | Lifecycle status |
| `subkind` | `string` | No | Slug identifying the subkind (e.g., 'field', 'facet', 'institution') |
| `metadata` | `ref` → `#nodeMetadata` | No | Subkind-specific metadata |
| `createdAt` | `string` (datetime) | Yes |  |
| `createdBy` | `string` (did) | No | DID of creator or governance |
| `updatedAt` | `string` (datetime) | No |  |
| `subkindUri` | `string` (at-uri) | No | AT-URI of the subkind type node |
| `description` | `string` | No | Detailed description or scope note |
| `externalIds` | `array` | No | External identifier mappings |
| `proposalUri` | `string` (at-uri) | No | AT-URI of the proposal that created this node (null for seeded) |
| `deprecatedBy` | `string` (at-uri) | No | AT-URI of the node that supersedes this one |
| `schemaRevision` | `integer` | No | Schema revision this record was created with. Absent means revision 1. |
| `alternateLabels` | `array` | No | Alternate labels, synonyms, translations |

### `pub.chive.graph.node#externalId`

**Type**: `object`

External identifier mapping

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `uri` | `string` (uri) | No | Full URI for the identifier |
| `system` | `string` | Yes | Identifier system |
| `matchType` | `string` | No | SKOS match type |
| `identifier` | `string` | Yes | Identifier value |

### `pub.chive.graph.node#nodeMetadata`

**Type**: `object`

Subkind-specific metadata fields

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `city` | `string` | No | City name (for institutions) |
| `spdxId` | `string` | No | SPDX license identifier (for licenses) |
| `country` | `string` | No | ISO 3166-1 alpha-2 country code (for institutions) |
| `website` | `string` (uri) | No | Official website URL |
| `mimeTypes` | `array` | No | MIME types (for document-format) |
| `reflexive` | `boolean` | No | Whether this relation is reflexive (A rel A is always valid) |
| `symmetric` | `boolean` | No | Whether this relation is symmetric (A rel B implies B rel A) |
| `functional` | `boolean` | No | Whether this relation is functional (each source has at most one target) |
| `transitive` | `boolean` | No | Whether this relation is transitive (A rel B and B rel C implies A rel C) |
| `inverseSlug` | `string` | No | Slug of inverse relation (for relation types) |
| `displayOrder` | `integer` | No | Display order for UI sorting |
| `organizationStatus` | `string` | No | Organization operational status (for institutions) |

## Raw Schema

```json
{
  "id": "pub.chive.graph.node",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "label",
          "status",
          "createdAt"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID identifier (also used as rkey)"
          },
          "kind": {
            "type": "string",
            "description": "Node kind: 'type' for classifications/categories, 'object' for instances",
            "knownValues": [
              "type",
              "object"
            ]
          },
          "slug": {
            "type": "string",
            "maxLength": 100,
            "description": "Human-readable URL-safe identifier (e.g., 'pdf', 'computer-science')"
          },
          "label": {
            "type": "string",
            "maxLength": 500,
            "description": "Primary display label"
          },
          "status": {
            "type": "string",
            "description": "Lifecycle status",
            "knownValues": [
              "proposed",
              "provisional",
              "established",
              "deprecated"
            ]
          },
          "subkind": {
            "type": "string",
            "maxLength": 50,
            "description": "Slug identifying the subkind (e.g., 'field', 'facet', 'institution')"
          },
          "metadata": {
            "ref": "#nodeMetadata",
            "type": "ref",
            "description": "Subkind-specific metadata"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "createdBy": {
            "type": "string",
            "format": "did",
            "description": "DID of creator or governance"
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime"
          },
          "subkindUri": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of the subkind type node"
          },
          "description": {
            "type": "string",
            "maxLength": 2000,
            "description": "Detailed description or scope note"
          },
          "externalIds": {
            "type": "array",
            "items": {
              "ref": "#externalId",
              "type": "ref"
            },
            "maxLength": 20,
            "description": "External identifier mappings"
          },
          "proposalUri": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of the proposal that created this node (null for seeded)"
          },
          "deprecatedBy": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of the node that supersedes this one"
          },
          "schemaRevision": {
            "type": "integer",
            "minimum": 1,
            "description": "Schema revision this record was created with. Absent means revision 1."
          },
          "alternateLabels": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 500
            },
            "maxLength": 50,
            "description": "Alternate labels, synonyms, translations"
          }
        }
      },
      "description": "Unified knowledge graph node combining concepts, organizations, authorities, fields, and facets. All relationships are via edges."
    },
    "externalId": {
      "type": "object",
      "required": [
        "system",
        "identifier"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri",
          "description": "Full URI for the identifier"
        },
        "system": {
          "type": "string",
          "description": "Identifier system",
          "knownValues": [
            "wikidata",
            "ror",
            "orcid",
            "isni",
            "viaf",
            "lcsh",
            "fast",
            "credit",
            "spdx",
            "fundref",
            "mesh",
            "aat",
            "gnd",
            "anzsrc",
            "skos",
            "cosmik",
            "schema-org",
            "dublin-core"
          ]
        },
        "matchType": {
          "type": "string",
          "description": "SKOS match type",
          "knownValues": [
            "exact",
            "close",
            "broader",
            "narrower",
            "related"
          ]
        },
        "identifier": {
          "type": "string",
          "maxLength": 200,
          "description": "Identifier value"
        }
      },
      "description": "External identifier mapping"
    },
    "nodeMetadata": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "maxLength": 200,
          "description": "City name (for institutions)"
        },
        "spdxId": {
          "type": "string",
          "maxLength": 100,
          "description": "SPDX license identifier (for licenses)"
        },
        "country": {
          "type": "string",
          "maxLength": 2,
          "description": "ISO 3166-1 alpha-2 country code (for institutions)"
        },
        "website": {
          "type": "string",
          "format": "uri",
          "description": "Official website URL"
        },
        "mimeTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxLength": 10,
          "description": "MIME types (for document-format)"
        },
        "reflexive": {
          "type": "boolean",
          "description": "Whether this relation is reflexive (A rel A is always valid)"
        },
        "symmetric": {
          "type": "boolean",
          "description": "Whether this relation is symmetric (A rel B implies B rel A)"
        },
        "functional": {
          "type": "boolean",
          "description": "Whether this relation is functional (each source has at most one target)"
        },
        "transitive": {
          "type": "boolean",
          "description": "Whether this relation is transitive (A rel B and B rel C implies A rel C)"
        },
        "inverseSlug": {
          "type": "string",
          "maxLength": 50,
          "description": "Slug of inverse relation (for relation types)"
        },
        "displayOrder": {
          "type": "integer",
          "description": "Display order for UI sorting"
        },
        "organizationStatus": {
          "type": "string",
          "description": "Organization operational status (for institutions)",
          "knownValues": [
            "active",
            "merged",
            "inactive",
            "defunct"
          ]
        }
      },
      "description": "Subkind-specific metadata fields"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "revision": 1
}
```
