chronicle-core 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rspec.yml +1 -1
  3. data/.gitignore +3 -1
  4. data/.rubocop-plugin.yml +4 -0
  5. data/.rubocop.yml +16 -2
  6. data/Gemfile +2 -2
  7. data/Guardfile +3 -3
  8. data/LICENSE.txt +1 -1
  9. data/README.md +87 -2
  10. data/Rakefile +63 -1
  11. data/bin/console +6 -6
  12. data/chronicle-core.gemspec +32 -26
  13. data/lib/chronicle/core/version.rb +1 -3
  14. data/lib/chronicle/core.rb +1 -3
  15. data/lib/chronicle/models/base.rb +96 -0
  16. data/lib/chronicle/models/builder.rb +35 -0
  17. data/lib/chronicle/models/generation.rb +89 -0
  18. data/lib/chronicle/models/model_factory.rb +63 -0
  19. data/lib/chronicle/models.rb +17 -0
  20. data/lib/chronicle/schema/rdf_parsing/graph_transformer.rb +122 -0
  21. data/lib/chronicle/schema/rdf_parsing/rdf_serializer.rb +138 -0
  22. data/lib/chronicle/schema/rdf_parsing/schemaorg.rb +50 -0
  23. data/lib/chronicle/schema/rdf_parsing/ttl_graph_builder.rb +142 -0
  24. data/lib/chronicle/schema/rdf_parsing.rb +11 -0
  25. data/lib/chronicle/schema/schema_graph.rb +145 -0
  26. data/lib/chronicle/schema/schema_property.rb +81 -0
  27. data/lib/chronicle/schema/schema_type.rb +110 -0
  28. data/lib/chronicle/schema/types.rb +9 -0
  29. data/lib/chronicle/schema/validation/base_contract.rb +22 -0
  30. data/lib/chronicle/schema/validation/contract_factory.rb +133 -0
  31. data/lib/chronicle/schema/validation/edge_validator.rb +53 -0
  32. data/lib/chronicle/schema/validation/generation.rb +29 -0
  33. data/lib/chronicle/schema/validation/validator.rb +23 -0
  34. data/lib/chronicle/schema/validation.rb +41 -0
  35. data/lib/chronicle/schema.rb +9 -2
  36. data/lib/chronicle/serialization/hash_serializer.rb +5 -11
  37. data/lib/chronicle/serialization/jsonapi_serializer.rb +41 -26
  38. data/lib/chronicle/serialization/jsonld_serializer.rb +38 -0
  39. data/lib/chronicle/serialization/record.rb +90 -0
  40. data/lib/chronicle/serialization/serializer.rb +31 -18
  41. data/lib/chronicle/serialization.rb +6 -4
  42. data/lib/chronicle/utils/hash_utils.rb +19 -16
  43. data/schema/chronicle_schema_v1.json +1008 -0
  44. data/schema/chronicle_schema_v1.rb +147 -0
  45. data/schema/chronicle_schema_v1.ttl +562 -0
  46. metadata +107 -15
  47. data/lib/chronicle/schema/activity.rb +0 -5
  48. data/lib/chronicle/schema/base.rb +0 -79
  49. data/lib/chronicle/schema/entity.rb +0 -5
  50. data/lib/chronicle/schema/raw.rb +0 -9
  51. data/lib/chronicle/schema/validator.rb +0 -55
