Issues (439)

Security Analysis    no request data  

This project does not seem to handle request data directly as such no vulnerable execution paths were found.

  Cross-Site Scripting
Cross-Site Scripting enables an attacker to inject code into the response of a web-request that is viewed by other users. It can for example be used to bypass access controls, or even to take over other users' accounts.
  File Exposure
File Exposure allows an attacker to gain access to local files that he should not be able to access. These files can for example include database credentials, or other configuration files.
  File Manipulation
File Manipulation enables an attacker to write custom data to files. This potentially leads to injection of arbitrary code on the server.
  Object Injection
Object Injection enables an attacker to inject an object into PHP code, and can lead to arbitrary code execution, file exposure, or file manipulation attacks.
  Code Injection
Code Injection enables an attacker to execute arbitrary code on the server.
  Response Splitting
Response Splitting can be used to send arbitrary responses.
  File Inclusion
File Inclusion enables an attacker to inject custom files into PHP's file loading mechanism, either explicitly passed to include, or for example via PHP's auto-loading mechanism.
  Command Injection
Command Injection enables an attacker to inject a shell command that is execute with the privileges of the web-server. This can be used to expose sensitive data, or gain access of your server.
  SQL Injection
SQL Injection enables an attacker to execute arbitrary SQL code on your database server gaining access to user data, or manipulating user data.
  XPath Injection
XPath Injection enables an attacker to modify the parts of XML document that are read. If that XML document is for example used for authentication, this can lead to further vulnerabilities similar to SQL Injection.
  LDAP Injection
LDAP Injection enables an attacker to inject LDAP statements potentially granting permission to run unauthorized queries, or modify content inside the LDAP tree.
  Header Injection
  Other Vulnerability
This category comprises other attack vectors such as manipulating the PHP runtime, loading custom extensions, freezing the runtime, or similar.
  Regex Injection
Regex Injection enables an attacker to execute arbitrary code in your PHP process.
  XML Injection
XML Injection enables an attacker to read files on your local filesystem including configuration files, or can be abused to freeze your web-server process.
  Variable Injection
Variable Injection enables an attacker to overwrite program variables with custom data, and can lead to further vulnerabilities.
Unfortunately, the security analysis is currently not available for your project. If you are a non-commercial open-source project, please contact support to gain access.

src/ScholarlyArticle.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
use \Spatie\SchemaOrg\Contracts\ScholarlyArticleContract;
6
use \Spatie\SchemaOrg\Contracts\ArticleContract;
7
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
8
use \Spatie\SchemaOrg\Contracts\ThingContract;
9
10
/**
11
 * A scholarly article.
12
 *
13
 * @see http://schema.org/ScholarlyArticle
14
 *
15
 */
16 View Code Duplication
class ScholarlyArticle extends BaseType implements ScholarlyArticleContract, ArticleContract, CreativeWorkContract, ThingContract
0 ignored issues
show
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

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