UNPKG

@stencila/schema

Version:

Stencila schema and other specifications

178 lines (177 loc) 4.28 kB
{ "title": "Thing", "@id": "schema:Thing", "extends": "Entity", "status": "stable", "role": "base", "category": "metadata", "description": "The most generic type of item.", "properties": { "type": { "@id": "schema:type", "description": "The name of the type.", "type": "string", "enum": [ "Thing", "Article", "AudioObject", "Brand", "Collection", "ContactPoint", "CreativeWork", "Datatable", "DatatableColumn", "Figure", "Grant", "ImageObject", "MediaObject", "MonetaryGrant", "Organization", "Periodical", "Person", "Product", "PropertyValue", "PublicationIssue", "PublicationVolume", "SoftwareApplication", "SoftwareEnvironment", "SoftwareSession", "SoftwareSourceCode", "Table", "VideoObject", "VolumeMount" ], "default": "Thing", "from": "Entity" }, "id": { "@id": "schema:id", "description": "The identifier for this item.", "type": "string", "from": "Entity" }, "meta": { "@id": "stencila:meta", "description": "Metadata associated with this item.", "type": "object", "from": "Entity" }, "alternateNames": { "@id": "schema:alternateName", "description": "Alternate names (aliases) for the item.", "type": "array", "items": { "type": "string" }, "from": "Thing", "aliases": [ "alternateName" ] }, "description": { "@id": "schema:description", "description": "A description of the item.", "anyOf": [ { "type": "string" }, { "type": "array", "items": { "$ref": "Node.schema.json" } } ], "from": "Thing" }, "identifiers": { "@id": "schema:identifier", "description": "Any kind of identifier for any kind of Thing.", "$comment": "Some identifiers have specific properties e.g the `issn` property for\nthe `Periodical` type. These should be used in preference to this\nproperty which is intended for identifiers that do not yet have a\nspecific property. Identifiers can be represented as strings, but\nusing a `PropertyValue` will usually be better because it allows\nfor `propertyID` (i.e. the type of identifier).\n", "type": "array", "items": { "anyOf": [ { "type": "string" }, { "$ref": "PropertyValue.schema.json" } ] }, "from": "Thing", "aliases": [ "identifier" ] }, "name": { "@id": "schema:name", "description": "The name of the item.", "type": "string", "from": "Thing" }, "url": { "@id": "schema:url", "description": "The URL of the item.", "type": "string", "format": "uri", "from": "Thing" } }, "file": "Thing.schema.yaml", "children": [ "Brand", "ContactPoint", "CreativeWork", "DatatableColumn", "Grant", "Organization", "Person", "Product", "PropertyValue", "SoftwareEnvironment", "SoftwareSession", "VolumeMount" ], "descendants": [ "Article", "AudioObject", "Brand", "Collection", "ContactPoint", "CreativeWork", "Datatable", "DatatableColumn", "Figure", "Grant", "ImageObject", "MediaObject", "MonetaryGrant", "Organization", "Periodical", "Person", "Product", "PropertyValue", "PublicationIssue", "PublicationVolume", "SoftwareApplication", "SoftwareEnvironment", "SoftwareSession", "SoftwareSourceCode", "Table", "VideoObject", "VolumeMount" ], "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://schema.stenci.la/v0/Thing.schema.json", "source": "https://github.com/stencila/schema/blob/master/Thing.schema.yaml", "type": "object", "propertyAliases": { "alternateName": "alternateNames", "identifier": "identifiers" }, "additionalProperties": false, "required": [ "type" ] }