@@ -0,0 +1,1008 @@
1
+ {
2
+ "version": "1",
3
+ "types": [
4
+ {
5
+ "id": "https://schema.chronicle.app/Action",
6
+ "subtype_ids": [
7
+ "https://schema.chronicle.app/AssessAction",
8
+ "https://schema.chronicle.app/ConsumeAction",
9
+ "https://schema.chronicle.app/InteractAction",
10
+ "https://schema.chronicle.app/UpdateAction"
11
+ ],
12
+ "see_also": "https://schema.org/Action",
13
+ "comment": "An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role.\\n\\nSee also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](https://schema.org/docs/actions.html)."
14
+ },
15
+ {
16
+ "id": "https://schema.chronicle.app/AddAction",
17
+ "subtype_ids": [
18
+ "https://schema.chronicle.app/InsertAction"
19
+ ],
20
+ "see_also": "https://schema.org/AddAction",
21
+ "comment": "The act of editing by adding an object to a collection."
22
+ },
23
+ {
24
+ "id": "https://schema.chronicle.app/AdministrativeArea",
25
+ "subtype_ids": [
26
+ "https://schema.chronicle.app/City",
27
+ "https://schema.chronicle.app/Country",
28
+ "https://schema.chronicle.app/SchoolDistrict",
29
+ "https://schema.chronicle.app/State"
30
+ ],
31
+ "see_also": "https://schema.org/AdministrativeArea",
32
+ "comment": "A geographical region, typically under the jurisdiction of a particular government."
33
+ },
34
+ {
35
+ "id": "https://schema.chronicle.app/AssessAction",
36
+ "subtype_ids": [
37
+ "https://schema.chronicle.app/ReactAction"
38
+ ],
39
+ "see_also": "https://schema.org/AssessAction",
40
+ "comment": "The act of forming one's opinion, reaction or sentiment."
41
+ },
42
+ {
43
+ "id": "https://schema.chronicle.app/Book",
44
+ "subtype_ids": [
45
+
46
+ ],
47
+ "see_also": "https://schema.org/Book",
48
+ "comment": "A book."
49
+ },
50
+ {
51
+ "id": "https://schema.chronicle.app/Boolean",
52
+ "subtype_ids": [
53
+
54
+ ],
55
+ "see_also": "https://schema.org/Boolean",
56
+ "comment": "Boolean: True or False."
57
+ },
58
+ {
59
+ "id": "https://schema.chronicle.app/CheckInAction",
60
+ "subtype_ids": [
61
+
62
+ ],
63
+ "see_also": "https://schema.org/CheckInAction",
64
+ "comment": "The act of an agent communicating (service provider, social media, etc) their arrival by registering/confirming for a previously reserved service (e.g. flight check-in) or at a place (e.g. hotel), possibly resulting in a result (boarding pass, etc).\\n\\nRelated actions:\\n\\n* [[CheckOutAction]]: The antonym of CheckInAction.\\n* [[ArriveAction]]: Unlike ArriveAction, CheckInAction implies that the agent is informing/confirming the start of a previously reserved service.\\n* [[ConfirmAction]]: Unlike ConfirmAction, CheckInAction implies that the agent is informing/confirming the *start* of a previously reserved service rather than its validity/existence."
65
+ },
66
+ {
67
+ "id": "https://schema.chronicle.app/City",
68
+ "subtype_ids": [
69
+
70
+ ],
71
+ "see_also": "https://schema.org/City",
72
+ "comment": "A city or town."
73
+ },
74
+ {
75
+ "id": "https://schema.chronicle.app/CommunicateAction",
76
+ "subtype_ids": [
77
+ "https://schema.chronicle.app/CheckInAction"
78
+ ],
79
+ "see_also": "https://schema.org/CommunicateAction",
80
+ "comment": "The act of conveying information to another person via a communication medium (instrument) such as speech, email, or telephone conversation."
81
+ },
82
+ {
83
+ "id": "https://schema.chronicle.app/ConsumeAction",
84
+ "subtype_ids": [
85
+ "https://schema.chronicle.app/ListenAction"
86
+ ],
87
+ "see_also": "https://schema.org/ConsumeAction",
88
+ "comment": "The act of ingesting information/resources/food."
89
+ },
90
+ {
91
+ "id": "https://schema.chronicle.app/Country",
92
+ "subtype_ids": [
93
+
94
+ ],
95
+ "see_also": "https://schema.org/Country",
96
+ "comment": "A country."
97
+ },
98
+ {
99
+ "id": "https://schema.chronicle.app/CreativeWork",
100
+ "subtype_ids": [
101
+ "https://schema.chronicle.app/Book",
102
+ "https://schema.chronicle.app/CreativeWorkSeries",
103
+ "https://schema.chronicle.app/Episode",
104
+ "https://schema.chronicle.app/Message",
105
+ "https://schema.chronicle.app/MusicPlaylist",
106
+ "https://schema.chronicle.app/MusicRecording"
107
+ ],
108
+ "see_also": "https://schema.org/CreativeWork",
109
+ "comment": "The most generic kind of creative work, including books, movies, photographs, software programs, etc."
110
+ },
111
+ {
112
+ "id": "https://schema.chronicle.app/CreativeWorkSeries",
113
+ "subtype_ids": [
114
+ "https://schema.chronicle.app/PodcastSeries"
115
+ ],
116
+ "see_also": "https://schema.org/CreativeWorkSeries",
117
+ "comment": "A CreativeWorkSeries in schema.org is a group of related items, typically but not necessarily of the same kind. CreativeWorkSeries are usually organized into some order, often chronological. Unlike [[ItemList]] which is a general purpose data structure for lists of things, the emphasis with CreativeWorkSeries is on published materials (written e.g. books and periodicals, or media such as TV, radio and games).\\n\\nSpecific subtypes are available for describing [[TVSeries]], [[RadioSeries]], [[MovieSeries]], [[BookSeries]], [[Periodical]] and [[VideoGameSeries]]. In each case, the [[hasPart]] / [[isPartOf]] properties can be used to relate the CreativeWorkSeries to its parts. The general CreativeWorkSeries type serves largely just to organize these more specific and practical subtypes.\\n\\nIt is common for properties applicable to an item from the series to be usefully applied to the containing group. Schema.org attempts to anticipate some of these cases, but publishers should be free to apply properties of the series parts to the series as a whole wherever they seem appropriate.\n\t "
118
+ },
119
+ {
120
+ "id": "https://schema.chronicle.app/DataType",
121
+ "subtype_ids": [
122
+ "https://schema.chronicle.app/Boolean",
123
+ "https://schema.chronicle.app/Date",
124
+ "https://schema.chronicle.app/DateTime",
125
+ "https://schema.chronicle.app/Number",
126
+ "https://schema.chronicle.app/Text"
127
+ ],
128
+ "see_also": "https://schema.org/DataType",
129
+ "comment": "The basic data types such as Integers, Strings, etc."
130
+ },
131
+ {
132
+ "id": "https://schema.chronicle.app/Date",
133
+ "subtype_ids": [
134
+
135
+ ],
136
+ "see_also": "https://schema.org/Date",
137
+ "comment": "A date value in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)."
138
+ },
139
+ {
140
+ "id": "https://schema.chronicle.app/DateTime",
141
+ "subtype_ids": [
142
+
143
+ ],
144
+ "see_also": "https://schema.org/DateTime",
145
+ "comment": "A combination of date and time of day in the form [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] (see Chapter 5.4 of ISO 8601)."
146
+ },
147
+ {
148
+ "id": "https://schema.chronicle.app/Distance",
149
+ "subtype_ids": [
150
+
151
+ ],
152
+ "see_also": "https://schema.org/Distance",
153
+ "comment": "Properties that take Distances as values are of the form '<Number> <Length unit of measure>'. E.g., '7 ft'."
154
+ },
155
+ {
156
+ "id": "https://schema.chronicle.app/Duration",
157
+ "subtype_ids": [
158
+
159
+ ],
160
+ "see_also": "https://schema.org/Duration",
161
+ "comment": "Quantity: Duration (use [ISO 8601 duration format](http://en.wikipedia.org/wiki/ISO_8601))."
162
+ },
163
+ {
164
+ "id": "https://schema.chronicle.app/Energy",
165
+ "subtype_ids": [
166
+
167
+ ],
168
+ "see_also": "https://schema.org/Energy",
169
+ "comment": "Properties that take Energy as values are of the form '<Number> <Energy unit of measure>'."
170
+ },
171
+ {
172
+ "id": "https://schema.chronicle.app/Episode",
173
+ "subtype_ids": [
174
+ "https://schema.chronicle.app/PodcastEpisode"
175
+ ],
176
+ "see_also": "https://schema.org/Episode",
177
+ "comment": "A media episode (e.g. TV, radio, video game) which can be part of a series or season."
178
+ },
179
+ {
180
+ "id": "https://schema.chronicle.app/Event",
181
+ "subtype_ids": [
182
+
183
+ ],
184
+ "see_also": "https://schema.org/Event",
185
+ "comment": "An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the [[offers]] property. Repeated events may be structured as separate Event objects."
186
+ },
187
+ {
188
+ "id": "https://schema.chronicle.app/Float",
189
+ "subtype_ids": [
190
+
191
+ ],
192
+ "see_also": "https://schema.org/Float",
193
+ "comment": "Data type: Floating number."
194
+ },
195
+ {
196
+ "id": "https://schema.chronicle.app/InsertAction",
197
+ "subtype_ids": [
198
+
199
+ ],
200
+ "see_also": "https://schema.org/InsertAction",
201
+ "comment": "The act of adding at a specific location in an ordered collection."
202
+ },
203
+ {
204
+ "id": "https://schema.chronicle.app/Intangible",
205
+ "subtype_ids": [
206
+ "https://schema.chronicle.app/Quantity"
207
+ ],
208
+ "see_also": "https://schema.org/Intangible",
209
+ "comment": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc."
210
+ },
211
+ {
212
+ "id": "https://schema.chronicle.app/Integer",
213
+ "subtype_ids": [
214
+
215
+ ],
216
+ "see_also": "https://schema.org/Integer",
217
+ "comment": "Data type: Integer."
218
+ },
219
+ {
220
+ "id": "https://schema.chronicle.app/InteractAction",
221
+ "subtype_ids": [
222
+ "https://schema.chronicle.app/CommunicateAction"
223
+ ],
224
+ "see_also": "https://schema.org/InteractAction",
225
+ "comment": "The act of interacting with another person or organization."
226
+ },
227
+ {
228
+ "id": "https://schema.chronicle.app/LikeAction",
229
+ "subtype_ids": [
230
+
231
+ ],
232
+ "see_also": "https://schema.org/LikeAction",
233
+ "comment": "The act of expressing a positive sentiment about the object. An agent likes an object (a proposition, topic or theme) with participants."
234
+ },
235
+ {
236
+ "id": "https://schema.chronicle.app/ListenAction",
237
+ "subtype_ids": [
238
+
239
+ ],
240
+ "see_also": "https://schema.org/ListenAction",
241
+ "comment": "The act of consuming audio content."
242
+ },
243
+ {
244
+ "id": "https://schema.chronicle.app/Mass",
245
+ "subtype_ids": [
246
+
247
+ ],
248
+ "see_also": "https://schema.org/Mass",
249
+ "comment": "Properties that take Mass as values are of the form '<Number> <Mass unit of measure>'. E.g., '7 kg'."
250
+ },
251
+ {
252
+ "id": "https://schema.chronicle.app/Message",
253
+ "subtype_ids": [
254
+
255
+ ],
256
+ "see_also": "https://schema.org/Message",
257
+ "comment": "A single message from a sender to one or more organizations or people."
258
+ },
259
+ {
260
+ "id": "https://schema.chronicle.app/MusicAlbum",
261
+ "subtype_ids": [
262
+
263
+ ],
264
+ "see_also": "https://schema.org/MusicAlbum",
265
+ "comment": "A collection of music tracks."
266
+ },
267
+ {
268
+ "id": "https://schema.chronicle.app/MusicGroup",
269
+ "subtype_ids": [
270
+
271
+ ],
272
+ "see_also": "https://schema.org/MusicGroup",
273
+ "comment": "A musical group, such as a band, an orchestra, or a choir. Can also be a solo musician."
274
+ },
275
+ {
276
+ "id": "https://schema.chronicle.app/MusicPlaylist",
277
+ "subtype_ids": [
278
+ "https://schema.chronicle.app/MusicAlbum"
279
+ ],
280
+ "see_also": "https://schema.org/MusicPlaylist",
281
+ "comment": "A collection of music tracks in playlist form."
282
+ },
283
+ {
284
+ "id": "https://schema.chronicle.app/MusicRecording",
285
+ "subtype_ids": [
286
+
287
+ ],
288
+ "see_also": "https://schema.org/MusicRecording",
289
+ "comment": "A music recording (track), usually a single song."
290
+ },
291
+ {
292
+ "id": "https://schema.chronicle.app/Number",
293
+ "subtype_ids": [
294
+ "https://schema.chronicle.app/Float",
295
+ "https://schema.chronicle.app/Integer"
296
+ ],
297
+ "see_also": "https://schema.org/Number",
298
+ "comment": "Data type: Number.\\n\\nUsage guidelines:\\n\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator."
299
+ },
300
+ {
301
+ "id": "https://schema.chronicle.app/Organization",
302
+ "subtype_ids": [
303
+ "https://schema.chronicle.app/PerformingGroup"
304
+ ],
305
+ "see_also": "https://schema.org/Organization",
306
+ "comment": "An organization such as a school, NGO, corporation, club, etc."
307
+ },
308
+ {
309
+ "id": "https://schema.chronicle.app/PerformingGroup",
310
+ "subtype_ids": [
311
+ "https://schema.chronicle.app/MusicGroup"
312
+ ],
313
+ "see_also": "https://schema.org/PerformingGroup",
314
+ "comment": "A performance group, such as a band, an orchestra, or a circus."
315
+ },
316
+ {
317
+ "id": "https://schema.chronicle.app/Person",
318
+ "subtype_ids": [
319
+
320
+ ],
321
+ "see_also": "https://schema.org/Person",
322
+ "comment": "A person (alive, dead, undead, or fictional)."
323
+ },
324
+ {
325
+ "id": "https://schema.chronicle.app/Place",
326
+ "subtype_ids": [
327
+ "https://schema.chronicle.app/AdministrativeArea"
328
+ ],
329
+ "see_also": "https://schema.org/Place",
330
+ "comment": "Entities that have a somewhat fixed, physical extension."
331
+ },
332
+ {
333
+ "id": "https://schema.chronicle.app/PodcastEpisode",
334
+ "subtype_ids": [
335
+
336
+ ],
337
+ "see_also": "https://schema.org/PodcastEpisode",
338
+ "comment": "A single episode of a podcast series."
339
+ },
340
+ {
341
+ "id": "https://schema.chronicle.app/PodcastSeries",
342
+ "subtype_ids": [
343
+
344
+ ],
345
+ "see_also": "https://schema.org/PodcastSeries",
346
+ "comment": "A podcast is an episodic series of digital audio or video files which a user can download and listen to."
347
+ },
348
+ {
349
+ "id": "https://schema.chronicle.app/Quantity",
350
+ "subtype_ids": [
351
+ "https://schema.chronicle.app/Distance",
352
+ "https://schema.chronicle.app/Duration",
353
+ "https://schema.chronicle.app/Energy",
354
+ "https://schema.chronicle.app/Mass"
355
+ ],
356
+ "see_also": "https://schema.org/Quantity",
357
+ "comment": "Quantities such as distance, time, mass, weight, etc. Particular instances of say Mass are entities like '3 kg' or '4 milligrams'."
358
+ },
359
+ {
360
+ "id": "https://schema.chronicle.app/ReactAction",
361
+ "subtype_ids": [
362
+ "https://schema.chronicle.app/LikeAction"
363
+ ],
364
+ "see_also": "https://schema.org/ReactAction",
365
+ "comment": "The act of responding instinctively and emotionally to an object, expressing a sentiment."
366
+ },
367
+ {
368
+ "id": "https://schema.chronicle.app/SchoolDistrict",
369
+ "subtype_ids": [
370
+
371
+ ],
372
+ "see_also": "https://schema.org/SchoolDistrict",
373
+ "comment": "A School District is an administrative area for the administration of schools."
374
+ },
375
+ {
376
+ "id": "https://schema.chronicle.app/State",
377
+ "subtype_ids": [
378
+
379
+ ],
380
+ "see_also": "https://schema.org/State",
381
+ "comment": "A state or province of a country."
382
+ },
383
+ {
384
+ "id": "https://schema.chronicle.app/Text",
385
+ "subtype_ids": [
386
+ "https://schema.chronicle.app/URL"
387
+ ],
388
+ "see_also": "https://schema.org/Text",
389
+ "comment": "Data type: Text."
390
+ },
391
+ {
392
+ "id": "https://schema.chronicle.app/Thing",
393
+ "subtype_ids": [
394
+ "https://schema.chronicle.app/Action",
395
+ "https://schema.chronicle.app/CreativeWork",
396
+ "https://schema.chronicle.app/Event",
397
+ "https://schema.chronicle.app/Intangible",
398
+ "https://schema.chronicle.app/Organization",
399
+ "https://schema.chronicle.app/Person",
400
+ "https://schema.chronicle.app/Place"
401
+ ],
402
+ "see_also": "https://schema.org/Thing",
403
+ "comment": "The most generic type of item."
404
+ },
405
+ {
406
+ "id": "https://schema.chronicle.app/URL",
407
+ "subtype_ids": [
408
+
409
+ ],
410
+ "see_also": "https://schema.org/URL",
411
+ "comment": "Data type: URL."
412
+ },
413
+ {
414
+ "id": "https://schema.chronicle.app/UpdateAction",
415
+ "subtype_ids": [
416
+ "https://schema.chronicle.app/AddAction"
417
+ ],
418
+ "see_also": "https://schema.org/UpdateAction",
419
+ "comment": "The act of managing by changing/editing the state of the object."
420
+ }
421
+ ],
422
+ "properties": [
423
+ {
424
+ "id": "https://schema.chronicle.app/about",
425
+ "domain": [
426
+ "https://schema.chronicle.app/CreativeWork"
427
+ ],
428
+ "range": [
429
+ "https://schema.chronicle.app/Thing"
430
+ ],
431
+ "many": true,
432
+ "required": false,
433
+ "comment": "The subject matter of the content.",
434
+ "see_also": "https://schema.org/about"
435
+ },
436
+ {
437
+ "id": "https://schema.chronicle.app/address",
438
+ "domain": [
439
+ "https://schema.chronicle.app/Person"
440
+ ],
441
+ "range": [
442
+ "https://schema.chronicle.app/Text"
443
+ ],
444
+ "many": false,
445
+ "required": false,
446
+ "comment": "Physical address of the item.",
447
+ "see_also": "https://schema.org/address"
448
+ },
449
+ {
450
+ "id": "https://schema.chronicle.app/agent",
451
+ "domain": [
452
+ "https://schema.chronicle.app/Action"
453
+ ],
454
+ "range": [
455
+ "https://schema.chronicle.app/Organization",
456
+ "https://schema.chronicle.app/Person"
457
+ ],
458
+ "many": false,
459
+ "required": true,
460
+ "comment": "The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.",
461
+ "see_also": "https://schema.org/agent"
462
+ },
463
+ {
464
+ "id": "https://schema.chronicle.app/aggregateRating",
465
+ "domain": [
466
+ "https://schema.chronicle.app/CreativeWork"
467
+ ],
468
+ "range": [
469
+
470
+ ],
471
+ "many": false,
472
+ "required": false,
473
+ "comment": "The overall rating, based on a collection of reviews or ratings, of the item.",
474
+ "see_also": "https://schema.org/aggregateRating"
475
+ },
476
+ {
477
+ "id": "https://schema.chronicle.app/album",
478
+ "domain": [
479
+ "https://schema.chronicle.app/MusicGroup"
480
+ ],
481
+ "range": [
482
+ "https://schema.chronicle.app/MusicAlbum"
483
+ ],
484
+ "many": true,
485
+ "required": false,
486
+ "comment": "A music album.",
487
+ "see_also": "https://schema.org/album"
488
+ },
489
+ {
490
+ "id": "https://schema.chronicle.app/alternateName",
491
+ "domain": [
492
+ "https://schema.chronicle.app/Thing"
493
+ ],
494
+ "range": [
495
+ "https://schema.chronicle.app/Text"
496
+ ],
497
+ "many": false,
498
+ "required": false,
499
+ "comment": "An alias for the item.",
500
+ "see_also": "https://schema.org/alternateName"
501
+ },
502
+ {
503
+ "id": "https://schema.chronicle.app/author",
504
+ "domain": [
505
+ "https://schema.chronicle.app/CreativeWork"
506
+ ],
507
+ "range": [
508
+ "https://schema.chronicle.app/Organization",
509
+ "https://schema.chronicle.app/Person"
510
+ ],
511
+ "many": true,
512
+ "required": false,
513
+ "comment": "The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.",
514
+ "see_also": "https://schema.org/author"
515
+ },
516
+ {
517
+ "id": "https://schema.chronicle.app/byArtist",
518
+ "domain": [
519
+ "https://schema.chronicle.app/MusicAlbum",
520
+ "https://schema.chronicle.app/MusicRecording"
521
+ ],
522
+ "range": [
523
+ "https://schema.chronicle.app/MusicGroup",
524
+ "https://schema.chronicle.app/Person"
525
+ ],
526
+ "many": true,
527
+ "required": false,
528
+ "comment": "The artist that performed this album or recording.",
529
+ "see_also": "https://schema.org/byArtist"
530
+ },
531
+ {
532
+ "id": "https://schema.chronicle.app/contentLocation",
533
+ "domain": [
534
+ "https://schema.chronicle.app/CreativeWork"
535
+ ],
536
+ "range": [
537
+ "https://schema.chronicle.app/Place"
538
+ ],
539
+ "many": true,
540
+ "required": false,
541
+ "comment": "The location depicted or described in the content. For example, the location in a photograph or painting.",
542
+ "see_also": "https://schema.org/contentLocation"
543
+ },
544
+ {
545
+ "id": "https://schema.chronicle.app/contributor",
546
+ "domain": [
547
+ "https://schema.chronicle.app/CreativeWork"
548
+ ],
549
+ "range": [
550
+ "https://schema.chronicle.app/Organization",
551
+ "https://schema.chronicle.app/Person"
552
+ ],
553
+ "many": true,
554
+ "required": false,
555
+ "comment": "A secondary contributor to the CreativeWork or Event.",
556
+ "see_also": "https://schema.org/contributor"
557
+ },
558
+ {
559
+ "id": "https://schema.chronicle.app/creator",
560
+ "domain": [
561
+ "https://schema.chronicle.app/CreativeWork"
562
+ ],
563
+ "range": [
564
+ "https://schema.chronicle.app/Organization",
565
+ "https://schema.chronicle.app/Person"
566
+ ],
567
+ "many": true,
568
+ "required": false,
569
+ "comment": "The creator/author of this CreativeWork. This is the same as the Author property for CreativeWork.",
570
+ "see_also": "https://schema.org/creator"
571
+ },
572
+ {
573
+ "id": "https://schema.chronicle.app/description",
574
+ "domain": [
575
+ "https://schema.chronicle.app/Thing"
576
+ ],
577
+ "range": [
578
+ "https://schema.chronicle.app/Text"
579
+ ],
580
+ "many": false,
581
+ "required": false,
582
+ "comment": "A description of the item.",
583
+ "see_also": "https://schema.org/description"
584
+ },
585
+ {
586
+ "id": "https://schema.chronicle.app/duration",
587
+ "domain": [
588
+ "https://schema.chronicle.app/Episode",
589
+ "https://schema.chronicle.app/MusicRecording"
590
+ ],
591
+ "range": [
592
+ "https://schema.chronicle.app/Duration"
593
+ ],
594
+ "many": false,
595
+ "required": false,
596
+ "comment": "The duration of the item (movie, audio recording, event, etc.) in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601).",
597
+ "see_also": "https://schema.org/duration"
598
+ },
599
+ {
600
+ "id": "https://schema.chronicle.app/endDate",
601
+ "domain": [
602
+ "https://schema.chronicle.app/Event"
603
+ ],
604
+ "range": [
605
+ "https://schema.chronicle.app/Date",
606
+ "https://schema.chronicle.app/DateTime"
607
+ ],
608
+ "many": false,
609
+ "required": false,
610
+ "comment": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).",
611
+ "see_also": "https://schema.org/endDate"
612
+ },
613
+ {
614
+ "id": "https://schema.chronicle.app/endTime",
615
+ "domain": [
616
+ "https://schema.chronicle.app/Action"
617
+ ],
618
+ "range": [
619
+ "https://schema.chronicle.app/DateTime"
620
+ ],
621
+ "many": false,
622
+ "required": false,
623
+ "comment": "The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it's the time offset of the end of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.",
624
+ "see_also": "https://schema.org/endTime"
625
+ },
626
+ {
627
+ "id": "https://schema.chronicle.app/episodeNumber",
628
+ "domain": [
629
+ "https://schema.chronicle.app/Episode"
630
+ ],
631
+ "range": [
632
+ "https://schema.chronicle.app/Integer",
633
+ "https://schema.chronicle.app/Text"
634
+ ],
635
+ "many": false,
636
+ "required": false,
637
+ "comment": "Position of the episode within an ordered group of episodes.",
638
+ "see_also": "https://schema.org/episodeNumber"
639
+ },
640
+ {
641
+ "id": "https://schema.chronicle.app/identifier",
642
+ "domain": [
643
+ "https://schema.chronicle.app/Thing"
644
+ ],
645
+ "range": [
646
+ "https://schema.chronicle.app/Text",
647
+ "https://schema.chronicle.app/URL"
648
+ ],
649
+ "many": false,
650
+ "required": false,
651
+ "comment": "The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details.\n ",
652
+ "see_also": "https://schema.org/identifier"
653
+ },
654
+ {
655
+ "id": "https://schema.chronicle.app/inAlbum",
656
+ "domain": [
657
+ "https://schema.chronicle.app/MusicRecording"
658
+ ],
659
+ "range": [
660
+ "https://schema.chronicle.app/MusicAlbum"
661
+ ],
662
+ "many": true,
663
+ "required": false,
664
+ "comment": "The album to which this recording belongs.",
665
+ "see_also": "https://schema.org/inAlbum"
666
+ },
667
+ {
668
+ "id": "https://schema.chronicle.app/inLanguage",
669
+ "domain": [
670
+ "https://schema.chronicle.app/CreativeWork"
671
+ ],
672
+ "range": [
673
+ "https://schema.chronicle.app/Text"
674
+ ],
675
+ "many": true,
676
+ "required": false,
677
+ "comment": "The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].",
678
+ "see_also": "https://schema.org/inLanguage"
679
+ },
680
+ {
681
+ "id": "https://schema.chronicle.app/instrument",
682
+ "domain": [
683
+ "https://schema.chronicle.app/Action"
684
+ ],
685
+ "range": [
686
+ "https://schema.chronicle.app/Thing"
687
+ ],
688
+ "many": false,
689
+ "required": false,
690
+ "comment": "The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.",
691
+ "see_also": "https://schema.org/instrument"
692
+ },
693
+ {
694
+ "id": "https://schema.chronicle.app/isPartOf",
695
+ "domain": [
696
+ "https://schema.chronicle.app/CreativeWork"
697
+ ],
698
+ "range": [
699
+ "https://schema.chronicle.app/CreativeWork",
700
+ "https://schema.chronicle.app/URL"
701
+ ],
702
+ "many": true,
703
+ "required": false,
704
+ "comment": "Indicates an item or CreativeWork that this item, or CreativeWork (in some sense), is part of.",
705
+ "see_also": "https://schema.org/isPartOf"
706
+ },
707
+ {
708
+ "id": "https://schema.chronicle.app/keywords",
709
+ "domain": [
710
+ "https://schema.chronicle.app/CreativeWork"
711
+ ],
712
+ "range": [
713
+ "https://schema.chronicle.app/Text",
714
+ "https://schema.chronicle.app/URL"
715
+ ],
716
+ "many": true,
717
+ "required": false,
718
+ "comment": "Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.",
719
+ "see_also": "https://schema.org/keywords"
720
+ },
721
+ {
722
+ "id": "https://schema.chronicle.app/location",
723
+ "domain": [
724
+ "https://schema.chronicle.app/Event",
725
+ "https://schema.chronicle.app/Organization"
726
+ ],
727
+ "range": [
728
+ "https://schema.chronicle.app/Place",
729
+ "https://schema.chronicle.app/Text"
730
+ ],
731
+ "many": true,
732
+ "required": false,
733
+ "comment": "The location of, for example, where an event is happening, where an organization is located, or where an action takes place.",
734
+ "see_also": "https://schema.org/location"
735
+ },
736
+ {
737
+ "id": "https://schema.chronicle.app/mentions",
738
+ "domain": [
739
+ "https://schema.chronicle.app/CreativeWork"
740
+ ],
741
+ "range": [
742
+ "https://schema.chronicle.app/Thing"
743
+ ],
744
+ "many": true,
745
+ "required": false,
746
+ "comment": "Indicates that the CreativeWork contains a reference to, but is not necessarily about a concept.",
747
+ "see_also": "https://schema.org/mentions"
748
+ },
749
+ {
750
+ "id": "https://schema.chronicle.app/name",
751
+ "domain": [
752
+ "https://schema.chronicle.app/Thing"
753
+ ],
754
+ "range": [
755
+ "https://schema.chronicle.app/Text"
756
+ ],
757
+ "many": false,
758
+ "required": false,
759
+ "comment": "The name of the item.",
760
+ "see_also": "https://schema.org/name"
761
+ },
762
+ {
763
+ "id": "https://schema.chronicle.app/numberOfPages",
764
+ "domain": [
765
+ "https://schema.chronicle.app/Book"
766
+ ],
767
+ "range": [
768
+ "https://schema.chronicle.app/Integer"
769
+ ],
770
+ "many": false,
771
+ "required": false,
772
+ "comment": "The number of pages in the book.",
773
+ "see_also": "https://schema.org/numberOfPages"
774
+ },
775
+ {
776
+ "id": "https://schema.chronicle.app/object",
777
+ "domain": [
778
+ "https://schema.chronicle.app/Action"
779
+ ],
780
+ "range": [
781
+ "https://schema.chronicle.app/Thing"
782
+ ],
783
+ "many": false,
784
+ "required": false,
785
+ "comment": "The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn't). E.g. John read *a book*.",
786
+ "see_also": "https://schema.org/object"
787
+ },
788
+ {
789
+ "id": "https://schema.chronicle.app/partOfSeason",
790
+ "domain": [
791
+ "https://schema.chronicle.app/Episode"
792
+ ],
793
+ "range": [
794
+
795
+ ],
796
+ "many": false,
797
+ "required": false,
798
+ "comment": "The season to which this episode belongs.",
799
+ "see_also": "https://schema.org/partOfSeason"
800
+ },
801
+ {
802
+ "id": "https://schema.chronicle.app/partOfSeries",
803
+ "domain": [
804
+ "https://schema.chronicle.app/Episode"
805
+ ],
806
+ "range": [
807
+ "https://schema.chronicle.app/CreativeWorkSeries"
808
+ ],
809
+ "many": false,
810
+ "required": false,
811
+ "comment": "The series to which this episode or season belongs.",
812
+ "see_also": "https://schema.org/partOfSeries"
813
+ },
814
+ {
815
+ "id": "https://schema.chronicle.app/producer",
816
+ "domain": [
817
+ "https://schema.chronicle.app/CreativeWork"
818
+ ],
819
+ "range": [
820
+ "https://schema.chronicle.app/Organization",
821
+ "https://schema.chronicle.app/Person"
822
+ ],
823
+ "many": true,
824
+ "required": false,
825
+ "comment": "The person or organization who produced the work (e.g. music album, movie, TV/radio series etc.).",
826
+ "see_also": "https://schema.org/producer"
827
+ },
828
+ {
829
+ "id": "https://schema.chronicle.app/publisher",
830
+ "domain": [
831
+ "https://schema.chronicle.app/CreativeWork"
832
+ ],
833
+ "range": [
834
+ "https://schema.chronicle.app/Organization",
835
+ "https://schema.chronicle.app/Person"
836
+ ],
837
+ "many": true,
838
+ "required": false,
839
+ "comment": "The publisher of the creative work.",
840
+ "see_also": "https://schema.org/publisher"
841
+ },
842
+ {
843
+ "id": "https://schema.chronicle.app/recipient",
844
+ "domain": [
845
+ "https://schema.chronicle.app/Message"
846
+ ],
847
+ "range": [
848
+ "https://schema.chronicle.app/Organization",
849
+ "https://schema.chronicle.app/Person"
850
+ ],
851
+ "many": true,
852
+ "required": false,
853
+ "comment": "A sub property of participant. The participant who is at the receiving end of the action.",
854
+ "see_also": "https://schema.org/recipient"
855
+ },
856
+ {
857
+ "id": "https://schema.chronicle.app/result",
858
+ "domain": [
859
+ "https://schema.chronicle.app/Action"
860
+ ],
861
+ "range": [
862
+ "https://schema.chronicle.app/Thing"
863
+ ],
864
+ "many": false,
865
+ "required": false,
866
+ "comment": "The result produced in the action. E.g. John wrote *a book*.",
867
+ "see_also": "https://schema.org/result"
868
+ },
869
+ {
870
+ "id": "https://schema.chronicle.app/sender",
871
+ "domain": [
872
+ "https://schema.chronicle.app/Message"
873
+ ],
874
+ "range": [
875
+ "https://schema.chronicle.app/Organization",
876
+ "https://schema.chronicle.app/Person"
877
+ ],
878
+ "many": false,
879
+ "required": false,
880
+ "comment": "A sub property of participant. The participant who is at the sending end of the action.",
881
+ "see_also": "https://schema.org/sender"
882
+ },
883
+ {
884
+ "id": "https://schema.chronicle.app/slug",
885
+ "domain": [
886
+ "https://schema.chronicle.app/Thing"
887
+ ],
888
+ "range": [
889
+ "https://schema.chronicle.app/Text"
890
+ ],
891
+ "many": false,
892
+ "required": false
893
+ },
894
+ {
895
+ "id": "https://schema.chronicle.app/source",
896
+ "domain": [
897
+ "https://schema.chronicle.app/Thing"
898
+ ],
899
+ "range": [
900
+ "https://schema.chronicle.app/Text"
901
+ ],
902
+ "many": false,
903
+ "required": false
904
+ },
905
+ {
906
+ "id": "https://schema.chronicle.app/sourceId",
907
+ "domain": [
908
+ "https://schema.chronicle.app/Thing"
909
+ ],
910
+ "range": [
911
+ "https://schema.chronicle.app/Text"
912
+ ],
913
+ "many": false,
914
+ "required": false
915
+ },
916
+ {
917
+ "id": "https://schema.chronicle.app/sourceNamespace",
918
+ "domain": [
919
+ "https://schema.chronicle.app/Thing"
920
+ ],
921
+ "range": [
922
+ "https://schema.chronicle.app/Text"
923
+ ],
924
+ "many": false,
925
+ "required": false
926
+ },
927
+ {
928
+ "id": "https://schema.chronicle.app/startDate",
929
+ "domain": [
930
+ "https://schema.chronicle.app/Event"
931
+ ],
932
+ "range": [
933
+ "https://schema.chronicle.app/Date",
934
+ "https://schema.chronicle.app/DateTime"
935
+ ],
936
+ "many": false,
937
+ "required": false,
938
+ "comment": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).",
939
+ "see_also": "https://schema.org/startDate"
940
+ },
941
+ {
942
+ "id": "https://schema.chronicle.app/startTime",
943
+ "domain": [
944
+ "https://schema.chronicle.app/Action"
945
+ ],
946
+ "range": [
947
+ "https://schema.chronicle.app/DateTime"
948
+ ],
949
+ "many": false,
950
+ "required": false,
951
+ "comment": "The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.",
952
+ "see_also": "https://schema.org/startTime"
953
+ },
954
+ {
955
+ "id": "https://schema.chronicle.app/subjectOf",
956
+ "domain": [
957
+ "https://schema.chronicle.app/Thing"
958
+ ],
959
+ "range": [
960
+ "https://schema.chronicle.app/CreativeWork",
961
+ "https://schema.chronicle.app/Event"
962
+ ],
963
+ "many": true,
964
+ "required": false,
965
+ "comment": "A CreativeWork or Event about this Thing.",
966
+ "see_also": "https://schema.org/subjectOf"
967
+ },
968
+ {
969
+ "id": "https://schema.chronicle.app/text",
970
+ "domain": [
971
+ "https://schema.chronicle.app/CreativeWork"
972
+ ],
973
+ "range": [
974
+ "https://schema.chronicle.app/Text"
975
+ ],
976
+ "many": false,
977
+ "required": false,
978
+ "comment": "The textual content of this CreativeWork.",
979
+ "see_also": "https://schema.org/text"
980
+ },
981
+ {
982
+ "id": "https://schema.chronicle.app/url",
983
+ "domain": [
984
+ "https://schema.chronicle.app/Thing"
985
+ ],
986
+ "range": [
987
+ "https://schema.chronicle.app/URL"
988
+ ],
989
+ "many": false,
990
+ "required": false,
991
+ "comment": "URL of the item.",
992
+ "see_also": "https://schema.org/url"
993
+ },
994
+ {
995
+ "id": "https://schema.chronicle.app/webFeed",
996
+ "domain": [
997
+ "https://schema.chronicle.app/PodcastSeries"
998
+ ],
999
+ "range": [
1000
+ "https://schema.chronicle.app/URL"
1001
+ ],
1002
+ "many": false,
1003
+ "required": false,
1004
+ "comment": "The URL for a feed, e.g. associated with a podcast series, blog, or series of date-stamped updates. This is usually RSS or Atom.",
1005
+ "see_also": "https://schema.org/webFeed"
1006
+ }
1007
+ ]
1008
+ }