UNPKG

5.64 kBJSONView Raw
1{
2 "title": "Thing",
3 "@id": "schema:Thing",
4 "extends": "Entity",
5 "status": "stable",
6 "role": "base",
7 "category": "other",
8 "description": "The most generic type of item.",
9 "properties": {
10 "type": {
11 "@id": "schema:type",
12 "description": "The name of the type.",
13 "type": "string",
14 "enum": [
15 "Thing",
16 "Article",
17 "AudioObject",
18 "Brand",
19 "CitationIntentEnumeration",
20 "Claim",
21 "Collection",
22 "Comment",
23 "ContactPoint",
24 "CreativeWork",
25 "Datatable",
26 "DatatableColumn",
27 "DefinedTerm",
28 "Enumeration",
29 "Figure",
30 "Grant",
31 "ImageObject",
32 "ListItem",
33 "MediaObject",
34 "MonetaryGrant",
35 "Organization",
36 "Periodical",
37 "Person",
38 "PostalAddress",
39 "Product",
40 "PropertyValue",
41 "PublicationIssue",
42 "PublicationVolume",
43 "Review",
44 "SoftwareApplication",
45 "SoftwareEnvironment",
46 "SoftwareSession",
47 "SoftwareSourceCode",
48 "Table",
49 "VideoObject",
50 "VolumeMount"
51 ],
52 "default": "Thing",
53 "from": "Entity"
54 },
55 "id": {
56 "@id": "schema:id",
57 "description": "The identifier for this item.",
58 "type": "string",
59 "from": "Entity"
60 },
61 "meta": {
62 "@id": "stencila:meta",
63 "description": "Metadata associated with this item.",
64 "type": "object",
65 "from": "Entity"
66 },
67 "alternateNames": {
68 "@id": "schema:alternateName",
69 "description": "Alternate names (aliases) for the item.",
70 "type": "array",
71 "items": {
72 "type": "string"
73 },
74 "from": "Thing",
75 "isArray": true,
76 "isPlural": true,
77 "aliases": [
78 "alternateName"
79 ]
80 },
81 "description": {
82 "@id": "schema:description",
83 "description": "A description of the item.",
84 "$comment": "Allows for the description to be an array of nodes (e.g. an array of inline content,\nor a couple of paragraphs), or a string. The `minItems` restriction avoids a string\nbeing coerced into an array with a single string item.\n",
85 "anyOf": [
86 {
87 "type": "array",
88 "items": {
89 "$ref": "BlockContent.schema.json"
90 }
91 },
92 {
93 "type": "array",
94 "items": {
95 "$ref": "InlineContent.schema.json"
96 },
97 "minItems": 2
98 },
99 {
100 "type": "string"
101 }
102 ],
103 "from": "Thing"
104 },
105 "identifiers": {
106 "@id": "schema:identifier",
107 "description": "Any kind of identifier for any kind of Thing.",
108 "$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",
109 "type": "array",
110 "items": {
111 "anyOf": [
112 {
113 "$ref": "PropertyValue.schema.json"
114 },
115 {
116 "type": "string"
117 }
118 ]
119 },
120 "from": "Thing",
121 "isArray": true,
122 "isPlural": true,
123 "aliases": [
124 "identifier"
125 ]
126 },
127 "images": {
128 "@id": "schema:image",
129 "description": "Images of the item.",
130 "type": "array",
131 "items": {
132 "anyOf": [
133 {
134 "$ref": "ImageObject.schema.json"
135 },
136 {
137 "type": "string",
138 "format": "uri"
139 }
140 ]
141 },
142 "from": "Thing",
143 "isArray": true,
144 "isPlural": true,
145 "aliases": [
146 "image"
147 ]
148 },
149 "name": {
150 "@id": "schema:name",
151 "description": "The name of the item.",
152 "type": "string",
153 "from": "Thing"
154 },
155 "url": {
156 "@id": "schema:url",
157 "description": "The URL of the item.",
158 "type": "string",
159 "format": "uri",
160 "from": "Thing"
161 }
162 },
163 "file": "Thing.schema.yaml",
164 "children": [
165 "Brand",
166 "ContactPoint",
167 "CreativeWork",
168 "DatatableColumn",
169 "DefinedTerm",
170 "Enumeration",
171 "Grant",
172 "ListItem",
173 "Organization",
174 "Person",
175 "Product",
176 "PropertyValue",
177 "SoftwareEnvironment",
178 "SoftwareSession",
179 "VolumeMount"
180 ],
181 "descendants": [
182 "Article",
183 "AudioObject",
184 "Brand",
185 "CitationIntentEnumeration",
186 "Claim",
187 "Collection",
188 "Comment",
189 "ContactPoint",
190 "CreativeWork",
191 "Datatable",
192 "DatatableColumn",
193 "DefinedTerm",
194 "Enumeration",
195 "Figure",
196 "Grant",
197 "ImageObject",
198 "ListItem",
199 "MediaObject",
200 "MonetaryGrant",
201 "Organization",
202 "Periodical",
203 "Person",
204 "PostalAddress",
205 "Product",
206 "PropertyValue",
207 "PublicationIssue",
208 "PublicationVolume",
209 "Review",
210 "SoftwareApplication",
211 "SoftwareEnvironment",
212 "SoftwareSession",
213 "SoftwareSourceCode",
214 "Table",
215 "VideoObject",
216 "VolumeMount"
217 ],
218 "$schema": "http://json-schema.org/draft-07/schema#",
219 "$id": "https://schema.stenci.la/v1/Thing.schema.json",
220 "source": "https://github.com/stencila/schema/blob/master/schema/Thing.schema.yaml",
221 "type": "object",
222 "propertyAliases": {
223 "alternateName": "alternateNames",
224 "identifier": "identifiers",
225 "image": "images"
226 },
227 "additionalProperties": false,
228 "required": [
229 "type"
230 ]
231}