@@ -23,152 +23,152 @@ |
||
23 | 23 | */ |
24 | 24 | class WearAction extends MetaJsonLd implements WearActionInterface, UseActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface |
25 | 25 | { |
26 | - use WearActionTrait; |
|
27 | - use UseActionTrait; |
|
28 | - use ConsumeActionTrait; |
|
29 | - use ActionTrait; |
|
30 | - use ThingTrait; |
|
31 | - |
|
32 | - /** |
|
33 | - * The Schema.org Type Name |
|
34 | - * |
|
35 | - * @var string |
|
36 | - */ |
|
37 | - public static $schemaTypeName = 'WearAction'; |
|
38 | - |
|
39 | - /** |
|
40 | - * The Schema.org Type Scope |
|
41 | - * |
|
42 | - * @var string |
|
43 | - */ |
|
44 | - public static $schemaTypeScope = 'https://schema.org/WearAction'; |
|
45 | - |
|
46 | - /** |
|
47 | - * The Schema.org Type Extends |
|
48 | - * |
|
49 | - * @var string |
|
50 | - */ |
|
51 | - public static $schemaTypeExtends = 'UseAction'; |
|
52 | - |
|
53 | - /** |
|
54 | - * The Schema.org Type Description |
|
55 | - * |
|
56 | - * @var string |
|
57 | - */ |
|
58 | - public static $schemaTypeDescription = 'The act of dressing oneself in clothing.'; |
|
59 | - |
|
60 | - |
|
61 | - /** |
|
62 | - * @inheritdoc |
|
63 | - */ |
|
64 | - public function getSchemaPropertyNames(): array |
|
65 | - { |
|
66 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
67 | - } |
|
68 | - |
|
69 | - |
|
70 | - /** |
|
71 | - * @inheritdoc |
|
72 | - */ |
|
73 | - public function getSchemaPropertyExpectedTypes(): array |
|
74 | - { |
|
75 | - return [ |
|
76 | - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], |
|
77 | - 'actionStatus' => ['ActionStatusType'], |
|
78 | - 'additionalType' => ['URL'], |
|
79 | - 'agent' => ['Organization', 'Person'], |
|
80 | - 'alternateName' => ['Text'], |
|
81 | - 'description' => ['Text'], |
|
82 | - 'disambiguatingDescription' => ['Text'], |
|
83 | - 'endTime' => ['DateTime', 'Time'], |
|
84 | - 'error' => ['Thing'], |
|
85 | - 'expectsAcceptanceOf' => ['Offer'], |
|
86 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
87 | - 'image' => ['URL', 'ImageObject'], |
|
88 | - 'instrument' => ['Thing'], |
|
89 | - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
90 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
91 | - 'name' => ['Text'], |
|
92 | - 'object' => ['Thing'], |
|
93 | - 'participant' => ['Organization', 'Person'], |
|
94 | - 'potentialAction' => ['Action'], |
|
95 | - 'provider' => ['Organization', 'Person'], |
|
96 | - 'result' => ['Thing'], |
|
97 | - 'sameAs' => ['URL'], |
|
98 | - 'startTime' => ['Time', 'DateTime'], |
|
99 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
100 | - 'target' => ['URL', 'EntryPoint'], |
|
101 | - 'url' => ['URL'] |
|
102 | - ]; |
|
103 | - } |
|
104 | - |
|
105 | - |
|
106 | - /** |
|
107 | - * @inheritdoc |
|
108 | - */ |
|
109 | - public function getSchemaPropertyDescriptions(): array |
|
110 | - { |
|
111 | - return [ |
|
112 | - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', |
|
113 | - 'actionStatus' => 'Indicates the current disposition of the Action.', |
|
114 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
115 | - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', |
|
116 | - 'alternateName' => 'An alias for the item.', |
|
117 | - 'description' => 'A description of the item.', |
|
118 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
119 | - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
120 | - 'error' => 'For failed actions, more information on the cause of the failure.', |
|
121 | - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', |
|
122 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
123 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
124 | - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', |
|
125 | - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
126 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
127 | - 'name' => 'The name of the item.', |
|
128 | - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', |
|
129 | - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', |
|
130 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
131 | - 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
132 | - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', |
|
133 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
134 | - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
135 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
136 | - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', |
|
137 | - 'url' => 'URL of the item.' |
|
138 | - ]; |
|
139 | - } |
|
140 | - |
|
141 | - |
|
142 | - /** |
|
143 | - * @inheritdoc |
|
144 | - */ |
|
145 | - public function getGoogleRequiredSchema(): array |
|
146 | - { |
|
147 | - return ['description', 'name']; |
|
148 | - } |
|
149 | - |
|
150 | - |
|
151 | - /** |
|
152 | - * @inheritdoc |
|
153 | - */ |
|
154 | - public function getGoogleRecommendedSchema(): array |
|
155 | - { |
|
156 | - return ['image', 'url']; |
|
157 | - } |
|
158 | - |
|
159 | - |
|
160 | - /** |
|
161 | - * @inheritdoc |
|
162 | - */ |
|
163 | - public function defineRules(): array |
|
164 | - { |
|
165 | - $rules = parent::defineRules(); |
|
166 | - $rules = array_merge($rules, [ |
|
167 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
168 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
169 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
170 | - ]); |
|
171 | - |
|
172 | - return $rules; |
|
173 | - } |
|
26 | + use WearActionTrait; |
|
27 | + use UseActionTrait; |
|
28 | + use ConsumeActionTrait; |
|
29 | + use ActionTrait; |
|
30 | + use ThingTrait; |
|
31 | + |
|
32 | + /** |
|
33 | + * The Schema.org Type Name |
|
34 | + * |
|
35 | + * @var string |
|
36 | + */ |
|
37 | + public static $schemaTypeName = 'WearAction'; |
|
38 | + |
|
39 | + /** |
|
40 | + * The Schema.org Type Scope |
|
41 | + * |
|
42 | + * @var string |
|
43 | + */ |
|
44 | + public static $schemaTypeScope = 'https://schema.org/WearAction'; |
|
45 | + |
|
46 | + /** |
|
47 | + * The Schema.org Type Extends |
|
48 | + * |
|
49 | + * @var string |
|
50 | + */ |
|
51 | + public static $schemaTypeExtends = 'UseAction'; |
|
52 | + |
|
53 | + /** |
|
54 | + * The Schema.org Type Description |
|
55 | + * |
|
56 | + * @var string |
|
57 | + */ |
|
58 | + public static $schemaTypeDescription = 'The act of dressing oneself in clothing.'; |
|
59 | + |
|
60 | + |
|
61 | + /** |
|
62 | + * @inheritdoc |
|
63 | + */ |
|
64 | + public function getSchemaPropertyNames(): array |
|
65 | + { |
|
66 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
67 | + } |
|
68 | + |
|
69 | + |
|
70 | + /** |
|
71 | + * @inheritdoc |
|
72 | + */ |
|
73 | + public function getSchemaPropertyExpectedTypes(): array |
|
74 | + { |
|
75 | + return [ |
|
76 | + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], |
|
77 | + 'actionStatus' => ['ActionStatusType'], |
|
78 | + 'additionalType' => ['URL'], |
|
79 | + 'agent' => ['Organization', 'Person'], |
|
80 | + 'alternateName' => ['Text'], |
|
81 | + 'description' => ['Text'], |
|
82 | + 'disambiguatingDescription' => ['Text'], |
|
83 | + 'endTime' => ['DateTime', 'Time'], |
|
84 | + 'error' => ['Thing'], |
|
85 | + 'expectsAcceptanceOf' => ['Offer'], |
|
86 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
87 | + 'image' => ['URL', 'ImageObject'], |
|
88 | + 'instrument' => ['Thing'], |
|
89 | + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
90 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
91 | + 'name' => ['Text'], |
|
92 | + 'object' => ['Thing'], |
|
93 | + 'participant' => ['Organization', 'Person'], |
|
94 | + 'potentialAction' => ['Action'], |
|
95 | + 'provider' => ['Organization', 'Person'], |
|
96 | + 'result' => ['Thing'], |
|
97 | + 'sameAs' => ['URL'], |
|
98 | + 'startTime' => ['Time', 'DateTime'], |
|
99 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
100 | + 'target' => ['URL', 'EntryPoint'], |
|
101 | + 'url' => ['URL'] |
|
102 | + ]; |
|
103 | + } |
|
104 | + |
|
105 | + |
|
106 | + /** |
|
107 | + * @inheritdoc |
|
108 | + */ |
|
109 | + public function getSchemaPropertyDescriptions(): array |
|
110 | + { |
|
111 | + return [ |
|
112 | + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', |
|
113 | + 'actionStatus' => 'Indicates the current disposition of the Action.', |
|
114 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
115 | + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', |
|
116 | + 'alternateName' => 'An alias for the item.', |
|
117 | + 'description' => 'A description of the item.', |
|
118 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
119 | + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
120 | + 'error' => 'For failed actions, more information on the cause of the failure.', |
|
121 | + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', |
|
122 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
123 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
124 | + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', |
|
125 | + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
126 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
127 | + 'name' => 'The name of the item.', |
|
128 | + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', |
|
129 | + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', |
|
130 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
131 | + 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
132 | + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', |
|
133 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
134 | + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
135 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
136 | + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', |
|
137 | + 'url' => 'URL of the item.' |
|
138 | + ]; |
|
139 | + } |
|
140 | + |
|
141 | + |
|
142 | + /** |
|
143 | + * @inheritdoc |
|
144 | + */ |
|
145 | + public function getGoogleRequiredSchema(): array |
|
146 | + { |
|
147 | + return ['description', 'name']; |
|
148 | + } |
|
149 | + |
|
150 | + |
|
151 | + /** |
|
152 | + * @inheritdoc |
|
153 | + */ |
|
154 | + public function getGoogleRecommendedSchema(): array |
|
155 | + { |
|
156 | + return ['image', 'url']; |
|
157 | + } |
|
158 | + |
|
159 | + |
|
160 | + /** |
|
161 | + * @inheritdoc |
|
162 | + */ |
|
163 | + public function defineRules(): array |
|
164 | + { |
|
165 | + $rules = parent::defineRules(); |
|
166 | + $rules = array_merge($rules, [ |
|
167 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
168 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
169 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
170 | + ]); |
|
171 | + |
|
172 | + return $rules; |
|
173 | + } |
|
174 | 174 | } |
@@ -27,154 +27,154 @@ |
||
27 | 27 | */ |
28 | 28 | class SizeSpecification extends MetaJsonLd implements SizeSpecificationInterface, QualitativeValueInterface, EnumerationInterface, IntangibleInterface, ThingInterface |
29 | 29 | { |
30 | - use SizeSpecificationTrait; |
|
31 | - use QualitativeValueTrait; |
|
32 | - use EnumerationTrait; |
|
33 | - use IntangibleTrait; |
|
34 | - use ThingTrait; |
|
35 | - |
|
36 | - /** |
|
37 | - * The Schema.org Type Name |
|
38 | - * |
|
39 | - * @var string |
|
40 | - */ |
|
41 | - public static $schemaTypeName = 'SizeSpecification'; |
|
42 | - |
|
43 | - /** |
|
44 | - * The Schema.org Type Scope |
|
45 | - * |
|
46 | - * @var string |
|
47 | - */ |
|
48 | - public static $schemaTypeScope = 'https://schema.org/SizeSpecification'; |
|
49 | - |
|
50 | - /** |
|
51 | - * The Schema.org Type Extends |
|
52 | - * |
|
53 | - * @var string |
|
54 | - */ |
|
55 | - public static $schemaTypeExtends = 'QualitativeValue'; |
|
56 | - |
|
57 | - /** |
|
58 | - * The Schema.org Type Description |
|
59 | - * |
|
60 | - * @var string |
|
61 | - */ |
|
62 | - public static $schemaTypeDescription = 'Size related properties of a product, typically a size code ([[name]]) and optionally a [[sizeSystem]], [[sizeGroup]], and product measurements ([[hasMeasurement]]). In addition, the intended audience can be defined through [[suggestedAge]], [[suggestedGender]], and suggested body measurements ([[suggestedMeasurement]]).'; |
|
63 | - |
|
64 | - |
|
65 | - /** |
|
66 | - * @inheritdoc |
|
67 | - */ |
|
68 | - public function getSchemaPropertyNames(): array |
|
69 | - { |
|
70 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
71 | - } |
|
72 | - |
|
73 | - |
|
74 | - /** |
|
75 | - * @inheritdoc |
|
76 | - */ |
|
77 | - public function getSchemaPropertyExpectedTypes(): array |
|
78 | - { |
|
79 | - return [ |
|
80 | - 'additionalProperty' => ['PropertyValue'], |
|
81 | - 'additionalType' => ['URL'], |
|
82 | - 'alternateName' => ['Text'], |
|
83 | - 'description' => ['Text'], |
|
84 | - 'disambiguatingDescription' => ['Text'], |
|
85 | - 'equal' => ['QualitativeValue'], |
|
86 | - 'greater' => ['QualitativeValue'], |
|
87 | - 'greaterOrEqual' => ['QualitativeValue'], |
|
88 | - 'hasMeasurement' => ['QuantitativeValue'], |
|
89 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
90 | - 'image' => ['URL', 'ImageObject'], |
|
91 | - 'lesser' => ['QualitativeValue'], |
|
92 | - 'lesserOrEqual' => ['QualitativeValue'], |
|
93 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
94 | - 'name' => ['Text'], |
|
95 | - 'nonEqual' => ['QualitativeValue'], |
|
96 | - 'potentialAction' => ['Action'], |
|
97 | - 'sameAs' => ['URL'], |
|
98 | - 'sizeGroup' => ['SizeGroupEnumeration', 'Text'], |
|
99 | - 'sizeSystem' => ['Text', 'SizeSystemEnumeration'], |
|
100 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
101 | - 'suggestedAge' => ['QuantitativeValue'], |
|
102 | - 'suggestedGender' => ['GenderType', 'Text'], |
|
103 | - 'suggestedMeasurement' => ['QuantitativeValue'], |
|
104 | - 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
105 | - 'url' => ['URL'], |
|
106 | - 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] |
|
107 | - ]; |
|
108 | - } |
|
109 | - |
|
110 | - |
|
111 | - /** |
|
112 | - * @inheritdoc |
|
113 | - */ |
|
114 | - public function getSchemaPropertyDescriptions(): array |
|
115 | - { |
|
116 | - return [ |
|
117 | - 'additionalProperty' => 'A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org. Note: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism. ', |
|
118 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
119 | - 'alternateName' => 'An alias for the item.', |
|
120 | - 'description' => 'A description of the item.', |
|
121 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
122 | - 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', |
|
123 | - 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', |
|
124 | - 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', |
|
125 | - 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', |
|
126 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
127 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
128 | - 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', |
|
129 | - 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', |
|
130 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
131 | - 'name' => 'The name of the item.', |
|
132 | - 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', |
|
133 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
134 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
135 | - 'sizeGroup' => 'The size group (also known as "size type") for a product\'s size. Size groups are common in the fashion industry to define size segments and suggested audiences for wearable products. Multiple values can be combined, for example "men\'s big and tall", "petite maternity" or "regular"', |
|
136 | - 'sizeSystem' => 'The size system used to identify a product\'s size. Typically either a standard (for example, "GS1" or "ISO-EN13402"), country code (for example "US" or "JP"), or a measuring system (for example "Metric" or "Imperial").', |
|
137 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
138 | - 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', |
|
139 | - 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', |
|
140 | - 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', |
|
141 | - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
142 | - 'url' => 'URL of the item.', |
|
143 | - 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' |
|
144 | - ]; |
|
145 | - } |
|
146 | - |
|
147 | - |
|
148 | - /** |
|
149 | - * @inheritdoc |
|
150 | - */ |
|
151 | - public function getGoogleRequiredSchema(): array |
|
152 | - { |
|
153 | - return ['description', 'name']; |
|
154 | - } |
|
155 | - |
|
156 | - |
|
157 | - /** |
|
158 | - * @inheritdoc |
|
159 | - */ |
|
160 | - public function getGoogleRecommendedSchema(): array |
|
161 | - { |
|
162 | - return ['image', 'url']; |
|
163 | - } |
|
164 | - |
|
165 | - |
|
166 | - /** |
|
167 | - * @inheritdoc |
|
168 | - */ |
|
169 | - public function defineRules(): array |
|
170 | - { |
|
171 | - $rules = parent::defineRules(); |
|
172 | - $rules = array_merge($rules, [ |
|
173 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
174 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
175 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
176 | - ]); |
|
177 | - |
|
178 | - return $rules; |
|
179 | - } |
|
30 | + use SizeSpecificationTrait; |
|
31 | + use QualitativeValueTrait; |
|
32 | + use EnumerationTrait; |
|
33 | + use IntangibleTrait; |
|
34 | + use ThingTrait; |
|
35 | + |
|
36 | + /** |
|
37 | + * The Schema.org Type Name |
|
38 | + * |
|
39 | + * @var string |
|
40 | + */ |
|
41 | + public static $schemaTypeName = 'SizeSpecification'; |
|
42 | + |
|
43 | + /** |
|
44 | + * The Schema.org Type Scope |
|
45 | + * |
|
46 | + * @var string |
|
47 | + */ |
|
48 | + public static $schemaTypeScope = 'https://schema.org/SizeSpecification'; |
|
49 | + |
|
50 | + /** |
|
51 | + * The Schema.org Type Extends |
|
52 | + * |
|
53 | + * @var string |
|
54 | + */ |
|
55 | + public static $schemaTypeExtends = 'QualitativeValue'; |
|
56 | + |
|
57 | + /** |
|
58 | + * The Schema.org Type Description |
|
59 | + * |
|
60 | + * @var string |
|
61 | + */ |
|
62 | + public static $schemaTypeDescription = 'Size related properties of a product, typically a size code ([[name]]) and optionally a [[sizeSystem]], [[sizeGroup]], and product measurements ([[hasMeasurement]]). In addition, the intended audience can be defined through [[suggestedAge]], [[suggestedGender]], and suggested body measurements ([[suggestedMeasurement]]).'; |
|
63 | + |
|
64 | + |
|
65 | + /** |
|
66 | + * @inheritdoc |
|
67 | + */ |
|
68 | + public function getSchemaPropertyNames(): array |
|
69 | + { |
|
70 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
71 | + } |
|
72 | + |
|
73 | + |
|
74 | + /** |
|
75 | + * @inheritdoc |
|
76 | + */ |
|
77 | + public function getSchemaPropertyExpectedTypes(): array |
|
78 | + { |
|
79 | + return [ |
|
80 | + 'additionalProperty' => ['PropertyValue'], |
|
81 | + 'additionalType' => ['URL'], |
|
82 | + 'alternateName' => ['Text'], |
|
83 | + 'description' => ['Text'], |
|
84 | + 'disambiguatingDescription' => ['Text'], |
|
85 | + 'equal' => ['QualitativeValue'], |
|
86 | + 'greater' => ['QualitativeValue'], |
|
87 | + 'greaterOrEqual' => ['QualitativeValue'], |
|
88 | + 'hasMeasurement' => ['QuantitativeValue'], |
|
89 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
90 | + 'image' => ['URL', 'ImageObject'], |
|
91 | + 'lesser' => ['QualitativeValue'], |
|
92 | + 'lesserOrEqual' => ['QualitativeValue'], |
|
93 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
94 | + 'name' => ['Text'], |
|
95 | + 'nonEqual' => ['QualitativeValue'], |
|
96 | + 'potentialAction' => ['Action'], |
|
97 | + 'sameAs' => ['URL'], |
|
98 | + 'sizeGroup' => ['SizeGroupEnumeration', 'Text'], |
|
99 | + 'sizeSystem' => ['Text', 'SizeSystemEnumeration'], |
|
100 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
101 | + 'suggestedAge' => ['QuantitativeValue'], |
|
102 | + 'suggestedGender' => ['GenderType', 'Text'], |
|
103 | + 'suggestedMeasurement' => ['QuantitativeValue'], |
|
104 | + 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
105 | + 'url' => ['URL'], |
|
106 | + 'valueReference' => ['Enumeration', 'QualitativeValue', 'DefinedTerm', 'StructuredValue', 'PropertyValue', 'Text', 'MeasurementTypeEnumeration', 'QuantitativeValue'] |
|
107 | + ]; |
|
108 | + } |
|
109 | + |
|
110 | + |
|
111 | + /** |
|
112 | + * @inheritdoc |
|
113 | + */ |
|
114 | + public function getSchemaPropertyDescriptions(): array |
|
115 | + { |
|
116 | + return [ |
|
117 | + 'additionalProperty' => 'A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org. Note: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism. ', |
|
118 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
119 | + 'alternateName' => 'An alias for the item.', |
|
120 | + 'description' => 'A description of the item.', |
|
121 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
122 | + 'equal' => 'This ordering relation for qualitative values indicates that the subject is equal to the object.', |
|
123 | + 'greater' => 'This ordering relation for qualitative values indicates that the subject is greater than the object.', |
|
124 | + 'greaterOrEqual' => 'This ordering relation for qualitative values indicates that the subject is greater than or equal to the object.', |
|
125 | + 'hasMeasurement' => 'A product measurement, for example the inseam of pants, the wheel size of a bicycle, or the gauge of a screw. Usually an exact measurement, but can also be a range of measurements for adjustable products, for example belts and ski bindings.', |
|
126 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
127 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
128 | + 'lesser' => 'This ordering relation for qualitative values indicates that the subject is lesser than the object.', |
|
129 | + 'lesserOrEqual' => 'This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object.', |
|
130 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
131 | + 'name' => 'The name of the item.', |
|
132 | + 'nonEqual' => 'This ordering relation for qualitative values indicates that the subject is not equal to the object.', |
|
133 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
134 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
135 | + 'sizeGroup' => 'The size group (also known as "size type") for a product\'s size. Size groups are common in the fashion industry to define size segments and suggested audiences for wearable products. Multiple values can be combined, for example "men\'s big and tall", "petite maternity" or "regular"', |
|
136 | + 'sizeSystem' => 'The size system used to identify a product\'s size. Typically either a standard (for example, "GS1" or "ISO-EN13402"), country code (for example "US" or "JP"), or a measuring system (for example "Metric" or "Imperial").', |
|
137 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
138 | + 'suggestedAge' => 'The age or age range for the intended audience or person, for example 3-12 months for infants, 1-5 years for toddlers.', |
|
139 | + 'suggestedGender' => 'The suggested gender of the intended person or audience, for example "male", "female", or "unisex".', |
|
140 | + 'suggestedMeasurement' => 'A suggested range of body measurements for the intended audience or person, for example inseam between 32 and 34 inches or height between 170 and 190 cm. Typically found on a size chart for wearable products.', |
|
141 | + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
142 | + 'url' => 'URL of the item.', |
|
143 | + 'valueReference' => 'A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.' |
|
144 | + ]; |
|
145 | + } |
|
146 | + |
|
147 | + |
|
148 | + /** |
|
149 | + * @inheritdoc |
|
150 | + */ |
|
151 | + public function getGoogleRequiredSchema(): array |
|
152 | + { |
|
153 | + return ['description', 'name']; |
|
154 | + } |
|
155 | + |
|
156 | + |
|
157 | + /** |
|
158 | + * @inheritdoc |
|
159 | + */ |
|
160 | + public function getGoogleRecommendedSchema(): array |
|
161 | + { |
|
162 | + return ['image', 'url']; |
|
163 | + } |
|
164 | + |
|
165 | + |
|
166 | + /** |
|
167 | + * @inheritdoc |
|
168 | + */ |
|
169 | + public function defineRules(): array |
|
170 | + { |
|
171 | + $rules = parent::defineRules(); |
|
172 | + $rules = array_merge($rules, [ |
|
173 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
174 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
175 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
176 | + ]); |
|
177 | + |
|
178 | + return $rules; |
|
179 | + } |
|
180 | 180 | } |
@@ -23,127 +23,127 @@ |
||
23 | 23 | */ |
24 | 24 | class NotInForce extends MetaJsonLd implements NotInForceInterface, LegalForceStatusInterface, StatusEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface |
25 | 25 | { |
26 | - use NotInForceTrait; |
|
27 | - use LegalForceStatusTrait; |
|
28 | - use StatusEnumerationTrait; |
|
29 | - use EnumerationTrait; |
|
30 | - use IntangibleTrait; |
|
31 | - use ThingTrait; |
|
32 | - |
|
33 | - /** |
|
34 | - * The Schema.org Type Name |
|
35 | - * |
|
36 | - * @var string |
|
37 | - */ |
|
38 | - public static $schemaTypeName = 'NotInForce'; |
|
39 | - |
|
40 | - /** |
|
41 | - * The Schema.org Type Scope |
|
42 | - * |
|
43 | - * @var string |
|
44 | - */ |
|
45 | - public static $schemaTypeScope = 'https://schema.org/NotInForce'; |
|
46 | - |
|
47 | - /** |
|
48 | - * The Schema.org Type Extends |
|
49 | - * |
|
50 | - * @var string |
|
51 | - */ |
|
52 | - public static $schemaTypeExtends = 'LegalForceStatus'; |
|
53 | - |
|
54 | - /** |
|
55 | - * The Schema.org Type Description |
|
56 | - * |
|
57 | - * @var string |
|
58 | - */ |
|
59 | - public static $schemaTypeDescription = 'Indicates that a legislation is currently not in force.'; |
|
60 | - |
|
61 | - |
|
62 | - /** |
|
63 | - * @inheritdoc |
|
64 | - */ |
|
65 | - public function getSchemaPropertyNames(): array |
|
66 | - { |
|
67 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | - } |
|
69 | - |
|
70 | - |
|
71 | - /** |
|
72 | - * @inheritdoc |
|
73 | - */ |
|
74 | - public function getSchemaPropertyExpectedTypes(): array |
|
75 | - { |
|
76 | - return [ |
|
77 | - 'additionalType' => ['URL'], |
|
78 | - 'alternateName' => ['Text'], |
|
79 | - 'description' => ['Text'], |
|
80 | - 'disambiguatingDescription' => ['Text'], |
|
81 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
82 | - 'image' => ['URL', 'ImageObject'], |
|
83 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
84 | - 'name' => ['Text'], |
|
85 | - 'potentialAction' => ['Action'], |
|
86 | - 'sameAs' => ['URL'], |
|
87 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | - 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
89 | - 'url' => ['URL'] |
|
90 | - ]; |
|
91 | - } |
|
92 | - |
|
93 | - |
|
94 | - /** |
|
95 | - * @inheritdoc |
|
96 | - */ |
|
97 | - public function getSchemaPropertyDescriptions(): array |
|
98 | - { |
|
99 | - return [ |
|
100 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
101 | - 'alternateName' => 'An alias for the item.', |
|
102 | - 'description' => 'A description of the item.', |
|
103 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
104 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
105 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
106 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
107 | - 'name' => 'The name of the item.', |
|
108 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
109 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
110 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
111 | - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
112 | - 'url' => 'URL of the item.' |
|
113 | - ]; |
|
114 | - } |
|
115 | - |
|
116 | - |
|
117 | - /** |
|
118 | - * @inheritdoc |
|
119 | - */ |
|
120 | - public function getGoogleRequiredSchema(): array |
|
121 | - { |
|
122 | - return ['description', 'name']; |
|
123 | - } |
|
124 | - |
|
125 | - |
|
126 | - /** |
|
127 | - * @inheritdoc |
|
128 | - */ |
|
129 | - public function getGoogleRecommendedSchema(): array |
|
130 | - { |
|
131 | - return ['image', 'url']; |
|
132 | - } |
|
133 | - |
|
134 | - |
|
135 | - /** |
|
136 | - * @inheritdoc |
|
137 | - */ |
|
138 | - public function defineRules(): array |
|
139 | - { |
|
140 | - $rules = parent::defineRules(); |
|
141 | - $rules = array_merge($rules, [ |
|
142 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
143 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
144 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
145 | - ]); |
|
146 | - |
|
147 | - return $rules; |
|
148 | - } |
|
26 | + use NotInForceTrait; |
|
27 | + use LegalForceStatusTrait; |
|
28 | + use StatusEnumerationTrait; |
|
29 | + use EnumerationTrait; |
|
30 | + use IntangibleTrait; |
|
31 | + use ThingTrait; |
|
32 | + |
|
33 | + /** |
|
34 | + * The Schema.org Type Name |
|
35 | + * |
|
36 | + * @var string |
|
37 | + */ |
|
38 | + public static $schemaTypeName = 'NotInForce'; |
|
39 | + |
|
40 | + /** |
|
41 | + * The Schema.org Type Scope |
|
42 | + * |
|
43 | + * @var string |
|
44 | + */ |
|
45 | + public static $schemaTypeScope = 'https://schema.org/NotInForce'; |
|
46 | + |
|
47 | + /** |
|
48 | + * The Schema.org Type Extends |
|
49 | + * |
|
50 | + * @var string |
|
51 | + */ |
|
52 | + public static $schemaTypeExtends = 'LegalForceStatus'; |
|
53 | + |
|
54 | + /** |
|
55 | + * The Schema.org Type Description |
|
56 | + * |
|
57 | + * @var string |
|
58 | + */ |
|
59 | + public static $schemaTypeDescription = 'Indicates that a legislation is currently not in force.'; |
|
60 | + |
|
61 | + |
|
62 | + /** |
|
63 | + * @inheritdoc |
|
64 | + */ |
|
65 | + public function getSchemaPropertyNames(): array |
|
66 | + { |
|
67 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | + } |
|
69 | + |
|
70 | + |
|
71 | + /** |
|
72 | + * @inheritdoc |
|
73 | + */ |
|
74 | + public function getSchemaPropertyExpectedTypes(): array |
|
75 | + { |
|
76 | + return [ |
|
77 | + 'additionalType' => ['URL'], |
|
78 | + 'alternateName' => ['Text'], |
|
79 | + 'description' => ['Text'], |
|
80 | + 'disambiguatingDescription' => ['Text'], |
|
81 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
82 | + 'image' => ['URL', 'ImageObject'], |
|
83 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
84 | + 'name' => ['Text'], |
|
85 | + 'potentialAction' => ['Action'], |
|
86 | + 'sameAs' => ['URL'], |
|
87 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | + 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
89 | + 'url' => ['URL'] |
|
90 | + ]; |
|
91 | + } |
|
92 | + |
|
93 | + |
|
94 | + /** |
|
95 | + * @inheritdoc |
|
96 | + */ |
|
97 | + public function getSchemaPropertyDescriptions(): array |
|
98 | + { |
|
99 | + return [ |
|
100 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
101 | + 'alternateName' => 'An alias for the item.', |
|
102 | + 'description' => 'A description of the item.', |
|
103 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
104 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
105 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
106 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
107 | + 'name' => 'The name of the item.', |
|
108 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
109 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
110 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
111 | + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
112 | + 'url' => 'URL of the item.' |
|
113 | + ]; |
|
114 | + } |
|
115 | + |
|
116 | + |
|
117 | + /** |
|
118 | + * @inheritdoc |
|
119 | + */ |
|
120 | + public function getGoogleRequiredSchema(): array |
|
121 | + { |
|
122 | + return ['description', 'name']; |
|
123 | + } |
|
124 | + |
|
125 | + |
|
126 | + /** |
|
127 | + * @inheritdoc |
|
128 | + */ |
|
129 | + public function getGoogleRecommendedSchema(): array |
|
130 | + { |
|
131 | + return ['image', 'url']; |
|
132 | + } |
|
133 | + |
|
134 | + |
|
135 | + /** |
|
136 | + * @inheritdoc |
|
137 | + */ |
|
138 | + public function defineRules(): array |
|
139 | + { |
|
140 | + $rules = parent::defineRules(); |
|
141 | + $rules = array_merge($rules, [ |
|
142 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
143 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
144 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
145 | + ]); |
|
146 | + |
|
147 | + return $rules; |
|
148 | + } |
|
149 | 149 | } |
@@ -25,148 +25,148 @@ |
||
25 | 25 | */ |
26 | 26 | class AgreeAction extends MetaJsonLd implements AgreeActionInterface, ReactActionInterface, AssessActionInterface, ActionInterface, ThingInterface |
27 | 27 | { |
28 | - use AgreeActionTrait; |
|
29 | - use ReactActionTrait; |
|
30 | - use AssessActionTrait; |
|
31 | - use ActionTrait; |
|
32 | - use ThingTrait; |
|
33 | - |
|
34 | - /** |
|
35 | - * The Schema.org Type Name |
|
36 | - * |
|
37 | - * @var string |
|
38 | - */ |
|
39 | - public static $schemaTypeName = 'AgreeAction'; |
|
40 | - |
|
41 | - /** |
|
42 | - * The Schema.org Type Scope |
|
43 | - * |
|
44 | - * @var string |
|
45 | - */ |
|
46 | - public static $schemaTypeScope = 'https://schema.org/AgreeAction'; |
|
47 | - |
|
48 | - /** |
|
49 | - * The Schema.org Type Extends |
|
50 | - * |
|
51 | - * @var string |
|
52 | - */ |
|
53 | - public static $schemaTypeExtends = 'ReactAction'; |
|
54 | - |
|
55 | - /** |
|
56 | - * The Schema.org Type Description |
|
57 | - * |
|
58 | - * @var string |
|
59 | - */ |
|
60 | - public static $schemaTypeDescription = 'The act of expressing a consistency of opinion with the object. An agent agrees to/about an object (a proposition, topic or theme) with participants.'; |
|
61 | - |
|
62 | - |
|
63 | - /** |
|
64 | - * @inheritdoc |
|
65 | - */ |
|
66 | - public function getSchemaPropertyNames(): array |
|
67 | - { |
|
68 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
69 | - } |
|
70 | - |
|
71 | - |
|
72 | - /** |
|
73 | - * @inheritdoc |
|
74 | - */ |
|
75 | - public function getSchemaPropertyExpectedTypes(): array |
|
76 | - { |
|
77 | - return [ |
|
78 | - 'actionStatus' => ['ActionStatusType'], |
|
79 | - 'additionalType' => ['URL'], |
|
80 | - 'agent' => ['Organization', 'Person'], |
|
81 | - 'alternateName' => ['Text'], |
|
82 | - 'description' => ['Text'], |
|
83 | - 'disambiguatingDescription' => ['Text'], |
|
84 | - 'endTime' => ['DateTime', 'Time'], |
|
85 | - 'error' => ['Thing'], |
|
86 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
87 | - 'image' => ['URL', 'ImageObject'], |
|
88 | - 'instrument' => ['Thing'], |
|
89 | - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
90 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
91 | - 'name' => ['Text'], |
|
92 | - 'object' => ['Thing'], |
|
93 | - 'participant' => ['Organization', 'Person'], |
|
94 | - 'potentialAction' => ['Action'], |
|
95 | - 'provider' => ['Organization', 'Person'], |
|
96 | - 'result' => ['Thing'], |
|
97 | - 'sameAs' => ['URL'], |
|
98 | - 'startTime' => ['Time', 'DateTime'], |
|
99 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
100 | - 'target' => ['URL', 'EntryPoint'], |
|
101 | - 'url' => ['URL'] |
|
102 | - ]; |
|
103 | - } |
|
104 | - |
|
105 | - |
|
106 | - /** |
|
107 | - * @inheritdoc |
|
108 | - */ |
|
109 | - public function getSchemaPropertyDescriptions(): array |
|
110 | - { |
|
111 | - return [ |
|
112 | - 'actionStatus' => 'Indicates the current disposition of the Action.', |
|
113 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
114 | - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', |
|
115 | - 'alternateName' => 'An alias for the item.', |
|
116 | - 'description' => 'A description of the item.', |
|
117 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
118 | - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
119 | - 'error' => 'For failed actions, more information on the cause of the failure.', |
|
120 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
121 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
122 | - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', |
|
123 | - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
124 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
125 | - 'name' => 'The name of the item.', |
|
126 | - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', |
|
127 | - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', |
|
128 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
129 | - 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
130 | - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', |
|
131 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
132 | - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
133 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
134 | - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', |
|
135 | - 'url' => 'URL of the item.' |
|
136 | - ]; |
|
137 | - } |
|
138 | - |
|
139 | - |
|
140 | - /** |
|
141 | - * @inheritdoc |
|
142 | - */ |
|
143 | - public function getGoogleRequiredSchema(): array |
|
144 | - { |
|
145 | - return ['description', 'name']; |
|
146 | - } |
|
147 | - |
|
148 | - |
|
149 | - /** |
|
150 | - * @inheritdoc |
|
151 | - */ |
|
152 | - public function getGoogleRecommendedSchema(): array |
|
153 | - { |
|
154 | - return ['image', 'url']; |
|
155 | - } |
|
156 | - |
|
157 | - |
|
158 | - /** |
|
159 | - * @inheritdoc |
|
160 | - */ |
|
161 | - public function defineRules(): array |
|
162 | - { |
|
163 | - $rules = parent::defineRules(); |
|
164 | - $rules = array_merge($rules, [ |
|
165 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
166 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
167 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
168 | - ]); |
|
169 | - |
|
170 | - return $rules; |
|
171 | - } |
|
28 | + use AgreeActionTrait; |
|
29 | + use ReactActionTrait; |
|
30 | + use AssessActionTrait; |
|
31 | + use ActionTrait; |
|
32 | + use ThingTrait; |
|
33 | + |
|
34 | + /** |
|
35 | + * The Schema.org Type Name |
|
36 | + * |
|
37 | + * @var string |
|
38 | + */ |
|
39 | + public static $schemaTypeName = 'AgreeAction'; |
|
40 | + |
|
41 | + /** |
|
42 | + * The Schema.org Type Scope |
|
43 | + * |
|
44 | + * @var string |
|
45 | + */ |
|
46 | + public static $schemaTypeScope = 'https://schema.org/AgreeAction'; |
|
47 | + |
|
48 | + /** |
|
49 | + * The Schema.org Type Extends |
|
50 | + * |
|
51 | + * @var string |
|
52 | + */ |
|
53 | + public static $schemaTypeExtends = 'ReactAction'; |
|
54 | + |
|
55 | + /** |
|
56 | + * The Schema.org Type Description |
|
57 | + * |
|
58 | + * @var string |
|
59 | + */ |
|
60 | + public static $schemaTypeDescription = 'The act of expressing a consistency of opinion with the object. An agent agrees to/about an object (a proposition, topic or theme) with participants.'; |
|
61 | + |
|
62 | + |
|
63 | + /** |
|
64 | + * @inheritdoc |
|
65 | + */ |
|
66 | + public function getSchemaPropertyNames(): array |
|
67 | + { |
|
68 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
69 | + } |
|
70 | + |
|
71 | + |
|
72 | + /** |
|
73 | + * @inheritdoc |
|
74 | + */ |
|
75 | + public function getSchemaPropertyExpectedTypes(): array |
|
76 | + { |
|
77 | + return [ |
|
78 | + 'actionStatus' => ['ActionStatusType'], |
|
79 | + 'additionalType' => ['URL'], |
|
80 | + 'agent' => ['Organization', 'Person'], |
|
81 | + 'alternateName' => ['Text'], |
|
82 | + 'description' => ['Text'], |
|
83 | + 'disambiguatingDescription' => ['Text'], |
|
84 | + 'endTime' => ['DateTime', 'Time'], |
|
85 | + 'error' => ['Thing'], |
|
86 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
87 | + 'image' => ['URL', 'ImageObject'], |
|
88 | + 'instrument' => ['Thing'], |
|
89 | + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
90 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
91 | + 'name' => ['Text'], |
|
92 | + 'object' => ['Thing'], |
|
93 | + 'participant' => ['Organization', 'Person'], |
|
94 | + 'potentialAction' => ['Action'], |
|
95 | + 'provider' => ['Organization', 'Person'], |
|
96 | + 'result' => ['Thing'], |
|
97 | + 'sameAs' => ['URL'], |
|
98 | + 'startTime' => ['Time', 'DateTime'], |
|
99 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
100 | + 'target' => ['URL', 'EntryPoint'], |
|
101 | + 'url' => ['URL'] |
|
102 | + ]; |
|
103 | + } |
|
104 | + |
|
105 | + |
|
106 | + /** |
|
107 | + * @inheritdoc |
|
108 | + */ |
|
109 | + public function getSchemaPropertyDescriptions(): array |
|
110 | + { |
|
111 | + return [ |
|
112 | + 'actionStatus' => 'Indicates the current disposition of the Action.', |
|
113 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
114 | + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', |
|
115 | + 'alternateName' => 'An alias for the item.', |
|
116 | + 'description' => 'A description of the item.', |
|
117 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
118 | + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
119 | + 'error' => 'For failed actions, more information on the cause of the failure.', |
|
120 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
121 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
122 | + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', |
|
123 | + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
124 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
125 | + 'name' => 'The name of the item.', |
|
126 | + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', |
|
127 | + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', |
|
128 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
129 | + 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
130 | + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', |
|
131 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
132 | + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
133 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
134 | + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', |
|
135 | + 'url' => 'URL of the item.' |
|
136 | + ]; |
|
137 | + } |
|
138 | + |
|
139 | + |
|
140 | + /** |
|
141 | + * @inheritdoc |
|
142 | + */ |
|
143 | + public function getGoogleRequiredSchema(): array |
|
144 | + { |
|
145 | + return ['description', 'name']; |
|
146 | + } |
|
147 | + |
|
148 | + |
|
149 | + /** |
|
150 | + * @inheritdoc |
|
151 | + */ |
|
152 | + public function getGoogleRecommendedSchema(): array |
|
153 | + { |
|
154 | + return ['image', 'url']; |
|
155 | + } |
|
156 | + |
|
157 | + |
|
158 | + /** |
|
159 | + * @inheritdoc |
|
160 | + */ |
|
161 | + public function defineRules(): array |
|
162 | + { |
|
163 | + $rules = parent::defineRules(); |
|
164 | + $rules = array_merge($rules, [ |
|
165 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
166 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
167 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
168 | + ]); |
|
169 | + |
|
170 | + return $rules; |
|
171 | + } |
|
172 | 172 | } |
@@ -23,127 +23,127 @@ |
||
23 | 23 | */ |
24 | 24 | class WearableSizeSystemFR extends MetaJsonLd implements WearableSizeSystemFRInterface, WearableSizeSystemEnumerationInterface, SizeSystemEnumerationInterface, EnumerationInterface, IntangibleInterface, ThingInterface |
25 | 25 | { |
26 | - use WearableSizeSystemFRTrait; |
|
27 | - use WearableSizeSystemEnumerationTrait; |
|
28 | - use SizeSystemEnumerationTrait; |
|
29 | - use EnumerationTrait; |
|
30 | - use IntangibleTrait; |
|
31 | - use ThingTrait; |
|
32 | - |
|
33 | - /** |
|
34 | - * The Schema.org Type Name |
|
35 | - * |
|
36 | - * @var string |
|
37 | - */ |
|
38 | - public static $schemaTypeName = 'WearableSizeSystemFR'; |
|
39 | - |
|
40 | - /** |
|
41 | - * The Schema.org Type Scope |
|
42 | - * |
|
43 | - * @var string |
|
44 | - */ |
|
45 | - public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemFR'; |
|
46 | - |
|
47 | - /** |
|
48 | - * The Schema.org Type Extends |
|
49 | - * |
|
50 | - * @var string |
|
51 | - */ |
|
52 | - public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; |
|
53 | - |
|
54 | - /** |
|
55 | - * The Schema.org Type Description |
|
56 | - * |
|
57 | - * @var string |
|
58 | - */ |
|
59 | - public static $schemaTypeDescription = 'French size system for wearables.'; |
|
60 | - |
|
61 | - |
|
62 | - /** |
|
63 | - * @inheritdoc |
|
64 | - */ |
|
65 | - public function getSchemaPropertyNames(): array |
|
66 | - { |
|
67 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | - } |
|
69 | - |
|
70 | - |
|
71 | - /** |
|
72 | - * @inheritdoc |
|
73 | - */ |
|
74 | - public function getSchemaPropertyExpectedTypes(): array |
|
75 | - { |
|
76 | - return [ |
|
77 | - 'additionalType' => ['URL'], |
|
78 | - 'alternateName' => ['Text'], |
|
79 | - 'description' => ['Text'], |
|
80 | - 'disambiguatingDescription' => ['Text'], |
|
81 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
82 | - 'image' => ['URL', 'ImageObject'], |
|
83 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
84 | - 'name' => ['Text'], |
|
85 | - 'potentialAction' => ['Action'], |
|
86 | - 'sameAs' => ['URL'], |
|
87 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | - 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
89 | - 'url' => ['URL'] |
|
90 | - ]; |
|
91 | - } |
|
92 | - |
|
93 | - |
|
94 | - /** |
|
95 | - * @inheritdoc |
|
96 | - */ |
|
97 | - public function getSchemaPropertyDescriptions(): array |
|
98 | - { |
|
99 | - return [ |
|
100 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
101 | - 'alternateName' => 'An alias for the item.', |
|
102 | - 'description' => 'A description of the item.', |
|
103 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
104 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
105 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
106 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
107 | - 'name' => 'The name of the item.', |
|
108 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
109 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
110 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
111 | - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
112 | - 'url' => 'URL of the item.' |
|
113 | - ]; |
|
114 | - } |
|
115 | - |
|
116 | - |
|
117 | - /** |
|
118 | - * @inheritdoc |
|
119 | - */ |
|
120 | - public function getGoogleRequiredSchema(): array |
|
121 | - { |
|
122 | - return ['description', 'name']; |
|
123 | - } |
|
124 | - |
|
125 | - |
|
126 | - /** |
|
127 | - * @inheritdoc |
|
128 | - */ |
|
129 | - public function getGoogleRecommendedSchema(): array |
|
130 | - { |
|
131 | - return ['image', 'url']; |
|
132 | - } |
|
133 | - |
|
134 | - |
|
135 | - /** |
|
136 | - * @inheritdoc |
|
137 | - */ |
|
138 | - public function defineRules(): array |
|
139 | - { |
|
140 | - $rules = parent::defineRules(); |
|
141 | - $rules = array_merge($rules, [ |
|
142 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
143 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
144 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
145 | - ]); |
|
146 | - |
|
147 | - return $rules; |
|
148 | - } |
|
26 | + use WearableSizeSystemFRTrait; |
|
27 | + use WearableSizeSystemEnumerationTrait; |
|
28 | + use SizeSystemEnumerationTrait; |
|
29 | + use EnumerationTrait; |
|
30 | + use IntangibleTrait; |
|
31 | + use ThingTrait; |
|
32 | + |
|
33 | + /** |
|
34 | + * The Schema.org Type Name |
|
35 | + * |
|
36 | + * @var string |
|
37 | + */ |
|
38 | + public static $schemaTypeName = 'WearableSizeSystemFR'; |
|
39 | + |
|
40 | + /** |
|
41 | + * The Schema.org Type Scope |
|
42 | + * |
|
43 | + * @var string |
|
44 | + */ |
|
45 | + public static $schemaTypeScope = 'https://schema.org/WearableSizeSystemFR'; |
|
46 | + |
|
47 | + /** |
|
48 | + * The Schema.org Type Extends |
|
49 | + * |
|
50 | + * @var string |
|
51 | + */ |
|
52 | + public static $schemaTypeExtends = 'WearableSizeSystemEnumeration'; |
|
53 | + |
|
54 | + /** |
|
55 | + * The Schema.org Type Description |
|
56 | + * |
|
57 | + * @var string |
|
58 | + */ |
|
59 | + public static $schemaTypeDescription = 'French size system for wearables.'; |
|
60 | + |
|
61 | + |
|
62 | + /** |
|
63 | + * @inheritdoc |
|
64 | + */ |
|
65 | + public function getSchemaPropertyNames(): array |
|
66 | + { |
|
67 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | + } |
|
69 | + |
|
70 | + |
|
71 | + /** |
|
72 | + * @inheritdoc |
|
73 | + */ |
|
74 | + public function getSchemaPropertyExpectedTypes(): array |
|
75 | + { |
|
76 | + return [ |
|
77 | + 'additionalType' => ['URL'], |
|
78 | + 'alternateName' => ['Text'], |
|
79 | + 'description' => ['Text'], |
|
80 | + 'disambiguatingDescription' => ['Text'], |
|
81 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
82 | + 'image' => ['URL', 'ImageObject'], |
|
83 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
84 | + 'name' => ['Text'], |
|
85 | + 'potentialAction' => ['Action'], |
|
86 | + 'sameAs' => ['URL'], |
|
87 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | + 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
89 | + 'url' => ['URL'] |
|
90 | + ]; |
|
91 | + } |
|
92 | + |
|
93 | + |
|
94 | + /** |
|
95 | + * @inheritdoc |
|
96 | + */ |
|
97 | + public function getSchemaPropertyDescriptions(): array |
|
98 | + { |
|
99 | + return [ |
|
100 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
101 | + 'alternateName' => 'An alias for the item.', |
|
102 | + 'description' => 'A description of the item.', |
|
103 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
104 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
105 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
106 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
107 | + 'name' => 'The name of the item.', |
|
108 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
109 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
110 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
111 | + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
112 | + 'url' => 'URL of the item.' |
|
113 | + ]; |
|
114 | + } |
|
115 | + |
|
116 | + |
|
117 | + /** |
|
118 | + * @inheritdoc |
|
119 | + */ |
|
120 | + public function getGoogleRequiredSchema(): array |
|
121 | + { |
|
122 | + return ['description', 'name']; |
|
123 | + } |
|
124 | + |
|
125 | + |
|
126 | + /** |
|
127 | + * @inheritdoc |
|
128 | + */ |
|
129 | + public function getGoogleRecommendedSchema(): array |
|
130 | + { |
|
131 | + return ['image', 'url']; |
|
132 | + } |
|
133 | + |
|
134 | + |
|
135 | + /** |
|
136 | + * @inheritdoc |
|
137 | + */ |
|
138 | + public function defineRules(): array |
|
139 | + { |
|
140 | + $rules = parent::defineRules(); |
|
141 | + $rules = array_merge($rules, [ |
|
142 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
143 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
144 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
145 | + ]); |
|
146 | + |
|
147 | + return $rules; |
|
148 | + } |
|
149 | 149 | } |
@@ -24,177 +24,177 @@ |
||
24 | 24 | */ |
25 | 25 | class VitalSign extends MetaJsonLd implements VitalSignInterface, MedicalSignInterface, MedicalSignOrSymptomInterface, MedicalConditionInterface, MedicalEntityInterface, ThingInterface |
26 | 26 | { |
27 | - use VitalSignTrait; |
|
28 | - use MedicalSignTrait; |
|
29 | - use MedicalSignOrSymptomTrait; |
|
30 | - use MedicalConditionTrait; |
|
31 | - use MedicalEntityTrait; |
|
32 | - use ThingTrait; |
|
33 | - |
|
34 | - /** |
|
35 | - * The Schema.org Type Name |
|
36 | - * |
|
37 | - * @var string |
|
38 | - */ |
|
39 | - public static $schemaTypeName = 'VitalSign'; |
|
40 | - |
|
41 | - /** |
|
42 | - * The Schema.org Type Scope |
|
43 | - * |
|
44 | - * @var string |
|
45 | - */ |
|
46 | - public static $schemaTypeScope = 'https://schema.org/VitalSign'; |
|
47 | - |
|
48 | - /** |
|
49 | - * The Schema.org Type Extends |
|
50 | - * |
|
51 | - * @var string |
|
52 | - */ |
|
53 | - public static $schemaTypeExtends = 'MedicalSign'; |
|
54 | - |
|
55 | - /** |
|
56 | - * The Schema.org Type Description |
|
57 | - * |
|
58 | - * @var string |
|
59 | - */ |
|
60 | - public static $schemaTypeDescription = 'Vital signs are measures of various physiological functions in order to assess the most basic body functions.'; |
|
61 | - |
|
62 | - |
|
63 | - /** |
|
64 | - * @inheritdoc |
|
65 | - */ |
|
66 | - public function getSchemaPropertyNames(): array |
|
67 | - { |
|
68 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
69 | - } |
|
70 | - |
|
71 | - |
|
72 | - /** |
|
73 | - * @inheritdoc |
|
74 | - */ |
|
75 | - public function getSchemaPropertyExpectedTypes(): array |
|
76 | - { |
|
77 | - return [ |
|
78 | - 'additionalType' => ['URL'], |
|
79 | - 'alternateName' => ['Text'], |
|
80 | - 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], |
|
81 | - 'code' => ['MedicalCode'], |
|
82 | - 'description' => ['Text'], |
|
83 | - 'differentialDiagnosis' => ['DDxElement'], |
|
84 | - 'disambiguatingDescription' => ['Text'], |
|
85 | - 'drug' => ['Drug'], |
|
86 | - 'epidemiology' => ['Text'], |
|
87 | - 'expectedPrognosis' => ['Text'], |
|
88 | - 'funding' => ['Grant'], |
|
89 | - 'guideline' => ['MedicalGuideline'], |
|
90 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
91 | - 'identifyingExam' => ['PhysicalExam'], |
|
92 | - 'identifyingTest' => ['MedicalTest'], |
|
93 | - 'image' => ['URL', 'ImageObject'], |
|
94 | - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], |
|
95 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
96 | - 'medicineSystem' => ['MedicineSystem'], |
|
97 | - 'name' => ['Text'], |
|
98 | - 'naturalProgression' => ['Text'], |
|
99 | - 'pathophysiology' => ['Text'], |
|
100 | - 'possibleComplication' => ['Text'], |
|
101 | - 'possibleTreatment' => ['MedicalTherapy'], |
|
102 | - 'potentialAction' => ['Action'], |
|
103 | - 'primaryPrevention' => ['MedicalTherapy'], |
|
104 | - 'recognizingAuthority' => ['Organization'], |
|
105 | - 'relevantSpecialty' => ['MedicalSpecialty'], |
|
106 | - 'riskFactor' => ['MedicalRiskFactor'], |
|
107 | - 'sameAs' => ['URL'], |
|
108 | - 'secondaryPrevention' => ['MedicalTherapy'], |
|
109 | - 'signOrSymptom' => ['MedicalSignOrSymptom'], |
|
110 | - 'stage' => ['MedicalConditionStage'], |
|
111 | - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], |
|
112 | - 'study' => ['MedicalStudy'], |
|
113 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
114 | - 'typicalTest' => ['MedicalTest'], |
|
115 | - 'url' => ['URL'] |
|
116 | - ]; |
|
117 | - } |
|
118 | - |
|
119 | - |
|
120 | - /** |
|
121 | - * @inheritdoc |
|
122 | - */ |
|
123 | - public function getSchemaPropertyDescriptions(): array |
|
124 | - { |
|
125 | - return [ |
|
126 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
127 | - 'alternateName' => 'An alias for the item.', |
|
128 | - 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', |
|
129 | - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', |
|
130 | - 'description' => 'A description of the item.', |
|
131 | - 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', |
|
132 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
133 | - 'drug' => 'Specifying a drug or medicine used in a medication procedure.', |
|
134 | - 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', |
|
135 | - 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', |
|
136 | - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
137 | - 'guideline' => 'A medical guideline related to this entity.', |
|
138 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
139 | - 'identifyingExam' => 'A physical examination that can identify this sign.', |
|
140 | - 'identifyingTest' => 'A diagnostic test that can identify this sign.', |
|
141 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
142 | - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', |
|
143 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
144 | - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', |
|
145 | - 'name' => 'The name of the item.', |
|
146 | - 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', |
|
147 | - 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', |
|
148 | - 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', |
|
149 | - 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', |
|
150 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
151 | - 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', |
|
152 | - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', |
|
153 | - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', |
|
154 | - 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', |
|
155 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
156 | - 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', |
|
157 | - 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', |
|
158 | - 'stage' => 'The stage of the condition, if applicable.', |
|
159 | - 'status' => 'The status of the study (enumerated).', |
|
160 | - 'study' => 'A medical study or trial related to this entity.', |
|
161 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
162 | - 'typicalTest' => 'A medical test typically performed given this condition.', |
|
163 | - 'url' => 'URL of the item.' |
|
164 | - ]; |
|
165 | - } |
|
166 | - |
|
167 | - |
|
168 | - /** |
|
169 | - * @inheritdoc |
|
170 | - */ |
|
171 | - public function getGoogleRequiredSchema(): array |
|
172 | - { |
|
173 | - return ['description', 'name']; |
|
174 | - } |
|
175 | - |
|
176 | - |
|
177 | - /** |
|
178 | - * @inheritdoc |
|
179 | - */ |
|
180 | - public function getGoogleRecommendedSchema(): array |
|
181 | - { |
|
182 | - return ['image', 'url']; |
|
183 | - } |
|
184 | - |
|
185 | - |
|
186 | - /** |
|
187 | - * @inheritdoc |
|
188 | - */ |
|
189 | - public function defineRules(): array |
|
190 | - { |
|
191 | - $rules = parent::defineRules(); |
|
192 | - $rules = array_merge($rules, [ |
|
193 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
194 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
195 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
196 | - ]); |
|
197 | - |
|
198 | - return $rules; |
|
199 | - } |
|
27 | + use VitalSignTrait; |
|
28 | + use MedicalSignTrait; |
|
29 | + use MedicalSignOrSymptomTrait; |
|
30 | + use MedicalConditionTrait; |
|
31 | + use MedicalEntityTrait; |
|
32 | + use ThingTrait; |
|
33 | + |
|
34 | + /** |
|
35 | + * The Schema.org Type Name |
|
36 | + * |
|
37 | + * @var string |
|
38 | + */ |
|
39 | + public static $schemaTypeName = 'VitalSign'; |
|
40 | + |
|
41 | + /** |
|
42 | + * The Schema.org Type Scope |
|
43 | + * |
|
44 | + * @var string |
|
45 | + */ |
|
46 | + public static $schemaTypeScope = 'https://schema.org/VitalSign'; |
|
47 | + |
|
48 | + /** |
|
49 | + * The Schema.org Type Extends |
|
50 | + * |
|
51 | + * @var string |
|
52 | + */ |
|
53 | + public static $schemaTypeExtends = 'MedicalSign'; |
|
54 | + |
|
55 | + /** |
|
56 | + * The Schema.org Type Description |
|
57 | + * |
|
58 | + * @var string |
|
59 | + */ |
|
60 | + public static $schemaTypeDescription = 'Vital signs are measures of various physiological functions in order to assess the most basic body functions.'; |
|
61 | + |
|
62 | + |
|
63 | + /** |
|
64 | + * @inheritdoc |
|
65 | + */ |
|
66 | + public function getSchemaPropertyNames(): array |
|
67 | + { |
|
68 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
69 | + } |
|
70 | + |
|
71 | + |
|
72 | + /** |
|
73 | + * @inheritdoc |
|
74 | + */ |
|
75 | + public function getSchemaPropertyExpectedTypes(): array |
|
76 | + { |
|
77 | + return [ |
|
78 | + 'additionalType' => ['URL'], |
|
79 | + 'alternateName' => ['Text'], |
|
80 | + 'associatedAnatomy' => ['SuperficialAnatomy', 'AnatomicalSystem', 'AnatomicalStructure'], |
|
81 | + 'code' => ['MedicalCode'], |
|
82 | + 'description' => ['Text'], |
|
83 | + 'differentialDiagnosis' => ['DDxElement'], |
|
84 | + 'disambiguatingDescription' => ['Text'], |
|
85 | + 'drug' => ['Drug'], |
|
86 | + 'epidemiology' => ['Text'], |
|
87 | + 'expectedPrognosis' => ['Text'], |
|
88 | + 'funding' => ['Grant'], |
|
89 | + 'guideline' => ['MedicalGuideline'], |
|
90 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
91 | + 'identifyingExam' => ['PhysicalExam'], |
|
92 | + 'identifyingTest' => ['MedicalTest'], |
|
93 | + 'image' => ['URL', 'ImageObject'], |
|
94 | + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], |
|
95 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
96 | + 'medicineSystem' => ['MedicineSystem'], |
|
97 | + 'name' => ['Text'], |
|
98 | + 'naturalProgression' => ['Text'], |
|
99 | + 'pathophysiology' => ['Text'], |
|
100 | + 'possibleComplication' => ['Text'], |
|
101 | + 'possibleTreatment' => ['MedicalTherapy'], |
|
102 | + 'potentialAction' => ['Action'], |
|
103 | + 'primaryPrevention' => ['MedicalTherapy'], |
|
104 | + 'recognizingAuthority' => ['Organization'], |
|
105 | + 'relevantSpecialty' => ['MedicalSpecialty'], |
|
106 | + 'riskFactor' => ['MedicalRiskFactor'], |
|
107 | + 'sameAs' => ['URL'], |
|
108 | + 'secondaryPrevention' => ['MedicalTherapy'], |
|
109 | + 'signOrSymptom' => ['MedicalSignOrSymptom'], |
|
110 | + 'stage' => ['MedicalConditionStage'], |
|
111 | + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], |
|
112 | + 'study' => ['MedicalStudy'], |
|
113 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
114 | + 'typicalTest' => ['MedicalTest'], |
|
115 | + 'url' => ['URL'] |
|
116 | + ]; |
|
117 | + } |
|
118 | + |
|
119 | + |
|
120 | + /** |
|
121 | + * @inheritdoc |
|
122 | + */ |
|
123 | + public function getSchemaPropertyDescriptions(): array |
|
124 | + { |
|
125 | + return [ |
|
126 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
127 | + 'alternateName' => 'An alias for the item.', |
|
128 | + 'associatedAnatomy' => 'The anatomy of the underlying organ system or structures associated with this entity.', |
|
129 | + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', |
|
130 | + 'description' => 'A description of the item.', |
|
131 | + 'differentialDiagnosis' => 'One of a set of differential diagnoses for the condition. Specifically, a closely-related or competing diagnosis typically considered later in the cognitive process whereby this medical condition is distinguished from others most likely responsible for a similar collection of signs and symptoms to reach the most parsimonious diagnosis or diagnoses in a patient.', |
|
132 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
133 | + 'drug' => 'Specifying a drug or medicine used in a medication procedure.', |
|
134 | + 'epidemiology' => 'The characteristics of associated patients, such as age, gender, race etc.', |
|
135 | + 'expectedPrognosis' => 'The likely outcome in either the short term or long term of the medical condition.', |
|
136 | + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
137 | + 'guideline' => 'A medical guideline related to this entity.', |
|
138 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
139 | + 'identifyingExam' => 'A physical examination that can identify this sign.', |
|
140 | + 'identifyingTest' => 'A diagnostic test that can identify this sign.', |
|
141 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
142 | + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', |
|
143 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
144 | + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', |
|
145 | + 'name' => 'The name of the item.', |
|
146 | + 'naturalProgression' => 'The expected progression of the condition if it is not treated and allowed to progress naturally.', |
|
147 | + 'pathophysiology' => 'Changes in the normal mechanical, physical, and biochemical functions that are associated with this activity or condition.', |
|
148 | + 'possibleComplication' => 'A possible unexpected and unfavorable evolution of a medical condition. Complications may include worsening of the signs or symptoms of the disease, extension of the condition to other organ systems, etc.', |
|
149 | + 'possibleTreatment' => 'A possible treatment to address this condition, sign or symptom.', |
|
150 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
151 | + 'primaryPrevention' => 'A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.', |
|
152 | + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', |
|
153 | + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', |
|
154 | + 'riskFactor' => 'A modifiable or non-modifiable factor that increases the risk of a patient contracting this condition, e.g. age, coexisting condition.', |
|
155 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
156 | + 'secondaryPrevention' => 'A preventative therapy used to prevent reoccurrence of the medical condition after an initial episode of the condition.', |
|
157 | + 'signOrSymptom' => 'A sign or symptom of this condition. Signs are objective or physically observable manifestations of the medical condition while symptoms are the subjective experience of the medical condition.', |
|
158 | + 'stage' => 'The stage of the condition, if applicable.', |
|
159 | + 'status' => 'The status of the study (enumerated).', |
|
160 | + 'study' => 'A medical study or trial related to this entity.', |
|
161 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
162 | + 'typicalTest' => 'A medical test typically performed given this condition.', |
|
163 | + 'url' => 'URL of the item.' |
|
164 | + ]; |
|
165 | + } |
|
166 | + |
|
167 | + |
|
168 | + /** |
|
169 | + * @inheritdoc |
|
170 | + */ |
|
171 | + public function getGoogleRequiredSchema(): array |
|
172 | + { |
|
173 | + return ['description', 'name']; |
|
174 | + } |
|
175 | + |
|
176 | + |
|
177 | + /** |
|
178 | + * @inheritdoc |
|
179 | + */ |
|
180 | + public function getGoogleRecommendedSchema(): array |
|
181 | + { |
|
182 | + return ['image', 'url']; |
|
183 | + } |
|
184 | + |
|
185 | + |
|
186 | + /** |
|
187 | + * @inheritdoc |
|
188 | + */ |
|
189 | + public function defineRules(): array |
|
190 | + { |
|
191 | + $rules = parent::defineRules(); |
|
192 | + $rules = array_merge($rules, [ |
|
193 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
194 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
195 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
196 | + ]); |
|
197 | + |
|
198 | + return $rules; |
|
199 | + } |
|
200 | 200 | } |
@@ -24,126 +24,126 @@ |
||
24 | 24 | */ |
25 | 25 | class LeisureTimeActivity extends MetaJsonLd implements LeisureTimeActivityInterface, PhysicalActivityCategoryInterface, EnumerationInterface, IntangibleInterface, ThingInterface |
26 | 26 | { |
27 | - use LeisureTimeActivityTrait; |
|
28 | - use PhysicalActivityCategoryTrait; |
|
29 | - use EnumerationTrait; |
|
30 | - use IntangibleTrait; |
|
31 | - use ThingTrait; |
|
32 | - |
|
33 | - /** |
|
34 | - * The Schema.org Type Name |
|
35 | - * |
|
36 | - * @var string |
|
37 | - */ |
|
38 | - public static $schemaTypeName = 'LeisureTimeActivity'; |
|
39 | - |
|
40 | - /** |
|
41 | - * The Schema.org Type Scope |
|
42 | - * |
|
43 | - * @var string |
|
44 | - */ |
|
45 | - public static $schemaTypeScope = 'https://schema.org/LeisureTimeActivity'; |
|
46 | - |
|
47 | - /** |
|
48 | - * The Schema.org Type Extends |
|
49 | - * |
|
50 | - * @var string |
|
51 | - */ |
|
52 | - public static $schemaTypeExtends = 'PhysicalActivityCategory'; |
|
53 | - |
|
54 | - /** |
|
55 | - * The Schema.org Type Description |
|
56 | - * |
|
57 | - * @var string |
|
58 | - */ |
|
59 | - public static $schemaTypeDescription = 'Any physical activity engaged in for recreational purposes. Examples may include ballroom dancing, roller skating, canoeing, fishing, etc.'; |
|
60 | - |
|
61 | - |
|
62 | - /** |
|
63 | - * @inheritdoc |
|
64 | - */ |
|
65 | - public function getSchemaPropertyNames(): array |
|
66 | - { |
|
67 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | - } |
|
69 | - |
|
70 | - |
|
71 | - /** |
|
72 | - * @inheritdoc |
|
73 | - */ |
|
74 | - public function getSchemaPropertyExpectedTypes(): array |
|
75 | - { |
|
76 | - return [ |
|
77 | - 'additionalType' => ['URL'], |
|
78 | - 'alternateName' => ['Text'], |
|
79 | - 'description' => ['Text'], |
|
80 | - 'disambiguatingDescription' => ['Text'], |
|
81 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
82 | - 'image' => ['URL', 'ImageObject'], |
|
83 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
84 | - 'name' => ['Text'], |
|
85 | - 'potentialAction' => ['Action'], |
|
86 | - 'sameAs' => ['URL'], |
|
87 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | - 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
89 | - 'url' => ['URL'] |
|
90 | - ]; |
|
91 | - } |
|
92 | - |
|
93 | - |
|
94 | - /** |
|
95 | - * @inheritdoc |
|
96 | - */ |
|
97 | - public function getSchemaPropertyDescriptions(): array |
|
98 | - { |
|
99 | - return [ |
|
100 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
101 | - 'alternateName' => 'An alias for the item.', |
|
102 | - 'description' => 'A description of the item.', |
|
103 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
104 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
105 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
106 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
107 | - 'name' => 'The name of the item.', |
|
108 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
109 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
110 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
111 | - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
112 | - 'url' => 'URL of the item.' |
|
113 | - ]; |
|
114 | - } |
|
115 | - |
|
116 | - |
|
117 | - /** |
|
118 | - * @inheritdoc |
|
119 | - */ |
|
120 | - public function getGoogleRequiredSchema(): array |
|
121 | - { |
|
122 | - return ['description', 'name']; |
|
123 | - } |
|
124 | - |
|
125 | - |
|
126 | - /** |
|
127 | - * @inheritdoc |
|
128 | - */ |
|
129 | - public function getGoogleRecommendedSchema(): array |
|
130 | - { |
|
131 | - return ['image', 'url']; |
|
132 | - } |
|
133 | - |
|
134 | - |
|
135 | - /** |
|
136 | - * @inheritdoc |
|
137 | - */ |
|
138 | - public function defineRules(): array |
|
139 | - { |
|
140 | - $rules = parent::defineRules(); |
|
141 | - $rules = array_merge($rules, [ |
|
142 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
143 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
144 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
145 | - ]); |
|
146 | - |
|
147 | - return $rules; |
|
148 | - } |
|
27 | + use LeisureTimeActivityTrait; |
|
28 | + use PhysicalActivityCategoryTrait; |
|
29 | + use EnumerationTrait; |
|
30 | + use IntangibleTrait; |
|
31 | + use ThingTrait; |
|
32 | + |
|
33 | + /** |
|
34 | + * The Schema.org Type Name |
|
35 | + * |
|
36 | + * @var string |
|
37 | + */ |
|
38 | + public static $schemaTypeName = 'LeisureTimeActivity'; |
|
39 | + |
|
40 | + /** |
|
41 | + * The Schema.org Type Scope |
|
42 | + * |
|
43 | + * @var string |
|
44 | + */ |
|
45 | + public static $schemaTypeScope = 'https://schema.org/LeisureTimeActivity'; |
|
46 | + |
|
47 | + /** |
|
48 | + * The Schema.org Type Extends |
|
49 | + * |
|
50 | + * @var string |
|
51 | + */ |
|
52 | + public static $schemaTypeExtends = 'PhysicalActivityCategory'; |
|
53 | + |
|
54 | + /** |
|
55 | + * The Schema.org Type Description |
|
56 | + * |
|
57 | + * @var string |
|
58 | + */ |
|
59 | + public static $schemaTypeDescription = 'Any physical activity engaged in for recreational purposes. Examples may include ballroom dancing, roller skating, canoeing, fishing, etc.'; |
|
60 | + |
|
61 | + |
|
62 | + /** |
|
63 | + * @inheritdoc |
|
64 | + */ |
|
65 | + public function getSchemaPropertyNames(): array |
|
66 | + { |
|
67 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | + } |
|
69 | + |
|
70 | + |
|
71 | + /** |
|
72 | + * @inheritdoc |
|
73 | + */ |
|
74 | + public function getSchemaPropertyExpectedTypes(): array |
|
75 | + { |
|
76 | + return [ |
|
77 | + 'additionalType' => ['URL'], |
|
78 | + 'alternateName' => ['Text'], |
|
79 | + 'description' => ['Text'], |
|
80 | + 'disambiguatingDescription' => ['Text'], |
|
81 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
82 | + 'image' => ['URL', 'ImageObject'], |
|
83 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
84 | + 'name' => ['Text'], |
|
85 | + 'potentialAction' => ['Action'], |
|
86 | + 'sameAs' => ['URL'], |
|
87 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | + 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
89 | + 'url' => ['URL'] |
|
90 | + ]; |
|
91 | + } |
|
92 | + |
|
93 | + |
|
94 | + /** |
|
95 | + * @inheritdoc |
|
96 | + */ |
|
97 | + public function getSchemaPropertyDescriptions(): array |
|
98 | + { |
|
99 | + return [ |
|
100 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
101 | + 'alternateName' => 'An alias for the item.', |
|
102 | + 'description' => 'A description of the item.', |
|
103 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
104 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
105 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
106 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
107 | + 'name' => 'The name of the item.', |
|
108 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
109 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
110 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
111 | + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
112 | + 'url' => 'URL of the item.' |
|
113 | + ]; |
|
114 | + } |
|
115 | + |
|
116 | + |
|
117 | + /** |
|
118 | + * @inheritdoc |
|
119 | + */ |
|
120 | + public function getGoogleRequiredSchema(): array |
|
121 | + { |
|
122 | + return ['description', 'name']; |
|
123 | + } |
|
124 | + |
|
125 | + |
|
126 | + /** |
|
127 | + * @inheritdoc |
|
128 | + */ |
|
129 | + public function getGoogleRecommendedSchema(): array |
|
130 | + { |
|
131 | + return ['image', 'url']; |
|
132 | + } |
|
133 | + |
|
134 | + |
|
135 | + /** |
|
136 | + * @inheritdoc |
|
137 | + */ |
|
138 | + public function defineRules(): array |
|
139 | + { |
|
140 | + $rules = parent::defineRules(); |
|
141 | + $rules = array_merge($rules, [ |
|
142 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
143 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
144 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
145 | + ]); |
|
146 | + |
|
147 | + return $rules; |
|
148 | + } |
|
149 | 149 | } |
@@ -23,178 +23,178 @@ |
||
23 | 23 | */ |
24 | 24 | class CurrencyConversionService extends MetaJsonLd implements CurrencyConversionServiceInterface, FinancialProductInterface, ServiceInterface, IntangibleInterface, ThingInterface |
25 | 25 | { |
26 | - use CurrencyConversionServiceTrait; |
|
27 | - use FinancialProductTrait; |
|
28 | - use ServiceTrait; |
|
29 | - use IntangibleTrait; |
|
30 | - use ThingTrait; |
|
31 | - |
|
32 | - /** |
|
33 | - * The Schema.org Type Name |
|
34 | - * |
|
35 | - * @var string |
|
36 | - */ |
|
37 | - public static $schemaTypeName = 'CurrencyConversionService'; |
|
38 | - |
|
39 | - /** |
|
40 | - * The Schema.org Type Scope |
|
41 | - * |
|
42 | - * @var string |
|
43 | - */ |
|
44 | - public static $schemaTypeScope = 'https://schema.org/CurrencyConversionService'; |
|
45 | - |
|
46 | - /** |
|
47 | - * The Schema.org Type Extends |
|
48 | - * |
|
49 | - * @var string |
|
50 | - */ |
|
51 | - public static $schemaTypeExtends = 'FinancialProduct'; |
|
52 | - |
|
53 | - /** |
|
54 | - * The Schema.org Type Description |
|
55 | - * |
|
56 | - * @var string |
|
57 | - */ |
|
58 | - public static $schemaTypeDescription = 'A service to convert funds from one currency to another currency.'; |
|
59 | - |
|
60 | - |
|
61 | - /** |
|
62 | - * @inheritdoc |
|
63 | - */ |
|
64 | - public function getSchemaPropertyNames(): array |
|
65 | - { |
|
66 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
67 | - } |
|
68 | - |
|
69 | - |
|
70 | - /** |
|
71 | - * @inheritdoc |
|
72 | - */ |
|
73 | - public function getSchemaPropertyExpectedTypes(): array |
|
74 | - { |
|
75 | - return [ |
|
76 | - 'additionalType' => ['URL'], |
|
77 | - 'aggregateRating' => ['AggregateRating'], |
|
78 | - 'alternateName' => ['Text'], |
|
79 | - 'annualPercentageRate' => ['Number', 'QuantitativeValue'], |
|
80 | - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
81 | - 'audience' => ['Audience'], |
|
82 | - 'availableChannel' => ['ServiceChannel'], |
|
83 | - 'award' => ['Text'], |
|
84 | - 'brand' => ['Brand', 'Organization'], |
|
85 | - 'broker' => ['Person', 'Organization'], |
|
86 | - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], |
|
87 | - 'description' => ['Text'], |
|
88 | - 'disambiguatingDescription' => ['Text'], |
|
89 | - 'feesAndCommissionsSpecification' => ['URL', 'Text'], |
|
90 | - 'hasOfferCatalog' => ['OfferCatalog'], |
|
91 | - 'hoursAvailable' => ['OpeningHoursSpecification'], |
|
92 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
93 | - 'image' => ['URL', 'ImageObject'], |
|
94 | - 'interestRate' => ['Number', 'QuantitativeValue'], |
|
95 | - 'isRelatedTo' => ['Product', 'Service'], |
|
96 | - 'isSimilarTo' => ['Product', 'Service'], |
|
97 | - 'logo' => ['ImageObject', 'URL'], |
|
98 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
99 | - 'name' => ['Text'], |
|
100 | - 'offers' => ['Demand', 'Offer'], |
|
101 | - 'potentialAction' => ['Action'], |
|
102 | - 'produces' => ['Thing'], |
|
103 | - 'provider' => ['Organization', 'Person'], |
|
104 | - 'providerMobility' => ['Text'], |
|
105 | - 'review' => ['Review'], |
|
106 | - 'sameAs' => ['URL'], |
|
107 | - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
108 | - 'serviceAudience' => ['Audience'], |
|
109 | - 'serviceOutput' => ['Thing'], |
|
110 | - 'serviceType' => ['Text', 'GovernmentBenefitsType'], |
|
111 | - 'slogan' => ['Text'], |
|
112 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
113 | - 'termsOfService' => ['URL', 'Text'], |
|
114 | - 'url' => ['URL'] |
|
115 | - ]; |
|
116 | - } |
|
117 | - |
|
118 | - |
|
119 | - /** |
|
120 | - * @inheritdoc |
|
121 | - */ |
|
122 | - public function getSchemaPropertyDescriptions(): array |
|
123 | - { |
|
124 | - return [ |
|
125 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
126 | - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
127 | - 'alternateName' => 'An alias for the item.', |
|
128 | - 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', |
|
129 | - 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
130 | - 'audience' => 'An intended audience, i.e. a group for whom something was created.', |
|
131 | - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', |
|
132 | - 'award' => 'An award won by or for this item.', |
|
133 | - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
134 | - 'broker' => 'An entity that arranges for an exchange between a buyer and a seller. In most cases a broker never acquires or releases ownership of a product or service involved in an exchange. If it is not clear whether an entity is a broker, seller, or buyer, the latter two terms are preferred.', |
|
135 | - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', |
|
136 | - 'description' => 'A description of the item.', |
|
137 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
138 | - 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', |
|
139 | - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
140 | - 'hoursAvailable' => 'The hours during which this service or contact is available.', |
|
141 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
142 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
143 | - 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', |
|
144 | - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', |
|
145 | - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', |
|
146 | - 'logo' => 'An associated logo.', |
|
147 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
148 | - 'name' => 'The name of the item.', |
|
149 | - 'offers' => 'An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer. ', |
|
150 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
151 | - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
152 | - 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
153 | - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', |
|
154 | - 'review' => 'A review of the item.', |
|
155 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
156 | - 'serviceArea' => 'The geographic area where the service is provided.', |
|
157 | - 'serviceAudience' => 'The audience eligible for this service.', |
|
158 | - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
159 | - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', |
|
160 | - 'slogan' => 'A slogan or motto associated with the item.', |
|
161 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
162 | - 'termsOfService' => 'Human-readable terms of service documentation.', |
|
163 | - 'url' => 'URL of the item.' |
|
164 | - ]; |
|
165 | - } |
|
166 | - |
|
167 | - |
|
168 | - /** |
|
169 | - * @inheritdoc |
|
170 | - */ |
|
171 | - public function getGoogleRequiredSchema(): array |
|
172 | - { |
|
173 | - return ['description', 'name']; |
|
174 | - } |
|
175 | - |
|
176 | - |
|
177 | - /** |
|
178 | - * @inheritdoc |
|
179 | - */ |
|
180 | - public function getGoogleRecommendedSchema(): array |
|
181 | - { |
|
182 | - return ['image', 'url']; |
|
183 | - } |
|
184 | - |
|
185 | - |
|
186 | - /** |
|
187 | - * @inheritdoc |
|
188 | - */ |
|
189 | - public function defineRules(): array |
|
190 | - { |
|
191 | - $rules = parent::defineRules(); |
|
192 | - $rules = array_merge($rules, [ |
|
193 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
194 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
195 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
196 | - ]); |
|
197 | - |
|
198 | - return $rules; |
|
199 | - } |
|
26 | + use CurrencyConversionServiceTrait; |
|
27 | + use FinancialProductTrait; |
|
28 | + use ServiceTrait; |
|
29 | + use IntangibleTrait; |
|
30 | + use ThingTrait; |
|
31 | + |
|
32 | + /** |
|
33 | + * The Schema.org Type Name |
|
34 | + * |
|
35 | + * @var string |
|
36 | + */ |
|
37 | + public static $schemaTypeName = 'CurrencyConversionService'; |
|
38 | + |
|
39 | + /** |
|
40 | + * The Schema.org Type Scope |
|
41 | + * |
|
42 | + * @var string |
|
43 | + */ |
|
44 | + public static $schemaTypeScope = 'https://schema.org/CurrencyConversionService'; |
|
45 | + |
|
46 | + /** |
|
47 | + * The Schema.org Type Extends |
|
48 | + * |
|
49 | + * @var string |
|
50 | + */ |
|
51 | + public static $schemaTypeExtends = 'FinancialProduct'; |
|
52 | + |
|
53 | + /** |
|
54 | + * The Schema.org Type Description |
|
55 | + * |
|
56 | + * @var string |
|
57 | + */ |
|
58 | + public static $schemaTypeDescription = 'A service to convert funds from one currency to another currency.'; |
|
59 | + |
|
60 | + |
|
61 | + /** |
|
62 | + * @inheritdoc |
|
63 | + */ |
|
64 | + public function getSchemaPropertyNames(): array |
|
65 | + { |
|
66 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
67 | + } |
|
68 | + |
|
69 | + |
|
70 | + /** |
|
71 | + * @inheritdoc |
|
72 | + */ |
|
73 | + public function getSchemaPropertyExpectedTypes(): array |
|
74 | + { |
|
75 | + return [ |
|
76 | + 'additionalType' => ['URL'], |
|
77 | + 'aggregateRating' => ['AggregateRating'], |
|
78 | + 'alternateName' => ['Text'], |
|
79 | + 'annualPercentageRate' => ['Number', 'QuantitativeValue'], |
|
80 | + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
81 | + 'audience' => ['Audience'], |
|
82 | + 'availableChannel' => ['ServiceChannel'], |
|
83 | + 'award' => ['Text'], |
|
84 | + 'brand' => ['Brand', 'Organization'], |
|
85 | + 'broker' => ['Person', 'Organization'], |
|
86 | + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], |
|
87 | + 'description' => ['Text'], |
|
88 | + 'disambiguatingDescription' => ['Text'], |
|
89 | + 'feesAndCommissionsSpecification' => ['URL', 'Text'], |
|
90 | + 'hasOfferCatalog' => ['OfferCatalog'], |
|
91 | + 'hoursAvailable' => ['OpeningHoursSpecification'], |
|
92 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
93 | + 'image' => ['URL', 'ImageObject'], |
|
94 | + 'interestRate' => ['Number', 'QuantitativeValue'], |
|
95 | + 'isRelatedTo' => ['Product', 'Service'], |
|
96 | + 'isSimilarTo' => ['Product', 'Service'], |
|
97 | + 'logo' => ['ImageObject', 'URL'], |
|
98 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
99 | + 'name' => ['Text'], |
|
100 | + 'offers' => ['Demand', 'Offer'], |
|
101 | + 'potentialAction' => ['Action'], |
|
102 | + 'produces' => ['Thing'], |
|
103 | + 'provider' => ['Organization', 'Person'], |
|
104 | + 'providerMobility' => ['Text'], |
|
105 | + 'review' => ['Review'], |
|
106 | + 'sameAs' => ['URL'], |
|
107 | + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
108 | + 'serviceAudience' => ['Audience'], |
|
109 | + 'serviceOutput' => ['Thing'], |
|
110 | + 'serviceType' => ['Text', 'GovernmentBenefitsType'], |
|
111 | + 'slogan' => ['Text'], |
|
112 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
113 | + 'termsOfService' => ['URL', 'Text'], |
|
114 | + 'url' => ['URL'] |
|
115 | + ]; |
|
116 | + } |
|
117 | + |
|
118 | + |
|
119 | + /** |
|
120 | + * @inheritdoc |
|
121 | + */ |
|
122 | + public function getSchemaPropertyDescriptions(): array |
|
123 | + { |
|
124 | + return [ |
|
125 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
126 | + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
127 | + 'alternateName' => 'An alias for the item.', |
|
128 | + 'annualPercentageRate' => 'The annual rate that is charged for borrowing (or made by investing), expressed as a single percentage number that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction.', |
|
129 | + 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
130 | + 'audience' => 'An intended audience, i.e. a group for whom something was created.', |
|
131 | + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', |
|
132 | + 'award' => 'An award won by or for this item.', |
|
133 | + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
134 | + 'broker' => 'An entity that arranges for an exchange between a buyer and a seller. In most cases a broker never acquires or releases ownership of a product or service involved in an exchange. If it is not clear whether an entity is a broker, seller, or buyer, the latter two terms are preferred.', |
|
135 | + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', |
|
136 | + 'description' => 'A description of the item.', |
|
137 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
138 | + 'feesAndCommissionsSpecification' => 'Description of fees, commissions, and other terms applied either to a class of financial product, or by a financial service organization.', |
|
139 | + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
140 | + 'hoursAvailable' => 'The hours during which this service or contact is available.', |
|
141 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
142 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
143 | + 'interestRate' => 'The interest rate, charged or paid, applicable to the financial product. Note: This is different from the calculated annualPercentageRate.', |
|
144 | + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', |
|
145 | + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', |
|
146 | + 'logo' => 'An associated logo.', |
|
147 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
148 | + 'name' => 'The name of the item.', |
|
149 | + 'offers' => 'An offer to provide this item—for example, an offer to sell a product, rent the DVD of a movie, perform a service, or give away tickets to an event. Use [[businessFunction]] to indicate the kind of transaction offered, i.e. sell, lease, etc. This property can also be used to describe a [[Demand]]. While this property is listed as expected on a number of common types, it can be used in others. In that case, using a second type, such as Product or a subtype of Product, can clarify the nature of the offer. ', |
|
150 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
151 | + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
152 | + 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
153 | + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', |
|
154 | + 'review' => 'A review of the item.', |
|
155 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
156 | + 'serviceArea' => 'The geographic area where the service is provided.', |
|
157 | + 'serviceAudience' => 'The audience eligible for this service.', |
|
158 | + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
159 | + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', |
|
160 | + 'slogan' => 'A slogan or motto associated with the item.', |
|
161 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
162 | + 'termsOfService' => 'Human-readable terms of service documentation.', |
|
163 | + 'url' => 'URL of the item.' |
|
164 | + ]; |
|
165 | + } |
|
166 | + |
|
167 | + |
|
168 | + /** |
|
169 | + * @inheritdoc |
|
170 | + */ |
|
171 | + public function getGoogleRequiredSchema(): array |
|
172 | + { |
|
173 | + return ['description', 'name']; |
|
174 | + } |
|
175 | + |
|
176 | + |
|
177 | + /** |
|
178 | + * @inheritdoc |
|
179 | + */ |
|
180 | + public function getGoogleRecommendedSchema(): array |
|
181 | + { |
|
182 | + return ['image', 'url']; |
|
183 | + } |
|
184 | + |
|
185 | + |
|
186 | + /** |
|
187 | + * @inheritdoc |
|
188 | + */ |
|
189 | + public function defineRules(): array |
|
190 | + { |
|
191 | + $rules = parent::defineRules(); |
|
192 | + $rules = array_merge($rules, [ |
|
193 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
194 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
195 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
196 | + ]); |
|
197 | + |
|
198 | + return $rules; |
|
199 | + } |
|
200 | 200 | } |
@@ -23,151 +23,151 @@ |
||
23 | 23 | */ |
24 | 24 | class WatchAction extends MetaJsonLd implements WatchActionInterface, ConsumeActionInterface, ActionInterface, ThingInterface |
25 | 25 | { |
26 | - use WatchActionTrait; |
|
27 | - use ConsumeActionTrait; |
|
28 | - use ActionTrait; |
|
29 | - use ThingTrait; |
|
30 | - |
|
31 | - /** |
|
32 | - * The Schema.org Type Name |
|
33 | - * |
|
34 | - * @var string |
|
35 | - */ |
|
36 | - public static $schemaTypeName = 'WatchAction'; |
|
37 | - |
|
38 | - /** |
|
39 | - * The Schema.org Type Scope |
|
40 | - * |
|
41 | - * @var string |
|
42 | - */ |
|
43 | - public static $schemaTypeScope = 'https://schema.org/WatchAction'; |
|
44 | - |
|
45 | - /** |
|
46 | - * The Schema.org Type Extends |
|
47 | - * |
|
48 | - * @var string |
|
49 | - */ |
|
50 | - public static $schemaTypeExtends = 'ConsumeAction'; |
|
51 | - |
|
52 | - /** |
|
53 | - * The Schema.org Type Description |
|
54 | - * |
|
55 | - * @var string |
|
56 | - */ |
|
57 | - public static $schemaTypeDescription = 'The act of consuming dynamic/moving visual content.'; |
|
58 | - |
|
59 | - |
|
60 | - /** |
|
61 | - * @inheritdoc |
|
62 | - */ |
|
63 | - public function getSchemaPropertyNames(): array |
|
64 | - { |
|
65 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
66 | - } |
|
67 | - |
|
68 | - |
|
69 | - /** |
|
70 | - * @inheritdoc |
|
71 | - */ |
|
72 | - public function getSchemaPropertyExpectedTypes(): array |
|
73 | - { |
|
74 | - return [ |
|
75 | - 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], |
|
76 | - 'actionStatus' => ['ActionStatusType'], |
|
77 | - 'additionalType' => ['URL'], |
|
78 | - 'agent' => ['Organization', 'Person'], |
|
79 | - 'alternateName' => ['Text'], |
|
80 | - 'description' => ['Text'], |
|
81 | - 'disambiguatingDescription' => ['Text'], |
|
82 | - 'endTime' => ['DateTime', 'Time'], |
|
83 | - 'error' => ['Thing'], |
|
84 | - 'expectsAcceptanceOf' => ['Offer'], |
|
85 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
86 | - 'image' => ['URL', 'ImageObject'], |
|
87 | - 'instrument' => ['Thing'], |
|
88 | - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
89 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
90 | - 'name' => ['Text'], |
|
91 | - 'object' => ['Thing'], |
|
92 | - 'participant' => ['Organization', 'Person'], |
|
93 | - 'potentialAction' => ['Action'], |
|
94 | - 'provider' => ['Organization', 'Person'], |
|
95 | - 'result' => ['Thing'], |
|
96 | - 'sameAs' => ['URL'], |
|
97 | - 'startTime' => ['Time', 'DateTime'], |
|
98 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
99 | - 'target' => ['URL', 'EntryPoint'], |
|
100 | - 'url' => ['URL'] |
|
101 | - ]; |
|
102 | - } |
|
103 | - |
|
104 | - |
|
105 | - /** |
|
106 | - * @inheritdoc |
|
107 | - */ |
|
108 | - public function getSchemaPropertyDescriptions(): array |
|
109 | - { |
|
110 | - return [ |
|
111 | - 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', |
|
112 | - 'actionStatus' => 'Indicates the current disposition of the Action.', |
|
113 | - 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
114 | - 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', |
|
115 | - 'alternateName' => 'An alias for the item.', |
|
116 | - 'description' => 'A description of the item.', |
|
117 | - 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
118 | - 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
119 | - 'error' => 'For failed actions, more information on the cause of the failure.', |
|
120 | - 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', |
|
121 | - 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
122 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
123 | - 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', |
|
124 | - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
125 | - 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
126 | - 'name' => 'The name of the item.', |
|
127 | - 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', |
|
128 | - 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', |
|
129 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
130 | - 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
131 | - 'result' => 'The result produced in the action. E.g. John wrote *a book*.', |
|
132 | - 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
133 | - 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
134 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
135 | - 'target' => 'Indicates a target EntryPoint, or url, for an Action.', |
|
136 | - 'url' => 'URL of the item.' |
|
137 | - ]; |
|
138 | - } |
|
139 | - |
|
140 | - |
|
141 | - /** |
|
142 | - * @inheritdoc |
|
143 | - */ |
|
144 | - public function getGoogleRequiredSchema(): array |
|
145 | - { |
|
146 | - return ['description', 'name']; |
|
147 | - } |
|
148 | - |
|
149 | - |
|
150 | - /** |
|
151 | - * @inheritdoc |
|
152 | - */ |
|
153 | - public function getGoogleRecommendedSchema(): array |
|
154 | - { |
|
155 | - return ['image', 'url']; |
|
156 | - } |
|
157 | - |
|
158 | - |
|
159 | - /** |
|
160 | - * @inheritdoc |
|
161 | - */ |
|
162 | - public function defineRules(): array |
|
163 | - { |
|
164 | - $rules = parent::defineRules(); |
|
165 | - $rules = array_merge($rules, [ |
|
166 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
167 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
168 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
169 | - ]); |
|
170 | - |
|
171 | - return $rules; |
|
172 | - } |
|
26 | + use WatchActionTrait; |
|
27 | + use ConsumeActionTrait; |
|
28 | + use ActionTrait; |
|
29 | + use ThingTrait; |
|
30 | + |
|
31 | + /** |
|
32 | + * The Schema.org Type Name |
|
33 | + * |
|
34 | + * @var string |
|
35 | + */ |
|
36 | + public static $schemaTypeName = 'WatchAction'; |
|
37 | + |
|
38 | + /** |
|
39 | + * The Schema.org Type Scope |
|
40 | + * |
|
41 | + * @var string |
|
42 | + */ |
|
43 | + public static $schemaTypeScope = 'https://schema.org/WatchAction'; |
|
44 | + |
|
45 | + /** |
|
46 | + * The Schema.org Type Extends |
|
47 | + * |
|
48 | + * @var string |
|
49 | + */ |
|
50 | + public static $schemaTypeExtends = 'ConsumeAction'; |
|
51 | + |
|
52 | + /** |
|
53 | + * The Schema.org Type Description |
|
54 | + * |
|
55 | + * @var string |
|
56 | + */ |
|
57 | + public static $schemaTypeDescription = 'The act of consuming dynamic/moving visual content.'; |
|
58 | + |
|
59 | + |
|
60 | + /** |
|
61 | + * @inheritdoc |
|
62 | + */ |
|
63 | + public function getSchemaPropertyNames(): array |
|
64 | + { |
|
65 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
66 | + } |
|
67 | + |
|
68 | + |
|
69 | + /** |
|
70 | + * @inheritdoc |
|
71 | + */ |
|
72 | + public function getSchemaPropertyExpectedTypes(): array |
|
73 | + { |
|
74 | + return [ |
|
75 | + 'actionAccessibilityRequirement' => ['ActionAccessSpecification'], |
|
76 | + 'actionStatus' => ['ActionStatusType'], |
|
77 | + 'additionalType' => ['URL'], |
|
78 | + 'agent' => ['Organization', 'Person'], |
|
79 | + 'alternateName' => ['Text'], |
|
80 | + 'description' => ['Text'], |
|
81 | + 'disambiguatingDescription' => ['Text'], |
|
82 | + 'endTime' => ['DateTime', 'Time'], |
|
83 | + 'error' => ['Thing'], |
|
84 | + 'expectsAcceptanceOf' => ['Offer'], |
|
85 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
86 | + 'image' => ['URL', 'ImageObject'], |
|
87 | + 'instrument' => ['Thing'], |
|
88 | + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
89 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
90 | + 'name' => ['Text'], |
|
91 | + 'object' => ['Thing'], |
|
92 | + 'participant' => ['Organization', 'Person'], |
|
93 | + 'potentialAction' => ['Action'], |
|
94 | + 'provider' => ['Organization', 'Person'], |
|
95 | + 'result' => ['Thing'], |
|
96 | + 'sameAs' => ['URL'], |
|
97 | + 'startTime' => ['Time', 'DateTime'], |
|
98 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
99 | + 'target' => ['URL', 'EntryPoint'], |
|
100 | + 'url' => ['URL'] |
|
101 | + ]; |
|
102 | + } |
|
103 | + |
|
104 | + |
|
105 | + /** |
|
106 | + * @inheritdoc |
|
107 | + */ |
|
108 | + public function getSchemaPropertyDescriptions(): array |
|
109 | + { |
|
110 | + return [ |
|
111 | + 'actionAccessibilityRequirement' => 'A set of requirements that must be fulfilled in order to perform an Action. If more than one value is specified, fulfilling one set of requirements will allow the Action to be performed.', |
|
112 | + 'actionStatus' => 'Indicates the current disposition of the Action.', |
|
113 | + 'additionalType' => 'An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the \'typeof\' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.', |
|
114 | + 'agent' => 'The direct performer or driver of the action (animate or inanimate). E.g. *John* wrote a book.', |
|
115 | + 'alternateName' => 'An alias for the item.', |
|
116 | + 'description' => 'A description of the item.', |
|
117 | + 'disambiguatingDescription' => 'A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation.', |
|
118 | + 'endTime' => 'The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. E.g. John wrote a book from January to *December*. For media, including audio and video, it\'s the time offset of the end of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
119 | + 'error' => 'For failed actions, more information on the cause of the failure.', |
|
120 | + 'expectsAcceptanceOf' => 'An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.', |
|
121 | + 'identifier' => 'The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. ', |
|
122 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
123 | + 'instrument' => 'The object that helped the agent perform the action. E.g. John wrote a book with *a pen*.', |
|
124 | + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
125 | + 'mainEntityOfPage' => 'Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details.', |
|
126 | + 'name' => 'The name of the item.', |
|
127 | + 'object' => 'The object upon which the action is carried out, whose state is kept intact or changed. Also known as the semantic roles patient, affected or undergoer (which change their state) or theme (which doesn\'t). E.g. John read *a book*.', |
|
128 | + 'participant' => 'Other co-agents that participated in the action indirectly. E.g. John wrote a book with *Steve*.', |
|
129 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
130 | + 'provider' => 'The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.', |
|
131 | + 'result' => 'The result produced in the action. E.g. John wrote *a book*.', |
|
132 | + 'sameAs' => 'URL of a reference Web page that unambiguously indicates the item\'s identity. E.g. the URL of the item\'s Wikipedia page, Wikidata entry, or official website.', |
|
133 | + 'startTime' => 'The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. E.g. John wrote a book from *January* to December. For media, including audio and video, it\'s the time offset of the start of a clip within a larger file. Note that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.', |
|
134 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
135 | + 'target' => 'Indicates a target EntryPoint, or url, for an Action.', |
|
136 | + 'url' => 'URL of the item.' |
|
137 | + ]; |
|
138 | + } |
|
139 | + |
|
140 | + |
|
141 | + /** |
|
142 | + * @inheritdoc |
|
143 | + */ |
|
144 | + public function getGoogleRequiredSchema(): array |
|
145 | + { |
|
146 | + return ['description', 'name']; |
|
147 | + } |
|
148 | + |
|
149 | + |
|
150 | + /** |
|
151 | + * @inheritdoc |
|
152 | + */ |
|
153 | + public function getGoogleRecommendedSchema(): array |
|
154 | + { |
|
155 | + return ['image', 'url']; |
|
156 | + } |
|
157 | + |
|
158 | + |
|
159 | + /** |
|
160 | + * @inheritdoc |
|
161 | + */ |
|
162 | + public function defineRules(): array |
|
163 | + { |
|
164 | + $rules = parent::defineRules(); |
|
165 | + $rules = array_merge($rules, [ |
|
166 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
167 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
168 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
169 | + ]); |
|
170 | + |
|
171 | + return $rules; |
|
172 | + } |
|
173 | 173 | } |