> For the complete documentation index, see [llms.txt](https://docs.biobox.io/guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.biobox.io/guide/how-to/ask-biobox-with-claude/tools/describe-entity-type.md).

# describe\_entity\_type — Describe entity type

Describe entity type

Describe entity type

## What it does

Describe one entity type (ontology class) in detail — its definition, instance count, direct subtypes (SCO children), data properties (incl. dropdown option values), and the relationship types that connect it to other classes.

**When to use:** the user asks about a specific entity type — its meaning, how many instances, its subtypes, properties, or how it relates to other classes; you need a class's SCO subtypes (e.g. 'show the subtypes of Gene and how they sit under it'); you need the relationship types a class participates in before planning a graph traversal or search.

**When NOT to use:** you want to list ALL entity types in the org — use list\_entity\_types; you want a specific instance (an actual gene / disease record) — use get\_entity / search\_entities.

**Parameters:**

* `dbLabel` — The graph/Cypher label of the class to describe, e.g. `Gene` or `TranscriptionFactor`. Get it from `list_entity_types` (the `dbLabel` field) or `get_graph_schema`. dbLabel is the canonical identifier — do NOT use a human display name or URI.

**Returns:** On success, the class detail: displayName (human class name, e.g. "Transcription Factor"), dbLabel (the graph/Cypher label, e.g. "TranscriptionFactor" — this is what run\_graph\_query / get\_entity\_connections expect), definition, numInstances, parent (dbLabel of the SCO superclass — Cypher-usable, or null at a root), children (dbLabels of the class's DIRECT SCO subtypes, one level down — ONTOLOGY children only, e.g. Gene → \["TranscriptionFactor"]; an empty array means no subtypes; instance-level dbLabels like ProteinCoding / LongNonCodingRNA are NOT ontology subtypes and won't appear here), dataProperties (each { name, type } where type is one of string/dropdown/float/boolean/dateTime/array/any; dropdown properties also carry options: \[allowed values], e.g. ClinicalTrial.overall\_status → \["COMPLETED", "RECRUITING", …]), and outboundRelationships / incomingRelationships (each { label, connects: \[dbLabels of connected classes] }). All class identifiers in parent, children, and connects are graph dbLabels, so they feed directly into run\_graph\_query / get\_entity\_connections; all relationships are returned in full. When the dbLabel resolves to no class, the response is { found: false } (an explicit not-found, not an error).

## Parameters

| Parameter | Type   | Required | Description                                                                                                                                                                                                                                       |
| --------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dbLabel` | string | yes      | The graph/Cypher label of the class to describe, e.g. `Gene` or `TranscriptionFactor`. Get it from `list_entity_types` (the `dbLabel` field) or `get_graph_schema`. dbLabel is the canonical identifier — do NOT use a human display name or URI. |

## Response

```ts
{
  displayName: string;
  dbLabel: string | null;
  definition: string | null;
  numInstances: number | null;
  parent: string | null;
  children: string[];
  dataProperties: Array<{
    name: string;
    type: string | null;
    options?: string[] | undefined;
  }>;
  outboundRelationships: Array<{
    label: string;
    connects: string[];
  }>;
  incomingRelationships: Array<{
    label: string;
    connects: string[];
  }>;
} | {
  found: boolean;
}
```

## Example

```json
// describe_entity_type({"dbLabel":"Gene"})
{
  "dbLabel": "Gene"
}
```

Response (arrays truncated):

```json
{
  "displayName": "Gene",
  "dbLabel": "Gene",
  "definition": "A region (or regions) that includes all of the sequence elements necessary to encode a functional transcript. A gene may include regulatory regions, transcribed regions and/or other functional sequenc…",
  "numInstances": 131292,
  "parent": null,
  "children": [
    "TranscriptionFactor"
  ],
  "dataProperties": [
    {
      "name": "chr",
      "type": "string"
    },
    {
      "name": "start",
      "type": "float"
    },
    {
      "name": "end",
      "type": "float"
    }
  ],
  "outboundRelationships": [
    {
      "label": "involved in",
      "connects": [
        "Event"
      ]
    },
    {
      "label": "has genetic association",
      "connects": [
        "Disease"
      ]
    },
    {
      "label": "transcribed to",
      "connects": [
        "Transcript"
      ]
    },
    "… 57 more"
  ],
  "incomingRelationships": [
    {
      "label": "acts on",
      "connects": [
        "Drug"
      ]
    },
    {
      "label": "occurs when increasing",
      "connects": [
        "SafetyLiability"
      ]
    },
    {
      "label": "occurs when decreasing",
      "connects": [
        "SafetyLiability"
      ]
    },
    "… 23 more"
  ]
}
```
