WebPage::recordedAt()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
use \Spatie\SchemaOrg\Contracts\WebPageContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\ThingContract;
8
9
/**
10
 * A web page. Every web page is implicitly assumed to be declared to be of type
11
 * WebPage, so the various properties about that webpage, such as
12
 * <code>breadcrumb</code> may be used. We recommend explicit declaration if
13
 * these properties are specified, but if they are found outside of an
14
 * itemscope, they will be assumed to be about the page.
15
 *
16
 * @see http://schema.org/WebPage
17
 *
18
 */
19
class WebPage extends BaseType implements WebPageContract, CreativeWorkContract, ThingContract
20
{
21
    /**
22
     * The subject matter of the content.
23
     *
24
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
25
     *
26
     * @return static
27
     *
28
     * @see http://schema.org/about
29
     */
30
    public function about($about)
31
    {
32
        return $this->setProperty('about', $about);
33
    }
34
35
    /**
36
     * The human sensory perceptual system or cognitive faculty through which a
37
     * person may process or perceive information. Expected values include:
38
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
39
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
40
     *
41
     * @param string|string[] $accessMode
42
     *
43
     * @return static
44
     *
45
     * @see http://schema.org/accessMode
46
     */
47
    public function accessMode($accessMode)
48
    {
49
        return $this->setProperty('accessMode', $accessMode);
50
    }
51
52
    /**
53
     * A list of single or combined accessModes that are sufficient to
54
     * understand all the intellectual content of a resource. Expected values
55
     * include:  auditory, tactile, textual, visual.
56
     *
57
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
58
     *
59
     * @return static
60
     *
61
     * @see http://schema.org/accessModeSufficient
62
     */
63
    public function accessModeSufficient($accessModeSufficient)
64
    {
65
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
66
    }
67
68
    /**
69
     * Indicates that the resource is compatible with the referenced
70
     * accessibility API ([WebSchemas wiki lists possible
71
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
72
     *
73
     * @param string|string[] $accessibilityAPI
74
     *
75
     * @return static
76
     *
77
     * @see http://schema.org/accessibilityAPI
78
     */
79
    public function accessibilityAPI($accessibilityAPI)
80
    {
81
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
82
    }
83
84
    /**
85
     * Identifies input methods that are sufficient to fully control the
86
     * described resource ([WebSchemas wiki lists possible
87
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
88
     *
89
     * @param string|string[] $accessibilityControl
90
     *
91
     * @return static
92
     *
93
     * @see http://schema.org/accessibilityControl
94
     */
95
    public function accessibilityControl($accessibilityControl)
96
    {
97
        return $this->setProperty('accessibilityControl', $accessibilityControl);
98
    }
99
100
    /**
101
     * Content features of the resource, such as accessible media, alternatives
102
     * and supported enhancements for accessibility ([WebSchemas wiki lists
103
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
104
     *
105
     * @param string|string[] $accessibilityFeature
106
     *
107
     * @return static
108
     *
109
     * @see http://schema.org/accessibilityFeature
110
     */
111
    public function accessibilityFeature($accessibilityFeature)
112
    {
113
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
114
    }
115
116
    /**
117
     * A characteristic of the described resource that is physiologically
118
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
119
     * wiki lists possible
120
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
121
     *
122
     * @param string|string[] $accessibilityHazard
123
     *
124
     * @return static
125
     *
126
     * @see http://schema.org/accessibilityHazard
127
     */
128
    public function accessibilityHazard($accessibilityHazard)
129
    {
130
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
131
    }
132
133
    /**
134
     * A human-readable summary of specific accessibility features or
135
     * deficiencies, consistent with the other accessibility metadata but
136
     * expressing subtleties such as "short descriptions are present but long
137
     * descriptions will be needed for non-visual users" or "short descriptions
138
     * are present and no long descriptions are needed."
139
     *
140
     * @param string|string[] $accessibilitySummary
141
     *
142
     * @return static
143
     *
144
     * @see http://schema.org/accessibilitySummary
145
     */
146
    public function accessibilitySummary($accessibilitySummary)
147
    {
148
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
149
    }
150
151
    /**
152
     * Specifies the Person that is legally accountable for the CreativeWork.
153
     *
154
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
155
     *
156
     * @return static
157
     *
158
     * @see http://schema.org/accountablePerson
159
     */
160
    public function accountablePerson($accountablePerson)
161
    {
162
        return $this->setProperty('accountablePerson', $accountablePerson);
163
    }
164
165
    /**
166
     * An additional type for the item, typically used for adding more specific
167
     * types from external vocabularies in microdata syntax. This is a
168
     * relationship between something and a class that the thing is in. In RDFa
169
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
170
     * attribute - for multiple types. Schema.org tools may have only weaker
171
     * understanding of extra types, in particular those defined externally.
172
     *
173
     * @param string|string[] $additionalType
174
     *
175
     * @return static
176
     *
177
     * @see http://schema.org/additionalType
178
     */
179
    public function additionalType($additionalType)
180
    {
181
        return $this->setProperty('additionalType', $additionalType);
182
    }
183
184
    /**
185
     * The overall rating, based on a collection of reviews or ratings, of the
186
     * item.
187
     *
188
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
189
     *
190
     * @return static
191
     *
192
     * @see http://schema.org/aggregateRating
193
     */
194
    public function aggregateRating($aggregateRating)
195
    {
196
        return $this->setProperty('aggregateRating', $aggregateRating);
197
    }
198
199
    /**
200
     * An alias for the item.
201
     *
202
     * @param string|string[] $alternateName
203
     *
204
     * @return static
205
     *
206
     * @see http://schema.org/alternateName
207
     */
208
    public function alternateName($alternateName)
209
    {
210
        return $this->setProperty('alternateName', $alternateName);
211
    }
212
213
    /**
214
     * A secondary title of the CreativeWork.
215
     *
216
     * @param string|string[] $alternativeHeadline
217
     *
218
     * @return static
219
     *
220
     * @see http://schema.org/alternativeHeadline
221
     */
222
    public function alternativeHeadline($alternativeHeadline)
223
    {
224
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
225
    }
226
227
    /**
228
     * A media object that encodes this CreativeWork. This property is a synonym
229
     * for encoding.
230
     *
231
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
232
     *
233
     * @return static
234
     *
235
     * @see http://schema.org/associatedMedia
236
     */
237
    public function associatedMedia($associatedMedia)
238
    {
239
        return $this->setProperty('associatedMedia', $associatedMedia);
240
    }
241
242
    /**
243
     * An intended audience, i.e. a group for whom something was created.
244
     *
245
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
246
     *
247
     * @return static
248
     *
249
     * @see http://schema.org/audience
250
     */
251
    public function audience($audience)
252
    {
253
        return $this->setProperty('audience', $audience);
254
    }
255
256
    /**
257
     * An embedded audio object.
258
     *
259
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
260
     *
261
     * @return static
262
     *
263
     * @see http://schema.org/audio
264
     */
265
    public function audio($audio)
266
    {
267
        return $this->setProperty('audio', $audio);
268
    }
269
270
    /**
271
     * The author of this content or rating. Please note that author is special
272
     * in that HTML 5 provides a special mechanism for indicating authorship via
273
     * the rel tag. That is equivalent to this and may be used interchangeably.
274
     *
275
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
276
     *
277
     * @return static
278
     *
279
     * @see http://schema.org/author
280
     */
281
    public function author($author)
282
    {
283
        return $this->setProperty('author', $author);
284
    }
285
286
    /**
287
     * An award won by or for this item.
288
     *
289
     * @param string|string[] $award
290
     *
291
     * @return static
292
     *
293
     * @see http://schema.org/award
294
     */
295
    public function award($award)
296
    {
297
        return $this->setProperty('award', $award);
298
    }
299
300
    /**
301
     * Awards won by or for this item.
302
     *
303
     * @param string|string[] $awards
304
     *
305
     * @return static
306
     *
307
     * @see http://schema.org/awards
308
     */
309
    public function awards($awards)
310
    {
311
        return $this->setProperty('awards', $awards);
312
    }
313
314
    /**
315
     * A set of links that can help a user understand and navigate a website
316
     * hierarchy.
317
     *
318
     * @param \Spatie\SchemaOrg\Contracts\BreadcrumbListContract|\Spatie\SchemaOrg\Contracts\BreadcrumbListContract[]|string|string[] $breadcrumb
319
     *
320
     * @return static
321
     *
322
     * @see http://schema.org/breadcrumb
323
     */
324
    public function breadcrumb($breadcrumb)
325
    {
326
        return $this->setProperty('breadcrumb', $breadcrumb);
327
    }
328
329
    /**
330
     * Fictional person connected with a creative work.
331
     *
332
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
333
     *
334
     * @return static
335
     *
336
     * @see http://schema.org/character
337
     */
338
    public function character($character)
339
    {
340
        return $this->setProperty('character', $character);
341
    }
342
343
    /**
344
     * A citation or reference to another creative work, such as another
345
     * publication, web page, scholarly article, etc.
346
     *
347
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
348
     *
349
     * @return static
350
     *
351
     * @see http://schema.org/citation
352
     */
353
    public function citation($citation)
354
    {
355
        return $this->setProperty('citation', $citation);
356
    }
357
358
    /**
359
     * Comments, typically from users.
360
     *
361
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
362
     *
363
     * @return static
364
     *
365
     * @see http://schema.org/comment
366
     */
367
    public function comment($comment)
368
    {
369
        return $this->setProperty('comment', $comment);
370
    }
371
372
    /**
373
     * The number of comments this CreativeWork (e.g. Article, Question or
374
     * Answer) has received. This is most applicable to works published in Web
375
     * sites with commenting system; additional comments may exist elsewhere.
376
     *
377
     * @param int|int[] $commentCount
378
     *
379
     * @return static
380
     *
381
     * @see http://schema.org/commentCount
382
     */
383
    public function commentCount($commentCount)
384
    {
385
        return $this->setProperty('commentCount', $commentCount);
386
    }
387
388
    /**
389
     * The location depicted or described in the content. For example, the
390
     * location in a photograph or painting.
391
     *
392
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
393
     *
394
     * @return static
395
     *
396
     * @see http://schema.org/contentLocation
397
     */
398
    public function contentLocation($contentLocation)
399
    {
400
        return $this->setProperty('contentLocation', $contentLocation);
401
    }
402
403
    /**
404
     * Official rating of a piece of content&#x2014;for example,'MPAA PG-13'.
405
     *
406
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
407
     *
408
     * @return static
409
     *
410
     * @see http://schema.org/contentRating
411
     */
412
    public function contentRating($contentRating)
413
    {
414
        return $this->setProperty('contentRating', $contentRating);
415
    }
416
417
    /**
418
     * A secondary contributor to the CreativeWork or Event.
419
     *
420
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
421
     *
422
     * @return static
423
     *
424
     * @see http://schema.org/contributor
425
     */
426
    public function contributor($contributor)
427
    {
428
        return $this->setProperty('contributor', $contributor);
429
    }
430
431
    /**
432
     * The party holding the legal copyright to the CreativeWork.
433
     *
434
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
435
     *
436
     * @return static
437
     *
438
     * @see http://schema.org/copyrightHolder
439
     */
440
    public function copyrightHolder($copyrightHolder)
441
    {
442
        return $this->setProperty('copyrightHolder', $copyrightHolder);
443
    }
444
445
    /**
446
     * The year during which the claimed copyright for the CreativeWork was
447
     * first asserted.
448
     *
449
     * @param float|float[]|int|int[] $copyrightYear
450
     *
451
     * @return static
452
     *
453
     * @see http://schema.org/copyrightYear
454
     */
455
    public function copyrightYear($copyrightYear)
456
    {
457
        return $this->setProperty('copyrightYear', $copyrightYear);
458
    }
459
460
    /**
461
     * The creator/author of this CreativeWork. This is the same as the Author
462
     * property for CreativeWork.
463
     *
464
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
465
     *
466
     * @return static
467
     *
468
     * @see http://schema.org/creator
469
     */
470
    public function creator($creator)
471
    {
472
        return $this->setProperty('creator', $creator);
473
    }
474
475
    /**
476
     * The date on which the CreativeWork was created or the item was added to a
477
     * DataFeed.
478
     *
479
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
480
     *
481
     * @return static
482
     *
483
     * @see http://schema.org/dateCreated
484
     */
485
    public function dateCreated($dateCreated)
486
    {
487
        return $this->setProperty('dateCreated', $dateCreated);
488
    }
489
490
    /**
491
     * The date on which the CreativeWork was most recently modified or when the
492
     * item's entry was modified within a DataFeed.
493
     *
494
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
495
     *
496
     * @return static
497
     *
498
     * @see http://schema.org/dateModified
499
     */
500
    public function dateModified($dateModified)
501
    {
502
        return $this->setProperty('dateModified', $dateModified);
503
    }
504
505
    /**
506
     * Date of first broadcast/publication.
507
     *
508
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
509
     *
510
     * @return static
511
     *
512
     * @see http://schema.org/datePublished
513
     */
514
    public function datePublished($datePublished)
515
    {
516
        return $this->setProperty('datePublished', $datePublished);
517
    }
518
519
    /**
520
     * A description of the item.
521
     *
522
     * @param string|string[] $description
523
     *
524
     * @return static
525
     *
526
     * @see http://schema.org/description
527
     */
528
    public function description($description)
529
    {
530
        return $this->setProperty('description', $description);
531
    }
532
533
    /**
534
     * A sub property of description. A short description of the item used to
535
     * disambiguate from other, similar items. Information from other properties
536
     * (in particular, name) may be necessary for the description to be useful
537
     * for disambiguation.
538
     *
539
     * @param string|string[] $disambiguatingDescription
540
     *
541
     * @return static
542
     *
543
     * @see http://schema.org/disambiguatingDescription
544
     */
545
    public function disambiguatingDescription($disambiguatingDescription)
546
    {
547
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
548
    }
549
550
    /**
551
     * A link to the page containing the comments of the CreativeWork.
552
     *
553
     * @param string|string[] $discussionUrl
554
     *
555
     * @return static
556
     *
557
     * @see http://schema.org/discussionUrl
558
     */
559
    public function discussionUrl($discussionUrl)
560
    {
561
        return $this->setProperty('discussionUrl', $discussionUrl);
562
    }
563
564
    /**
565
     * Specifies the Person who edited the CreativeWork.
566
     *
567
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
568
     *
569
     * @return static
570
     *
571
     * @see http://schema.org/editor
572
     */
573
    public function editor($editor)
574
    {
575
        return $this->setProperty('editor', $editor);
576
    }
577
578
    /**
579
     * An alignment to an established educational framework.
580
     *
581
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
582
     *
583
     * @return static
584
     *
585
     * @see http://schema.org/educationalAlignment
586
     */
587
    public function educationalAlignment($educationalAlignment)
588
    {
589
        return $this->setProperty('educationalAlignment', $educationalAlignment);
590
    }
591
592
    /**
593
     * The purpose of a work in the context of education; for example,
594
     * 'assignment', 'group work'.
595
     *
596
     * @param string|string[] $educationalUse
597
     *
598
     * @return static
599
     *
600
     * @see http://schema.org/educationalUse
601
     */
602
    public function educationalUse($educationalUse)
603
    {
604
        return $this->setProperty('educationalUse', $educationalUse);
605
    }
606
607
    /**
608
     * A media object that encodes this CreativeWork. This property is a synonym
609
     * for associatedMedia.
610
     *
611
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
612
     *
613
     * @return static
614
     *
615
     * @see http://schema.org/encoding
616
     */
617
    public function encoding($encoding)
618
    {
619
        return $this->setProperty('encoding', $encoding);
620
    }
621
622
    /**
623
     * Media type typically expressed using a MIME format (see [IANA
624
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
625
     * [MDN
626
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
627
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
628
     * .mp3 etc.).
629
     * 
630
     * In cases where a [[CreativeWork]] has several media type representations,
631
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
632
     * particular [[encodingFormat]] information.
633
     * 
634
     * Unregistered or niche encoding and file formats can be indicated instead
635
     * via the most appropriate URL, e.g. defining Web page or a
636
     * Wikipedia/Wikidata entry.
637
     *
638
     * @param string|string[] $encodingFormat
639
     *
640
     * @return static
641
     *
642
     * @see http://schema.org/encodingFormat
643
     */
644
    public function encodingFormat($encodingFormat)
645
    {
646
        return $this->setProperty('encodingFormat', $encodingFormat);
647
    }
648
649
    /**
650
     * A media object that encodes this CreativeWork.
651
     *
652
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
653
     *
654
     * @return static
655
     *
656
     * @see http://schema.org/encodings
657
     */
658
    public function encodings($encodings)
659
    {
660
        return $this->setProperty('encodings', $encodings);
661
    }
662
663
    /**
664
     * A creative work that this work is an
665
     * example/instance/realization/derivation of.
666
     *
667
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
668
     *
669
     * @return static
670
     *
671
     * @see http://schema.org/exampleOfWork
672
     */
673
    public function exampleOfWork($exampleOfWork)
674
    {
675
        return $this->setProperty('exampleOfWork', $exampleOfWork);
676
    }
677
678
    /**
679
     * Date the content expires and is no longer useful or available. For
680
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
681
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
682
     * publisher wants to indicate that it may no longer be relevant (or helpful
683
     * to highlight) after some date.
684
     *
685
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
686
     *
687
     * @return static
688
     *
689
     * @see http://schema.org/expires
690
     */
691
    public function expires($expires)
692
    {
693
        return $this->setProperty('expires', $expires);
694
    }
695
696
    /**
697
     * Media type, typically MIME format (see [IANA
698
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
699
     * the content e.g. application/zip of a SoftwareApplication binary. In
700
     * cases where a CreativeWork has several media type representations,
701
     * 'encoding' can be used to indicate each MediaObject alongside particular
702
     * fileFormat information. Unregistered or niche file formats can be
703
     * indicated instead via the most appropriate URL, e.g. defining Web page or
704
     * a Wikipedia entry.
705
     *
706
     * @param string|string[] $fileFormat
707
     *
708
     * @return static
709
     *
710
     * @see http://schema.org/fileFormat
711
     */
712
    public function fileFormat($fileFormat)
713
    {
714
        return $this->setProperty('fileFormat', $fileFormat);
715
    }
716
717
    /**
718
     * A person or organization that supports (sponsors) something through some
719
     * kind of financial contribution.
720
     *
721
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
722
     *
723
     * @return static
724
     *
725
     * @see http://schema.org/funder
726
     */
727
    public function funder($funder)
728
    {
729
        return $this->setProperty('funder', $funder);
730
    }
731
732
    /**
733
     * Genre of the creative work, broadcast channel or group.
734
     *
735
     * @param string|string[] $genre
736
     *
737
     * @return static
738
     *
739
     * @see http://schema.org/genre
740
     */
741
    public function genre($genre)
742
    {
743
        return $this->setProperty('genre', $genre);
744
    }
745
746
    /**
747
     * Indicates an item or CreativeWork that is part of this item, or
748
     * CreativeWork (in some sense).
749
     *
750
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
751
     *
752
     * @return static
753
     *
754
     * @see http://schema.org/hasPart
755
     */
756
    public function hasPart($hasPart)
757
    {
758
        return $this->setProperty('hasPart', $hasPart);
759
    }
760
761
    /**
762
     * Headline of the article.
763
     *
764
     * @param string|string[] $headline
765
     *
766
     * @return static
767
     *
768
     * @see http://schema.org/headline
769
     */
770
    public function headline($headline)
771
    {
772
        return $this->setProperty('headline', $headline);
773
    }
774
775
    /**
776
     * The identifier property represents any kind of identifier for any kind of
777
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
778
     * dedicated properties for representing many of these, either as textual
779
     * strings or as URL (URI) links. See [background
780
     * notes](/docs/datamodel.html#identifierBg) for more details.
781
     *
782
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
783
     *
784
     * @return static
785
     *
786
     * @see http://schema.org/identifier
787
     */
788
    public function identifier($identifier)
789
    {
790
        return $this->setProperty('identifier', $identifier);
791
    }
792
793
    /**
794
     * An image of the item. This can be a [[URL]] or a fully described
795
     * [[ImageObject]].
796
     *
797
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
798
     *
799
     * @return static
800
     *
801
     * @see http://schema.org/image
802
     */
803
    public function image($image)
804
    {
805
        return $this->setProperty('image', $image);
806
    }
807
808
    /**
809
     * The language of the content or performance or used in an action. Please
810
     * use one of the language codes from the [IETF BCP 47
811
     * standard](http://tools.ietf.org/html/bcp47). See also
812
     * [[availableLanguage]].
813
     *
814
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
815
     *
816
     * @return static
817
     *
818
     * @see http://schema.org/inLanguage
819
     */
820
    public function inLanguage($inLanguage)
821
    {
822
        return $this->setProperty('inLanguage', $inLanguage);
823
    }
824
825
    /**
826
     * The number of interactions for the CreativeWork using the WebSite or
827
     * SoftwareApplication. The most specific child type of InteractionCounter
828
     * should be used.
829
     *
830
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
831
     *
832
     * @return static
833
     *
834
     * @see http://schema.org/interactionStatistic
835
     */
836
    public function interactionStatistic($interactionStatistic)
837
    {
838
        return $this->setProperty('interactionStatistic', $interactionStatistic);
839
    }
840
841
    /**
842
     * The predominant mode of learning supported by the learning resource.
843
     * Acceptable values are 'active', 'expositive', or 'mixed'.
844
     *
845
     * @param string|string[] $interactivityType
846
     *
847
     * @return static
848
     *
849
     * @see http://schema.org/interactivityType
850
     */
851
    public function interactivityType($interactivityType)
852
    {
853
        return $this->setProperty('interactivityType', $interactivityType);
854
    }
855
856
    /**
857
     * A flag to signal that the item, event, or place is accessible for free.
858
     *
859
     * @param bool|bool[] $isAccessibleForFree
860
     *
861
     * @return static
862
     *
863
     * @see http://schema.org/isAccessibleForFree
864
     */
865
    public function isAccessibleForFree($isAccessibleForFree)
866
    {
867
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
868
    }
869
870
    /**
871
     * A resource from which this work is derived or from which it is a
872
     * modification or adaption.
873
     *
874
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
875
     *
876
     * @return static
877
     *
878
     * @see http://schema.org/isBasedOn
879
     */
880
    public function isBasedOn($isBasedOn)
881
    {
882
        return $this->setProperty('isBasedOn', $isBasedOn);
883
    }
884
885
    /**
886
     * A resource that was used in the creation of this resource. This term can
887
     * be repeated for multiple sources. For example,
888
     * http://example.com/great-multiplication-intro.html.
889
     *
890
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
891
     *
892
     * @return static
893
     *
894
     * @see http://schema.org/isBasedOnUrl
895
     */
896
    public function isBasedOnUrl($isBasedOnUrl)
897
    {
898
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
899
    }
900
901
    /**
902
     * Indicates whether this content is family friendly.
903
     *
904
     * @param bool|bool[] $isFamilyFriendly
905
     *
906
     * @return static
907
     *
908
     * @see http://schema.org/isFamilyFriendly
909
     */
910
    public function isFamilyFriendly($isFamilyFriendly)
911
    {
912
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
913
    }
914
915
    /**
916
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
917
     * some sense), is part of.
918
     *
919
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
920
     *
921
     * @return static
922
     *
923
     * @see http://schema.org/isPartOf
924
     */
925
    public function isPartOf($isPartOf)
926
    {
927
        return $this->setProperty('isPartOf', $isPartOf);
928
    }
929
930
    /**
931
     * Keywords or tags used to describe this content. Multiple entries in a
932
     * keywords list are typically delimited by commas.
933
     *
934
     * @param string|string[] $keywords
935
     *
936
     * @return static
937
     *
938
     * @see http://schema.org/keywords
939
     */
940
    public function keywords($keywords)
941
    {
942
        return $this->setProperty('keywords', $keywords);
943
    }
944
945
    /**
946
     * Date on which the content on this web page was last reviewed for accuracy
947
     * and/or completeness.
948
     *
949
     * @param \DateTimeInterface|\DateTimeInterface[] $lastReviewed
950
     *
951
     * @return static
952
     *
953
     * @see http://schema.org/lastReviewed
954
     */
955
    public function lastReviewed($lastReviewed)
956
    {
957
        return $this->setProperty('lastReviewed', $lastReviewed);
958
    }
959
960
    /**
961
     * The predominant type or kind characterizing the learning resource. For
962
     * example, 'presentation', 'handout'.
963
     *
964
     * @param string|string[] $learningResourceType
965
     *
966
     * @return static
967
     *
968
     * @see http://schema.org/learningResourceType
969
     */
970
    public function learningResourceType($learningResourceType)
971
    {
972
        return $this->setProperty('learningResourceType', $learningResourceType);
973
    }
974
975
    /**
976
     * A license document that applies to this content, typically indicated by
977
     * URL.
978
     *
979
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
980
     *
981
     * @return static
982
     *
983
     * @see http://schema.org/license
984
     */
985
    public function license($license)
986
    {
987
        return $this->setProperty('license', $license);
988
    }
989
990
    /**
991
     * The location where the CreativeWork was created, which may not be the
992
     * same as the location depicted in the CreativeWork.
993
     *
994
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
995
     *
996
     * @return static
997
     *
998
     * @see http://schema.org/locationCreated
999
     */
1000
    public function locationCreated($locationCreated)
1001
    {
1002
        return $this->setProperty('locationCreated', $locationCreated);
1003
    }
1004
1005
    /**
1006
     * Indicates if this web page element is the main subject of the page.
1007
     *
1008
     * @param \Spatie\SchemaOrg\Contracts\WebPageElementContract|\Spatie\SchemaOrg\Contracts\WebPageElementContract[] $mainContentOfPage
1009
     *
1010
     * @return static
1011
     *
1012
     * @see http://schema.org/mainContentOfPage
1013
     */
1014
    public function mainContentOfPage($mainContentOfPage)
1015
    {
1016
        return $this->setProperty('mainContentOfPage', $mainContentOfPage);
1017
    }
1018
1019
    /**
1020
     * Indicates the primary entity described in some page or other
1021
     * CreativeWork.
1022
     *
1023
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1024
     *
1025
     * @return static
1026
     *
1027
     * @see http://schema.org/mainEntity
1028
     */
1029
    public function mainEntity($mainEntity)
1030
    {
1031
        return $this->setProperty('mainEntity', $mainEntity);
1032
    }
1033
1034
    /**
1035
     * Indicates a page (or other CreativeWork) for which this thing is the main
1036
     * entity being described. See [background
1037
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1038
     *
1039
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1040
     *
1041
     * @return static
1042
     *
1043
     * @see http://schema.org/mainEntityOfPage
1044
     */
1045
    public function mainEntityOfPage($mainEntityOfPage)
1046
    {
1047
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1048
    }
1049
1050
    /**
1051
     * A material that something is made from, e.g. leather, wool, cotton,
1052
     * paper.
1053
     *
1054
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1055
     *
1056
     * @return static
1057
     *
1058
     * @see http://schema.org/material
1059
     */
1060
    public function material($material)
1061
    {
1062
        return $this->setProperty('material', $material);
1063
    }
1064
1065
    /**
1066
     * Indicates that the CreativeWork contains a reference to, but is not
1067
     * necessarily about a concept.
1068
     *
1069
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1070
     *
1071
     * @return static
1072
     *
1073
     * @see http://schema.org/mentions
1074
     */
1075
    public function mentions($mentions)
1076
    {
1077
        return $this->setProperty('mentions', $mentions);
1078
    }
1079
1080
    /**
1081
     * The name of the item.
1082
     *
1083
     * @param string|string[] $name
1084
     *
1085
     * @return static
1086
     *
1087
     * @see http://schema.org/name
1088
     */
1089
    public function name($name)
1090
    {
1091
        return $this->setProperty('name', $name);
1092
    }
1093
1094
    /**
1095
     * An offer to provide this item&#x2014;for example, an offer to sell a
1096
     * product, rent the DVD of a movie, perform a service, or give away tickets
1097
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1098
     * offered, i.e. sell, lease, etc. This property can also be used to
1099
     * describe a [[Demand]]. While this property is listed as expected on a
1100
     * number of common types, it can be used in others. In that case, using a
1101
     * second type, such as Product or a subtype of Product, can clarify the
1102
     * nature of the offer.
1103
     *
1104
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1105
     *
1106
     * @return static
1107
     *
1108
     * @see http://schema.org/offers
1109
     */
1110
    public function offers($offers)
1111
    {
1112
        return $this->setProperty('offers', $offers);
1113
    }
1114
1115
    /**
1116
     * The position of an item in a series or sequence of items.
1117
     *
1118
     * @param int|int[]|string|string[] $position
1119
     *
1120
     * @return static
1121
     *
1122
     * @see http://schema.org/position
1123
     */
1124
    public function position($position)
1125
    {
1126
        return $this->setProperty('position', $position);
1127
    }
1128
1129
    /**
1130
     * Indicates a potential Action, which describes an idealized action in
1131
     * which this thing would play an 'object' role.
1132
     *
1133
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1134
     *
1135
     * @return static
1136
     *
1137
     * @see http://schema.org/potentialAction
1138
     */
1139
    public function potentialAction($potentialAction)
1140
    {
1141
        return $this->setProperty('potentialAction', $potentialAction);
1142
    }
1143
1144
    /**
1145
     * Indicates the main image on the page.
1146
     *
1147
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[] $primaryImageOfPage
1148
     *
1149
     * @return static
1150
     *
1151
     * @see http://schema.org/primaryImageOfPage
1152
     */
1153
    public function primaryImageOfPage($primaryImageOfPage)
1154
    {
1155
        return $this->setProperty('primaryImageOfPage', $primaryImageOfPage);
1156
    }
1157
1158
    /**
1159
     * The person or organization who produced the work (e.g. music album,
1160
     * movie, tv/radio series etc.).
1161
     *
1162
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1163
     *
1164
     * @return static
1165
     *
1166
     * @see http://schema.org/producer
1167
     */
1168
    public function producer($producer)
1169
    {
1170
        return $this->setProperty('producer', $producer);
1171
    }
1172
1173
    /**
1174
     * The service provider, service operator, or service performer; the goods
1175
     * producer. Another party (a seller) may offer those services or goods on
1176
     * behalf of the provider. A provider may also serve as the seller.
1177
     *
1178
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1179
     *
1180
     * @return static
1181
     *
1182
     * @see http://schema.org/provider
1183
     */
1184
    public function provider($provider)
1185
    {
1186
        return $this->setProperty('provider', $provider);
1187
    }
1188
1189
    /**
1190
     * A publication event associated with the item.
1191
     *
1192
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1193
     *
1194
     * @return static
1195
     *
1196
     * @see http://schema.org/publication
1197
     */
1198
    public function publication($publication)
1199
    {
1200
        return $this->setProperty('publication', $publication);
1201
    }
1202
1203
    /**
1204
     * The publisher of the creative work.
1205
     *
1206
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1207
     *
1208
     * @return static
1209
     *
1210
     * @see http://schema.org/publisher
1211
     */
1212
    public function publisher($publisher)
1213
    {
1214
        return $this->setProperty('publisher', $publisher);
1215
    }
1216
1217
    /**
1218
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1219
     * document describing the editorial principles of an [[Organization]] (or
1220
     * individual e.g. a [[Person]] writing a blog) that relate to their
1221
     * activities as a publisher, e.g. ethics or diversity policies. When
1222
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1223
     * those of the party primarily responsible for the creation of the
1224
     * [[CreativeWork]].
1225
     * 
1226
     * While such policies are most typically expressed in natural language,
1227
     * sometimes related information (e.g. indicating a [[funder]]) can be
1228
     * expressed using schema.org terminology.
1229
     *
1230
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1231
     *
1232
     * @return static
1233
     *
1234
     * @see http://schema.org/publishingPrinciples
1235
     */
1236
    public function publishingPrinciples($publishingPrinciples)
1237
    {
1238
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1239
    }
1240
1241
    /**
1242
     * The Event where the CreativeWork was recorded. The CreativeWork may
1243
     * capture all or part of the event.
1244
     *
1245
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1246
     *
1247
     * @return static
1248
     *
1249
     * @see http://schema.org/recordedAt
1250
     */
1251
    public function recordedAt($recordedAt)
1252
    {
1253
        return $this->setProperty('recordedAt', $recordedAt);
1254
    }
1255
1256
    /**
1257
     * A link related to this web page, for example to other related web pages.
1258
     *
1259
     * @param string|string[] $relatedLink
1260
     *
1261
     * @return static
1262
     *
1263
     * @see http://schema.org/relatedLink
1264
     */
1265
    public function relatedLink($relatedLink)
1266
    {
1267
        return $this->setProperty('relatedLink', $relatedLink);
1268
    }
1269
1270
    /**
1271
     * The place and time the release was issued, expressed as a
1272
     * PublicationEvent.
1273
     *
1274
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1275
     *
1276
     * @return static
1277
     *
1278
     * @see http://schema.org/releasedEvent
1279
     */
1280
    public function releasedEvent($releasedEvent)
1281
    {
1282
        return $this->setProperty('releasedEvent', $releasedEvent);
1283
    }
1284
1285
    /**
1286
     * A review of the item.
1287
     *
1288
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1289
     *
1290
     * @return static
1291
     *
1292
     * @see http://schema.org/review
1293
     */
1294
    public function review($review)
1295
    {
1296
        return $this->setProperty('review', $review);
1297
    }
1298
1299
    /**
1300
     * People or organizations that have reviewed the content on this web page
1301
     * for accuracy and/or completeness.
1302
     *
1303
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $reviewedBy
1304
     *
1305
     * @return static
1306
     *
1307
     * @see http://schema.org/reviewedBy
1308
     */
1309
    public function reviewedBy($reviewedBy)
1310
    {
1311
        return $this->setProperty('reviewedBy', $reviewedBy);
1312
    }
1313
1314
    /**
1315
     * Review of the item.
1316
     *
1317
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1318
     *
1319
     * @return static
1320
     *
1321
     * @see http://schema.org/reviews
1322
     */
1323
    public function reviews($reviews)
1324
    {
1325
        return $this->setProperty('reviews', $reviews);
1326
    }
1327
1328
    /**
1329
     * URL of a reference Web page that unambiguously indicates the item's
1330
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1331
     * official website.
1332
     *
1333
     * @param string|string[] $sameAs
1334
     *
1335
     * @return static
1336
     *
1337
     * @see http://schema.org/sameAs
1338
     */
1339
    public function sameAs($sameAs)
1340
    {
1341
        return $this->setProperty('sameAs', $sameAs);
1342
    }
1343
1344
    /**
1345
     * Indicates (by URL or string) a particular version of a schema used in
1346
     * some CreativeWork. For example, a document could declare a schemaVersion
1347
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1348
     * of schema version was required by some application.
1349
     *
1350
     * @param string|string[] $schemaVersion
1351
     *
1352
     * @return static
1353
     *
1354
     * @see http://schema.org/schemaVersion
1355
     */
1356
    public function schemaVersion($schemaVersion)
1357
    {
1358
        return $this->setProperty('schemaVersion', $schemaVersion);
1359
    }
1360
1361
    /**
1362
     * One of the more significant URLs on the page. Typically, these are the
1363
     * non-navigation links that are clicked on the most.
1364
     *
1365
     * @param string|string[] $significantLink
1366
     *
1367
     * @return static
1368
     *
1369
     * @see http://schema.org/significantLink
1370
     */
1371
    public function significantLink($significantLink)
1372
    {
1373
        return $this->setProperty('significantLink', $significantLink);
1374
    }
1375
1376
    /**
1377
     * The most significant URLs on the page. Typically, these are the
1378
     * non-navigation links that are clicked on the most.
1379
     *
1380
     * @param string|string[] $significantLinks
1381
     *
1382
     * @return static
1383
     *
1384
     * @see http://schema.org/significantLinks
1385
     */
1386
    public function significantLinks($significantLinks)
1387
    {
1388
        return $this->setProperty('significantLinks', $significantLinks);
1389
    }
1390
1391
    /**
1392
     * The Organization on whose behalf the creator was working.
1393
     *
1394
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1395
     *
1396
     * @return static
1397
     *
1398
     * @see http://schema.org/sourceOrganization
1399
     */
1400
    public function sourceOrganization($sourceOrganization)
1401
    {
1402
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1403
    }
1404
1405
    /**
1406
     * The "spatial" property can be used in cases when more specific properties
1407
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1408
     * not known to be appropriate.
1409
     *
1410
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1411
     *
1412
     * @return static
1413
     *
1414
     * @see http://schema.org/spatial
1415
     */
1416
    public function spatial($spatial)
1417
    {
1418
        return $this->setProperty('spatial', $spatial);
1419
    }
1420
1421
    /**
1422
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1423
     * the focus of the content. It is a subproperty of
1424
     *       contentLocation intended primarily for more technical and detailed
1425
     * materials. For example with a Dataset, it indicates
1426
     *       areas that the dataset describes: a dataset of New York weather
1427
     * would have spatialCoverage which was the place: the state of New York.
1428
     *
1429
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1430
     *
1431
     * @return static
1432
     *
1433
     * @see http://schema.org/spatialCoverage
1434
     */
1435
    public function spatialCoverage($spatialCoverage)
1436
    {
1437
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1438
    }
1439
1440
    /**
1441
     * Indicates sections of a Web page that are particularly 'speakable' in the
1442
     * sense of being highlighted as being especially appropriate for
1443
     * text-to-speech conversion. Other sections of a page may also be usefully
1444
     * spoken in particular circumstances; the 'speakable' property serves to
1445
     * indicate the parts most likely to be generally useful for speech.
1446
     * 
1447
     * The *speakable* property can be repeated an arbitrary number of times,
1448
     * with three kinds of possible 'content-locator' values:
1449
     * 
1450
     * 1.) *id-value* URL references - uses *id-value* of an element in the page
1451
     * being annotated. The simplest use of *speakable* has (potentially
1452
     * relative) URL values, referencing identified sections of the document
1453
     * concerned.
1454
     * 
1455
     * 2.) CSS Selectors - addresses content in the annotated page, eg. via
1456
     * class attribute. Use the [[cssSelector]] property.
1457
     * 
1458
     * 3.)  XPaths - addresses content via XPaths (assuming an XML view of the
1459
     * content). Use the [[xpath]] property.
1460
     * 
1461
     * 
1462
     * For more sophisticated markup of speakable sections beyond simple ID
1463
     * references, either CSS selectors or XPath expressions to pick out
1464
     * document section(s) as speakable. For this
1465
     * we define a supporting type, [[SpeakableSpecification]]  which is defined
1466
     * to be a possible value of the *speakable* property.
1467
     *
1468
     * @param \Spatie\SchemaOrg\Contracts\SpeakableSpecificationContract|\Spatie\SchemaOrg\Contracts\SpeakableSpecificationContract[]|string|string[] $speakable
1469
     *
1470
     * @return static
1471
     *
1472
     * @see http://schema.org/speakable
1473
     */
1474
    public function speakable($speakable)
1475
    {
1476
        return $this->setProperty('speakable', $speakable);
1477
    }
1478
1479
    /**
1480
     * One of the domain specialities to which this web page's content applies.
1481
     *
1482
     * @param \Spatie\SchemaOrg\Contracts\SpecialtyContract|\Spatie\SchemaOrg\Contracts\SpecialtyContract[] $specialty
1483
     *
1484
     * @return static
1485
     *
1486
     * @see http://schema.org/specialty
1487
     */
1488
    public function specialty($specialty)
1489
    {
1490
        return $this->setProperty('specialty', $specialty);
1491
    }
1492
1493
    /**
1494
     * A person or organization that supports a thing through a pledge, promise,
1495
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1496
     * corporate sponsor of an event.
1497
     *
1498
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1499
     *
1500
     * @return static
1501
     *
1502
     * @see http://schema.org/sponsor
1503
     */
1504
    public function sponsor($sponsor)
1505
    {
1506
        return $this->setProperty('sponsor', $sponsor);
1507
    }
1508
1509
    /**
1510
     * A CreativeWork or Event about this Thing.
1511
     *
1512
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1513
     *
1514
     * @return static
1515
     *
1516
     * @see http://schema.org/subjectOf
1517
     */
1518
    public function subjectOf($subjectOf)
1519
    {
1520
        return $this->setProperty('subjectOf', $subjectOf);
1521
    }
1522
1523
    /**
1524
     * The "temporal" property can be used in cases where more specific
1525
     * properties
1526
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1527
     * [[datePublished]]) are not known to be appropriate.
1528
     *
1529
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1530
     *
1531
     * @return static
1532
     *
1533
     * @see http://schema.org/temporal
1534
     */
1535
    public function temporal($temporal)
1536
    {
1537
        return $this->setProperty('temporal', $temporal);
1538
    }
1539
1540
    /**
1541
     * The temporalCoverage of a CreativeWork indicates the period that the
1542
     * content applies to, i.e. that it describes, either as a DateTime or as a
1543
     * textual string indicating a time period in [ISO 8601 time interval
1544
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1545
     *       the case of a Dataset it will typically indicate the relevant time
1546
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1547
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1548
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1549
     * temporalCoverage in broader terms - textually or via well-known URL.
1550
     *       Written works such as books may sometimes have precise temporal
1551
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1552
     * interval format format via "1939/1945".
1553
     * 
1554
     * Open-ended date ranges can be written with ".." in place of the end date.
1555
     * For example, "2015-11/.." indicates a range beginning in November 2015
1556
     * and with no specified final date. This is tentative and might be updated
1557
     * in future when ISO 8601 is officially updated.
1558
     *
1559
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1560
     *
1561
     * @return static
1562
     *
1563
     * @see http://schema.org/temporalCoverage
1564
     */
1565
    public function temporalCoverage($temporalCoverage)
1566
    {
1567
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1568
    }
1569
1570
    /**
1571
     * The textual content of this CreativeWork.
1572
     *
1573
     * @param string|string[] $text
1574
     *
1575
     * @return static
1576
     *
1577
     * @see http://schema.org/text
1578
     */
1579
    public function text($text)
1580
    {
1581
        return $this->setProperty('text', $text);
1582
    }
1583
1584
    /**
1585
     * A thumbnail image relevant to the Thing.
1586
     *
1587
     * @param string|string[] $thumbnailUrl
1588
     *
1589
     * @return static
1590
     *
1591
     * @see http://schema.org/thumbnailUrl
1592
     */
1593
    public function thumbnailUrl($thumbnailUrl)
1594
    {
1595
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1596
    }
1597
1598
    /**
1599
     * Approximate or typical time it takes to work with or through this
1600
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1601
     * 'PT1H25M'.
1602
     *
1603
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1604
     *
1605
     * @return static
1606
     *
1607
     * @see http://schema.org/timeRequired
1608
     */
1609
    public function timeRequired($timeRequired)
1610
    {
1611
        return $this->setProperty('timeRequired', $timeRequired);
1612
    }
1613
1614
    /**
1615
     * Organization or person who adapts a creative work to different languages,
1616
     * regional differences and technical requirements of a target market, or
1617
     * that translates during some event.
1618
     *
1619
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1620
     *
1621
     * @return static
1622
     *
1623
     * @see http://schema.org/translator
1624
     */
1625
    public function translator($translator)
1626
    {
1627
        return $this->setProperty('translator', $translator);
1628
    }
1629
1630
    /**
1631
     * The typical expected age range, e.g. '7-9', '11-'.
1632
     *
1633
     * @param string|string[] $typicalAgeRange
1634
     *
1635
     * @return static
1636
     *
1637
     * @see http://schema.org/typicalAgeRange
1638
     */
1639
    public function typicalAgeRange($typicalAgeRange)
1640
    {
1641
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1642
    }
1643
1644
    /**
1645
     * URL of the item.
1646
     *
1647
     * @param string|string[] $url
1648
     *
1649
     * @return static
1650
     *
1651
     * @see http://schema.org/url
1652
     */
1653
    public function url($url)
1654
    {
1655
        return $this->setProperty('url', $url);
1656
    }
1657
1658
    /**
1659
     * The version of the CreativeWork embodied by a specified resource.
1660
     *
1661
     * @param float|float[]|int|int[]|string|string[] $version
1662
     *
1663
     * @return static
1664
     *
1665
     * @see http://schema.org/version
1666
     */
1667
    public function version($version)
1668
    {
1669
        return $this->setProperty('version', $version);
1670
    }
1671
1672
    /**
1673
     * An embedded video object.
1674
     *
1675
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1676
     *
1677
     * @return static
1678
     *
1679
     * @see http://schema.org/video
1680
     */
1681
    public function video($video)
1682
    {
1683
        return $this->setProperty('video', $video);
1684
    }
1685
1686
    /**
1687
     * Example/instance/realization/derivation of the concept of this creative
1688
     * work. eg. The paperback edition, first edition, or eBook.
1689
     *
1690
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1691
     *
1692
     * @return static
1693
     *
1694
     * @see http://schema.org/workExample
1695
     */
1696
    public function workExample($workExample)
1697
    {
1698
        return $this->setProperty('workExample', $workExample);
1699
    }
1700
1701
}
1702