cocina-models 0.75.0 β†’ 0.78.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +40 -12
  3. data/.rubocop_todo.yml +71 -2
  4. data/README.md +41 -5
  5. data/cocina-models.gemspec +2 -0
  6. data/description_types.yml +167 -38
  7. data/docs/description_types.md +471 -216
  8. data/lib/cocina/generator/generator.rb +7 -12
  9. data/lib/cocina/generator/schema.rb +1 -3
  10. data/lib/cocina/generator/schema_base.rb +0 -8
  11. data/lib/cocina/generator/schema_ref.rb +1 -1
  12. data/lib/cocina/generator/schema_value.rb +14 -4
  13. data/lib/cocina/models/access.rb +4 -4
  14. data/lib/cocina/models/admin_policy.rb +1 -1
  15. data/lib/cocina/models/admin_policy_access_template.rb +7 -7
  16. data/lib/cocina/models/admin_policy_administrative.rb +1 -1
  17. data/lib/cocina/models/admin_policy_with_metadata.rb +3 -3
  18. data/lib/cocina/models/builders/name_title_group_builder.rb +0 -4
  19. data/lib/cocina/models/builders/title_builder.rb +0 -2
  20. data/lib/cocina/models/citation_only_access.rb +2 -2
  21. data/lib/cocina/models/collection_access.rb +4 -4
  22. data/lib/cocina/models/collection_identification.rb +1 -1
  23. data/lib/cocina/models/collection_with_metadata.rb +2 -2
  24. data/lib/cocina/models/contributor.rb +4 -4
  25. data/lib/cocina/models/controlled_digital_lending_access.rb +2 -2
  26. data/lib/cocina/models/dark_access.rb +4 -4
  27. data/lib/cocina/models/description.rb +3 -3
  28. data/lib/cocina/models/descriptive_basic_value.rb +13 -13
  29. data/lib/cocina/models/descriptive_parallel_contributor.rb +5 -5
  30. data/lib/cocina/models/descriptive_parallel_event.rb +3 -3
  31. data/lib/cocina/models/descriptive_value.rb +13 -13
  32. data/lib/cocina/models/descriptive_value_language.rb +6 -6
  33. data/lib/cocina/models/dro.rb +1 -1
  34. data/lib/cocina/models/dro_access.rb +8 -8
  35. data/lib/cocina/models/dro_with_metadata.rb +3 -3
  36. data/lib/cocina/models/embargo.rb +5 -5
  37. data/lib/cocina/models/event.rb +3 -3
  38. data/lib/cocina/models/file.rb +4 -4
  39. data/lib/cocina/models/file_access.rb +4 -4
  40. data/lib/cocina/models/identification.rb +2 -2
  41. data/lib/cocina/models/language.rb +12 -12
  42. data/lib/cocina/models/location_based_access.rb +1 -1
  43. data/lib/cocina/models/location_based_download_access.rb +1 -1
  44. data/lib/cocina/models/mapping/error_notifier.rb +36 -0
  45. data/lib/cocina/models/mapping/from_mods/access.rb +177 -0
  46. data/lib/cocina/models/mapping/from_mods/admin_metadata.rb +217 -0
  47. data/lib/cocina/models/mapping/from_mods/alt_rep_group.rb +26 -0
  48. data/lib/cocina/models/mapping/from_mods/authority.rb +51 -0
  49. data/lib/cocina/models/mapping/from_mods/contributor.rb +161 -0
  50. data/lib/cocina/models/mapping/from_mods/description.rb +98 -0
  51. data/lib/cocina/models/mapping/from_mods/description_builder.rb +61 -0
  52. data/lib/cocina/models/mapping/from_mods/event.rb +543 -0
  53. data/lib/cocina/models/mapping/from_mods/form.rb +381 -0
  54. data/lib/cocina/models/mapping/from_mods/geographic.rb +219 -0
  55. data/lib/cocina/models/mapping/from_mods/hydrus_default_title_builder.rb +28 -0
  56. data/lib/cocina/models/mapping/from_mods/identifier.rb +51 -0
  57. data/lib/cocina/models/mapping/from_mods/identifier_builder.rb +71 -0
  58. data/lib/cocina/models/mapping/from_mods/identifier_type.rb +292 -0
  59. data/lib/cocina/models/mapping/from_mods/language.rb +36 -0
  60. data/lib/cocina/models/mapping/from_mods/language_script.rb +30 -0
  61. data/lib/cocina/models/mapping/from_mods/language_term.rb +106 -0
  62. data/lib/cocina/models/mapping/from_mods/name_builder.rb +307 -0
  63. data/lib/cocina/models/mapping/from_mods/note.rb +162 -0
  64. data/lib/cocina/models/mapping/from_mods/part_builder.rb +147 -0
  65. data/lib/cocina/models/mapping/from_mods/primary.rb +27 -0
  66. data/lib/cocina/models/mapping/from_mods/purl.rb +53 -0
  67. data/lib/cocina/models/mapping/from_mods/related_resource.rb +105 -0
  68. data/lib/cocina/models/mapping/from_mods/subject.rb +413 -0
  69. data/lib/cocina/models/mapping/from_mods/subject_authority_codes.rb +794 -0
  70. data/lib/cocina/models/mapping/from_mods/title.rb +160 -0
  71. data/lib/cocina/models/mapping/from_mods/title_builder.rb +106 -0
  72. data/lib/cocina/models/mapping/from_mods/title_builder_strategy.rb +19 -0
  73. data/lib/cocina/models/mapping/from_mods/value_uri.rb +25 -0
  74. data/lib/cocina/models/mapping/normalizers/base.rb +16 -0
  75. data/lib/cocina/models/mapping/normalizers/mods/geo_extension_normalizer.rb +69 -0
  76. data/lib/cocina/models/mapping/normalizers/mods/name_normalizer.rb +191 -0
  77. data/lib/cocina/models/mapping/normalizers/mods/origin_info_normalizer.rb +157 -0
  78. data/lib/cocina/models/mapping/normalizers/mods/subject_normalizer.rb +296 -0
  79. data/lib/cocina/models/mapping/normalizers/mods/title_normalizer.rb +91 -0
  80. data/lib/cocina/models/mapping/normalizers/mods_normalizer.rb +409 -0
  81. data/lib/cocina/models/mapping/purl.rb +27 -0
  82. data/lib/cocina/models/mapping/to_mods/access.rb +155 -0
  83. data/lib/cocina/models/mapping/to_mods/admin_metadata.rb +129 -0
  84. data/lib/cocina/models/mapping/to_mods/contributor.rb +49 -0
  85. data/lib/cocina/models/mapping/to_mods/description.rb +63 -0
  86. data/lib/cocina/models/mapping/to_mods/event.rb +200 -0
  87. data/lib/cocina/models/mapping/to_mods/form.rb +292 -0
  88. data/lib/cocina/models/mapping/to_mods/geographic.rb +151 -0
  89. data/lib/cocina/models/mapping/to_mods/id_generator.rb +25 -0
  90. data/lib/cocina/models/mapping/to_mods/identifier.rb +57 -0
  91. data/lib/cocina/models/mapping/to_mods/language.rb +82 -0
  92. data/lib/cocina/models/mapping/to_mods/mods_writer.rb +38 -0
  93. data/lib/cocina/models/mapping/to_mods/name_title_group.rb +29 -0
  94. data/lib/cocina/models/mapping/to_mods/name_writer.rb +228 -0
  95. data/lib/cocina/models/mapping/to_mods/note.rb +105 -0
  96. data/lib/cocina/models/mapping/to_mods/part_writer.rb +115 -0
  97. data/lib/cocina/models/mapping/to_mods/related_resource.rb +108 -0
  98. data/lib/cocina/models/mapping/to_mods/role_writer.rb +50 -0
  99. data/lib/cocina/models/mapping/to_mods/subject.rb +486 -0
  100. data/lib/cocina/models/mapping/to_mods/title.rb +260 -0
  101. data/lib/cocina/models/object_metadata.rb +2 -2
  102. data/lib/cocina/models/presentation.rb +2 -2
  103. data/lib/cocina/models/related_resource.rb +9 -9
  104. data/lib/cocina/models/release_tag.rb +4 -4
  105. data/lib/cocina/models/request_admin_policy.rb +1 -1
  106. data/lib/cocina/models/request_administrative.rb +1 -1
  107. data/lib/cocina/models/request_collection.rb +2 -2
  108. data/lib/cocina/models/request_description.rb +3 -3
  109. data/lib/cocina/models/request_dro.rb +4 -4
  110. data/lib/cocina/models/request_file.rb +5 -5
  111. data/lib/cocina/models/request_identification.rb +1 -1
  112. data/lib/cocina/models/sequence.rb +1 -1
  113. data/lib/cocina/models/source.rb +4 -4
  114. data/lib/cocina/models/standard.rb +5 -5
  115. data/lib/cocina/models/stanford_access.rb +2 -2
  116. data/lib/cocina/models/title.rb +13 -13
  117. data/lib/cocina/models/validators/dark_validator.rb +4 -2
  118. data/lib/cocina/models/validators/description_values_validator.rb +77 -0
  119. data/lib/cocina/models/validators/open_api_validator.rb +0 -4
  120. data/lib/cocina/models/validators/validator.rb +2 -1
  121. data/lib/cocina/models/version.rb +1 -1
  122. data/lib/cocina/models/world_access.rb +2 -2
  123. data/lib/cocina/models.rb +4 -0
  124. data/lib/cocina/rspec/factories.rb +205 -0
  125. data/lib/cocina/rspec.rb +2 -0
  126. data/openapi.yml +5 -5
  127. metadata +89 -17
  128. data/docs/_config.yml +0 -1
  129. data/docs/maps/Agent.json +0 -18
  130. data/docs/maps/Collection.json +0 -240
  131. data/docs/maps/DRO.json +0 -316
  132. data/docs/maps/Description.json +0 -17
  133. data/docs/maps/File.json +0 -196
  134. data/docs/maps/Fileset.json +0 -143
  135. data/docs/maps/README.md +0 -7
  136. data/docs/maps/ReleaseTag.json +0 -39
  137. data/docs/maps/Sequence.json +0 -46
  138. data/docs/maps/Title.json +0 -18
  139. data/docs/sampleETD/foxml-export.xml +0 -935
  140. data/docs/sampleETD/foxml.xml +0 -3475
  141. data/docs/sampleETD/xn109qc9773_bibframe.ttl +0 -95
  142. data/docs/sampleETD/xn109qc9773_taco.json +0 -158
