diff --git a/web/templates/schema_editor/schema.json b/web/templates/schema_editor/schema.json index a8b5e7c4..7490da3d 100644 --- a/web/templates/schema_editor/schema.json +++ b/web/templates/schema_editor/schema.json @@ -299,6 +299,7 @@ "enums": { "TrueFalseMenu": { "name": "TrueFalseMenu", + "title": "TrueFalseMenu", "from_schema": "https://example.com/DH_LinkML", "permissible_values": { "TRUE": { @@ -311,6 +312,7 @@ }, "DataTypeMenu": { "name": "DataTypeMenu", + "title": "DataTypeMenu", "from_schema": "https://example.com/DH_LinkML", "permissible_values": { "string": { @@ -355,8 +357,14 @@ "uri": { "text": "uri" }, - "schema": { - "text": "schema" + "Schema": { + "text": "Schema" + }, + "Slot": { + "text": "Slot" + }, + "Class": { + "text": "Class" }, "Provenance": { "text": "Provenance" @@ -374,6 +382,7 @@ }, "LanguagesMenu": { "name": "LanguagesMenu", + "title": "LanguagesMenu", "from_schema": "https://example.com/DH_LinkML", "permissible_values": { "en": { @@ -393,24 +402,29 @@ "range": "WhitespaceMinimizedString", "required": true }, - "description": { - "name": "description", - "title": "Description", - "from_schema": "https://example.com/DH_LinkML", - "range": "string" - }, "id": { "name": "id", "description": "The unique URI for identifying this LinkML schema.", "title": "ID", + "comments": [ + "Typically the schema can be downloaded from this URI, but currently it is often left as an \"example\" URI during schema development." + ], "from_schema": "https://example.com/DH_LinkML", "identifier": true, "range": "uri", "required": true }, + "description": { + "name": "description", + "title": "Description", + "from_schema": "https://example.com/DH_LinkML" + }, "version": { "name": "version", "title": "Version", + "comments": [ + "See https://semver.org/" + ], "from_schema": "https://example.com/DH_LinkML", "range": "WhitespaceMinimizedString", "pattern": "^\\d+\\.\\d+\\.\\d+$" @@ -441,9 +455,25 @@ "title": "Schema", "from_schema": "https://example.com/DH_LinkML", "identifier": true, - "range": "schema", + "range": "Schema", "required": true }, + "prefix": { + "name": "prefix", + "description": "The namespace prefix string.", + "title": "Prefix", + "from_schema": "https://example.com/DH_LinkML", + "identifier": true, + "range": "WhitespaceMinimizedString", + "required": true + }, + "reference": { + "name": "reference", + "description": "The URI the prefix expands to.", + "title": "Reference", + "from_schema": "https://example.com/DH_LinkML", + "range": "uri" + }, "title": { "name": "title", "title": "Title", @@ -451,6 +481,16 @@ "range": "WhitespaceMinimizedString", "required": true }, + "aliases": { + "name": "aliases", + "description": "A list of other names that slot can be known by.", + "title": "Aliases", + "comments": [ + "See https://linkml.io/linkml/schemas/metadata.html#providing-aliases" + ], + "from_schema": "https://example.com/DH_LinkML", + "range": "WhitespaceMinimizedString" + }, "slot_uri": { "name": "slot_uri", "description": "A URI for identifying this slot's semantic type.", @@ -515,6 +555,16 @@ "from_schema": "https://example.com/DH_LinkML", "range": "integer" }, + "equals_expression": { + "name": "equals_expression", + "description": "Enables inferring (calculating) value based on other slot values. Expressed as a python expression.", + "title": "Calculated value", + "comments": [ + "See https://linkml.io/linkml/schemas/advanced.html#equals-expression" + ], + "from_schema": "https://example.com/DH_LinkML", + "range": "WhitespaceMinimizedString" + }, "pattern": { "name": "pattern", "description": "A regular expression pattern used to validate a slot's string range data type content.", @@ -575,28 +625,15 @@ "from_schema": "https://example.com/DH_LinkML", "range": "uri" }, - "container_root": { - "name": "container_root", - "description": "A boolian indicating whether this is a specification for a top-level data container.", + "tree_root": { + "name": "tree_root", + "description": "A boolian indicating whether this is a specification for a top-level data container on which serializations are based.", "title": "Container", - "from_schema": "https://example.com/DH_LinkML", - "range": "TrueFalseMenu" - }, - "alias": { - "name": "alias", - "title": "Alias", - "from_schema": "https://example.com/DH_LinkML", - "range": "WhitespaceMinimizedString" - }, - "owner": { - "name": "owner", - "description": "The schema that owns this template.", - "title": "Owner", "comments": [ - "WE SHOULD HAVE READ-ONLY ATTRIBUTES" + "Only one allowed per Schema. See https://linkml.io/linkml/data/csvs.html" ], "from_schema": "https://example.com/DH_LinkML", - "range": "WhitespaceMinimizedString" + "range": "TrueFalseMenu" }, "unique_keys": { "name": "unique_keys", @@ -617,7 +654,7 @@ "title": "Class", "from_schema": "https://example.com/DH_LinkML", "identifier": true, - "range": "class", + "range": "Class", "required": true }, "slot": { @@ -626,7 +663,7 @@ "title": "Slot", "from_schema": "https://example.com/DH_LinkML", "identifier": true, - "range": "slot", + "range": "Slot", "required": true }, "rank": { @@ -643,21 +680,24 @@ "from_schema": "https://example.com/DH_LinkML", "range": "TrueFalseMenu" }, - "prefix": { - "name": "prefix", - "description": "The namespace prefix string.", - "title": "Prefix", + "unique_key_slots:": { + "name": "unique_key_slots:", + "description": "A list of a class's slots that make up a unique key", + "title": "Unique Key Slots", + "comments": [ + "See https://linkml.io/linkml/schemas/constraints.html" + ], "from_schema": "https://example.com/DH_LinkML", - "identifier": true, - "range": "WhitespaceMinimizedString", + "multivalued": true, + "range": "Slot", "required": true }, - "reference": { - "name": "reference", - "description": "The URI the prefix expands to.", - "title": "Reference", + "notes": { + "name": "notes", + "description": "Notes about use of this key in other classes via slot ranges etc.", + "title": "Notes", "from_schema": "https://example.com/DH_LinkML", - "range": "uri" + "range": "WhitespaceMinimizedString" } }, "classes": { @@ -679,7 +719,7 @@ "name": "name", "description": "The coding name of a LinkML schema.", "comments": [ - "This is a **CamelCase** formatted name in the LinkML standard naming convention.\n\nA schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, and enumerations)." + "This is a **CamelCase** formatted name in the LinkML standard naming convention.\n\nA schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, and enumerations).\n\nA schema can also import other schemas and their slots, classes, etc." ], "examples": [ { @@ -691,24 +731,22 @@ "slot_group": "key", "pattern": "^([A-Z][a-z0-9]+)+$" }, + "id": { + "name": "id", + "rank": 2, + "slot_group": "key" + }, "description": { "name": "description", "description": "The plain language description of this LinkML schema.", - "rank": 2, + "rank": 3, "slot_group": "attributes", + "range": "string", "required": true }, - "id": { - "name": "id", - "rank": 3, - "slot_group": "attributes" - }, "version": { "name": "version", "description": "The semantic version identifier for this schema.", - "comments": [ - "See https://semver.org/" - ], "examples": [ { "value": "1.2.3" @@ -736,7 +774,7 @@ "description": "The coding name of a LinkML schema.", "title": "Name", "comments": [ - "This is a **CamelCase** formatted name in the LinkML standard naming convention.\n\nA schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, and enumerations)." + "This is a **CamelCase** formatted name in the LinkML standard naming convention.\n\nA schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, and enumerations).\n\nA schema can also import other schemas and their slots, classes, etc." ], "examples": [ { @@ -752,56 +790,55 @@ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "key", "range": "WhitespaceMinimizedString", "required": true, "pattern": "^([A-Z][a-z0-9]+)+$" }, + "id": { + "name": "id", + "description": "The unique URI for identifying this LinkML schema.", + "title": "ID", + "from_schema": "https://example.com/DH_LinkML", + "rank": 2, + "identifier": true, + "alias": "id", + "owner": "Schema", + "domain_of": [ + "Schema" + ], + "slot_group": "key", + "range": "uri", + "required": true + }, "description": { "name": "description", "description": "The plain language description of this LinkML schema.", "title": "Description", "from_schema": "https://example.com/DH_LinkML", - "rank": 2, + "rank": 3, "alias": "description", "owner": "Schema", "domain_of": [ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "attributes", "range": "string", "required": true }, - "id": { - "name": "id", - "description": "The unique URI for identifying this LinkML schema.", - "title": "ID", - "from_schema": "https://example.com/DH_LinkML", - "rank": 3, - "identifier": true, - "alias": "id", - "owner": "Schema", - "domain_of": [ - "Schema" - ], - "slot_group": "attributes", - "range": "uri", - "required": true - }, "version": { "name": "version", "description": "The semantic version identifier for this schema.", "title": "Version", - "comments": [ - "See https://semver.org/" - ], "examples": [ { "value": "1.2.3" @@ -852,6 +889,83 @@ } } }, + "Prefix": { + "name": "Prefix", + "description": "A prefix used in the URIs mentioned in this schema.", + "from_schema": "https://example.com/DH_LinkML", + "slot_usage": { + "schema_id": { + "name": "schema_id", + "description": "The coding name of the schema this prefix is listed in.", + "rank": 1, + "slot_group": "key" + }, + "prefix": { + "name": "prefix", + "rank": 2, + "slot_group": "key" + }, + "reference": { + "name": "reference", + "rank": 3, + "slot_group": "attributes" + } + }, + "attributes": { + "schema_id": { + "name": "schema_id", + "description": "The coding name of the schema this prefix is listed in.", + "title": "Schema", + "from_schema": "https://example.com/DH_LinkML", + "rank": 1, + "identifier": true, + "alias": "schema_id", + "owner": "Prefix", + "domain_of": [ + "Prefix", + "Slot", + "Enum", + "PermissibleValue", + "Class", + "SlotUsage", + "UniqueKey" + ], + "slot_group": "key", + "range": "Schema", + "required": true + }, + "prefix": { + "name": "prefix", + "description": "The namespace prefix string.", + "title": "Prefix", + "from_schema": "https://example.com/DH_LinkML", + "rank": 2, + "identifier": true, + "alias": "prefix", + "owner": "Prefix", + "domain_of": [ + "Prefix" + ], + "slot_group": "key", + "range": "WhitespaceMinimizedString", + "required": true + }, + "reference": { + "name": "reference", + "description": "The URI the prefix expands to.", + "title": "Reference", + "from_schema": "https://example.com/DH_LinkML", + "rank": 3, + "alias": "reference", + "owner": "Prefix", + "domain_of": [ + "Prefix" + ], + "slot_group": "attributes", + "range": "uri" + } + } + }, "Slot": { "name": "Slot", "description": "One or more slots contained in given schema. A slot can be used in one or more classes (templates). A slot defines a visible column in a template, and can be a basic number, date, string, picklist (categorical or ordinal), or other single-field datatype.", @@ -859,19 +973,23 @@ "slot_usage": { "schema_id": { "name": "schema_id", - "description": "The coding name of the schema this slot is contained in.", + "description": "The coding name of the schema that this slot is contained in.", + "comments": [ + "A schema has a list of slots it defines, but a schema can also import other schemas' slots." + ], "rank": 1, "slot_group": "key" }, "name": { "name": "name", - "description": "The coding name of this LinkML schema slot.", + "description": "The coding name of this schema slot.", "comments": [ - "This is a **snake_case** formatted name in the LinkML standard naming convention.\n\nA slot can be used in one or more classes (templates). A slot appears as a visible column in a spreadsheet (template) tab, and can define a basic number, date, string, picklist (categorical or ordinal), or other single-field datatype." + "This is a lowercase **snake_case** formatted name in the LinkML standard naming convention.\n\nA slot can be used in one or more classes (templates). A slot may appear as a visible single-field datatype column in a spreadsheet (template) tab, and can define (in its range attribute) a basic number, date, string, picklist (categorical or ordinal), or other custom datatype. A slot may also have a range pointing to more complex classes." ], "rank": 2, "identifier": true, - "slot_group": "key" + "slot_group": "key", + "pattern": "^[a-z]([a-z0-9_]+)+$" }, "title": { "name": "title", @@ -882,46 +1000,53 @@ "rank": 3, "slot_group": "attributes" }, + "aliases": { + "name": "aliases", + "rank": 4, + "slot_group": "attributes" + }, "description": { "name": "description", "description": "A plan text description of this LinkML schema slot.", - "rank": 4, + "rank": 5, "slot_group": "attributes", + "range": "string", "required": true }, "slot_uri": { "name": "slot_uri", - "rank": 5, + "rank": 6, "slot_group": "attributes" }, "slot_group": { "name": "slot_group", - "rank": 6, + "description": "The name of a grouping to place slot within during presentation.", + "rank": 7, "slot_group": "attributes" }, "range": { "name": "range", "description": "The range or ranges a slot is associated with. If more than one, this appears in the slot's specification as a list of \"any of\" ranges.", - "rank": 7, + "rank": 8, "slot_group": "attributes", "required": true }, "identifier": { "name": "identifier", "description": "A boolean TRUE indicates this slot is an identifier, or refers to one.", - "rank": 8, + "rank": 9, "slot_group": "attributes" }, "key": { "name": "key", "description": "A boolean TRUE indicates this slot is part of a primary key for the Class it is an attribute of.", - "rank": 9, + "rank": 10, "slot_group": "attributes" }, "multivalued": { "name": "multivalued", "description": "A boolean TRUE indicates this slot can hold more than one values taken from its range.", - "rank": 10, + "rank": 11, "slot_group": "attributes" }, "required": { @@ -930,69 +1055,78 @@ "comments": [ "A mandatory data field will fail validation if empty." ], - "rank": 11, + "rank": 12, "slot_group": "attributes" }, "recommended": { "name": "recommended", "description": "A boolean TRUE indicates this slot is a recommended data field.", - "rank": 12, + "rank": 13, "slot_group": "attributes" }, "minimum_value": { "name": "minimum_value", - "rank": 13, + "rank": 14, "slot_group": "attributes" }, "maximum_value": { "name": "maximum_value", - "rank": 14, + "rank": 15, + "slot_group": "attributes" + }, + "equals_expression": { + "name": "equals_expression", + "rank": 16, "slot_group": "attributes" }, "pattern": { "name": "pattern", - "rank": 15, + "rank": 17, "slot_group": "attributes" }, "comments": { "name": "comments", - "rank": 16, + "rank": 18, "slot_group": "attributes" }, "examples": { "name": "examples", - "rank": 17, + "rank": 19, "slot_group": "attributes" } }, "attributes": { "schema_id": { "name": "schema_id", - "description": "The coding name of the schema this slot is contained in.", + "description": "The coding name of the schema that this slot is contained in.", "title": "Schema", + "comments": [ + "A schema has a list of slots it defines, but a schema can also import other schemas' slots." + ], "from_schema": "https://example.com/DH_LinkML", "rank": 1, "identifier": true, "alias": "schema_id", "owner": "Slot", "domain_of": [ + "Prefix", "Slot", "Enum", + "PermissibleValue", "Class", "SlotUsage", - "PermissibleValue", - "Prefix" + "UniqueKey" ], "slot_group": "key", - "range": "schema", + "range": "Schema", "required": true }, "name": { "name": "name", - "description": "The coding name of this LinkML schema slot.", + "description": "The coding name of this schema slot.", "title": "Name", "comments": [ - "This is a **snake_case** formatted name in the LinkML standard naming convention.\n\nA slot can be used in one or more classes (templates). A slot appears as a visible column in a spreadsheet (template) tab, and can define a basic number, date, string, picklist (categorical or ordinal), or other single-field datatype." + "This is a lowercase **snake_case** formatted name in the LinkML standard naming convention.\n\nA slot can be used in one or more classes (templates). A slot may appear as a visible single-field datatype column in a spreadsheet (template) tab, and can define (in its range attribute) a basic number, date, string, picklist (categorical or ordinal), or other custom datatype. A slot may also have a range pointing to more complex classes." ], "from_schema": "https://example.com/DH_LinkML", "rank": 2, @@ -1003,12 +1137,14 @@ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "key", "range": "WhitespaceMinimizedString", - "required": true + "required": true, + "pattern": "^[a-z]([a-z0-9_]+)+$" }, "title": { "name": "title", @@ -1030,20 +1166,35 @@ "range": "WhitespaceMinimizedString", "required": true }, + "aliases": { + "name": "aliases", + "description": "A list of other names that slot can be known by.", + "title": "Aliases", + "from_schema": "https://example.com/DH_LinkML", + "rank": 4, + "alias": "aliases", + "owner": "Slot", + "domain_of": [ + "Slot" + ], + "slot_group": "attributes", + "range": "WhitespaceMinimizedString" + }, "description": { "name": "description", "description": "A plan text description of this LinkML schema slot.", "title": "Description", "from_schema": "https://example.com/DH_LinkML", - "rank": 4, + "rank": 5, "alias": "description", "owner": "Slot", "domain_of": [ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "attributes", "range": "string", @@ -1054,7 +1205,7 @@ "description": "A URI for identifying this slot's semantic type.", "title": "Slot URI", "from_schema": "https://example.com/DH_LinkML", - "rank": 5, + "rank": 6, "alias": "slot_uri", "owner": "Slot", "domain_of": [ @@ -1065,9 +1216,10 @@ }, "slot_group": { "name": "slot_group", + "description": "The name of a grouping to place slot within during presentation.", "title": "Slot Group", "from_schema": "https://example.com/DH_LinkML", - "rank": 6, + "rank": 7, "alias": "slot_group", "owner": "Slot", "domain_of": [ @@ -1082,7 +1234,7 @@ "description": "The range or ranges a slot is associated with. If more than one, this appears in the slot's specification as a list of \"any of\" ranges.", "title": "Range", "from_schema": "https://example.com/DH_LinkML", - "rank": 7, + "rank": 8, "multivalued": true, "alias": "range", "owner": "Slot", @@ -1099,7 +1251,7 @@ "description": "A boolean TRUE indicates this slot is an identifier, or refers to one.", "title": "Identifier", "from_schema": "https://example.com/DH_LinkML", - "rank": 8, + "rank": 9, "alias": "identifier", "owner": "Slot", "domain_of": [ @@ -1114,7 +1266,7 @@ "description": "A boolean TRUE indicates this slot is part of a primary key for the Class it is an attribute of.", "title": "Key", "from_schema": "https://example.com/DH_LinkML", - "rank": 9, + "rank": 10, "alias": "key", "owner": "Slot", "domain_of": [ @@ -1129,7 +1281,7 @@ "description": "A boolean TRUE indicates this slot can hold more than one values taken from its range.", "title": "Multivalued", "from_schema": "https://example.com/DH_LinkML", - "rank": 10, + "rank": 11, "alias": "multivalued", "owner": "Slot", "domain_of": [ @@ -1147,7 +1299,7 @@ "A mandatory data field will fail validation if empty." ], "from_schema": "https://example.com/DH_LinkML", - "rank": 11, + "rank": 12, "alias": "required", "owner": "Slot", "domain_of": [ @@ -1162,7 +1314,7 @@ "description": "A boolean TRUE indicates this slot is a recommended data field.", "title": "Recommended", "from_schema": "https://example.com/DH_LinkML", - "rank": 12, + "rank": 13, "alias": "recommended", "owner": "Slot", "domain_of": [ @@ -1177,11 +1329,12 @@ "description": "A minimum value which is appropriate for the range data type of the slot.", "title": "Minimum_value", "from_schema": "https://example.com/DH_LinkML", - "rank": 13, + "rank": 14, "alias": "minimum_value", "owner": "Slot", "domain_of": [ - "Slot" + "Slot", + "SlotUsage" ], "slot_group": "attributes", "range": "integer" @@ -1191,25 +1344,41 @@ "description": "A maximum value which is appropriate for the range data type of the slot.", "title": "Maximum_value", "from_schema": "https://example.com/DH_LinkML", - "rank": 14, + "rank": 15, "alias": "maximum_value", "owner": "Slot", "domain_of": [ - "Slot" + "Slot", + "SlotUsage" ], "slot_group": "attributes", "range": "integer" }, + "equals_expression": { + "name": "equals_expression", + "description": "Enables inferring (calculating) value based on other slot values. Expressed as a python expression.", + "title": "Calculated value", + "from_schema": "https://example.com/DH_LinkML", + "rank": 16, + "alias": "equals_expression", + "owner": "Slot", + "domain_of": [ + "Slot" + ], + "slot_group": "attributes", + "range": "WhitespaceMinimizedString" + }, "pattern": { "name": "pattern", "description": "A regular expression pattern used to validate a slot's string range data type content.", "title": "Pattern", "from_schema": "https://example.com/DH_LinkML", - "rank": 15, + "rank": 17, "alias": "pattern", "owner": "Slot", "domain_of": [ - "Slot" + "Slot", + "SlotUsage" ], "slot_group": "attributes", "range": "WhitespaceMinimizedString" @@ -1219,11 +1388,12 @@ "description": "A free text field for adding other comments to guide usage of field.", "title": "Comments", "from_schema": "https://example.com/DH_LinkML", - "rank": 16, + "rank": 18, "alias": "comments", "owner": "Slot", "domain_of": [ - "Slot" + "Slot", + "SlotUsage" ], "slot_group": "attributes", "range": "WhitespaceMinimizedString" @@ -1233,11 +1403,12 @@ "description": "A free text field for including examples of string, numeric, date or categorical values.", "title": "Examples", "from_schema": "https://example.com/DH_LinkML", - "rank": 17, + "rank": 19, "alias": "examples", "owner": "Slot", "domain_of": [ - "Slot" + "Slot", + "SlotUsage" ], "slot_group": "attributes", "range": "WhitespaceMinimizedString" @@ -1286,6 +1457,7 @@ "description": "A plan text description of this LinkML schema enumeration menu of terms.", "rank": 4, "slot_group": "attributes", + "range": "string", "required": true }, "enum_uri": { @@ -1305,15 +1477,16 @@ "alias": "schema_id", "owner": "Enum", "domain_of": [ + "Prefix", "Slot", "Enum", + "PermissibleValue", "Class", "SlotUsage", - "PermissibleValue", - "Prefix" + "UniqueKey" ], "slot_group": "key", - "range": "schema", + "range": "Schema", "required": true }, "name": { @@ -1332,8 +1505,9 @@ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "key", "range": "WhitespaceMinimizedString", @@ -1368,8 +1542,9 @@ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "attributes", "range": "string", @@ -1401,6 +1576,153 @@ } } }, + "PermissibleValue": { + "name": "PermissibleValue", + "description": "An enumeration picklist value.", + "from_schema": "https://example.com/DH_LinkML", + "slot_usage": { + "schema_id": { + "name": "schema_id", + "description": "The coding name of the schema this menu choice's menu (enumeration) is contained in.", + "rank": 1, + "slot_group": "key" + }, + "enum_id": { + "name": "enum_id", + "rank": 2, + "slot_group": "key" + }, + "name": { + "name": "name", + "description": "The coding name of this menu choice (PermissibleValue).", + "rank": 3, + "slot_group": "key" + }, + "text": { + "name": "text", + "rank": 4, + "slot_group": "attributes" + }, + "description": { + "name": "description", + "description": "A plan text description of the meaning of this menu choice.", + "rank": 5, + "slot_group": "attributes", + "range": "string" + }, + "meaning": { + "name": "meaning", + "rank": 6, + "slot_group": "attributes" + } + }, + "attributes": { + "schema_id": { + "name": "schema_id", + "description": "The coding name of the schema this menu choice's menu (enumeration) is contained in.", + "title": "Schema", + "from_schema": "https://example.com/DH_LinkML", + "rank": 1, + "identifier": true, + "alias": "schema_id", + "owner": "PermissibleValue", + "domain_of": [ + "Prefix", + "Slot", + "Enum", + "PermissibleValue", + "Class", + "SlotUsage", + "UniqueKey" + ], + "slot_group": "key", + "range": "Schema", + "required": true + }, + "enum_id": { + "name": "enum_id", + "description": "The coding name of the menu (enumeration) that this choice is contained in.", + "title": "Enum", + "from_schema": "https://example.com/DH_LinkML", + "rank": 2, + "alias": "enum_id", + "owner": "PermissibleValue", + "domain_of": [ + "PermissibleValue" + ], + "slot_group": "key", + "range": "WhitespaceMinimizedString", + "required": true + }, + "name": { + "name": "name", + "description": "The coding name of this menu choice (PermissibleValue).", + "title": "Name", + "from_schema": "https://example.com/DH_LinkML", + "rank": 3, + "alias": "name", + "owner": "PermissibleValue", + "domain_of": [ + "Schema", + "Slot", + "Enum", + "PermissibleValue", + "Class", + "UniqueKey" + ], + "slot_group": "key", + "range": "WhitespaceMinimizedString", + "required": true + }, + "text": { + "name": "text", + "description": "The plain language text of this menu choice (PermissibleValue) to display.", + "title": "Text", + "from_schema": "https://example.com/DH_LinkML", + "rank": 4, + "alias": "text", + "owner": "PermissibleValue", + "domain_of": [ + "PermissibleValue" + ], + "slot_group": "attributes", + "range": "WhitespaceMinimizedString" + }, + "description": { + "name": "description", + "description": "A plan text description of the meaning of this menu choice.", + "title": "Description", + "from_schema": "https://example.com/DH_LinkML", + "rank": 5, + "alias": "description", + "owner": "PermissibleValue", + "domain_of": [ + "Schema", + "Slot", + "Enum", + "PermissibleValue", + "Class", + "UniqueKey" + ], + "slot_group": "attributes", + "range": "string" + }, + "meaning": { + "name": "meaning", + "description": "A URI for identifying this choice's semantic type.", + "title": "Meaning", + "from_schema": "https://example.com/DH_LinkML", + "rank": 6, + "alias": "meaning", + "owner": "PermissibleValue", + "domain_of": [ + "PermissibleValue" + ], + "slot_group": "attributes", + "range": "uri" + } + } + }, "Class": { "name": "Class", "description": "A class contained in given schema. A class may be a top-level DataHarmonizer \"template\" that can be displayed in a spreadsheet tab, or it may be a subordinate 1-many class linked to a parent class by a primary key field.", @@ -1438,11 +1760,12 @@ "name": "description", "rank": 4, "slot_group": "attributes", + "range": "string", "required": true }, "version": { "name": "version", - "description": "A semantic version identifier. See https://semver.org/", + "description": "A semantic version identifier.", "rank": 5, "slot_group": "attributes" }, @@ -1451,29 +1774,19 @@ "rank": 6, "slot_group": "attributes" }, - "container_root": { - "name": "container_root", + "tree_root": { + "name": "tree_root", "rank": 7, "slot_group": "attributes" }, - "alias": { - "name": "alias", - "rank": 8, - "slot_group": "attributes" - }, - "owner": { - "name": "owner", - "rank": 9, - "slot_group": "attributes" - }, "unique_keys": { "name": "unique_keys", - "rank": 10, + "rank": 8, "slot_group": "attributes" }, "Inlined as list": { "name": "Inlined as list", - "rank": 11, + "rank": 9, "slot_group": "attributes" } }, @@ -1488,15 +1801,16 @@ "alias": "schema_id", "owner": "Class", "domain_of": [ + "Prefix", "Slot", "Enum", + "PermissibleValue", "Class", "SlotUsage", - "PermissibleValue", - "Prefix" + "UniqueKey" ], "slot_group": "key", - "range": "schema", + "range": "Schema", "required": true }, "name": { @@ -1520,8 +1834,9 @@ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "key", "range": "WhitespaceMinimizedString", @@ -1556,8 +1871,9 @@ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "attributes", "range": "string", @@ -1565,7 +1881,7 @@ }, "version": { "name": "version", - "description": "A semantic version identifier. See https://semver.org/", + "description": "A semantic version identifier.", "title": "Version", "from_schema": "https://example.com/DH_LinkML", "rank": 5, @@ -1593,13 +1909,13 @@ "slot_group": "attributes", "range": "uri" }, - "container_root": { - "name": "container_root", - "description": "A boolian indicating whether this is a specification for a top-level data container.", + "tree_root": { + "name": "tree_root", + "description": "A boolian indicating whether this is a specification for a top-level data container on which serializations are based.", "title": "Container", "from_schema": "https://example.com/DH_LinkML", "rank": 7, - "alias": "container_root", + "alias": "tree_root", "owner": "Class", "domain_of": [ "Class" @@ -1607,38 +1923,11 @@ "slot_group": "attributes", "range": "TrueFalseMenu" }, - "alias": { - "name": "alias", - "title": "Alias", - "from_schema": "https://example.com/DH_LinkML", - "rank": 8, - "alias": "alias", - "owner": "Class", - "domain_of": [ - "Class" - ], - "slot_group": "attributes", - "range": "WhitespaceMinimizedString" - }, - "owner": { - "name": "owner", - "description": "The schema that owns this template.", - "title": "Owner", - "from_schema": "https://example.com/DH_LinkML", - "rank": 9, - "alias": "owner", - "owner": "Class", - "domain_of": [ - "Class" - ], - "slot_group": "attributes", - "range": "WhitespaceMinimizedString" - }, "unique_keys": { "name": "unique_keys", "title": "Unique Keys", "from_schema": "https://example.com/DH_LinkML", - "rank": 10, + "rank": 8, "alias": "unique_keys", "owner": "Class", "domain_of": [ @@ -1652,7 +1941,7 @@ "description": "A boolian indicating whether the content of this class is present inside its containing object as an array.", "title": "Inlined as list", "from_schema": "https://example.com/DH_LinkML", - "rank": 11, + "rank": 9, "alias": "Inlined_as_list", "owner": "Class", "domain_of": [ @@ -1701,13 +1990,13 @@ }, "slot_group": { "name": "slot_group", - "description": "An override on a slot's slot_group attribute.", + "description": "An override on a slot's **slot_group** attribute.", "rank": 5, "slot_group": "attributes" }, "range": { "name": "range", - "description": "An override on a slot's range attribute.", + "description": "An override on a slot's **range* attribute.", "rank": 6, "slot_group": "attributes" }, @@ -1718,13 +2007,13 @@ }, "identifier": { "name": "identifier", - "description": "An override on a slot's *Identifier* attribute.", + "description": "An override on a slot's **Identifier** attribute.", "rank": 8, "slot_group": "attributes" }, "key": { "name": "key", - "description": "An override on a slot's *Key* attribute.", + "description": "An override on a slot's **Key** attribute.", "rank": 9, "slot_group": "attributes" }, @@ -1736,37 +2025,63 @@ }, "required": { "name": "required", - "description": "An override on a slot's *Required* attribute.", + "description": "An override on a slot's **Required** attribute.", "rank": 11, "slot_group": "attributes" }, "recommended": { "name": "recommended", - "description": "An override on a slot's *Recommended* attribute.", + "description": "An override on a slot's **Recommended** attribute.", "rank": 12, "slot_group": "attributes" - } - }, - "attributes": { - "schema_id": { - "name": "schema_id", - "description": "The coding name of the schema this slot usage's class is contained in.", - "title": "Schema", - "from_schema": "https://example.com/DH_LinkML", - "rank": 1, - "identifier": true, - "alias": "schema_id", - "owner": "SlotUsage", - "domain_of": [ - "Slot", - "Enum", - "Class", - "SlotUsage", + }, + "minimum_value": { + "name": "minimum_value", + "rank": 13, + "slot_group": "attributes" + }, + "maximum_value": { + "name": "maximum_value", + "rank": 14, + "slot_group": "attributes" + }, + "pattern": { + "name": "pattern", + "rank": 15, + "slot_group": "attributes" + }, + "comments": { + "name": "comments", + "rank": 16, + "slot_group": "attributes" + }, + "examples": { + "name": "examples", + "rank": 17, + "slot_group": "attributes" + } + }, + "attributes": { + "schema_id": { + "name": "schema_id", + "description": "The coding name of the schema this slot usage's class is contained in.", + "title": "Schema", + "from_schema": "https://example.com/DH_LinkML", + "rank": 1, + "identifier": true, + "alias": "schema_id", + "owner": "SlotUsage", + "domain_of": [ + "Prefix", + "Slot", + "Enum", "PermissibleValue", - "Prefix" + "Class", + "SlotUsage", + "UniqueKey" ], "slot_group": "key", - "range": "schema", + "range": "Schema", "required": true }, "class": { @@ -1779,10 +2094,11 @@ "alias": "class", "owner": "SlotUsage", "domain_of": [ - "SlotUsage" + "SlotUsage", + "UniqueKey" ], "slot_group": "key", - "range": "class", + "range": "Class", "required": true }, "slot": { @@ -1798,7 +2114,7 @@ "SlotUsage" ], "slot_group": "key", - "range": "slot", + "range": "Slot", "required": true }, "rank": { @@ -1817,7 +2133,7 @@ }, "slot_group": { "name": "slot_group", - "description": "An override on a slot's slot_group attribute.", + "description": "An override on a slot's **slot_group** attribute.", "title": "Slot Group", "from_schema": "https://example.com/DH_LinkML", "rank": 5, @@ -1832,7 +2148,7 @@ }, "range": { "name": "range", - "description": "An override on a slot's range attribute.", + "description": "An override on a slot's **range* attribute.", "title": "Range", "from_schema": "https://example.com/DH_LinkML", "rank": 6, @@ -1862,7 +2178,7 @@ }, "identifier": { "name": "identifier", - "description": "An override on a slot's *Identifier* attribute.", + "description": "An override on a slot's **Identifier** attribute.", "title": "Identifier", "from_schema": "https://example.com/DH_LinkML", "rank": 8, @@ -1877,7 +2193,7 @@ }, "key": { "name": "key", - "description": "An override on a slot's *Key* attribute.", + "description": "An override on a slot's **Key** attribute.", "title": "Key", "from_schema": "https://example.com/DH_LinkML", "rank": 9, @@ -1907,7 +2223,7 @@ }, "required": { "name": "required", - "description": "An override on a slot's *Required* attribute.", + "description": "An override on a slot's **Required** attribute.", "title": "Required", "from_schema": "https://example.com/DH_LinkML", "rank": 11, @@ -1922,7 +2238,7 @@ }, "recommended": { "name": "recommended", - "description": "An override on a slot's *Recommended* attribute.", + "description": "An override on a slot's **Recommended** attribute.", "title": "Recommended", "from_schema": "https://example.com/DH_LinkML", "rank": 12, @@ -1934,44 +2250,122 @@ ], "slot_group": "attributes", "range": "TrueFalseMenu" + }, + "minimum_value": { + "name": "minimum_value", + "description": "A minimum value which is appropriate for the range data type of the slot.", + "title": "Minimum_value", + "from_schema": "https://example.com/DH_LinkML", + "rank": 13, + "alias": "minimum_value", + "owner": "SlotUsage", + "domain_of": [ + "Slot", + "SlotUsage" + ], + "slot_group": "attributes", + "range": "integer" + }, + "maximum_value": { + "name": "maximum_value", + "description": "A maximum value which is appropriate for the range data type of the slot.", + "title": "Maximum_value", + "from_schema": "https://example.com/DH_LinkML", + "rank": 14, + "alias": "maximum_value", + "owner": "SlotUsage", + "domain_of": [ + "Slot", + "SlotUsage" + ], + "slot_group": "attributes", + "range": "integer" + }, + "pattern": { + "name": "pattern", + "description": "A regular expression pattern used to validate a slot's string range data type content.", + "title": "Pattern", + "from_schema": "https://example.com/DH_LinkML", + "rank": 15, + "alias": "pattern", + "owner": "SlotUsage", + "domain_of": [ + "Slot", + "SlotUsage" + ], + "slot_group": "attributes", + "range": "WhitespaceMinimizedString" + }, + "comments": { + "name": "comments", + "description": "A free text field for adding other comments to guide usage of field.", + "title": "Comments", + "from_schema": "https://example.com/DH_LinkML", + "rank": 16, + "alias": "comments", + "owner": "SlotUsage", + "domain_of": [ + "Slot", + "SlotUsage" + ], + "slot_group": "attributes", + "range": "WhitespaceMinimizedString" + }, + "examples": { + "name": "examples", + "description": "A free text field for including examples of string, numeric, date or categorical values.", + "title": "Examples", + "from_schema": "https://example.com/DH_LinkML", + "rank": 17, + "alias": "examples", + "owner": "SlotUsage", + "domain_of": [ + "Slot", + "SlotUsage" + ], + "slot_group": "attributes", + "range": "WhitespaceMinimizedString" } } }, - "PermissibleValue": { - "name": "PermissibleValue", - "description": "An enumeration picklist value.", + "UniqueKey": { + "name": "UniqueKey", + "description": "A table linking the name of each multi-component(slot) key to the schema class it appears in.", "from_schema": "https://example.com/DH_LinkML", "slot_usage": { "schema_id": { "name": "schema_id", - "description": "The coding name of the schema this menu choice's menu (enumeration) is contained in.", + "description": "The coding name of the schema this slot usage's class is contained in.", "rank": 1, "slot_group": "key" }, - "enum_id": { - "name": "enum_id", + "class": { + "name": "class", "rank": 2, "slot_group": "key" }, "name": { "name": "name", - "description": "The coding name of this menu choice (PermissibleValue).", + "description": "A class contained in given schema.", "rank": 3, - "slot_group": "key" + "identifier": true, + "slot_group": "key", + "pattern": "^[a-z]([a-z0-9_]+)+$" }, - "text": { - "name": "text", + "unique_key_slots:": { + "name": "unique_key_slots:", "rank": 4, "slot_group": "attributes" }, "description": { "name": "description", - "description": "A plan text description of the meaning of this menu choice.", + "description": "The description of this unique key combination.", "rank": 5, - "slot_group": "attributes" + "slot_group": "attributes", + "range": "WhitespaceMinimizedString" }, - "meaning": { - "name": "meaning", + "notes": { + "name": "notes", "rank": 6, "slot_group": "attributes" } @@ -1979,180 +2373,113 @@ "attributes": { "schema_id": { "name": "schema_id", - "description": "The coding name of the schema this menu choice's menu (enumeration) is contained in.", + "description": "The coding name of the schema this slot usage's class is contained in.", "title": "Schema", "from_schema": "https://example.com/DH_LinkML", "rank": 1, "identifier": true, "alias": "schema_id", - "owner": "PermissibleValue", + "owner": "UniqueKey", "domain_of": [ + "Prefix", "Slot", "Enum", + "PermissibleValue", "Class", "SlotUsage", - "PermissibleValue", - "Prefix" + "UniqueKey" ], "slot_group": "key", - "range": "schema", + "range": "Schema", "required": true }, - "enum_id": { - "name": "enum_id", - "description": "The coding name of the menu (enumeration) that this choice is contained in.", - "title": "Enum", + "class": { + "name": "class", + "description": "The coding name of this slot usage's class.", + "title": "Class", "from_schema": "https://example.com/DH_LinkML", "rank": 2, - "alias": "enum_id", - "owner": "PermissibleValue", + "identifier": true, + "alias": "class", + "owner": "UniqueKey", "domain_of": [ - "PermissibleValue" + "SlotUsage", + "UniqueKey" ], "slot_group": "key", - "range": "WhitespaceMinimizedString", + "range": "Class", "required": true }, "name": { "name": "name", - "description": "The coding name of this menu choice (PermissibleValue).", + "description": "A class contained in given schema.", "title": "Name", "from_schema": "https://example.com/DH_LinkML", "rank": 3, + "identifier": true, "alias": "name", - "owner": "PermissibleValue", + "owner": "UniqueKey", "domain_of": [ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "key", "range": "WhitespaceMinimizedString", - "required": true + "required": true, + "pattern": "^[a-z]([a-z0-9_]+)+$" }, - "text": { - "name": "text", - "description": "The plain language text of this menu choice (PermissibleValue) to display.", - "title": "Text", + "unique_key_slots:": { + "name": "unique_key_slots:", + "description": "A list of a class's slots that make up a unique key", + "title": "Unique Key Slots", "from_schema": "https://example.com/DH_LinkML", "rank": 4, - "alias": "text", - "owner": "PermissibleValue", + "multivalued": true, + "alias": "unique_key_slots:", + "owner": "UniqueKey", "domain_of": [ - "PermissibleValue" + "UniqueKey" ], "slot_group": "attributes", - "range": "WhitespaceMinimizedString" + "range": "Slot", + "required": true }, "description": { "name": "description", - "description": "A plan text description of the meaning of this menu choice.", + "description": "The description of this unique key combination.", "title": "Description", "from_schema": "https://example.com/DH_LinkML", "rank": 5, "alias": "description", - "owner": "PermissibleValue", + "owner": "UniqueKey", "domain_of": [ "Schema", "Slot", "Enum", + "PermissibleValue", "Class", - "PermissibleValue" + "UniqueKey" ], "slot_group": "attributes", - "range": "string" + "range": "WhitespaceMinimizedString" }, - "meaning": { - "name": "meaning", - "description": "A URI for identifying this choice's semantic type.", - "title": "Meaning", + "notes": { + "name": "notes", + "description": "Notes about use of this key in other classes via slot ranges etc.", + "title": "Notes", "from_schema": "https://example.com/DH_LinkML", "rank": 6, - "alias": "meaning", - "owner": "PermissibleValue", + "alias": "notes", + "owner": "UniqueKey", "domain_of": [ - "PermissibleValue" + "UniqueKey" ], "slot_group": "attributes", - "range": "uri" - } - } - }, - "Prefix": { - "name": "Prefix", - "description": "A prefix used in the URIs mentioned in this schema.", - "from_schema": "https://example.com/DH_LinkML", - "slot_usage": { - "schema_id": { - "name": "schema_id", - "description": "The coding name of the schema this prefix is listed in.", - "rank": 1, - "slot_group": "key" - }, - "prefix": { - "name": "prefix", - "rank": 2, - "slot_group": "key" - }, - "reference": { - "name": "reference", - "rank": 3, - "slot_group": "attributes" - } - }, - "attributes": { - "schema_id": { - "name": "schema_id", - "description": "The coding name of the schema this prefix is listed in.", - "title": "Schema", - "from_schema": "https://example.com/DH_LinkML", - "rank": 1, - "identifier": true, - "alias": "schema_id", - "owner": "Prefix", - "domain_of": [ - "Slot", - "Enum", - "Class", - "SlotUsage", - "PermissibleValue", - "Prefix" - ], - "slot_group": "key", - "range": "schema", - "required": true - }, - "prefix": { - "name": "prefix", - "description": "The namespace prefix string.", - "title": "Prefix", - "from_schema": "https://example.com/DH_LinkML", - "rank": 2, - "identifier": true, - "alias": "prefix", - "owner": "Prefix", - "domain_of": [ - "Prefix" - ], - "slot_group": "key", - "range": "WhitespaceMinimizedString", - "required": true - }, - "reference": { - "name": "reference", - "description": "The URI the prefix expands to.", - "title": "Reference", - "from_schema": "https://example.com/DH_LinkML", - "rank": 3, - "alias": "reference", - "owner": "Prefix", - "domain_of": [ - "Prefix" - ], - "slot_group": "attributes", - "range": "uri" + "range": "WhitespaceMinimizedString" } } }, @@ -2172,16 +2499,16 @@ "range": "Schema", "inlined_as_list": true }, - "Classes": { - "name": "Classes", + "Prefixes": { + "name": "Prefixes", "from_schema": "https://example.com/DH_LinkML", "multivalued": true, - "alias": "Classes", + "alias": "Prefixes", "owner": "Container", "domain_of": [ "Container" ], - "range": "Class", + "range": "Prefix", "inlined_as_list": true }, "Slots": { @@ -2196,18 +2523,6 @@ "range": "Slot", "inlined_as_list": true }, - "SlotUsages": { - "name": "SlotUsages", - "from_schema": "https://example.com/DH_LinkML", - "multivalued": true, - "alias": "SlotUsages", - "owner": "Container", - "domain_of": [ - "Container" - ], - "range": "SlotUsage", - "inlined_as_list": true - }, "Enums": { "name": "Enums", "from_schema": "https://example.com/DH_LinkML", @@ -2232,16 +2547,40 @@ "range": "PermissibleValue", "inlined_as_list": true }, - "Prefixes": { - "name": "Prefixes", + "Classes": { + "name": "Classes", "from_schema": "https://example.com/DH_LinkML", "multivalued": true, - "alias": "Prefixes", + "alias": "Classes", "owner": "Container", "domain_of": [ "Container" ], - "range": "Prefix", + "range": "Class", + "inlined_as_list": true + }, + "SlotUsages": { + "name": "SlotUsages", + "from_schema": "https://example.com/DH_LinkML", + "multivalued": true, + "alias": "SlotUsages", + "owner": "Container", + "domain_of": [ + "Container" + ], + "range": "SlotUsage", + "inlined_as_list": true + }, + "UniqueKeys": { + "name": "UniqueKeys", + "from_schema": "https://example.com/DH_LinkML", + "multivalued": true, + "alias": "UniqueKeys", + "owner": "Container", + "domain_of": [ + "Container" + ], + "range": "UniqueKey", "inlined_as_list": true } }, diff --git a/web/templates/schema_editor/schema.yaml b/web/templates/schema_editor/schema.yaml index ff04390a..d21dc003 100644 --- a/web/templates/schema_editor/schema.yaml +++ b/web/templates/schema_editor/schema.yaml @@ -23,8 +23,8 @@ classes: is_a: dh_interface slots: - name - - description - id + - description - version - in_language - default_prefix @@ -40,25 +40,28 @@ classes: A schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, - and enumerations).' + and enumerations). + + + A schema can also import other schemas and their slots, classes, etc.' examples: - value: Wastewater identifier: true - description: + id: rank: 2 + slot_group: key + description: + rank: 3 slot_group: attributes description: The plain language description of this LinkML schema. required: true - id: - rank: 3 - slot_group: attributes + range: string version: rank: 4 slot_group: attributes identifier: true required: true description: The semantic version identifier for this schema. - comments: See https://semver.org/ examples: - value: 1.2.3 in_language: @@ -67,6 +70,24 @@ classes: default_prefix: rank: 6 slot_group: attributes + Prefix: + name: Prefix + description: A prefix used in the URIs mentioned in this schema. + slots: + - schema_id + - prefix + - reference + slot_usage: + schema_id: + rank: 1 + slot_group: key + description: The coding name of the schema this prefix is listed in. + prefix: + rank: 2 + slot_group: key + reference: + rank: 3 + slot_group: attributes Slot: name: Slot description: One or more slots contained in given schema. A slot can be used in @@ -84,6 +105,7 @@ classes: - schema_id - name - title + - aliases - description - slot_uri - slot_group @@ -95,6 +117,7 @@ classes: - recommended - minimum_value - maximum_value + - equals_expression - pattern - comments - examples @@ -102,80 +125,92 @@ classes: schema_id: rank: 1 slot_group: key - description: The coding name of the schema this slot is contained in. + description: The coding name of the schema that this slot is contained in. + comments: A schema has a list of slots it defines, but a schema can also import + other schemas' slots. name: rank: 2 slot_group: key - description: The coding name of this LinkML schema slot. - comments: 'This is a **snake_case** formatted name in the LinkML standard - naming convention. + pattern: ^[a-z]([a-z0-9_]+)+$ + description: The coding name of this schema slot. + comments: 'This is a lowercase **snake_case** formatted name in the LinkML + standard naming convention. - A slot can be used in one or more classes (templates). A slot appears as - a visible column in a spreadsheet (template) tab, and can define a basic - number, date, string, picklist (categorical or ordinal), or other single-field - datatype.' + A slot can be used in one or more classes (templates). A slot may appear + as a visible single-field datatype column in a spreadsheet (template) tab, + and can define (in its range attribute) a basic number, date, string, picklist + (categorical or ordinal), or other custom datatype. A slot may also have + a range pointing to more complex classes.' identifier: true title: rank: 3 slot_group: attributes description: The plain language name of this LinkML schema slot. comments: This can be displayed in applications and documentation. - description: + aliases: rank: 4 slot_group: attributes + description: + rank: 5 + slot_group: attributes description: A plan text description of this LinkML schema slot. required: true + range: string slot_uri: - rank: 5 + rank: 6 slot_group: attributes slot_group: - rank: 6 + rank: 7 slot_group: attributes + description: The name of a grouping to place slot within during presentation. range: - rank: 7 + rank: 8 slot_group: attributes required: true description: The range or ranges a slot is associated with. If more than one, this appears in the slot's specification as a list of "any of" ranges. identifier: - rank: 8 + rank: 9 slot_group: attributes description: A boolean TRUE indicates this slot is an identifier, or refers to one. key: - rank: 9 + rank: 10 slot_group: attributes description: A boolean TRUE indicates this slot is part of a primary key for the Class it is an attribute of. multivalued: - rank: 10 + rank: 11 slot_group: attributes description: A boolean TRUE indicates this slot can hold more than one values taken from its range. required: - rank: 11 + rank: 12 slot_group: attributes description: A boolean TRUE indicates this slot is a mandatory data field. comments: A mandatory data field will fail validation if empty. recommended: - rank: 12 + rank: 13 slot_group: attributes description: A boolean TRUE indicates this slot is a recommended data field. minimum_value: - rank: 13 + rank: 14 slot_group: attributes maximum_value: - rank: 14 + rank: 15 + slot_group: attributes + equals_expression: + rank: 16 slot_group: attributes pattern: - rank: 15 + rank: 17 slot_group: attributes comments: - rank: 16 + rank: 18 slot_group: attributes examples: - rank: 17 + rank: 19 slot_group: attributes Enum: name: Enum @@ -216,9 +251,44 @@ classes: description: A plan text description of this LinkML schema enumeration menu of terms. required: true + range: string enum_uri: rank: 5 slot_group: attributes + PermissibleValue: + name: PermissibleValue + description: An enumeration picklist value. + slots: + - schema_id + - enum_id + - name + - text + - description + - meaning + slot_usage: + schema_id: + rank: 1 + slot_group: key + description: The coding name of the schema this menu choice's menu (enumeration) + is contained in. + enum_id: + rank: 2 + slot_group: key + name: + rank: 3 + slot_group: key + description: The coding name of this menu choice (PermissibleValue). + text: + rank: 4 + slot_group: attributes + description: + rank: 5 + slot_group: attributes + description: A plan text description of the meaning of this menu choice. + range: string + meaning: + rank: 6 + slot_group: attributes Class: name: Class description: A class contained in given schema. A class may be a top-level DataHarmonizer @@ -238,9 +308,7 @@ classes: - description - version - class_uri - - container_root - - alias - - owner + - tree_root - unique_keys - Inlined as list slot_usage: @@ -268,27 +336,22 @@ classes: rank: 4 slot_group: attributes required: true + range: string version: rank: 5 slot_group: attributes - description: A semantic version identifier. See https://semver.org/ + description: A semantic version identifier. class_uri: rank: 6 slot_group: attributes - container_root: + tree_root: rank: 7 slot_group: attributes - alias: - rank: 8 - slot_group: attributes - owner: - rank: 9 - slot_group: attributes unique_keys: - rank: 10 + rank: 8 slot_group: attributes Inlined as list: - rank: 11 + rank: 9 slot_group: attributes SlotUsage: name: SlotUsage @@ -307,6 +370,11 @@ classes: - multivalued - required - recommended + - minimum_value + - maximum_value + - pattern + - comments + - examples slot_usage: schema_id: rank: 1 @@ -325,22 +393,22 @@ classes: slot_group: rank: 5 slot_group: attributes - description: An override on a slot's slot_group attribute. + description: An override on a slot's **slot_group** attribute. range: rank: 6 slot_group: attributes - description: An override on a slot's range attribute. + description: An override on a slot's **range* attribute. inlined: rank: 7 slot_group: attributes identifier: rank: 8 slot_group: attributes - description: An override on a slot's *Identifier* attribute. + description: An override on a slot's **Identifier** attribute. key: rank: 9 slot_group: attributes - description: An override on a slot's *Key* attribute. + description: An override on a slot's **Key** attribute. multivalued: rank: 10 slot_group: attributes @@ -348,62 +416,63 @@ classes: required: rank: 11 slot_group: attributes - description: An override on a slot's *Required* attribute. + description: An override on a slot's **Required** attribute. recommended: rank: 12 slot_group: attributes - description: An override on a slot's *Recommended* attribute. - PermissibleValue: - name: PermissibleValue - description: An enumeration picklist value. + description: An override on a slot's **Recommended** attribute. + minimum_value: + rank: 13 + slot_group: attributes + maximum_value: + rank: 14 + slot_group: attributes + pattern: + rank: 15 + slot_group: attributes + comments: + rank: 16 + slot_group: attributes + examples: + rank: 17 + slot_group: attributes + UniqueKey: + name: UniqueKey + description: A table linking the name of each multi-component(slot) key to the + schema class it appears in. slots: - schema_id - - enum_id + - class - name - - text + - 'unique_key_slots:' - description - - meaning + - notes slot_usage: schema_id: rank: 1 slot_group: key - description: The coding name of the schema this menu choice's menu (enumeration) - is contained in. - enum_id: + description: The coding name of the schema this slot usage's class is contained + in. + class: rank: 2 slot_group: key name: rank: 3 slot_group: key - description: The coding name of this menu choice (PermissibleValue). - text: + identifier: true + pattern: ^[a-z]([a-z0-9_]+)+$ + description: A class contained in given schema. + 'unique_key_slots:': rank: 4 slot_group: attributes description: rank: 5 slot_group: attributes - description: A plan text description of the meaning of this menu choice. - meaning: + range: WhitespaceMinimizedString + description: The description of this unique key combination. + notes: rank: 6 slot_group: attributes - Prefix: - name: Prefix - description: A prefix used in the URIs mentioned in this schema. - slots: - - schema_id - - prefix - - reference - slot_usage: - schema_id: - rank: 1 - slot_group: key - description: The coding name of the schema this prefix is listed in. - prefix: - rank: 2 - slot_group: key - reference: - rank: 3 - slot_group: attributes Container: tree_root: true attributes: @@ -411,18 +480,14 @@ classes: range: Schema multivalued: true inlined_as_list: true - Classes: - range: Class + Prefixes: + range: Prefix multivalued: true inlined_as_list: true Slots: range: Slot multivalued: true inlined_as_list: true - SlotUsages: - range: SlotUsage - multivalued: true - inlined_as_list: true Enums: range: Enum multivalued: true @@ -431,8 +496,16 @@ classes: range: PermissibleValue multivalued: true inlined_as_list: true - Prefixes: - range: Prefix + Classes: + range: Class + multivalued: true + inlined_as_list: true + SlotUsages: + range: SlotUsage + multivalued: true + inlined_as_list: true + UniqueKeys: + range: UniqueKey multivalued: true inlined_as_list: true slots: @@ -441,20 +514,22 @@ slots: title: Name range: WhitespaceMinimizedString required: true - description: - name: description - title: Description - range: string id: name: id title: ID description: The unique URI for identifying this LinkML schema. + comments: Typically the schema can be downloaded from this URI, but currently + it is often left as an "example" URI during schema development. identifier: true range: uri required: true + description: + name: description + title: Description version: name: version title: Version + comments: See https://semver.org/ range: WhitespaceMinimizedString pattern: ^\d+\.\d+\.\d+$ in_language: @@ -475,13 +550,31 @@ slots: name: schema_id title: Schema identifier: true - range: schema + range: Schema + required: true + prefix: + name: prefix + title: Prefix + description: The namespace prefix string. + identifier: true + range: WhitespaceMinimizedString required: true + reference: + name: reference + title: Reference + description: The URI the prefix expands to. + range: uri title: name: title title: Title range: WhitespaceMinimizedString required: true + aliases: + name: aliases + title: Aliases + description: A list of other names that slot can be known by. + comments: See https://linkml.io/linkml/schemas/metadata.html#providing-aliases + range: WhitespaceMinimizedString slot_uri: name: slot_uri title: Slot URI @@ -528,6 +621,13 @@ slots: description: A maximum value which is appropriate for the range data type of the slot. range: integer + equals_expression: + name: equals_expression + title: Calculated value + description: Enables inferring (calculating) value based on other slot values. + Expressed as a python expression. + comments: See https://linkml.io/linkml/schemas/advanced.html#equals-expression + range: WhitespaceMinimizedString pattern: name: pattern title: Pattern @@ -575,22 +675,13 @@ slots: title: Class URI description: A URI for identifying this class's semantic type. range: uri - container_root: - name: container_root + tree_root: + name: tree_root title: Container description: A boolian indicating whether this is a specification for a top-level - data container. + data container on which serializations are based. + comments: Only one allowed per Schema. See https://linkml.io/linkml/data/csvs.html range: TrueFalseMenu - alias: - name: alias - title: Alias - range: WhitespaceMinimizedString - owner: - name: owner - title: Owner - description: The schema that owns this template. - comments: WE SHOULD HAVE READ-ONLY ATTRIBUTES - range: WhitespaceMinimizedString unique_keys: name: unique_keys title: Unique Keys @@ -606,14 +697,14 @@ slots: title: Class description: The coding name of this slot usage's class. identifier: true - range: class + range: Class required: true slot: name: slot title: Slot description: The coding name of the slot this slot usage pertains to. identifier: true - range: slot + range: Slot required: true rank: name: rank @@ -626,21 +717,23 @@ slots: title: Inlined description: An override on a slot's **Inlined** attribute. range: TrueFalseMenu - prefix: - name: prefix - title: Prefix - description: The namespace prefix string. - identifier: true - range: WhitespaceMinimizedString + 'unique_key_slots:': + name: 'unique_key_slots:' + title: Unique Key Slots + description: A list of a class's slots that make up a unique key + comments: See https://linkml.io/linkml/schemas/constraints.html + range: Slot + multivalued: true required: true - reference: - name: reference - title: Reference - description: The URI the prefix expands to. - range: uri + notes: + name: notes + title: Notes + description: Notes about use of this key in other classes via slot ranges etc. + range: WhitespaceMinimizedString enums: TrueFalseMenu: name: TrueFalseMenu + title: TrueFalseMenu permissible_values: 'TRUE': text: 'TRUE' @@ -648,6 +741,7 @@ enums: text: 'FALSE' DataTypeMenu: name: DataTypeMenu + title: DataTypeMenu permissible_values: string: text: string @@ -677,8 +771,12 @@ enums: text: curie uri: text: uri - schema: - text: schema + Schema: + text: Schema + Slot: + text: Slot + Class: + text: Class Provenance: text: Provenance TrueFalseMenu: @@ -689,6 +787,7 @@ enums: text: LanguagesMenu LanguagesMenu: name: LanguagesMenu + title: LanguagesMenu permissible_values: en: text: en diff --git a/web/templates/schema_editor/schema_core.yaml b/web/templates/schema_editor/schema_core.yaml index 61a8cddb..f30bd58b 100644 --- a/web/templates/schema_editor/schema_core.yaml +++ b/web/templates/schema_editor/schema_core.yaml @@ -20,6 +20,10 @@ classes: description: The top-level description of a LinkML schema. A schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, and enumerations) see_also: templates/schema_editor/SOP.pdf is_a: dh_interface + + Prefix: + name: Prefix + description: A prefix used in the URIs mentioned in this schema. Slot: name: Slot @@ -41,6 +45,10 @@ classes: - schema_id - name + PermissibleValue: + name: PermissibleValue + description: An enumeration picklist value. + Class: name: Class description: A class contained in given schema. A class may be a top-level DataHarmonizer "template" that can be displayed in a spreadsheet tab, or it may be a subordinate 1-many class linked to a parent class by a primary key field. @@ -55,13 +63,9 @@ classes: name: SlotUsage description: A table linking slots to classes they appear in, as well as attributes which override the generic slot inheritance. - PermissibleValue: - name: PermissibleValue - description: An enumeration picklist value. - - Prefix: - name: Prefix - description: A prefix used in the URIs mentioned in this schema. + UniqueKey: + name: UniqueKey + description: A table linking the name of each multi-component(slot) key to the schema class it appears in. Container: tree_root: true @@ -70,18 +74,14 @@ classes: range: Schema multivalued: true inlined_as_list: true - Classes: - range: Class + Prefixes: + range: Prefix multivalued: true inlined_as_list: true Slots: range: Slot multivalued: true inlined_as_list: true - SlotUsages: - range: SlotUsage - multivalued: true - inlined_as_list: true Enums: range: Enum multivalued: true @@ -90,10 +90,18 @@ classes: range: PermissibleValue multivalued: true inlined_as_list: true - Prefixes: - range: Prefix + Classes: + range: Class multivalued: true inlined_as_list: true + SlotUsages: + range: SlotUsage + multivalued: true + inlined_as_list: true + UniqueKeys: + range: UniqueKey + multivalued: true + inlined_as_list: true slots: {} enums: {} diff --git a/web/templates/schema_editor/schema_enums.tsv b/web/templates/schema_editor/schema_enums.tsv index d95cf3ee..5b465347 100644 --- a/web/templates/schema_editor/schema_enums.tsv +++ b/web/templates/schema_editor/schema_enums.tsv @@ -16,7 +16,9 @@ DataTypeMenu DataTypeMenu string uriorcurie curie uri - schema + Schema + Slot + Class Provenance TrueFalseMenu DataTypeMenu diff --git a/web/templates/schema_editor/schema_slots.tsv b/web/templates/schema_editor/schema_slots.tsv index dee3380e..d66c1e04 100644 --- a/web/templates/schema_editor/schema_slots.tsv +++ b/web/templates/schema_editor/schema_slots.tsv @@ -1,20 +1,27 @@ -class_name slot_group slot_uri title name range range_2 identifier multivalued required recommended minimum_value maximum_value pattern structured_pattern description comments examples -Schema key Name name WhitespaceMinimizedString TRUE TRUE ^([A-Z][a-z0-9]+)+$ The coding name of a LinkML schema. "This is a **CamelCase** formatted name in the LinkML standard naming convention. +class_name slot_group slot_uri title name range range_2 identifier multivalued required recommended pattern minimum_value maximum_value structured_pattern description comments examples +Schema key Name name WhitespaceMinimizedString TRUE TRUE ^([A-Z][a-z0-9]+)+$ The coding name of a LinkML schema. "This is a **CamelCase** formatted name in the LinkML standard naming convention. -A schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, and enumerations)." Wastewater +A schema contains classes for describing one or more DataHarmonizer templates, fields/columns, and picklists (which are themselves LinkML classes, slots, and enumerations). + +A schema can also import other schemas and their slots, classes, etc." Wastewater + key ID id uri TRUE TRUE The unique URI for identifying this LinkML schema. Typically the schema can be downloaded from this URI, but currently it is often left as an "example" URI during schema development. attributes Description description string TRUE The plain language description of this LinkML schema. - attributes ID id uri TRUE TRUE The unique URI for identifying this LinkML schema. - attributes Version version WhitespaceMinimizedString TRUE TRUE ^\d+\.\d+\.\d+$ The semantic version identifier for this schema. See https://semver.org/ 1.2.3 + attributes Version version WhitespaceMinimizedString TRUE TRUE ^\d+\.\d+\.\d+$ The semantic version identifier for this schema. See https://semver.org/ 1.2.3 attributes Languages in_language LanguagesMenu TRUE A list of i18n language codes that this schema is available in. The first listed schema is the default (usually english), while remaining ones are language overlays compiled into a locales/ subfolder. attributes Default prefix default_prefix uri TRUE A prefix to assume all classes and slots can be addressed by. -Slot key Schema schema_id schema TRUE TRUE The coding name of the schema this slot is contained in. - key Name name WhitespaceMinimizedString TRUE TRUE The coding name of this LinkML schema slot. "This is a **snake_case** formatted name in the LinkML standard naming convention. +Prefix key Schema schema_id Schema TRUE TRUE The coding name of the schema this prefix is listed in. + key Prefix prefix WhitespaceMinimizedString TRUE TRUE The namespace prefix string. + attributes Reference reference uri The URI the prefix expands to. + +Slot key Schema schema_id Schema TRUE TRUE The coding name of the schema that this slot is contained in. A schema has a list of slots it defines, but a schema can also import other schemas' slots. + key Name name WhitespaceMinimizedString TRUE TRUE ^[a-z]([a-z0-9_]+)+$ The coding name of this schema slot. "This is a lowercase **snake_case** formatted name in the LinkML standard naming convention. -A slot can be used in one or more classes (templates). A slot appears as a visible column in a spreadsheet (template) tab, and can define a basic number, date, string, picklist (categorical or ordinal), or other single-field datatype." +A slot can be used in one or more classes (templates). A slot may appear as a visible single-field datatype column in a spreadsheet (template) tab, and can define (in its range attribute) a basic number, date, string, picklist (categorical or ordinal), or other custom datatype. A slot may also have a range pointing to more complex classes." attributes Title title WhitespaceMinimizedString TRUE The plain language name of this LinkML schema slot. This can be displayed in applications and documentation. + attributes Aliases aliases WhitespaceMinimizedString A list of other names that slot can be known by. See https://linkml.io/linkml/schemas/metadata.html#providing-aliases attributes Description description string TRUE A plan text description of this LinkML schema slot. attributes Slot URI slot_uri uri A URI for identifying this slot's semantic type. - attributes Slot Group slot_group WhitespaceMinimizedString + attributes Slot Group slot_group WhitespaceMinimizedString The name of a grouping to place slot within during presentation. attributes Range range DataTypeMenu TRUE TRUE The range or ranges a slot is associated with. If more than one, this appears in the slot's specification as a list of "any of" ranges. attributes Identifier identifier TrueFalseMenu A boolean TRUE indicates this slot is an identifier, or refers to one. attributes Key key TrueFalseMenu A boolean TRUE indicates this slot is part of a primary key for the Class it is an attribute of. @@ -23,45 +30,53 @@ A slot can be used in one or more classes (templates). A slot appears as a visib attributes Recommended recommended TrueFalseMenu A boolean TRUE indicates this slot is a recommended data field. attributes Minimum_value minimum_value integer A minimum value which is appropriate for the range data type of the slot. attributes Maximum_value maximum_value integer A maximum value which is appropriate for the range data type of the slot. + attributes Calculated value equals_expression WhitespaceMinimizedString Enables inferring (calculating) value based on other slot values. Expressed as a python expression. See https://linkml.io/linkml/schemas/advanced.html#equals-expression attributes Pattern pattern WhitespaceMinimizedString A regular expression pattern used to validate a slot's string range data type content. Regular expressions can begin with ^ to ensure start of string is tested, and $ to ensure up to end is tested. attributes Comments comments WhitespaceMinimizedString A free text field for adding other comments to guide usage of field. attributes Examples examples WhitespaceMinimizedString A free text field for including examples of string, numeric, date or categorical values. -Enum key Schema schema_id schema TRUE TRUE The coding name of the schema this enumeration is contained in. +Enum key Schema schema_id Schema TRUE TRUE The coding name of the schema this enumeration is contained in. key Name name WhitespaceMinimizedString TRUE TRUE The coding name of this LinkML schema enumeration. See https://linkml.io/linkml/schemas/enums.html and https://linkml.io/linkml-model/latest/docs/EnumDefinition/ attributes Title title WhitespaceMinimizedString TRUE The plain language name of this enumeration menu. attributes Description description string TRUE A plan text description of this LinkML schema enumeration menu of terms. attributes Enum URI enum_uri uri A URI for identifying this enumeration's semantic type. -PermissibleValue key Schema schema_id schema TRUE TRUE The coding name of the schema this menu choice's menu (enumeration) is contained in. +PermissibleValue key Schema schema_id Schema TRUE TRUE The coding name of the schema this menu choice's menu (enumeration) is contained in. key Enum enum_id WhitespaceMinimizedString TRUE The coding name of the menu (enumeration) that this choice is contained in. key Name name WhitespaceMinimizedString TRUE The coding name of this menu choice (PermissibleValue). attributes Text text WhitespaceMinimizedString The plain language text of this menu choice (PermissibleValue) to display. attributes Description description string A plan text description of the meaning of this menu choice. attributes Meaning meaning uri A URI for identifying this choice's semantic type. -Class key Schema schema_id schema TRUE TRUE The coding name of the schema this class is contained in. - key Name name WhitespaceMinimizedString TRUE TRUE ^([A-Z][a-z0-9]+)+$ A class contained in given schema. Each class can be displayed in DataHarmonizer in a spreadsheet tab. A class may be visible as a top-level DataHarmonizer "template", or it may be a subordinate 1-many class linked to a parent class by a primary key field. WastewaterAMR|WastewaterPathogenAgnostic +Class key Schema schema_id Schema TRUE TRUE The coding name of the schema this class is contained in. + key Name name WhitespaceMinimizedString TRUE TRUE ^([A-Z][a-z0-9]+)+$ A class contained in given schema. Each class can be displayed in DataHarmonizer in a spreadsheet tab. A class may be visible as a top-level DataHarmonizer "template", or it may be a subordinate 1-many class linked to a parent class by a primary key field. WastewaterAMR|WastewaterPathogenAgnostic attributes Title title WhitespaceMinimizedString TRUE The plain language name of a LinkML schema class. attributes Description description string TRUE - attributes Version version WhitespaceMinimizedString ^\d+\.\d+\.\d+$ A semantic version identifier. See https://semver.org/ + attributes Version version WhitespaceMinimizedString ^\d+\.\d+\.\d+$ A semantic version identifier. See https://semver.org/ attributes Class URI class_uri uri A URI for identifying this class's semantic type. - attributes Container container_root TrueFalseMenu A boolian indicating whether this is a specification for a top-level data container. - attributes Alias alias WhitespaceMinimizedString - attributes Owner owner WhitespaceMinimizedString The schema that owns this template. WE SHOULD HAVE READ-ONLY ATTRIBUTES + attributes Container tree_root TrueFalseMenu A boolian indicating whether this is a specification for a top-level data container on which serializations are based. Only one allowed per Schema. See https://linkml.io/linkml/data/csvs.html attributes Unique Keys unique_keys WhitespaceMinimizedString attributes Inlined as list Inlined as list TrueFalseMenu A boolian indicating whether the content of this class is present inside its containing object as an array. -SlotUsage key Schema schema_id schema TRUE TRUE The coding name of the schema this slot usage's class is contained in. - key Class class class TRUE TRUE The coding name of this slot usage's class. - key Slot slot slot TRUE TRUE The coding name of the slot this slot usage pertains to. +SlotUsage key Schema schema_id Schema TRUE TRUE The coding name of the schema this slot usage's class is contained in. + key Class class Class TRUE TRUE The coding name of this slot usage's class. + key Slot slot Slot TRUE TRUE The coding name of the slot this slot usage pertains to. attributes Rank rank integer An integer which sets the order of this slot relative to the others within a given class. - attributes Slot Group slot_group WhitespaceMinimizedString An override on a slot's slot_group attribute. - attributes Range range DataTypeMenu TRUE An override on a slot's range attribute. + attributes Slot Group slot_group WhitespaceMinimizedString An override on a slot's **slot_group** attribute. + attributes Range range DataTypeMenu TRUE An override on a slot's **range* attribute. attributes Inlined inlined TrueFalseMenu An override on a slot's **Inlined** attribute. - attributes Identifier identifier TrueFalseMenu An override on a slot's *Identifier* attribute. - attributes Key key TrueFalseMenu An override on a slot's *Key* attribute. + attributes Identifier identifier TrueFalseMenu An override on a slot's **Identifier** attribute. + attributes Key key TrueFalseMenu An override on a slot's **Key** attribute. attributes Multivalued multivalued TrueFalseMenu An override on a slot's **Multivalued** attribute. - attributes Required required TrueFalseMenu An override on a slot's *Required* attribute. - attributes Recommended recommended TrueFalseMenu An override on a slot's *Recommended* attribute. -Prefix key Schema schema_id schema TRUE TRUE The coding name of the schema this prefix is listed in. - key Prefix prefix WhitespaceMinimizedString TRUE TRUE The namespace prefix string. - attributes Reference reference uri The URI the prefix expands to. + attributes Required required TrueFalseMenu An override on a slot's **Required** attribute. + attributes Recommended recommended TrueFalseMenu An override on a slot's **Recommended** attribute. + attributes Minimum_value minimum_value integer A minimum value which is appropriate for the range data type of the slot. + attributes Maximum_value maximum_value integer A maximum value which is appropriate for the range data type of the slot. + attributes Pattern pattern WhitespaceMinimizedString A regular expression pattern used to validate a slot's string range data type content. Regular expressions can begin with ^ to ensure start of string is tested, and $ to ensure up to end is tested. + attributes Comments comments WhitespaceMinimizedString A free text field for adding other comments to guide usage of field. + attributes Examples examples WhitespaceMinimizedString A free text field for including examples of string, numeric, date or categorical values. +UniqueKey key Schema schema_id Schema TRUE TRUE The coding name of the schema this slot usage's class is contained in. + key Class class Class TRUE TRUE The coding name of this slot usage's class. + key Name name WhitespaceMinimizedString TRUE TRUE ^[a-z]([a-z0-9_]+)+$ A class contained in given schema. + attributes Unique Key Slots unique_key_slots: Slot TRUE TRUE A list of a class's slots that make up a unique key See https://linkml.io/linkml/schemas/constraints.html + attributes Description description WhitespaceMinimizedString The description of this unique key combination. + attributes Notes notes WhitespaceMinimizedString Notes about use of this key in other classes via slot ranges etc. + \ No newline at end of file