@stencila/schema
Version:
Stencila schema and other specifications
134 lines (133 loc) • 3.81 kB
YAML
title: CreativeWork
'@id': schema:CreativeWork
$extends: Thing.schema.yaml
role: base
status: stable
description: |
The most generic kind of creative work, including books, movies, photographs,
software programs, etc. https://schema.org/CreativeWork
properties:
authors:
'@id': schema:author
description: The authors of this this creative work.
type: array
items:
anyOf:
- $ref: Person.schema.yaml
- $ref: Organization.schema.yaml
citations:
'@id': schema:citation
description: |
Citations or references to other creative works, such as another publication,
web page, scholarly article, etc.
type: array
items:
anyOf:
- type: string
- $ref: CreativeWork.schema.yaml
content:
# We have added "content" because the existing schema.org property "text" implies
# only unstructured text content.
'@id': stencila:content
description: The structured content of this creative work c.f. property `text`.
type: array
items:
$ref: Node.schema.yaml
dateCreated:
'@id': schema:dateCreated
description: Date/time of creation.
anyOf:
- type: string
format: date
- type: string
format: date-time
dateModified:
'@id': schema:dateModified
description: Date/time of most recent modification.
anyOf:
- type: string
format: date
- type: string
format: date-time
datePublished:
'@id': schema:datePublished
aliases:
# This assumes that a user specifying `date` means the date published
# and not the date modified or created.
- date
description: Date of first publication.
anyOf:
# Although schema.org says expected values are `Date`, for
# consistency with `dateCreated` and `dateModified` we allow
# for `DateTime` as well.
- type: string
format: date
- type: string
format: date-time
editors:
'@id': schema:editor
description: |
Persons who edited the CreativeWork.
type: array
items:
$ref: Person.schema.yaml
funders:
'@id': schema:funder
description: |
Person or organisation that funded the CreativeWork.
type: array
items:
anyOf:
- $ref: Person.schema.yaml
- $ref: Organization.schema.yaml
isPartOf:
'@id': schema:isPartOf
description: |
An item or other CreativeWork that this CreativeWork is a part of.
allOf:
- $ref: CreativeWork.schema.yaml
licenses:
'@id': schema:license
description: |
License documents that applies to this content, typically indicated by URL.
type: array
items:
anyOf:
- type: string
format: uri
- $ref: CreativeWork.schema.yaml
parts:
# The name "parts" seems more intuitive for users and developers than schema.orgs's "hasParts".
# We provide the latter as an alias.
'@id': schema:hasParts
aliases:
- hasParts
description: |
Elements of the collection which can be a variety of different elements,
such as Articles, Datatables, Tables and more.
type: array
items:
$ref: CreativeWork.schema.yaml
publisher:
'@id': schema:publisher
description: |
A publisher of the CreativeWork.
anyOf:
- $ref: Person.schema.yaml
- $ref: Organization.schema.yaml
text:
'@id': schema:text
description: The textual content of this creative work.
type: string
title:
# The name "title" is more appropriate to our context than schema.org's "headline".
# We provide the latter as an alias.
'@id': schema:headline
aliases:
- headline
type: string
version:
'@id': schema:version
anyOf:
- type: string
- type: number