data/docs/maps/File.json DELETED
@@ -1,196 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-06/schema#",
3
- "id": "http://cocina.sul.stanford.edu/schemas/File",
4
- "title": "File",
5
- "description": "Binaries that are the basis of what our domain manages. Binaries here do not include metadata files generated for the domain's own management purposes.",
6
- "type": "object",
7
- "required": ["@context", "@type", "externalIdentifier", "internalIdentifier", "label", "version", "administrative", "access", "identification", "structural"],
8
- "properties": {
9
- "@context": {
10
- "description": "URI for the JSON-LD context definitions.",
11
- "type": "string"
12
- },
13
- "@type": {
14
- "description": "The content type of the File.",
15
- "type": "string",
16
- "enum": [
17
- "http://cocina.sul.stanford.edu/models/file.jsonld"
18
- ]
19
- },
20
- "depositor": {
21
- "description": "The Agent (User, Group, Application, Department, other) that deposited the File into SDR.",
22
- "$ref": "/Agent"
23
- },
24
- "externalIdentifier": {
25
- "description": "Identifier for the resource within the SDR architecture but outside of the repository. UUID. Constant across resource versions. What clients will use calling the repository. Same as `identification.identifier`",
26
- "type": "string"
27
- },
28
- "filename": {
29
- "description": "Filename for a file. Can be same as label.",
30
- "type": "string"
31
- },
32
- "format": {
33
- "description": "Format of the File.",
34
- "type": "string"
35
- },
36
- "hasMessageDigests": {
37
- "description": "The output of the message digest algorithm.",
38
- "type": "array",
39
- "items": {
40
- "required": ["type", "digest"],
41
- "properties": {
42
- "type": {
43
- "description": "The algorithm that was used",
44
- "type": "string",
45
- "enum": ["md5", "sha1"]
46
- },
47
- "digest": {
48
- "description": "The digest value",
49
- "type": "string"
50
- }
51
- }
52
- }
53
- },
54
- "hasMimeType": {
55
- "description": "MIME Type of the File.",
56
- "type": "string"
57
- },
58
- "label": {
59
- "description": "Primary processing label (can be same as title) for a File.",
60
- "type": "string"
61
- },
62
- "presentation": {
63
- "description": "Presentation data for the File.",
64
- "type": "object",
65
- "properties": {
66
- "height": {
67
- "description": "Height in pixels",
68
- "type": "integer"
69
- },
70
- "width": {
71
- "description": "Width in pixels",
72
- "type": "integer"
73
- }
74
- }
75
- },
76
- "size": {
77
- "description": "Size of the File (binary) in bytes.",
78
- "type": "integer"
79
- },
80
- "internalIdentifier": {
81
- "description": "Identifier for the resource within the repository. UUID, unique for each new version of a repository resource.",
82
- "type": "string"
83
- },
84
- "use": {
85
- "description": "Use for the File.",
86
- "type": "string"
87
- },
88
- "version": {
89
- "description": "Version for the File within SDR.",
90
- "type": "integer"
91
- },
92
- "precedingVersion": {
93
- "description": "Preceding version for the File within SDR.",
94
- "type": "string"
95
- },
96
- "followingVersion": {
97
- "description": "Following version for the File within SDR.",
98
- "type": "string"
99
- },
100
- "access": {
101
- "description": "Access Metadata for the File.",
102
- "type": "object",
103
- "required": ["access", "download"],
104
- "properties": {
105
- "access": {
106
- "description": "Access level for the File. If \"dark\" this won't go into public xml contentMetadata.",
107
- "type": "string",
108
- "enum": ["world", "stanford", "location-based", "citation-only", "dark"]
109
- },
110
- "download": {
111
- "description": "Download level for the File binary.",
112
- "type": "string",
113
- "enum": ["world", "stanford", "location-based", "citation-only", "dark"]
114
- }
115
- }
116
- },
117
- "administrative": {
118
- "type": "object",
119
- "description": "Administrative metadata for the SDR resource.",
120
- "required": ["created", "sdrPreserve"],
121
- "properties": {
122
- "created": {
123
- "description": "When the resource in SDR was created.",
124
- "type": "string",
125
- "format": "date-time"
126
- },
127
- "deleted": {
128
- "description": "If the resource has been deleted (but not purged).",
129
- "type": "boolean"
130
- },
131
- "gravestoneMessage": {
132
- "description": "Message describing why the resource was deleted.",
133
- "type": "string"
134
- },
135
- "lastUpdated": {
136
- "description": "When the resource in SDR was last updated.",
137
- "type": "string",
138
- "format": "date-time"
139
- },
140
- "partOfProject": {
141
- "description": "Administrative or Internal project this resource is a part of.",
142
- "type": "string"
143
- },
144
- "sdrPreserve": {
145
- "description": "If this resource should be sent to Preservation.",
146
- "type": "boolean"
147
- },
148
- "shelve": {
149
- "description": "If this resource should be sent to Stacks.",
150
- "type": "boolean"
151
- },
152
- "remediatedBy": {
153
- "description": "The Agent (User, Group, Application, Department, other) that remediated this File in SDR.",
154
- "type": "array",
155
- "items": {
156
- "$ref": "/Agent"
157
- }
158
- }
159
- }
160
- },
161
- "identification": {
162
- "description": "Identifying information for the File.",
163
- "type": "object",
164
- "required": ["identifier", "sdrUUID"],
165
- "properties": {
166
- "filename": {
167
- "description": "Filename for the File from originating systems.",
168
- "type": "string"
169
- },
170
- "identifier": {
171
- "description": "Identifier for the File within the Stanford Digital Repository system",
172
- "type": "string"
173
- },
174
- "sdrUUID": {
175
- "type": "string",
176
- "description": "UUID previously minted for the resource within SDR2 / Fedora 3."
177
- }
178
- }
179
- },
180
- "structural": {
181
- "description": "Structural metadata for the File.",
182
- "type": "object",
183
- "required": ["isContainedBy"],
184
- "properties": {
185
- "isContainedBy": {
186
- "description": "Fileset that contains this File.",
187
- "type": "string"
188
- },
189
- "isTargetOf": {
190
- "description": "An Annotation instance that applies to this File.",
191
- "type": "string"
192
- }
193
- }
194
- }
195
- }
196
- }
@@ -1,143 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-06/schema#",
3
- "id": "http://cocina.sul.stanford.edu/schemas/Fileset",
4
- "title": "Fileset",
5
- "description": "Relevant groupings of Files. Also called a File Grouping.",
6
- "type": "object",
7
- "required": ["@context", "@type", "externalIdentifier", "internalIdentifier", "label", "version", "administrative", "access", "identification", "structural"],
8
- "properties": {
9
- "@context": {
10
- "description": "URI for the JSON-LD context definitions.",
11
- "type": "string"
12
- },
13
- "@type": {
14
- "description": "The content type of the Fileset.",
15
- "type": "string",
16
- "enum": [
17
- "http://cocina.sul.stanford.edu/models/fileset.jsonld"
18
- ]
19
- },
20
- "depositor": {
21
- "description": "The Agent (User, Group, Application, Department, other) that deposited the Fileset into SDR.",
22
- "$ref": "/Agent"
23
- },
24
- "label": {
25
- "description": "Primary processing label (can be same as title) for a Fileset.",
26
- "type": "string"
27
- },
28
- "externalIdentifier": {
29
- "description": "Identifier for the resource within the SDR architecture but outside of the repository. UUID. Constant across resource versions. What clients will use calling the repository. Same as `identification.identifier`",
30
- "type": "string"
31
- },
32
- "internalIdentifier": {
33
- "description": "Identifier for the resource within the repository. UUID, unique for each new version of a repository resource.",
34
- "type": "string"
35
- },
36
- "version": {
37
- "description": "Version for the Fileset within SDR.",
38
- "type": "integer"
39
- },
40
- "precedingVersion": {
41
- "description": "Preceding version for the Fileset within SDR.",
42
- "type": "string"
43
- },
44
- "followingVersion": {
45
- "description": "Following version for the Fileset within SDR.",
46
- "type": "string"
47
- },
48
- "access": {
49
- "description": "Access Metadata for the Fileset.",
50
- "type": "object",
51
- "required": ["access", "download"],
52
- "properties": {
53
- "access": {
54
- "description": "Access level for the Fileset.",
55
- "type": "string",
56
- "enum": ["world", "stanford", "location-based", "citation-only", "dark"]
57
- },
58
- "download": {
59
- "description": "Download level for the Fileset metadata.",
60
- "type": "string",
61
- "enum": ["world", "stanford", "location-based", "citation-only", "dark"]
62
- }
63
- }
64
- },
65
- "administrative": {
66
- "type": "object",
67
- "description": "Administrative metadata for the SDR resource.",
68
- "required": ["created", "sdrPreserve"],
69
- "properties": {
70
- "created": {
71
- "description": "When the resource in SDR was created.",
72
- "type": "string",
73
- "format": "date-time"
74
- },
75
- "deleted": {
76
- "description": "If the resource has been deleted (but not purged).",
77
- "type": "boolean"
78
- },
79
- "gravestoneMessage": {
80
- "description": "Message describing why the resource was deleted.",
81
- "type": "string"
82
- },
83
- "lastUpdated": {
84
- "description": "When the resource in SDR was last updated.",
85
- "type": "string",
86
- "format": "date-time"
87
- },
88
- "partOfProject": {
89
- "description": "Administrative or Internal project this resource is a part of.",
90
- "type": "string"
91
- },
92
- "sdrPreserve": {
93
- "description": "If this resource should be sent to Preservation.",
94
- "type": "boolean"
95
- },
96
- "remediatedBy": {
97
- "description": "The Agent (User, Group, Application, Department, other) that remediated a Fileset in SDR.",
98
- "type": "array",
99
- "items": {
100
- "$ref": "/Agent"
101
- }
102
- }
103
- }
104
- },
105
- "identification": {
106
- "description": "Identifying information for the Fileset.",
107
- "type": "object",
108
- "required": ["identifier"],
109
- "properties": {
110
- "identifier": {
111
- "description": "Identifier for the Fileset within the Stanford Digital Repository system",
112
- "type": "string"
113
- },
114
- "sdrUUID": {
115
- "type": "string",
116
- "description": "UUID previously minted for the resource within SDR2 / Fedora 3."
117
- }
118
- }
119
- },
120
- "structural": {
121
- "description": "Structural metadata for the Fileset.",
122
- "type": "object",
123
- "required": ["isContainedBy"],
124
- "properties": {
125
- "contains": {
126
- "description": "Files that are members of the fileset.",
127
- "type": "array",
128
- "items": {
129
- "$ref": "/File"
130
- }
131
- },
132
- "isContainedBy": {
133
- "description": "Parent DRO that is represented by the files in this Fileset.",
134
- "type": "string"
135
- },
136
- "isTargetOf": {
137
- "description": "An Annotation instance that applies to this Fileset.",
138
- "type": "string"
139
- }
140
- }
141
- }
142
- }
143
- }
data/docs/maps/README.md DELETED
@@ -1,7 +0,0 @@
1
- # COCINA Metadata Application Profiles (MAPs) πŸ—ΊοΈ
2
-
3
- This directory contains the metadata application profiles, or MAPs, for resources managed within the Stanford Digital Repository.
4
-
5
- Ultimately, these will relate to the API specifications for resources passed in or out for resource metadata validation and management. These are also MAPs we expect to iterate on, given the nature of metadata in library digital repository systems.
6
-
7
- Fuller documentation on these MAPs and the underlying model can be found here: https://sul-dlss.github.io/taco-truck/COCINA.html#cocina-data-models--shapes
@@ -1,39 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-06/schema#",
3
- "id": "http://cocina.sul.stanford.edu/schemas/ReleaseTag",
4
- "title": "Release Tag",
5
- "description": "A tag that indicates the item or collection should be released.",
6
- "type": "object",
7
- "required": ["to", "what", "date", "who", "release"],
8
- "properties": {
9
- "to": {
10
- "description": "What platform is it released to",
11
- "type": "string",
12
- "enum": [
13
- "Searchworks",
14
- "Earthworks"
15
- ]
16
- },
17
- "what": {
18
- "description": "What is being released. This item or the whole collection.",
19
- "type": "string",
20
- "enum": [
21
- "self",
22
- "collection"
23
- ]
24
- },
25
- "date": {
26
- "description": "When did this action happen",
27
- "type": "string",
28
- "format": "date-time"
29
- },
30
- "who": {
31
- "description": "Who did this release",
32
- "type": "string"
33
- },
34
- "release": {
35
- "description": "Should it be released or withdrawn. Release is coded as true and withdraw as false",
36
- "type": "boolean"
37
- }
38
- }
39
- }
@@ -1,46 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-06/schema#",
3
- "id": "http://cocina.sul.stanford.edu/schemas/Sequence",
4
- "title": "Resource Sequence",
5
- "description": "A sequence or ordering of resources within a Collection or Object.",
6
- "type": "object",
7
- "required": ["@type", "label", "startMember", "members"],
8
- "properties": {
9
- "@context": {
10
- "description": "URI for the JSON-LD context definitions.",
11
- "type": "string"
12
- },
13
- "@type": {
14
- "description": "The type of Sequence.",
15
- "type": "string",
16
- "enum": ["http://cocina.sul.stanford.edu/models/sequence.jsonld",
17
- "http://cocina.sul.stanford.edu/models/primary-sequence.jsonld"
18
- ]
19
- },
20
- "label": {
21
- "description": "Label for the sequence or ordering.",
22
- "type": "string"
23
- },
24
- "startMember": {
25
- "description": "Identifier for the first member of the sequence.",
26
- "type": "string"
27
- },
28
- "members": {
29
- "description": "Identifiers for Members in their stated Order for the Sequence.",
30
- "type": "array",
31
- "items": {
32
- "type": "string"
33
- }
34
- },
35
- "viewingDirection": {
36
- "description": "The direction that a sequence of canvases should be displayed to the user",
37
- "type": "string",
38
- "enum": [
39
- "left-to-right",
40
- "right-to-left",
41
- "top-to-bottom",
42
- "bottom-to-top"
43
- ]
44
- }
45
- }
46
- }
data/docs/maps/Title.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-06/schema#",
3
- "id": "http://cocina.sul.stanford.edu/schemas/Title",
4
- "title": "Title",
5
- "description": "A title of a work",
6
- "type": "object",
7
- "required": ["titleFull", "primary"],
8
- "properties": {
9
- "primary": {
10
- "description": "Is this the primary title for the object",
11
- "type": "boolean"
12
- },
13
- "titleFull": {
14
- "description": "The full title for the object",
15
- "type": "string"
16
- }
17
- }
18
- }