UNPKG

17 kBJSONView Raw
1{
2 "title": "VideoObject",
3 "@id": "schema:VideoObject",
4 "extends": "MediaObject",
5 "category": "works",
6 "role": "secondary",
7 "status": "stable",
8 "description": "A video file.",
9 "$comment": "The `VideoObject` type allows you to provide details such as caption and transcript,\nand the details which are included in [`MediaObject`](./MediaObject)\nwhich `VideoObject` extends.\n",
10 "properties": {
11 "type": {
12 "@id": "schema:type",
13 "description": "The name of the type.",
14 "type": "string",
15 "enum": [
16 "VideoObject"
17 ],
18 "default": "VideoObject",
19 "from": "Entity"
20 },
21 "id": {
22 "@id": "schema:id",
23 "description": "The identifier for this item.",
24 "type": "string",
25 "from": "Entity"
26 },
27 "meta": {
28 "@id": "stencila:meta",
29 "description": "Metadata associated with this item.",
30 "type": "object",
31 "from": "Entity"
32 },
33 "alternateNames": {
34 "@id": "schema:alternateName",
35 "description": "Alternate names (aliases) for the item.",
36 "type": "array",
37 "items": {
38 "type": "string"
39 },
40 "from": "Thing",
41 "isArray": true,
42 "isPlural": true,
43 "aliases": [
44 "alternateName"
45 ]
46 },
47 "description": {
48 "@id": "schema:description",
49 "description": "A description of the item.",
50 "$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",
51 "anyOf": [
52 {
53 "type": "array",
54 "items": {
55 "$ref": "BlockContent.schema.json"
56 }
57 },
58 {
59 "type": "array",
60 "items": {
61 "$ref": "InlineContent.schema.json"
62 },
63 "minItems": 2
64 },
65 {
66 "type": "string"
67 }
68 ],
69 "from": "Thing"
70 },
71 "identifiers": {
72 "@id": "schema:identifier",
73 "description": "Any kind of identifier for any kind of Thing.",
74 "$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",
75 "type": "array",
76 "items": {
77 "anyOf": [
78 {
79 "$ref": "PropertyValue.schema.json"
80 },
81 {
82 "type": "string"
83 }
84 ]
85 },
86 "from": "Thing",
87 "isArray": true,
88 "isPlural": true,
89 "aliases": [
90 "identifier"
91 ]
92 },
93 "images": {
94 "@id": "schema:image",
95 "description": "Images of the item.",
96 "type": "array",
97 "items": {
98 "anyOf": [
99 {
100 "$ref": "ImageObject.schema.json"
101 },
102 {
103 "type": "string",
104 "format": "uri"
105 }
106 ]
107 },
108 "from": "Thing",
109 "isArray": true,
110 "isPlural": true,
111 "aliases": [
112 "image"
113 ]
114 },
115 "name": {
116 "@id": "schema:name",
117 "description": "The name of the item.",
118 "type": "string",
119 "from": "Thing"
120 },
121 "url": {
122 "@id": "schema:url",
123 "description": "The URL of the item.",
124 "type": "string",
125 "format": "uri",
126 "from": "Thing"
127 },
128 "about": {
129 "@id": "schema:about",
130 "description": "The subject matter of the content.",
131 "$comment": "Consistent with https://schema.org/about, this property allows for\nlinking to one of more `Thing` nodes. This could for example include\na `Person` (e.g for a bibliography) or a `DefinedTerm` (e.g. for\nsubject areas the creative work relates to).\n",
132 "type": "array",
133 "items": {
134 "$ref": "ThingTypes.schema.json"
135 },
136 "from": "CreativeWork",
137 "isArray": true
138 },
139 "authors": {
140 "@id": "schema:author",
141 "description": "The authors of this creative work.",
142 "allOf": [
143 {
144 "parser": "scsi"
145 },
146 {
147 "type": "array",
148 "items": {
149 "anyOf": [
150 {
151 "$ref": "Person.schema.json"
152 },
153 {
154 "$ref": "Organization.schema.json"
155 }
156 ]
157 }
158 }
159 ],
160 "from": "CreativeWork",
161 "isArray": true,
162 "isPlural": true,
163 "aliases": [
164 "author"
165 ]
166 },
167 "comments": {
168 "@id": "schema:comment",
169 "description": "Comments about this creative work.",
170 "type": "array",
171 "items": {
172 "$ref": "Comment.schema.json"
173 },
174 "from": "CreativeWork",
175 "isArray": true,
176 "isPlural": true,
177 "aliases": [
178 "comment"
179 ]
180 },
181 "content": {
182 "@id": "stencila:content",
183 "description": "The structured content of this creative work c.f. property `text`.",
184 "anyOf": [
185 {
186 "type": "array",
187 "items": {
188 "$ref": "Node.schema.json"
189 }
190 },
191 {
192 "type": "string"
193 }
194 ],
195 "from": "CreativeWork"
196 },
197 "dateCreated": {
198 "@id": "schema:dateCreated",
199 "description": "Date/time of creation.",
200 "allOf": [
201 {
202 "$ref": "Date.schema.json"
203 }
204 ],
205 "from": "CreativeWork"
206 },
207 "dateReceived": {
208 "@id": "schema:dateReceived",
209 "description": "Date/time that work was received.",
210 "allOf": [
211 {
212 "$ref": "Date.schema.json"
213 }
214 ],
215 "from": "CreativeWork"
216 },
217 "dateAccepted": {
218 "@id": "stencila:dateAccepted",
219 "description": "Date/time of acceptance.",
220 "$comment": "This is not yet a schema.org property but the term is used\n[in Dublin Core](http://purl.org/dc/terms/dateAccepted).\n",
221 "allOf": [
222 {
223 "$ref": "Date.schema.json"
224 }
225 ],
226 "from": "CreativeWork"
227 },
228 "dateModified": {
229 "@id": "schema:dateModified",
230 "description": "Date/time of most recent modification.",
231 "allOf": [
232 {
233 "$ref": "Date.schema.json"
234 }
235 ],
236 "from": "CreativeWork"
237 },
238 "datePublished": {
239 "@id": "schema:datePublished",
240 "aliases": [
241 "date"
242 ],
243 "description": "Date of first publication.",
244 "allOf": [
245 {
246 "$ref": "Date.schema.json"
247 }
248 ],
249 "from": "CreativeWork"
250 },
251 "editors": {
252 "@id": "schema:editor",
253 "description": "People who edited the `CreativeWork`.",
254 "type": "array",
255 "items": {
256 "$ref": "Person.schema.json"
257 },
258 "from": "CreativeWork",
259 "isArray": true,
260 "isPlural": true,
261 "aliases": [
262 "editor"
263 ]
264 },
265 "funders": {
266 "@id": "schema:funder",
267 "description": "People or organizations that funded the `CreativeWork`.",
268 "type": "array",
269 "items": {
270 "anyOf": [
271 {
272 "$ref": "Person.schema.json"
273 },
274 {
275 "$ref": "Organization.schema.json"
276 }
277 ]
278 },
279 "from": "CreativeWork",
280 "isArray": true,
281 "isPlural": true,
282 "aliases": [
283 "funder"
284 ]
285 },
286 "fundedBy": {
287 "@id": "stencila:fundedBy",
288 "description": "Grants that funded the `CreativeWork`; reverse of `fundedItems`.",
289 "$comment": "This follows the proposal [here](https://github.com/schemaorg/schemaorg/issues/2258)\nfor a property that is the reverse of `fundedItems`.\nIt is an any because a `CreativeWork` may have been funded through more than\none `Grant`.\n",
290 "type": "array",
291 "items": {
292 "anyOf": [
293 {
294 "$ref": "Grant.schema.json"
295 },
296 {
297 "$ref": "MonetaryGrant.schema.json"
298 }
299 ]
300 },
301 "from": "CreativeWork",
302 "isArray": true
303 },
304 "genre": {
305 "@id": "schema:genre",
306 "description": "Genre of the creative work, broadcast channel or group.",
307 "allOf": [
308 {
309 "parser": "csi"
310 },
311 {
312 "type": "array",
313 "items": {
314 "type": "string"
315 }
316 }
317 ],
318 "from": "CreativeWork",
319 "isArray": true
320 },
321 "keywords": {
322 "@id": "schema:keywords",
323 "description": "Keywords or tags used to describe this content.\nMultiple entries in a keywords list are typically delimited by commas.\n",
324 "allOf": [
325 {
326 "parser": "csi"
327 },
328 {
329 "type": "array",
330 "items": {
331 "type": "string"
332 }
333 }
334 ],
335 "from": "CreativeWork",
336 "isArray": true,
337 "isPlural": true,
338 "aliases": [
339 "keyword"
340 ]
341 },
342 "isPartOf": {
343 "@id": "schema:isPartOf",
344 "description": "An item or other CreativeWork that this CreativeWork is a part of.\n",
345 "$ref": "CreativeWorkTypes.schema.json",
346 "from": "CreativeWork"
347 },
348 "licenses": {
349 "@id": "schema:license",
350 "description": "License documents that applies to this content, typically indicated by URL.\n",
351 "type": "array",
352 "items": {
353 "anyOf": [
354 {
355 "$ref": "CreativeWorkTypes.schema.json"
356 },
357 {
358 "type": "string",
359 "format": "uri"
360 }
361 ]
362 },
363 "from": "CreativeWork",
364 "isArray": true,
365 "isPlural": true,
366 "aliases": [
367 "license"
368 ]
369 },
370 "maintainers": {
371 "@id": "schema:maintainer",
372 "description": "The people or organizations who maintain this CreativeWork.",
373 "$comment": "A maintainer of a Dataset, SoftwareApplication, or other CreativeWork.\nA maintainer is a Person or Organization that manages contributions to,\nand/or publication of, some (typically complex) artifact. It is common for\ndistributions of software and data to be based on \"upstream\" sources.\nWhen maintainer is applied to a specific version of something e.g. a particular\nversion or packaging of a Dataset, it is always possible that the upstream\nsource has a different maintainer. The isBasedOn property can be used to\nindicate such relationships between datasets to make the different maintenance\nroles clear. Similarly in the case of software, a package may have dedicated\nmaintainers working on integration into software distributions such as Ubuntu,\nas well as upstream maintainers of the underlying work.\n",
374 "type": "array",
375 "items": {
376 "anyOf": [
377 {
378 "$ref": "Person.schema.json"
379 },
380 {
381 "$ref": "Organization.schema.json"
382 }
383 ]
384 },
385 "from": "CreativeWork",
386 "isArray": true,
387 "isPlural": true,
388 "aliases": [
389 "maintainer"
390 ]
391 },
392 "parts": {
393 "@id": "schema:hasParts",
394 "aliases": [
395 "hasParts",
396 "part"
397 ],
398 "description": "Elements of the collection which can be a variety of different elements,\nsuch as Articles, Datatables, Tables and more.\n",
399 "type": "array",
400 "items": {
401 "$ref": "CreativeWorkTypes.schema.json"
402 },
403 "from": "CreativeWork",
404 "isArray": true,
405 "isPlural": true
406 },
407 "publisher": {
408 "@id": "schema:publisher",
409 "description": "A publisher of the CreativeWork.\n",
410 "anyOf": [
411 {
412 "$ref": "Person.schema.json"
413 },
414 {
415 "$ref": "Organization.schema.json"
416 }
417 ],
418 "from": "CreativeWork"
419 },
420 "references": {
421 "@id": "schema:citation",
422 "aliases": [
423 "citations",
424 "reference"
425 ],
426 "description": "References to other creative works, such as another publication,\nweb page, scholarly article, etc.\n",
427 "type": "array",
428 "items": {
429 "anyOf": [
430 {
431 "$ref": "CreativeWorkTypes.schema.json"
432 },
433 {
434 "type": "string"
435 }
436 ]
437 },
438 "from": "CreativeWork",
439 "isArray": true,
440 "isPlural": true
441 },
442 "text": {
443 "@id": "schema:text",
444 "description": "The textual content of this creative work.",
445 "type": "string",
446 "from": "CreativeWork"
447 },
448 "title": {
449 "@id": "schema:headline",
450 "description": "The title of the creative work.",
451 "aliases": [
452 "headline"
453 ],
454 "$comment": "Allows for the title to include inline content (e.g `Strong`, `Math`)\nor a string. The title can not be block content e.g `Paragraph`.\nThe `minItems` restriction avoids a string being coerced into an array\nwith a single string item.\n",
455 "anyOf": [
456 {
457 "type": "array",
458 "items": {
459 "$ref": "InlineContent.schema.json"
460 },
461 "minItems": 2
462 },
463 {
464 "type": "string"
465 }
466 ],
467 "from": "CreativeWork"
468 },
469 "version": {
470 "@id": "schema:version",
471 "description": "The version of the creative work.",
472 "$comment": "In this case `string` is listed as an alternative before `number` to\navoid semantic version numbers e.g. `1.0` being parsed, and subsequently\nencoded, as `1` thereby resulting in loss of information.\n",
473 "anyOf": [
474 {
475 "type": "string"
476 },
477 {
478 "type": "number"
479 }
480 ],
481 "from": "CreativeWork"
482 },
483 "bitrate": {
484 "@id": "schema:bitrate",
485 "description": "Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).\n",
486 "type": "number",
487 "from": "MediaObject"
488 },
489 "contentSize": {
490 "@id": "schema:contentSize",
491 "description": "File size in megabits (Mbit, Mb).\n",
492 "type": "number",
493 "from": "MediaObject"
494 },
495 "contentUrl": {
496 "@id": "schema:contentUrl",
497 "description": "URL for the actual bytes of the media object, for example the image file or video file.\n",
498 "$comment": "To allow for file paths, including possibly erroneous paths, niether `format` or `pattern`\nkeywords are used here, or on `embedUrl`.\n",
499 "type": "string",
500 "from": "MediaObject"
501 },
502 "embedUrl": {
503 "@id": "schema:embedUrl",
504 "description": "URL that can be used to embed the media on a web page via a specific media player.\n",
505 "type": "string",
506 "from": "MediaObject"
507 },
508 "mediaType": {
509 "@id": "schema:encodingFormat",
510 "aliases": [
511 "encodingFormat"
512 ],
513 "description": "IANA media type (MIME type).",
514 "$comment": "This property is more restrictive than https://schema.org/encodingFormat which\nexpects either Text or URL for this property. This schema expects a media type e.g. `text/html`\nas listed at http://www.iana.org/assignments/media-types/media-types.xhtml.\n",
515 "type": "string",
516 "pattern": "^[a-z]+(\\/[a-z\\+\\-]+)$",
517 "from": "MediaObject"
518 },
519 "caption": {
520 "@id": "schema:caption",
521 "description": "The caption for this video recording.",
522 "type": "string",
523 "from": "VideoObject"
524 },
525 "thumbnail": {
526 "@id": "schema:thumbnail",
527 "description": "Thumbnail image of this video recording.",
528 "allOf": [
529 {
530 "$ref": "ImageObject.schema.json"
531 }
532 ],
533 "from": "VideoObject"
534 },
535 "transcript": {
536 "@id": "schema:transcript",
537 "description": "The transcript of this video recording.",
538 "type": "string",
539 "from": "VideoObject"
540 }
541 },
542 "examples": [
543 {
544 "type": "VideoObject",
545 "caption": "Example Video File",
546 "contentSize": "45",
547 "contentUrl": "http://www.example.com/file.mp4",
548 "encodingFormat": "video/mpeg",
549 "transcript": "This is the transcript for the video file..."
550 }
551 ],
552 "file": "VideoObject.schema.yaml",
553 "children": [],
554 "descendants": [],
555 "$schema": "http://json-schema.org/draft-07/schema#",
556 "$id": "https://schema.stenci.la/v1/VideoObject.schema.json",
557 "source": "https://github.com/stencila/schema/blob/master/schema/VideoObject.schema.yaml",
558 "type": "object",
559 "additionalProperties": false,
560 "required": [
561 "type",
562 "contentUrl"
563 ],
564 "propertyAliases": {
565 "alternateName": "alternateNames",
566 "identifier": "identifiers",
567 "image": "images",
568 "author": "authors",
569 "comment": "comments",
570 "date": "datePublished",
571 "editor": "editors",
572 "funder": "funders",
573 "keyword": "keywords",
574 "license": "licenses",
575 "maintainer": "maintainers",
576 "hasParts": "parts",
577 "part": "parts",
578 "citations": "references",
579 "reference": "references",
580 "headline": "title",
581 "encodingFormat": "mediaType"
582 }
583}