@@ -23,171 +23,171 @@ |
||
23 | 23 | */ |
24 | 24 | class FoodService extends MetaJsonLd implements FoodServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface |
25 | 25 | { |
26 | - use FoodServiceTrait; |
|
27 | - use ServiceTrait; |
|
28 | - use IntangibleTrait; |
|
29 | - use ThingTrait; |
|
30 | - |
|
31 | - /** |
|
32 | - * The Schema.org Type Name |
|
33 | - * |
|
34 | - * @var string |
|
35 | - */ |
|
36 | - public static string $schemaTypeName = 'FoodService'; |
|
37 | - |
|
38 | - /** |
|
39 | - * The Schema.org Type Scope |
|
40 | - * |
|
41 | - * @var string |
|
42 | - */ |
|
43 | - public static string $schemaTypeScope = 'https://schema.org/FoodService'; |
|
44 | - |
|
45 | - /** |
|
46 | - * The Schema.org Type Extends |
|
47 | - * |
|
48 | - * @var string |
|
49 | - */ |
|
50 | - public static string $schemaTypeExtends = 'Service'; |
|
51 | - |
|
52 | - /** |
|
53 | - * The Schema.org Type Description |
|
54 | - * |
|
55 | - * @var string |
|
56 | - */ |
|
57 | - public static string $schemaTypeDescription = 'A food service, like breakfast, lunch, or dinner.'; |
|
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 | - 'additionalType' => ['URL'], |
|
76 | - 'aggregateRating' => ['AggregateRating'], |
|
77 | - 'alternateName' => ['Text'], |
|
78 | - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
79 | - 'audience' => ['Audience'], |
|
80 | - 'availableChannel' => ['ServiceChannel'], |
|
81 | - 'award' => ['Text'], |
|
82 | - 'brand' => ['Brand', 'Organization'], |
|
83 | - 'broker' => ['Person', 'Organization'], |
|
84 | - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], |
|
85 | - 'description' => ['Text'], |
|
86 | - 'disambiguatingDescription' => ['Text'], |
|
87 | - 'hasOfferCatalog' => ['OfferCatalog'], |
|
88 | - 'hoursAvailable' => ['OpeningHoursSpecification'], |
|
89 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
90 | - 'image' => ['URL', 'ImageObject'], |
|
91 | - 'isRelatedTo' => ['Product', 'Service'], |
|
92 | - 'isSimilarTo' => ['Product', 'Service'], |
|
93 | - 'logo' => ['ImageObject', 'URL'], |
|
94 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
95 | - 'name' => ['Text'], |
|
96 | - 'offers' => ['Demand', 'Offer'], |
|
97 | - 'potentialAction' => ['Action'], |
|
98 | - 'produces' => ['Thing'], |
|
99 | - 'provider' => ['Organization', 'Person'], |
|
100 | - 'providerMobility' => ['Text'], |
|
101 | - 'review' => ['Review'], |
|
102 | - 'sameAs' => ['URL'], |
|
103 | - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
104 | - 'serviceAudience' => ['Audience'], |
|
105 | - 'serviceOutput' => ['Thing'], |
|
106 | - 'serviceType' => ['Text', 'GovernmentBenefitsType'], |
|
107 | - 'slogan' => ['Text'], |
|
108 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
109 | - 'termsOfService' => ['URL', 'Text'], |
|
110 | - 'url' => ['URL'] |
|
111 | - ]; |
|
112 | - } |
|
113 | - |
|
114 | - |
|
115 | - /** |
|
116 | - * @inheritdoc |
|
117 | - */ |
|
118 | - public function getSchemaPropertyDescriptions(): array |
|
119 | - { |
|
120 | - return [ |
|
121 | - '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.', |
|
122 | - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
123 | - 'alternateName' => 'An alias for the item.', |
|
124 | - 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
125 | - 'audience' => 'An intended audience, i.e. a group for whom something was created.', |
|
126 | - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', |
|
127 | - 'award' => 'An award won by or for this item.', |
|
128 | - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
129 | - '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.', |
|
130 | - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', |
|
131 | - 'description' => 'A description of the item.', |
|
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 | - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
134 | - 'hoursAvailable' => 'The hours during which this service or contact is available.', |
|
135 | - '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. ', |
|
136 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
137 | - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', |
|
138 | - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', |
|
139 | - 'logo' => 'An associated logo.', |
|
140 | - '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.', |
|
141 | - 'name' => 'The name of the item.', |
|
142 | - '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. ', |
|
143 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
144 | - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
145 | - '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.', |
|
146 | - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', |
|
147 | - 'review' => 'A review of the item.', |
|
148 | - '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.', |
|
149 | - 'serviceArea' => 'The geographic area where the service is provided.', |
|
150 | - 'serviceAudience' => 'The audience eligible for this service.', |
|
151 | - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
152 | - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', |
|
153 | - 'slogan' => 'A slogan or motto associated with the item.', |
|
154 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
155 | - 'termsOfService' => 'Human-readable terms of service documentation.', |
|
156 | - 'url' => 'URL of the item.' |
|
157 | - ]; |
|
158 | - } |
|
159 | - |
|
160 | - |
|
161 | - /** |
|
162 | - * @inheritdoc |
|
163 | - */ |
|
164 | - public function getGoogleRequiredSchema(): array |
|
165 | - { |
|
166 | - return ['description', 'name']; |
|
167 | - } |
|
168 | - |
|
169 | - |
|
170 | - /** |
|
171 | - * @inheritdoc |
|
172 | - */ |
|
173 | - public function getGoogleRecommendedSchema(): array |
|
174 | - { |
|
175 | - return ['image', 'url']; |
|
176 | - } |
|
177 | - |
|
178 | - |
|
179 | - /** |
|
180 | - * @inheritdoc |
|
181 | - */ |
|
182 | - public function defineRules(): array |
|
183 | - { |
|
184 | - $rules = parent::defineRules(); |
|
185 | - $rules = array_merge($rules, [ |
|
186 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
187 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
188 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
189 | - ]); |
|
190 | - |
|
191 | - return $rules; |
|
192 | - } |
|
26 | + use FoodServiceTrait; |
|
27 | + use ServiceTrait; |
|
28 | + use IntangibleTrait; |
|
29 | + use ThingTrait; |
|
30 | + |
|
31 | + /** |
|
32 | + * The Schema.org Type Name |
|
33 | + * |
|
34 | + * @var string |
|
35 | + */ |
|
36 | + public static string $schemaTypeName = 'FoodService'; |
|
37 | + |
|
38 | + /** |
|
39 | + * The Schema.org Type Scope |
|
40 | + * |
|
41 | + * @var string |
|
42 | + */ |
|
43 | + public static string $schemaTypeScope = 'https://schema.org/FoodService'; |
|
44 | + |
|
45 | + /** |
|
46 | + * The Schema.org Type Extends |
|
47 | + * |
|
48 | + * @var string |
|
49 | + */ |
|
50 | + public static string $schemaTypeExtends = 'Service'; |
|
51 | + |
|
52 | + /** |
|
53 | + * The Schema.org Type Description |
|
54 | + * |
|
55 | + * @var string |
|
56 | + */ |
|
57 | + public static string $schemaTypeDescription = 'A food service, like breakfast, lunch, or dinner.'; |
|
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 | + 'additionalType' => ['URL'], |
|
76 | + 'aggregateRating' => ['AggregateRating'], |
|
77 | + 'alternateName' => ['Text'], |
|
78 | + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
79 | + 'audience' => ['Audience'], |
|
80 | + 'availableChannel' => ['ServiceChannel'], |
|
81 | + 'award' => ['Text'], |
|
82 | + 'brand' => ['Brand', 'Organization'], |
|
83 | + 'broker' => ['Person', 'Organization'], |
|
84 | + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], |
|
85 | + 'description' => ['Text'], |
|
86 | + 'disambiguatingDescription' => ['Text'], |
|
87 | + 'hasOfferCatalog' => ['OfferCatalog'], |
|
88 | + 'hoursAvailable' => ['OpeningHoursSpecification'], |
|
89 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
90 | + 'image' => ['URL', 'ImageObject'], |
|
91 | + 'isRelatedTo' => ['Product', 'Service'], |
|
92 | + 'isSimilarTo' => ['Product', 'Service'], |
|
93 | + 'logo' => ['ImageObject', 'URL'], |
|
94 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
95 | + 'name' => ['Text'], |
|
96 | + 'offers' => ['Demand', 'Offer'], |
|
97 | + 'potentialAction' => ['Action'], |
|
98 | + 'produces' => ['Thing'], |
|
99 | + 'provider' => ['Organization', 'Person'], |
|
100 | + 'providerMobility' => ['Text'], |
|
101 | + 'review' => ['Review'], |
|
102 | + 'sameAs' => ['URL'], |
|
103 | + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
104 | + 'serviceAudience' => ['Audience'], |
|
105 | + 'serviceOutput' => ['Thing'], |
|
106 | + 'serviceType' => ['Text', 'GovernmentBenefitsType'], |
|
107 | + 'slogan' => ['Text'], |
|
108 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
109 | + 'termsOfService' => ['URL', 'Text'], |
|
110 | + 'url' => ['URL'] |
|
111 | + ]; |
|
112 | + } |
|
113 | + |
|
114 | + |
|
115 | + /** |
|
116 | + * @inheritdoc |
|
117 | + */ |
|
118 | + public function getSchemaPropertyDescriptions(): array |
|
119 | + { |
|
120 | + return [ |
|
121 | + '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.', |
|
122 | + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
123 | + 'alternateName' => 'An alias for the item.', |
|
124 | + 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
125 | + 'audience' => 'An intended audience, i.e. a group for whom something was created.', |
|
126 | + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', |
|
127 | + 'award' => 'An award won by or for this item.', |
|
128 | + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
129 | + '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.', |
|
130 | + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', |
|
131 | + 'description' => 'A description of the item.', |
|
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 | + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
134 | + 'hoursAvailable' => 'The hours during which this service or contact is available.', |
|
135 | + '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. ', |
|
136 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
137 | + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', |
|
138 | + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', |
|
139 | + 'logo' => 'An associated logo.', |
|
140 | + '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.', |
|
141 | + 'name' => 'The name of the item.', |
|
142 | + '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. ', |
|
143 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
144 | + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
145 | + '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.', |
|
146 | + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', |
|
147 | + 'review' => 'A review of the item.', |
|
148 | + '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.', |
|
149 | + 'serviceArea' => 'The geographic area where the service is provided.', |
|
150 | + 'serviceAudience' => 'The audience eligible for this service.', |
|
151 | + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
152 | + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', |
|
153 | + 'slogan' => 'A slogan or motto associated with the item.', |
|
154 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
155 | + 'termsOfService' => 'Human-readable terms of service documentation.', |
|
156 | + 'url' => 'URL of the item.' |
|
157 | + ]; |
|
158 | + } |
|
159 | + |
|
160 | + |
|
161 | + /** |
|
162 | + * @inheritdoc |
|
163 | + */ |
|
164 | + public function getGoogleRequiredSchema(): array |
|
165 | + { |
|
166 | + return ['description', 'name']; |
|
167 | + } |
|
168 | + |
|
169 | + |
|
170 | + /** |
|
171 | + * @inheritdoc |
|
172 | + */ |
|
173 | + public function getGoogleRecommendedSchema(): array |
|
174 | + { |
|
175 | + return ['image', 'url']; |
|
176 | + } |
|
177 | + |
|
178 | + |
|
179 | + /** |
|
180 | + * @inheritdoc |
|
181 | + */ |
|
182 | + public function defineRules(): array |
|
183 | + { |
|
184 | + $rules = parent::defineRules(); |
|
185 | + $rules = array_merge($rules, [ |
|
186 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
187 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
188 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
189 | + ]); |
|
190 | + |
|
191 | + return $rules; |
|
192 | + } |
|
193 | 193 | } |
@@ -23,136 +23,136 @@ |
||
23 | 23 | */ |
24 | 24 | class Permit extends MetaJsonLd implements PermitInterface, IntangibleInterface, ThingInterface |
25 | 25 | { |
26 | - use PermitTrait; |
|
27 | - use IntangibleTrait; |
|
28 | - use ThingTrait; |
|
29 | - |
|
30 | - /** |
|
31 | - * The Schema.org Type Name |
|
32 | - * |
|
33 | - * @var string |
|
34 | - */ |
|
35 | - public static string $schemaTypeName = 'Permit'; |
|
36 | - |
|
37 | - /** |
|
38 | - * The Schema.org Type Scope |
|
39 | - * |
|
40 | - * @var string |
|
41 | - */ |
|
42 | - public static string $schemaTypeScope = 'https://schema.org/Permit'; |
|
43 | - |
|
44 | - /** |
|
45 | - * The Schema.org Type Extends |
|
46 | - * |
|
47 | - * @var string |
|
48 | - */ |
|
49 | - public static string $schemaTypeExtends = 'Intangible'; |
|
50 | - |
|
51 | - /** |
|
52 | - * The Schema.org Type Description |
|
53 | - * |
|
54 | - * @var string |
|
55 | - */ |
|
56 | - public static string $schemaTypeDescription = 'A permit issued by an organization, e.g. a parking pass.'; |
|
57 | - |
|
58 | - |
|
59 | - /** |
|
60 | - * @inheritdoc |
|
61 | - */ |
|
62 | - public function getSchemaPropertyNames(): array |
|
63 | - { |
|
64 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
65 | - } |
|
66 | - |
|
67 | - |
|
68 | - /** |
|
69 | - * @inheritdoc |
|
70 | - */ |
|
71 | - public function getSchemaPropertyExpectedTypes(): array |
|
72 | - { |
|
73 | - return [ |
|
74 | - 'additionalType' => ['URL'], |
|
75 | - 'alternateName' => ['Text'], |
|
76 | - 'description' => ['Text'], |
|
77 | - 'disambiguatingDescription' => ['Text'], |
|
78 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
79 | - 'image' => ['URL', 'ImageObject'], |
|
80 | - 'issuedBy' => ['Organization'], |
|
81 | - 'issuedThrough' => ['Service'], |
|
82 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
83 | - 'name' => ['Text'], |
|
84 | - 'permitAudience' => ['Audience'], |
|
85 | - 'potentialAction' => ['Action'], |
|
86 | - 'sameAs' => ['URL'], |
|
87 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | - 'url' => ['URL'], |
|
89 | - 'validFor' => ['Duration'], |
|
90 | - 'validFrom' => ['Date', 'DateTime'], |
|
91 | - 'validIn' => ['AdministrativeArea'], |
|
92 | - 'validUntil' => ['Date'] |
|
93 | - ]; |
|
94 | - } |
|
95 | - |
|
96 | - |
|
97 | - /** |
|
98 | - * @inheritdoc |
|
99 | - */ |
|
100 | - public function getSchemaPropertyDescriptions(): array |
|
101 | - { |
|
102 | - return [ |
|
103 | - '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.', |
|
104 | - 'alternateName' => 'An alias for the item.', |
|
105 | - 'description' => 'A description of the item.', |
|
106 | - '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.', |
|
107 | - '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. ', |
|
108 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
109 | - 'issuedBy' => 'The organization issuing the ticket or permit.', |
|
110 | - 'issuedThrough' => 'The service through which the permit was granted.', |
|
111 | - '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.', |
|
112 | - 'name' => 'The name of the item.', |
|
113 | - 'permitAudience' => 'The target audience for this permit.', |
|
114 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
115 | - '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.', |
|
116 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
117 | - 'url' => 'URL of the item.', |
|
118 | - 'validFor' => 'The duration of validity of a permit or similar thing.', |
|
119 | - 'validFrom' => 'The date when the item becomes valid.', |
|
120 | - 'validIn' => 'The geographic area where a permit or similar thing is valid.', |
|
121 | - 'validUntil' => 'The date when the item is no longer valid.' |
|
122 | - ]; |
|
123 | - } |
|
124 | - |
|
125 | - |
|
126 | - /** |
|
127 | - * @inheritdoc |
|
128 | - */ |
|
129 | - public function getGoogleRequiredSchema(): array |
|
130 | - { |
|
131 | - return ['description', 'name']; |
|
132 | - } |
|
133 | - |
|
134 | - |
|
135 | - /** |
|
136 | - * @inheritdoc |
|
137 | - */ |
|
138 | - public function getGoogleRecommendedSchema(): array |
|
139 | - { |
|
140 | - return ['image', 'url']; |
|
141 | - } |
|
142 | - |
|
143 | - |
|
144 | - /** |
|
145 | - * @inheritdoc |
|
146 | - */ |
|
147 | - public function defineRules(): array |
|
148 | - { |
|
149 | - $rules = parent::defineRules(); |
|
150 | - $rules = array_merge($rules, [ |
|
151 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
152 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
153 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
154 | - ]); |
|
155 | - |
|
156 | - return $rules; |
|
157 | - } |
|
26 | + use PermitTrait; |
|
27 | + use IntangibleTrait; |
|
28 | + use ThingTrait; |
|
29 | + |
|
30 | + /** |
|
31 | + * The Schema.org Type Name |
|
32 | + * |
|
33 | + * @var string |
|
34 | + */ |
|
35 | + public static string $schemaTypeName = 'Permit'; |
|
36 | + |
|
37 | + /** |
|
38 | + * The Schema.org Type Scope |
|
39 | + * |
|
40 | + * @var string |
|
41 | + */ |
|
42 | + public static string $schemaTypeScope = 'https://schema.org/Permit'; |
|
43 | + |
|
44 | + /** |
|
45 | + * The Schema.org Type Extends |
|
46 | + * |
|
47 | + * @var string |
|
48 | + */ |
|
49 | + public static string $schemaTypeExtends = 'Intangible'; |
|
50 | + |
|
51 | + /** |
|
52 | + * The Schema.org Type Description |
|
53 | + * |
|
54 | + * @var string |
|
55 | + */ |
|
56 | + public static string $schemaTypeDescription = 'A permit issued by an organization, e.g. a parking pass.'; |
|
57 | + |
|
58 | + |
|
59 | + /** |
|
60 | + * @inheritdoc |
|
61 | + */ |
|
62 | + public function getSchemaPropertyNames(): array |
|
63 | + { |
|
64 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
65 | + } |
|
66 | + |
|
67 | + |
|
68 | + /** |
|
69 | + * @inheritdoc |
|
70 | + */ |
|
71 | + public function getSchemaPropertyExpectedTypes(): array |
|
72 | + { |
|
73 | + return [ |
|
74 | + 'additionalType' => ['URL'], |
|
75 | + 'alternateName' => ['Text'], |
|
76 | + 'description' => ['Text'], |
|
77 | + 'disambiguatingDescription' => ['Text'], |
|
78 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
79 | + 'image' => ['URL', 'ImageObject'], |
|
80 | + 'issuedBy' => ['Organization'], |
|
81 | + 'issuedThrough' => ['Service'], |
|
82 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
83 | + 'name' => ['Text'], |
|
84 | + 'permitAudience' => ['Audience'], |
|
85 | + 'potentialAction' => ['Action'], |
|
86 | + 'sameAs' => ['URL'], |
|
87 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
88 | + 'url' => ['URL'], |
|
89 | + 'validFor' => ['Duration'], |
|
90 | + 'validFrom' => ['Date', 'DateTime'], |
|
91 | + 'validIn' => ['AdministrativeArea'], |
|
92 | + 'validUntil' => ['Date'] |
|
93 | + ]; |
|
94 | + } |
|
95 | + |
|
96 | + |
|
97 | + /** |
|
98 | + * @inheritdoc |
|
99 | + */ |
|
100 | + public function getSchemaPropertyDescriptions(): array |
|
101 | + { |
|
102 | + return [ |
|
103 | + '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.', |
|
104 | + 'alternateName' => 'An alias for the item.', |
|
105 | + 'description' => 'A description of the item.', |
|
106 | + '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.', |
|
107 | + '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. ', |
|
108 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
109 | + 'issuedBy' => 'The organization issuing the ticket or permit.', |
|
110 | + 'issuedThrough' => 'The service through which the permit was granted.', |
|
111 | + '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.', |
|
112 | + 'name' => 'The name of the item.', |
|
113 | + 'permitAudience' => 'The target audience for this permit.', |
|
114 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
115 | + '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.', |
|
116 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
117 | + 'url' => 'URL of the item.', |
|
118 | + 'validFor' => 'The duration of validity of a permit or similar thing.', |
|
119 | + 'validFrom' => 'The date when the item becomes valid.', |
|
120 | + 'validIn' => 'The geographic area where a permit or similar thing is valid.', |
|
121 | + 'validUntil' => 'The date when the item is no longer valid.' |
|
122 | + ]; |
|
123 | + } |
|
124 | + |
|
125 | + |
|
126 | + /** |
|
127 | + * @inheritdoc |
|
128 | + */ |
|
129 | + public function getGoogleRequiredSchema(): array |
|
130 | + { |
|
131 | + return ['description', 'name']; |
|
132 | + } |
|
133 | + |
|
134 | + |
|
135 | + /** |
|
136 | + * @inheritdoc |
|
137 | + */ |
|
138 | + public function getGoogleRecommendedSchema(): array |
|
139 | + { |
|
140 | + return ['image', 'url']; |
|
141 | + } |
|
142 | + |
|
143 | + |
|
144 | + /** |
|
145 | + * @inheritdoc |
|
146 | + */ |
|
147 | + public function defineRules(): array |
|
148 | + { |
|
149 | + $rules = parent::defineRules(); |
|
150 | + $rules = array_merge($rules, [ |
|
151 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
152 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
153 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
154 | + ]); |
|
155 | + |
|
156 | + return $rules; |
|
157 | + } |
|
158 | 158 | } |
@@ -23,161 +23,161 @@ |
||
23 | 23 | */ |
24 | 24 | class Joint extends MetaJsonLd implements JointInterface, AnatomicalStructureInterface, MedicalEntityInterface, ThingInterface |
25 | 25 | { |
26 | - use JointTrait; |
|
27 | - use AnatomicalStructureTrait; |
|
28 | - use MedicalEntityTrait; |
|
29 | - use ThingTrait; |
|
30 | - |
|
31 | - /** |
|
32 | - * The Schema.org Type Name |
|
33 | - * |
|
34 | - * @var string |
|
35 | - */ |
|
36 | - public static string $schemaTypeName = 'Joint'; |
|
37 | - |
|
38 | - /** |
|
39 | - * The Schema.org Type Scope |
|
40 | - * |
|
41 | - * @var string |
|
42 | - */ |
|
43 | - public static string $schemaTypeScope = 'https://schema.org/Joint'; |
|
44 | - |
|
45 | - /** |
|
46 | - * The Schema.org Type Extends |
|
47 | - * |
|
48 | - * @var string |
|
49 | - */ |
|
50 | - public static string $schemaTypeExtends = 'AnatomicalStructure'; |
|
51 | - |
|
52 | - /** |
|
53 | - * The Schema.org Type Description |
|
54 | - * |
|
55 | - * @var string |
|
56 | - */ |
|
57 | - public static string $schemaTypeDescription = 'The anatomical location at which two or more bones make contact.'; |
|
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 | - 'additionalType' => ['URL'], |
|
76 | - 'alternateName' => ['Text'], |
|
77 | - 'associatedPathophysiology' => ['Text'], |
|
78 | - 'biomechnicalClass' => ['Text'], |
|
79 | - 'bodyLocation' => ['Text'], |
|
80 | - 'code' => ['MedicalCode'], |
|
81 | - 'connectedTo' => ['AnatomicalStructure'], |
|
82 | - 'description' => ['Text'], |
|
83 | - 'diagram' => ['ImageObject'], |
|
84 | - 'disambiguatingDescription' => ['Text'], |
|
85 | - 'functionalClass' => ['MedicalEntity', 'Text'], |
|
86 | - 'funding' => ['Grant'], |
|
87 | - 'guideline' => ['MedicalGuideline'], |
|
88 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
89 | - 'image' => ['URL', 'ImageObject'], |
|
90 | - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], |
|
91 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
92 | - 'medicineSystem' => ['MedicineSystem'], |
|
93 | - 'name' => ['Text'], |
|
94 | - 'partOfSystem' => ['AnatomicalSystem'], |
|
95 | - 'potentialAction' => ['Action'], |
|
96 | - 'recognizingAuthority' => ['Organization'], |
|
97 | - 'relatedCondition' => ['MedicalCondition'], |
|
98 | - 'relatedTherapy' => ['MedicalTherapy'], |
|
99 | - 'relevantSpecialty' => ['MedicalSpecialty'], |
|
100 | - 'sameAs' => ['URL'], |
|
101 | - 'structuralClass' => ['Text'], |
|
102 | - 'study' => ['MedicalStudy'], |
|
103 | - 'subStructure' => ['AnatomicalStructure'], |
|
104 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
105 | - 'url' => ['URL'] |
|
106 | - ]; |
|
107 | - } |
|
108 | - |
|
109 | - |
|
110 | - /** |
|
111 | - * @inheritdoc |
|
112 | - */ |
|
113 | - public function getSchemaPropertyDescriptions(): array |
|
114 | - { |
|
115 | - return [ |
|
116 | - '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.', |
|
117 | - 'alternateName' => 'An alias for the item.', |
|
118 | - 'associatedPathophysiology' => 'If applicable, a description of the pathophysiology associated with the anatomical system, including potential abnormal changes in the mechanical, physical, and biochemical functions of the system.', |
|
119 | - 'biomechnicalClass' => 'The biomechanical properties of the bone.', |
|
120 | - 'bodyLocation' => 'Location in the body of the anatomical structure.', |
|
121 | - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', |
|
122 | - 'connectedTo' => 'Other anatomical structures to which this structure is connected.', |
|
123 | - 'description' => 'A description of the item.', |
|
124 | - 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', |
|
125 | - '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.', |
|
126 | - 'functionalClass' => 'The degree of mobility the joint allows.', |
|
127 | - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
128 | - 'guideline' => 'A medical guideline related to this entity.', |
|
129 | - '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. ', |
|
130 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
131 | - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', |
|
132 | - '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.', |
|
133 | - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', |
|
134 | - 'name' => 'The name of the item.', |
|
135 | - 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', |
|
136 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
137 | - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', |
|
138 | - 'relatedCondition' => 'A medical condition associated with this anatomy.', |
|
139 | - 'relatedTherapy' => 'A medical therapy related to this anatomy.', |
|
140 | - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', |
|
141 | - '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.', |
|
142 | - 'structuralClass' => 'The name given to how bone physically connects to each other.', |
|
143 | - 'study' => 'A medical study or trial related to this entity.', |
|
144 | - 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', |
|
145 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
146 | - 'url' => 'URL of the item.' |
|
147 | - ]; |
|
148 | - } |
|
149 | - |
|
150 | - |
|
151 | - /** |
|
152 | - * @inheritdoc |
|
153 | - */ |
|
154 | - public function getGoogleRequiredSchema(): array |
|
155 | - { |
|
156 | - return ['description', 'name']; |
|
157 | - } |
|
158 | - |
|
159 | - |
|
160 | - /** |
|
161 | - * @inheritdoc |
|
162 | - */ |
|
163 | - public function getGoogleRecommendedSchema(): array |
|
164 | - { |
|
165 | - return ['image', 'url']; |
|
166 | - } |
|
167 | - |
|
168 | - |
|
169 | - /** |
|
170 | - * @inheritdoc |
|
171 | - */ |
|
172 | - public function defineRules(): array |
|
173 | - { |
|
174 | - $rules = parent::defineRules(); |
|
175 | - $rules = array_merge($rules, [ |
|
176 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
177 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
178 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
179 | - ]); |
|
180 | - |
|
181 | - return $rules; |
|
182 | - } |
|
26 | + use JointTrait; |
|
27 | + use AnatomicalStructureTrait; |
|
28 | + use MedicalEntityTrait; |
|
29 | + use ThingTrait; |
|
30 | + |
|
31 | + /** |
|
32 | + * The Schema.org Type Name |
|
33 | + * |
|
34 | + * @var string |
|
35 | + */ |
|
36 | + public static string $schemaTypeName = 'Joint'; |
|
37 | + |
|
38 | + /** |
|
39 | + * The Schema.org Type Scope |
|
40 | + * |
|
41 | + * @var string |
|
42 | + */ |
|
43 | + public static string $schemaTypeScope = 'https://schema.org/Joint'; |
|
44 | + |
|
45 | + /** |
|
46 | + * The Schema.org Type Extends |
|
47 | + * |
|
48 | + * @var string |
|
49 | + */ |
|
50 | + public static string $schemaTypeExtends = 'AnatomicalStructure'; |
|
51 | + |
|
52 | + /** |
|
53 | + * The Schema.org Type Description |
|
54 | + * |
|
55 | + * @var string |
|
56 | + */ |
|
57 | + public static string $schemaTypeDescription = 'The anatomical location at which two or more bones make contact.'; |
|
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 | + 'additionalType' => ['URL'], |
|
76 | + 'alternateName' => ['Text'], |
|
77 | + 'associatedPathophysiology' => ['Text'], |
|
78 | + 'biomechnicalClass' => ['Text'], |
|
79 | + 'bodyLocation' => ['Text'], |
|
80 | + 'code' => ['MedicalCode'], |
|
81 | + 'connectedTo' => ['AnatomicalStructure'], |
|
82 | + 'description' => ['Text'], |
|
83 | + 'diagram' => ['ImageObject'], |
|
84 | + 'disambiguatingDescription' => ['Text'], |
|
85 | + 'functionalClass' => ['MedicalEntity', 'Text'], |
|
86 | + 'funding' => ['Grant'], |
|
87 | + 'guideline' => ['MedicalGuideline'], |
|
88 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
89 | + 'image' => ['URL', 'ImageObject'], |
|
90 | + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], |
|
91 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
92 | + 'medicineSystem' => ['MedicineSystem'], |
|
93 | + 'name' => ['Text'], |
|
94 | + 'partOfSystem' => ['AnatomicalSystem'], |
|
95 | + 'potentialAction' => ['Action'], |
|
96 | + 'recognizingAuthority' => ['Organization'], |
|
97 | + 'relatedCondition' => ['MedicalCondition'], |
|
98 | + 'relatedTherapy' => ['MedicalTherapy'], |
|
99 | + 'relevantSpecialty' => ['MedicalSpecialty'], |
|
100 | + 'sameAs' => ['URL'], |
|
101 | + 'structuralClass' => ['Text'], |
|
102 | + 'study' => ['MedicalStudy'], |
|
103 | + 'subStructure' => ['AnatomicalStructure'], |
|
104 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
105 | + 'url' => ['URL'] |
|
106 | + ]; |
|
107 | + } |
|
108 | + |
|
109 | + |
|
110 | + /** |
|
111 | + * @inheritdoc |
|
112 | + */ |
|
113 | + public function getSchemaPropertyDescriptions(): array |
|
114 | + { |
|
115 | + return [ |
|
116 | + '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.', |
|
117 | + 'alternateName' => 'An alias for the item.', |
|
118 | + 'associatedPathophysiology' => 'If applicable, a description of the pathophysiology associated with the anatomical system, including potential abnormal changes in the mechanical, physical, and biochemical functions of the system.', |
|
119 | + 'biomechnicalClass' => 'The biomechanical properties of the bone.', |
|
120 | + 'bodyLocation' => 'Location in the body of the anatomical structure.', |
|
121 | + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', |
|
122 | + 'connectedTo' => 'Other anatomical structures to which this structure is connected.', |
|
123 | + 'description' => 'A description of the item.', |
|
124 | + 'diagram' => 'An image containing a diagram that illustrates the structure and/or its component substructures and/or connections with other structures.', |
|
125 | + '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.', |
|
126 | + 'functionalClass' => 'The degree of mobility the joint allows.', |
|
127 | + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
128 | + 'guideline' => 'A medical guideline related to this entity.', |
|
129 | + '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. ', |
|
130 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
131 | + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', |
|
132 | + '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.', |
|
133 | + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', |
|
134 | + 'name' => 'The name of the item.', |
|
135 | + 'partOfSystem' => 'The anatomical or organ system that this structure is part of.', |
|
136 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
137 | + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', |
|
138 | + 'relatedCondition' => 'A medical condition associated with this anatomy.', |
|
139 | + 'relatedTherapy' => 'A medical therapy related to this anatomy.', |
|
140 | + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', |
|
141 | + '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.', |
|
142 | + 'structuralClass' => 'The name given to how bone physically connects to each other.', |
|
143 | + 'study' => 'A medical study or trial related to this entity.', |
|
144 | + 'subStructure' => 'Component (sub-)structure(s) that comprise this anatomical structure.', |
|
145 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
146 | + 'url' => 'URL of the item.' |
|
147 | + ]; |
|
148 | + } |
|
149 | + |
|
150 | + |
|
151 | + /** |
|
152 | + * @inheritdoc |
|
153 | + */ |
|
154 | + public function getGoogleRequiredSchema(): array |
|
155 | + { |
|
156 | + return ['description', 'name']; |
|
157 | + } |
|
158 | + |
|
159 | + |
|
160 | + /** |
|
161 | + * @inheritdoc |
|
162 | + */ |
|
163 | + public function getGoogleRecommendedSchema(): array |
|
164 | + { |
|
165 | + return ['image', 'url']; |
|
166 | + } |
|
167 | + |
|
168 | + |
|
169 | + /** |
|
170 | + * @inheritdoc |
|
171 | + */ |
|
172 | + public function defineRules(): array |
|
173 | + { |
|
174 | + $rules = parent::defineRules(); |
|
175 | + $rules = array_merge($rules, [ |
|
176 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
177 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
178 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
179 | + ]); |
|
180 | + |
|
181 | + return $rules; |
|
182 | + } |
|
183 | 183 | } |
@@ -23,331 +23,331 @@ |
||
23 | 23 | */ |
24 | 24 | class ToyStore extends MetaJsonLd implements ToyStoreInterface, StoreInterface, LocalBusinessInterface, PlaceInterface, ThingInterface, OrganizationInterface |
25 | 25 | { |
26 | - use ToyStoreTrait; |
|
27 | - use StoreTrait; |
|
28 | - use LocalBusinessTrait; |
|
29 | - use PlaceTrait; |
|
30 | - use ThingTrait; |
|
31 | - use OrganizationTrait; |
|
26 | + use ToyStoreTrait; |
|
27 | + use StoreTrait; |
|
28 | + use LocalBusinessTrait; |
|
29 | + use PlaceTrait; |
|
30 | + use ThingTrait; |
|
31 | + use OrganizationTrait; |
|
32 | 32 | |
33 | - /** |
|
34 | - * The Schema.org Type Name |
|
35 | - * |
|
36 | - * @var string |
|
37 | - */ |
|
38 | - public static string $schemaTypeName = 'ToyStore'; |
|
33 | + /** |
|
34 | + * The Schema.org Type Name |
|
35 | + * |
|
36 | + * @var string |
|
37 | + */ |
|
38 | + public static string $schemaTypeName = 'ToyStore'; |
|
39 | 39 | |
40 | - /** |
|
41 | - * The Schema.org Type Scope |
|
42 | - * |
|
43 | - * @var string |
|
44 | - */ |
|
45 | - public static string $schemaTypeScope = 'https://schema.org/ToyStore'; |
|
40 | + /** |
|
41 | + * The Schema.org Type Scope |
|
42 | + * |
|
43 | + * @var string |
|
44 | + */ |
|
45 | + public static string $schemaTypeScope = 'https://schema.org/ToyStore'; |
|
46 | 46 | |
47 | - /** |
|
48 | - * The Schema.org Type Extends |
|
49 | - * |
|
50 | - * @var string |
|
51 | - */ |
|
52 | - public static string $schemaTypeExtends = 'Store'; |
|
47 | + /** |
|
48 | + * The Schema.org Type Extends |
|
49 | + * |
|
50 | + * @var string |
|
51 | + */ |
|
52 | + public static string $schemaTypeExtends = 'Store'; |
|
53 | 53 | |
54 | - /** |
|
55 | - * The Schema.org Type Description |
|
56 | - * |
|
57 | - * @var string |
|
58 | - */ |
|
59 | - public static string $schemaTypeDescription = 'A toy store.'; |
|
54 | + /** |
|
55 | + * The Schema.org Type Description |
|
56 | + * |
|
57 | + * @var string |
|
58 | + */ |
|
59 | + public static string $schemaTypeDescription = 'A toy store.'; |
|
60 | 60 | |
61 | 61 | |
62 | - /** |
|
63 | - * @inheritdoc |
|
64 | - */ |
|
65 | - public function getSchemaPropertyNames(): array |
|
66 | - { |
|
67 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | - } |
|
62 | + /** |
|
63 | + * @inheritdoc |
|
64 | + */ |
|
65 | + public function getSchemaPropertyNames(): array |
|
66 | + { |
|
67 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
68 | + } |
|
69 | 69 | |
70 | 70 | |
71 | - /** |
|
72 | - * @inheritdoc |
|
73 | - */ |
|
74 | - public function getSchemaPropertyExpectedTypes(): array |
|
75 | - { |
|
76 | - return [ |
|
77 | - 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], |
|
78 | - 'additionalProperty' => ['PropertyValue'], |
|
79 | - 'additionalType' => ['URL'], |
|
80 | - 'address' => ['Text', 'PostalAddress'], |
|
81 | - 'aggregateRating' => ['AggregateRating'], |
|
82 | - 'alternateName' => ['Text'], |
|
83 | - 'alumni' => ['Person'], |
|
84 | - 'amenityFeature' => ['LocationFeatureSpecification'], |
|
85 | - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
86 | - 'award' => ['Text'], |
|
87 | - 'awards' => ['Text'], |
|
88 | - 'branchCode' => ['Text'], |
|
89 | - 'branchOf' => ['Organization'], |
|
90 | - 'brand' => ['Brand', 'Organization'], |
|
91 | - 'contactPoint' => ['ContactPoint'], |
|
92 | - 'contactPoints' => ['ContactPoint'], |
|
93 | - 'containedIn' => ['Place'], |
|
94 | - 'containedInPlace' => ['Place'], |
|
95 | - 'containsPlace' => ['Place'], |
|
96 | - 'correctionsPolicy' => ['URL', 'CreativeWork'], |
|
97 | - 'currenciesAccepted' => ['Text'], |
|
98 | - 'department' => ['Organization'], |
|
99 | - 'description' => ['Text'], |
|
100 | - 'disambiguatingDescription' => ['Text'], |
|
101 | - 'dissolutionDate' => ['Date'], |
|
102 | - 'diversityPolicy' => ['URL', 'CreativeWork'], |
|
103 | - 'diversityStaffingReport' => ['Article', 'URL'], |
|
104 | - 'duns' => ['Text'], |
|
105 | - 'email' => ['Text'], |
|
106 | - 'employee' => ['Person'], |
|
107 | - 'employees' => ['Person'], |
|
108 | - 'ethicsPolicy' => ['CreativeWork', 'URL'], |
|
109 | - 'event' => ['Event'], |
|
110 | - 'events' => ['Event'], |
|
111 | - 'faxNumber' => ['Text'], |
|
112 | - 'founder' => ['Person'], |
|
113 | - 'founders' => ['Person'], |
|
114 | - 'foundingDate' => ['Date'], |
|
115 | - 'foundingLocation' => ['Place'], |
|
116 | - 'funder' => ['Organization', 'Person'], |
|
117 | - 'funding' => ['Grant'], |
|
118 | - 'geo' => ['GeoCoordinates', 'GeoShape'], |
|
119 | - 'geoContains' => ['Place', 'GeospatialGeometry'], |
|
120 | - 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], |
|
121 | - 'geoCovers' => ['GeospatialGeometry', 'Place'], |
|
122 | - 'geoCrosses' => ['GeospatialGeometry', 'Place'], |
|
123 | - 'geoDisjoint' => ['GeospatialGeometry', 'Place'], |
|
124 | - 'geoEquals' => ['GeospatialGeometry', 'Place'], |
|
125 | - 'geoIntersects' => ['GeospatialGeometry', 'Place'], |
|
126 | - 'geoOverlaps' => ['GeospatialGeometry', 'Place'], |
|
127 | - 'geoTouches' => ['GeospatialGeometry', 'Place'], |
|
128 | - 'geoWithin' => ['GeospatialGeometry', 'Place'], |
|
129 | - 'globalLocationNumber' => ['Text'], |
|
130 | - 'hasCredential' => ['EducationalOccupationalCredential'], |
|
131 | - 'hasDriveThroughService' => ['Boolean'], |
|
132 | - 'hasMap' => ['URL', 'Map'], |
|
133 | - 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], |
|
134 | - 'hasOfferCatalog' => ['OfferCatalog'], |
|
135 | - 'hasPOS' => ['Place'], |
|
136 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
137 | - 'image' => ['URL', 'ImageObject'], |
|
138 | - 'interactionStatistic' => ['InteractionCounter'], |
|
139 | - 'isAccessibleForFree' => ['Boolean'], |
|
140 | - 'isicV4' => ['Text'], |
|
141 | - 'iso6523Code' => ['Text'], |
|
142 | - 'keywords' => ['URL', 'DefinedTerm', 'Text'], |
|
143 | - 'knowsAbout' => ['Thing', 'Text', 'URL'], |
|
144 | - 'knowsLanguage' => ['Text', 'Language'], |
|
145 | - 'latitude' => ['Number', 'Text'], |
|
146 | - 'legalName' => ['Text'], |
|
147 | - 'leiCode' => ['Text'], |
|
148 | - 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
149 | - 'logo' => ['ImageObject', 'URL'], |
|
150 | - 'longitude' => ['Text', 'Number'], |
|
151 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
152 | - 'makesOffer' => ['Offer'], |
|
153 | - 'map' => ['URL'], |
|
154 | - 'maps' => ['URL'], |
|
155 | - 'maximumAttendeeCapacity' => ['Integer'], |
|
156 | - 'member' => ['Organization', 'Person'], |
|
157 | - 'memberOf' => ['Organization', 'ProgramMembership'], |
|
158 | - 'members' => ['Organization', 'Person'], |
|
159 | - 'naics' => ['Text'], |
|
160 | - 'name' => ['Text'], |
|
161 | - 'nonprofitStatus' => ['NonprofitType'], |
|
162 | - 'numberOfEmployees' => ['QuantitativeValue'], |
|
163 | - 'openingHours' => ['Text'], |
|
164 | - 'openingHoursSpecification' => ['OpeningHoursSpecification'], |
|
165 | - 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], |
|
166 | - 'owns' => ['Product', 'OwnershipInfo'], |
|
167 | - 'parentOrganization' => ['Organization'], |
|
168 | - 'paymentAccepted' => ['Text'], |
|
169 | - 'photo' => ['Photograph', 'ImageObject'], |
|
170 | - 'photos' => ['ImageObject', 'Photograph'], |
|
171 | - 'potentialAction' => ['Action'], |
|
172 | - 'priceRange' => ['Text'], |
|
173 | - 'publicAccess' => ['Boolean'], |
|
174 | - 'publishingPrinciples' => ['CreativeWork', 'URL'], |
|
175 | - 'review' => ['Review'], |
|
176 | - 'reviews' => ['Review'], |
|
177 | - 'sameAs' => ['URL'], |
|
178 | - 'seeks' => ['Demand'], |
|
179 | - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
180 | - 'slogan' => ['Text'], |
|
181 | - 'smokingAllowed' => ['Boolean'], |
|
182 | - 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], |
|
183 | - 'sponsor' => ['Organization', 'Person'], |
|
184 | - 'subOrganization' => ['Organization'], |
|
185 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
186 | - 'taxID' => ['Text'], |
|
187 | - 'telephone' => ['Text'], |
|
188 | - 'tourBookingPage' => ['URL'], |
|
189 | - 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], |
|
190 | - 'url' => ['URL'], |
|
191 | - 'vatID' => ['Text'] |
|
192 | - ]; |
|
193 | - } |
|
71 | + /** |
|
72 | + * @inheritdoc |
|
73 | + */ |
|
74 | + public function getSchemaPropertyExpectedTypes(): array |
|
75 | + { |
|
76 | + return [ |
|
77 | + 'actionableFeedbackPolicy' => ['CreativeWork', 'URL'], |
|
78 | + 'additionalProperty' => ['PropertyValue'], |
|
79 | + 'additionalType' => ['URL'], |
|
80 | + 'address' => ['Text', 'PostalAddress'], |
|
81 | + 'aggregateRating' => ['AggregateRating'], |
|
82 | + 'alternateName' => ['Text'], |
|
83 | + 'alumni' => ['Person'], |
|
84 | + 'amenityFeature' => ['LocationFeatureSpecification'], |
|
85 | + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
86 | + 'award' => ['Text'], |
|
87 | + 'awards' => ['Text'], |
|
88 | + 'branchCode' => ['Text'], |
|
89 | + 'branchOf' => ['Organization'], |
|
90 | + 'brand' => ['Brand', 'Organization'], |
|
91 | + 'contactPoint' => ['ContactPoint'], |
|
92 | + 'contactPoints' => ['ContactPoint'], |
|
93 | + 'containedIn' => ['Place'], |
|
94 | + 'containedInPlace' => ['Place'], |
|
95 | + 'containsPlace' => ['Place'], |
|
96 | + 'correctionsPolicy' => ['URL', 'CreativeWork'], |
|
97 | + 'currenciesAccepted' => ['Text'], |
|
98 | + 'department' => ['Organization'], |
|
99 | + 'description' => ['Text'], |
|
100 | + 'disambiguatingDescription' => ['Text'], |
|
101 | + 'dissolutionDate' => ['Date'], |
|
102 | + 'diversityPolicy' => ['URL', 'CreativeWork'], |
|
103 | + 'diversityStaffingReport' => ['Article', 'URL'], |
|
104 | + 'duns' => ['Text'], |
|
105 | + 'email' => ['Text'], |
|
106 | + 'employee' => ['Person'], |
|
107 | + 'employees' => ['Person'], |
|
108 | + 'ethicsPolicy' => ['CreativeWork', 'URL'], |
|
109 | + 'event' => ['Event'], |
|
110 | + 'events' => ['Event'], |
|
111 | + 'faxNumber' => ['Text'], |
|
112 | + 'founder' => ['Person'], |
|
113 | + 'founders' => ['Person'], |
|
114 | + 'foundingDate' => ['Date'], |
|
115 | + 'foundingLocation' => ['Place'], |
|
116 | + 'funder' => ['Organization', 'Person'], |
|
117 | + 'funding' => ['Grant'], |
|
118 | + 'geo' => ['GeoCoordinates', 'GeoShape'], |
|
119 | + 'geoContains' => ['Place', 'GeospatialGeometry'], |
|
120 | + 'geoCoveredBy' => ['GeospatialGeometry', 'Place'], |
|
121 | + 'geoCovers' => ['GeospatialGeometry', 'Place'], |
|
122 | + 'geoCrosses' => ['GeospatialGeometry', 'Place'], |
|
123 | + 'geoDisjoint' => ['GeospatialGeometry', 'Place'], |
|
124 | + 'geoEquals' => ['GeospatialGeometry', 'Place'], |
|
125 | + 'geoIntersects' => ['GeospatialGeometry', 'Place'], |
|
126 | + 'geoOverlaps' => ['GeospatialGeometry', 'Place'], |
|
127 | + 'geoTouches' => ['GeospatialGeometry', 'Place'], |
|
128 | + 'geoWithin' => ['GeospatialGeometry', 'Place'], |
|
129 | + 'globalLocationNumber' => ['Text'], |
|
130 | + 'hasCredential' => ['EducationalOccupationalCredential'], |
|
131 | + 'hasDriveThroughService' => ['Boolean'], |
|
132 | + 'hasMap' => ['URL', 'Map'], |
|
133 | + 'hasMerchantReturnPolicy' => ['MerchantReturnPolicy'], |
|
134 | + 'hasOfferCatalog' => ['OfferCatalog'], |
|
135 | + 'hasPOS' => ['Place'], |
|
136 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
137 | + 'image' => ['URL', 'ImageObject'], |
|
138 | + 'interactionStatistic' => ['InteractionCounter'], |
|
139 | + 'isAccessibleForFree' => ['Boolean'], |
|
140 | + 'isicV4' => ['Text'], |
|
141 | + 'iso6523Code' => ['Text'], |
|
142 | + 'keywords' => ['URL', 'DefinedTerm', 'Text'], |
|
143 | + 'knowsAbout' => ['Thing', 'Text', 'URL'], |
|
144 | + 'knowsLanguage' => ['Text', 'Language'], |
|
145 | + 'latitude' => ['Number', 'Text'], |
|
146 | + 'legalName' => ['Text'], |
|
147 | + 'leiCode' => ['Text'], |
|
148 | + 'location' => ['Place', 'Text', 'VirtualLocation', 'PostalAddress'], |
|
149 | + 'logo' => ['ImageObject', 'URL'], |
|
150 | + 'longitude' => ['Text', 'Number'], |
|
151 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
152 | + 'makesOffer' => ['Offer'], |
|
153 | + 'map' => ['URL'], |
|
154 | + 'maps' => ['URL'], |
|
155 | + 'maximumAttendeeCapacity' => ['Integer'], |
|
156 | + 'member' => ['Organization', 'Person'], |
|
157 | + 'memberOf' => ['Organization', 'ProgramMembership'], |
|
158 | + 'members' => ['Organization', 'Person'], |
|
159 | + 'naics' => ['Text'], |
|
160 | + 'name' => ['Text'], |
|
161 | + 'nonprofitStatus' => ['NonprofitType'], |
|
162 | + 'numberOfEmployees' => ['QuantitativeValue'], |
|
163 | + 'openingHours' => ['Text'], |
|
164 | + 'openingHoursSpecification' => ['OpeningHoursSpecification'], |
|
165 | + 'ownershipFundingInfo' => ['AboutPage', 'Text', 'CreativeWork', 'URL'], |
|
166 | + 'owns' => ['Product', 'OwnershipInfo'], |
|
167 | + 'parentOrganization' => ['Organization'], |
|
168 | + 'paymentAccepted' => ['Text'], |
|
169 | + 'photo' => ['Photograph', 'ImageObject'], |
|
170 | + 'photos' => ['ImageObject', 'Photograph'], |
|
171 | + 'potentialAction' => ['Action'], |
|
172 | + 'priceRange' => ['Text'], |
|
173 | + 'publicAccess' => ['Boolean'], |
|
174 | + 'publishingPrinciples' => ['CreativeWork', 'URL'], |
|
175 | + 'review' => ['Review'], |
|
176 | + 'reviews' => ['Review'], |
|
177 | + 'sameAs' => ['URL'], |
|
178 | + 'seeks' => ['Demand'], |
|
179 | + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
180 | + 'slogan' => ['Text'], |
|
181 | + 'smokingAllowed' => ['Boolean'], |
|
182 | + 'specialOpeningHoursSpecification' => ['OpeningHoursSpecification'], |
|
183 | + 'sponsor' => ['Organization', 'Person'], |
|
184 | + 'subOrganization' => ['Organization'], |
|
185 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
186 | + 'taxID' => ['Text'], |
|
187 | + 'telephone' => ['Text'], |
|
188 | + 'tourBookingPage' => ['URL'], |
|
189 | + 'unnamedSourcesPolicy' => ['CreativeWork', 'URL'], |
|
190 | + 'url' => ['URL'], |
|
191 | + 'vatID' => ['Text'] |
|
192 | + ]; |
|
193 | + } |
|
194 | 194 | |
195 | 195 | |
196 | - /** |
|
197 | - * @inheritdoc |
|
198 | - */ |
|
199 | - public function getSchemaPropertyDescriptions(): array |
|
200 | - { |
|
201 | - return [ |
|
202 | - 'actionableFeedbackPolicy' => 'For a [[NewsMediaOrganization]] or other news-related [[Organization]], a statement about public engagement activities (for news media, the newsroom’s), including involving the public - digitally or otherwise -- in coverage decisions, reporting and activities after publication.', |
|
203 | - '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. ', |
|
204 | - '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.', |
|
205 | - 'address' => 'Physical address of the item.', |
|
206 | - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
207 | - 'alternateName' => 'An alias for the item.', |
|
208 | - 'alumni' => 'Alumni of an organization.', |
|
209 | - 'amenityFeature' => 'An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.', |
|
210 | - 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
211 | - 'award' => 'An award won by or for this item.', |
|
212 | - 'awards' => 'Awards won by or for this item.', |
|
213 | - 'branchCode' => 'A short textual code (also called "store code") that uniquely identifies a place of business. The code is typically assigned by the parentOrganization and used in structured URLs. For example, in the URL http://www.starbucks.co.uk/store-locator/etc/detail/3047 the code "3047" is a branchCode for a particular branch. ', |
|
214 | - 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', |
|
215 | - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
216 | - 'contactPoint' => 'A contact point for a person or organization.', |
|
217 | - 'contactPoints' => 'A contact point for a person or organization.', |
|
218 | - 'containedIn' => 'The basic containment relation between a place and one that contains it.', |
|
219 | - 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', |
|
220 | - 'containsPlace' => 'The basic containment relation between a place and another that it contains.', |
|
221 | - 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', |
|
222 | - 'currenciesAccepted' => 'The currency accepted. Use standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. "USD"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. "BTC"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. "Ithaca HOUR".', |
|
223 | - 'department' => 'A relationship between an organization and a department of that organization, also described as an organization (allowing different urls, logos, opening hours). For example: a store with a pharmacy, or a bakery with a cafe.', |
|
224 | - 'description' => 'A description of the item.', |
|
225 | - '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.', |
|
226 | - 'dissolutionDate' => 'The date that this organization was dissolved.', |
|
227 | - 'diversityPolicy' => 'Statement on diversity policy by an [[Organization]] e.g. a [[NewsMediaOrganization]]. For a [[NewsMediaOrganization]], a statement describing the newsroom’s diversity policy on both staffing and sources, typically providing staffing data.', |
|
228 | - 'diversityStaffingReport' => 'For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a report on staffing diversity issues. In a news context this might be for example ASNE or RTDNA (US) reports, or self-reported.', |
|
229 | - 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', |
|
230 | - 'email' => 'Email address.', |
|
231 | - 'employee' => 'Someone working for this organization.', |
|
232 | - 'employees' => 'People working for this organization.', |
|
233 | - 'ethicsPolicy' => 'Statement about ethics policy, e.g. of a [[NewsMediaOrganization]] regarding journalistic and publishing practices, or of a [[Restaurant]], a page describing food source policies. In the case of a [[NewsMediaOrganization]], an ethicsPolicy is typically a statement describing the personal, organizational, and corporate standards of behavior expected by the organization.', |
|
234 | - 'event' => 'Upcoming or past event associated with this place, organization, or action.', |
|
235 | - 'events' => 'Upcoming or past events associated with this place or organization.', |
|
236 | - 'faxNumber' => 'The fax number.', |
|
237 | - 'founder' => 'A person who founded this organization.', |
|
238 | - 'founders' => 'A person who founded this organization.', |
|
239 | - 'foundingDate' => 'The date that this organization was founded.', |
|
240 | - 'foundingLocation' => 'The place where the Organization was founded.', |
|
241 | - 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', |
|
242 | - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
243 | - 'geo' => 'The geo coordinates of the place.', |
|
244 | - 'geoContains' => 'Represents a relationship between two geometries (or the places they represent), relating a containing geometry to a contained geometry. "a contains b iff no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
245 | - 'geoCoveredBy' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to another that covers it. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
246 | - 'geoCovers' => 'Represents a relationship between two geometries (or the places they represent), relating a covering geometry to a covered geometry. "Every point of b is a point of (the interior or boundary of) a". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
247 | - 'geoCrosses' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to another that crosses it: "a crosses b: they have some but not all interior points in common, and the dimension of the intersection is less than that of at least one of them". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
248 | - 'geoDisjoint' => 'Represents spatial relations in which two geometries (or the places they represent) are topologically disjoint: "they have no point in common. They form a set of disconnected geometries." (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)', |
|
249 | - 'geoEquals' => 'Represents spatial relations in which two geometries (or the places they represent) are topologically equal, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM). "Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other" (a symmetric relationship).', |
|
250 | - 'geoIntersects' => 'Represents spatial relations in which two geometries (or the places they represent) have at least one point in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
251 | - 'geoOverlaps' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to another that geospatially overlaps it, i.e. they have some but not all points in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
252 | - 'geoTouches' => 'Represents spatial relations in which two geometries (or the places they represent) touch: "they have at least one boundary point in common, but no interior points." (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)', |
|
253 | - 'geoWithin' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to one that contains it, i.e. it is inside (i.e. within) its interior. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
254 | - 'globalLocationNumber' => 'The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.', |
|
255 | - 'hasCredential' => 'A credential awarded to the Person or Organization.', |
|
256 | - 'hasDriveThroughService' => 'Indicates whether some facility (e.g. [[FoodEstablishment]], [[CovidTestingFacility]]) offers a service that can be used by driving through in a car. In the case of [[CovidTestingFacility]] such facilities could potentially help with social distancing from other potentially-infected users.', |
|
257 | - 'hasMap' => 'A URL to a map of the place.', |
|
258 | - 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', |
|
259 | - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
260 | - 'hasPOS' => 'Points-of-Sales operated by the organization or person.', |
|
261 | - '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. ', |
|
262 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
263 | - 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', |
|
264 | - 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', |
|
265 | - 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', |
|
266 | - 'iso6523Code' => 'An organization identifier as defined in ISO 6523(-1). Note that many existing organization identifiers such as [leiCode](https://schema.org/leiCode), [duns](https://schema.org/duns) and [vatID](https://schema.org/vatID) can be expressed as an ISO 6523 identifier by setting the ICD part of the ISO 6523 identifier accordingly. ', |
|
267 | - 'keywords' => 'Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.', |
|
268 | - 'knowsAbout' => 'Of a [[Person]], and less typically of an [[Organization]], to indicate a topic that is known about - suggesting possible expertise but not implying it. We do not distinguish skill levels here, or relate this to educational content, events, objectives or [[JobPosting]] descriptions.', |
|
269 | - 'knowsLanguage' => 'Of a [[Person]], and less typically of an [[Organization]], to indicate a known language. We do not distinguish skill levels or reading/writing/speaking/signing here. Use language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47).', |
|
270 | - 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', |
|
271 | - 'legalName' => 'The official name of the organization, e.g. the registered company name.', |
|
272 | - 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', |
|
273 | - 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
274 | - 'logo' => 'An associated logo.', |
|
275 | - 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', |
|
276 | - '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.', |
|
277 | - 'makesOffer' => 'A pointer to products or services offered by the organization or person.', |
|
278 | - 'map' => 'A URL to a map of the place.', |
|
279 | - 'maps' => 'A URL to a map of the place.', |
|
280 | - 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', |
|
281 | - 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', |
|
282 | - 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', |
|
283 | - 'members' => 'A member of this organization.', |
|
284 | - 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', |
|
285 | - 'name' => 'The name of the item.', |
|
286 | - 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', |
|
287 | - 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', |
|
288 | - 'openingHours' => 'The general opening hours for a business. Opening hours can be specified as a weekly time range, starting with days, then times per day. Multiple days can be listed with commas \',\' separating each day. Day or time ranges are specified using a hyphen \'-\'. * Days are specified using the following two-letter combinations: ```Mo```, ```Tu```, ```We```, ```Th```, ```Fr```, ```Sa```, ```Su```. * Times are specified using 24:00 format. For example, 3pm is specified as ```15:00```, 10am as ```10:00```. * Here is an example: <code><time itemprop="openingHours" datetime="Tu,Th 16:00-20:00">Tuesdays and Thursdays 4-8pm</time></code>. * If a business is open 7 days a week, then it can be specified as <code><time itemprop="openingHours" datetime="Mo-Su">Monday through Sunday, all day</time></code>.', |
|
289 | - 'openingHoursSpecification' => 'The opening hours of a certain place.', |
|
290 | - 'ownershipFundingInfo' => 'For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a description of organizational ownership structure; funding and grants. In a news/media setting, this is with particular reference to editorial independence. Note that the [[funder]] is also available and can be used to make basic funder information machine-readable.', |
|
291 | - 'owns' => 'Products owned by the organization or person.', |
|
292 | - 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', |
|
293 | - 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', |
|
294 | - 'photo' => 'A photograph of this place.', |
|
295 | - 'photos' => 'Photographs of this place.', |
|
296 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
297 | - 'priceRange' => 'The price range of the business, for example ```$$$```.', |
|
298 | - 'publicAccess' => 'A flag to signal that the [[Place]] is open to public visitors. If this property is omitted there is no assumed default boolean value', |
|
299 | - 'publishingPrinciples' => 'The publishingPrinciples property indicates (typically via [[URL]]) a document describing the editorial principles of an [[Organization]] (or individual, e.g. a [[Person]] writing a blog) that relate to their activities as a publisher, e.g. ethics or diversity policies. When applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are those of the party primarily responsible for the creation of the [[CreativeWork]]. While such policies are most typically expressed in natural language, sometimes related information (e.g. indicating a [[funder]]) can be expressed using schema.org terminology. ', |
|
300 | - 'review' => 'A review of the item.', |
|
301 | - 'reviews' => 'Review of the item.', |
|
302 | - '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.', |
|
303 | - 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', |
|
304 | - 'serviceArea' => 'The geographic area where the service is provided.', |
|
305 | - 'slogan' => 'A slogan or motto associated with the item.', |
|
306 | - 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', |
|
307 | - 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', |
|
308 | - 'sponsor' => 'A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.', |
|
309 | - 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', |
|
310 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
311 | - 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', |
|
312 | - 'telephone' => 'The telephone number.', |
|
313 | - 'tourBookingPage' => 'A page providing information on how to book a tour of some [[Place]], such as an [[Accommodation]] or [[ApartmentComplex]] in a real estate setting, as well as other kinds of tours as appropriate.', |
|
314 | - 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', |
|
315 | - 'url' => 'URL of the item.', |
|
316 | - 'vatID' => 'The Value-added Tax ID of the organization or person.' |
|
317 | - ]; |
|
318 | - } |
|
196 | + /** |
|
197 | + * @inheritdoc |
|
198 | + */ |
|
199 | + public function getSchemaPropertyDescriptions(): array |
|
200 | + { |
|
201 | + return [ |
|
202 | + 'actionableFeedbackPolicy' => 'For a [[NewsMediaOrganization]] or other news-related [[Organization]], a statement about public engagement activities (for news media, the newsroom’s), including involving the public - digitally or otherwise -- in coverage decisions, reporting and activities after publication.', |
|
203 | + '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. ', |
|
204 | + '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.', |
|
205 | + 'address' => 'Physical address of the item.', |
|
206 | + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
207 | + 'alternateName' => 'An alias for the item.', |
|
208 | + 'alumni' => 'Alumni of an organization.', |
|
209 | + 'amenityFeature' => 'An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.', |
|
210 | + 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
211 | + 'award' => 'An award won by or for this item.', |
|
212 | + 'awards' => 'Awards won by or for this item.', |
|
213 | + 'branchCode' => 'A short textual code (also called "store code") that uniquely identifies a place of business. The code is typically assigned by the parentOrganization and used in structured URLs. For example, in the URL http://www.starbucks.co.uk/store-locator/etc/detail/3047 the code "3047" is a branchCode for a particular branch. ', |
|
214 | + 'branchOf' => 'The larger organization that this local business is a branch of, if any. Not to be confused with (anatomical) [[branch]].', |
|
215 | + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
216 | + 'contactPoint' => 'A contact point for a person or organization.', |
|
217 | + 'contactPoints' => 'A contact point for a person or organization.', |
|
218 | + 'containedIn' => 'The basic containment relation between a place and one that contains it.', |
|
219 | + 'containedInPlace' => 'The basic containment relation between a place and one that contains it.', |
|
220 | + 'containsPlace' => 'The basic containment relation between a place and another that it contains.', |
|
221 | + 'correctionsPolicy' => 'For an [[Organization]] (e.g. [[NewsMediaOrganization]]), a statement describing (in news media, the newsroom’s) disclosure and correction policy for errors.', |
|
222 | + 'currenciesAccepted' => 'The currency accepted. Use standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. "USD"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. "BTC"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. "Ithaca HOUR".', |
|
223 | + 'department' => 'A relationship between an organization and a department of that organization, also described as an organization (allowing different urls, logos, opening hours). For example: a store with a pharmacy, or a bakery with a cafe.', |
|
224 | + 'description' => 'A description of the item.', |
|
225 | + '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.', |
|
226 | + 'dissolutionDate' => 'The date that this organization was dissolved.', |
|
227 | + 'diversityPolicy' => 'Statement on diversity policy by an [[Organization]] e.g. a [[NewsMediaOrganization]]. For a [[NewsMediaOrganization]], a statement describing the newsroom’s diversity policy on both staffing and sources, typically providing staffing data.', |
|
228 | + 'diversityStaffingReport' => 'For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a report on staffing diversity issues. In a news context this might be for example ASNE or RTDNA (US) reports, or self-reported.', |
|
229 | + 'duns' => 'The Dun & Bradstreet DUNS number for identifying an organization or business person.', |
|
230 | + 'email' => 'Email address.', |
|
231 | + 'employee' => 'Someone working for this organization.', |
|
232 | + 'employees' => 'People working for this organization.', |
|
233 | + 'ethicsPolicy' => 'Statement about ethics policy, e.g. of a [[NewsMediaOrganization]] regarding journalistic and publishing practices, or of a [[Restaurant]], a page describing food source policies. In the case of a [[NewsMediaOrganization]], an ethicsPolicy is typically a statement describing the personal, organizational, and corporate standards of behavior expected by the organization.', |
|
234 | + 'event' => 'Upcoming or past event associated with this place, organization, or action.', |
|
235 | + 'events' => 'Upcoming or past events associated with this place or organization.', |
|
236 | + 'faxNumber' => 'The fax number.', |
|
237 | + 'founder' => 'A person who founded this organization.', |
|
238 | + 'founders' => 'A person who founded this organization.', |
|
239 | + 'foundingDate' => 'The date that this organization was founded.', |
|
240 | + 'foundingLocation' => 'The place where the Organization was founded.', |
|
241 | + 'funder' => 'A person or organization that supports (sponsors) something through some kind of financial contribution.', |
|
242 | + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
243 | + 'geo' => 'The geo coordinates of the place.', |
|
244 | + 'geoContains' => 'Represents a relationship between two geometries (or the places they represent), relating a containing geometry to a contained geometry. "a contains b iff no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
245 | + 'geoCoveredBy' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to another that covers it. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
246 | + 'geoCovers' => 'Represents a relationship between two geometries (or the places they represent), relating a covering geometry to a covered geometry. "Every point of b is a point of (the interior or boundary of) a". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
247 | + 'geoCrosses' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to another that crosses it: "a crosses b: they have some but not all interior points in common, and the dimension of the intersection is less than that of at least one of them". As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
248 | + 'geoDisjoint' => 'Represents spatial relations in which two geometries (or the places they represent) are topologically disjoint: "they have no point in common. They form a set of disconnected geometries." (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)', |
|
249 | + 'geoEquals' => 'Represents spatial relations in which two geometries (or the places they represent) are topologically equal, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM). "Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other" (a symmetric relationship).', |
|
250 | + 'geoIntersects' => 'Represents spatial relations in which two geometries (or the places they represent) have at least one point in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
251 | + 'geoOverlaps' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to another that geospatially overlaps it, i.e. they have some but not all points in common. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
252 | + 'geoTouches' => 'Represents spatial relations in which two geometries (or the places they represent) touch: "they have at least one boundary point in common, but no interior points." (A symmetric relationship, as defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).)', |
|
253 | + 'geoWithin' => 'Represents a relationship between two geometries (or the places they represent), relating a geometry to one that contains it, i.e. it is inside (i.e. within) its interior. As defined in [DE-9IM](https://en.wikipedia.org/wiki/DE-9IM).', |
|
254 | + 'globalLocationNumber' => 'The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations.', |
|
255 | + 'hasCredential' => 'A credential awarded to the Person or Organization.', |
|
256 | + 'hasDriveThroughService' => 'Indicates whether some facility (e.g. [[FoodEstablishment]], [[CovidTestingFacility]]) offers a service that can be used by driving through in a car. In the case of [[CovidTestingFacility]] such facilities could potentially help with social distancing from other potentially-infected users.', |
|
257 | + 'hasMap' => 'A URL to a map of the place.', |
|
258 | + 'hasMerchantReturnPolicy' => 'Specifies a MerchantReturnPolicy that may be applicable.', |
|
259 | + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
260 | + 'hasPOS' => 'Points-of-Sales operated by the organization or person.', |
|
261 | + '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. ', |
|
262 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
263 | + 'interactionStatistic' => 'The number of interactions for the CreativeWork using the WebSite or SoftwareApplication. The most specific child type of InteractionCounter should be used.', |
|
264 | + 'isAccessibleForFree' => 'A flag to signal that the item, event, or place is accessible for free.', |
|
265 | + 'isicV4' => 'The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place.', |
|
266 | + 'iso6523Code' => 'An organization identifier as defined in ISO 6523(-1). Note that many existing organization identifiers such as [leiCode](https://schema.org/leiCode), [duns](https://schema.org/duns) and [vatID](https://schema.org/vatID) can be expressed as an ISO 6523 identifier by setting the ICD part of the ISO 6523 identifier accordingly. ', |
|
267 | + 'keywords' => 'Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.', |
|
268 | + 'knowsAbout' => 'Of a [[Person]], and less typically of an [[Organization]], to indicate a topic that is known about - suggesting possible expertise but not implying it. We do not distinguish skill levels here, or relate this to educational content, events, objectives or [[JobPosting]] descriptions.', |
|
269 | + 'knowsLanguage' => 'Of a [[Person]], and less typically of an [[Organization]], to indicate a known language. We do not distinguish skill levels or reading/writing/speaking/signing here. Use language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47).', |
|
270 | + 'latitude' => 'The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', |
|
271 | + 'legalName' => 'The official name of the organization, e.g. the registered company name.', |
|
272 | + 'leiCode' => 'An organization identifier that uniquely identifies a legal entity as defined in ISO 17442.', |
|
273 | + 'location' => 'The location of, for example, where an event is happening, where an organization is located, or where an action takes place.', |
|
274 | + 'logo' => 'An associated logo.', |
|
275 | + 'longitude' => 'The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).', |
|
276 | + '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.', |
|
277 | + 'makesOffer' => 'A pointer to products or services offered by the organization or person.', |
|
278 | + 'map' => 'A URL to a map of the place.', |
|
279 | + 'maps' => 'A URL to a map of the place.', |
|
280 | + 'maximumAttendeeCapacity' => 'The total number of individuals that may attend an event or venue.', |
|
281 | + 'member' => 'A member of an Organization or a ProgramMembership. Organizations can be members of organizations; ProgramMembership is typically for individuals.', |
|
282 | + 'memberOf' => 'An Organization (or ProgramMembership) to which this Person or Organization belongs.', |
|
283 | + 'members' => 'A member of this organization.', |
|
284 | + 'naics' => 'The North American Industry Classification System (NAICS) code for a particular organization or business person.', |
|
285 | + 'name' => 'The name of the item.', |
|
286 | + 'nonprofitStatus' => 'nonprofitStatus indicates the legal status of a non-profit organization in its primary place of business.', |
|
287 | + 'numberOfEmployees' => 'The number of employees in an organization, e.g. business.', |
|
288 | + 'openingHours' => 'The general opening hours for a business. Opening hours can be specified as a weekly time range, starting with days, then times per day. Multiple days can be listed with commas \',\' separating each day. Day or time ranges are specified using a hyphen \'-\'. * Days are specified using the following two-letter combinations: ```Mo```, ```Tu```, ```We```, ```Th```, ```Fr```, ```Sa```, ```Su```. * Times are specified using 24:00 format. For example, 3pm is specified as ```15:00```, 10am as ```10:00```. * Here is an example: <code><time itemprop="openingHours" datetime="Tu,Th 16:00-20:00">Tuesdays and Thursdays 4-8pm</time></code>. * If a business is open 7 days a week, then it can be specified as <code><time itemprop="openingHours" datetime="Mo-Su">Monday through Sunday, all day</time></code>.', |
|
289 | + 'openingHoursSpecification' => 'The opening hours of a certain place.', |
|
290 | + 'ownershipFundingInfo' => 'For an [[Organization]] (often but not necessarily a [[NewsMediaOrganization]]), a description of organizational ownership structure; funding and grants. In a news/media setting, this is with particular reference to editorial independence. Note that the [[funder]] is also available and can be used to make basic funder information machine-readable.', |
|
291 | + 'owns' => 'Products owned by the organization or person.', |
|
292 | + 'parentOrganization' => 'The larger organization that this organization is a [[subOrganization]] of, if any.', |
|
293 | + 'paymentAccepted' => 'Cash, Credit Card, Cryptocurrency, Local Exchange Tradings System, etc.', |
|
294 | + 'photo' => 'A photograph of this place.', |
|
295 | + 'photos' => 'Photographs of this place.', |
|
296 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
297 | + 'priceRange' => 'The price range of the business, for example ```$$$```.', |
|
298 | + 'publicAccess' => 'A flag to signal that the [[Place]] is open to public visitors. If this property is omitted there is no assumed default boolean value', |
|
299 | + 'publishingPrinciples' => 'The publishingPrinciples property indicates (typically via [[URL]]) a document describing the editorial principles of an [[Organization]] (or individual, e.g. a [[Person]] writing a blog) that relate to their activities as a publisher, e.g. ethics or diversity policies. When applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are those of the party primarily responsible for the creation of the [[CreativeWork]]. While such policies are most typically expressed in natural language, sometimes related information (e.g. indicating a [[funder]]) can be expressed using schema.org terminology. ', |
|
300 | + 'review' => 'A review of the item.', |
|
301 | + 'reviews' => 'Review of the item.', |
|
302 | + '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.', |
|
303 | + 'seeks' => 'A pointer to products or services sought by the organization or person (demand).', |
|
304 | + 'serviceArea' => 'The geographic area where the service is provided.', |
|
305 | + 'slogan' => 'A slogan or motto associated with the item.', |
|
306 | + 'smokingAllowed' => 'Indicates whether it is allowed to smoke in the place, e.g. in the restaurant, hotel or hotel room.', |
|
307 | + 'specialOpeningHoursSpecification' => 'The special opening hours of a certain place. Use this to explicitly override general opening hours brought in scope by [[openingHoursSpecification]] or [[openingHours]]. ', |
|
308 | + 'sponsor' => 'A person or organization that supports a thing through a pledge, promise, or financial contribution. E.g. a sponsor of a Medical Study or a corporate sponsor of an event.', |
|
309 | + 'subOrganization' => 'A relationship between two organizations where the first includes the second, e.g., as a subsidiary. See also: the more specific \'department\' property.', |
|
310 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
311 | + 'taxID' => 'The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain.', |
|
312 | + 'telephone' => 'The telephone number.', |
|
313 | + 'tourBookingPage' => 'A page providing information on how to book a tour of some [[Place]], such as an [[Accommodation]] or [[ApartmentComplex]] in a real estate setting, as well as other kinds of tours as appropriate.', |
|
314 | + 'unnamedSourcesPolicy' => 'For an [[Organization]] (typically a [[NewsMediaOrganization]]), a statement about policy on use of unnamed sources and the decision process required.', |
|
315 | + 'url' => 'URL of the item.', |
|
316 | + 'vatID' => 'The Value-added Tax ID of the organization or person.' |
|
317 | + ]; |
|
318 | + } |
|
319 | 319 | |
320 | 320 | |
321 | - /** |
|
322 | - * @inheritdoc |
|
323 | - */ |
|
324 | - public function getGoogleRequiredSchema(): array |
|
325 | - { |
|
326 | - return ['description', 'name']; |
|
327 | - } |
|
321 | + /** |
|
322 | + * @inheritdoc |
|
323 | + */ |
|
324 | + public function getGoogleRequiredSchema(): array |
|
325 | + { |
|
326 | + return ['description', 'name']; |
|
327 | + } |
|
328 | 328 | |
329 | 329 | |
330 | - /** |
|
331 | - * @inheritdoc |
|
332 | - */ |
|
333 | - public function getGoogleRecommendedSchema(): array |
|
334 | - { |
|
335 | - return ['image', 'url']; |
|
336 | - } |
|
330 | + /** |
|
331 | + * @inheritdoc |
|
332 | + */ |
|
333 | + public function getGoogleRecommendedSchema(): array |
|
334 | + { |
|
335 | + return ['image', 'url']; |
|
336 | + } |
|
337 | 337 | |
338 | 338 | |
339 | - /** |
|
340 | - * @inheritdoc |
|
341 | - */ |
|
342 | - public function defineRules(): array |
|
343 | - { |
|
344 | - $rules = parent::defineRules(); |
|
345 | - $rules = array_merge($rules, [ |
|
346 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
347 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
348 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
349 | - ]); |
|
339 | + /** |
|
340 | + * @inheritdoc |
|
341 | + */ |
|
342 | + public function defineRules(): array |
|
343 | + { |
|
344 | + $rules = parent::defineRules(); |
|
345 | + $rules = array_merge($rules, [ |
|
346 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
347 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
348 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
349 | + ]); |
|
350 | 350 | |
351 | - return $rules; |
|
352 | - } |
|
351 | + return $rules; |
|
352 | + } |
|
353 | 353 | } |
@@ -23,130 +23,130 @@ |
||
23 | 23 | */ |
24 | 24 | class Seat extends MetaJsonLd implements SeatInterface, IntangibleInterface, ThingInterface |
25 | 25 | { |
26 | - use SeatTrait; |
|
27 | - use IntangibleTrait; |
|
28 | - use ThingTrait; |
|
29 | - |
|
30 | - /** |
|
31 | - * The Schema.org Type Name |
|
32 | - * |
|
33 | - * @var string |
|
34 | - */ |
|
35 | - public static string $schemaTypeName = 'Seat'; |
|
36 | - |
|
37 | - /** |
|
38 | - * The Schema.org Type Scope |
|
39 | - * |
|
40 | - * @var string |
|
41 | - */ |
|
42 | - public static string $schemaTypeScope = 'https://schema.org/Seat'; |
|
43 | - |
|
44 | - /** |
|
45 | - * The Schema.org Type Extends |
|
46 | - * |
|
47 | - * @var string |
|
48 | - */ |
|
49 | - public static string $schemaTypeExtends = 'Intangible'; |
|
50 | - |
|
51 | - /** |
|
52 | - * The Schema.org Type Description |
|
53 | - * |
|
54 | - * @var string |
|
55 | - */ |
|
56 | - public static string $schemaTypeDescription = 'Used to describe a seat, such as a reserved seat in an event reservation.'; |
|
57 | - |
|
58 | - |
|
59 | - /** |
|
60 | - * @inheritdoc |
|
61 | - */ |
|
62 | - public function getSchemaPropertyNames(): array |
|
63 | - { |
|
64 | - return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
65 | - } |
|
66 | - |
|
67 | - |
|
68 | - /** |
|
69 | - * @inheritdoc |
|
70 | - */ |
|
71 | - public function getSchemaPropertyExpectedTypes(): array |
|
72 | - { |
|
73 | - return [ |
|
74 | - 'additionalType' => ['URL'], |
|
75 | - 'alternateName' => ['Text'], |
|
76 | - 'description' => ['Text'], |
|
77 | - 'disambiguatingDescription' => ['Text'], |
|
78 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
79 | - 'image' => ['URL', 'ImageObject'], |
|
80 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
81 | - 'name' => ['Text'], |
|
82 | - 'potentialAction' => ['Action'], |
|
83 | - 'sameAs' => ['URL'], |
|
84 | - 'seatNumber' => ['Text'], |
|
85 | - 'seatRow' => ['Text'], |
|
86 | - 'seatSection' => ['Text'], |
|
87 | - 'seatingType' => ['Text', 'QualitativeValue'], |
|
88 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
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 | - 'seatNumber' => 'The location of the reserved seat (e.g., 27).', |
|
111 | - 'seatRow' => 'The row location of the reserved seat (e.g., B).', |
|
112 | - 'seatSection' => 'The section location of the reserved seat (e.g. Orchestra).', |
|
113 | - 'seatingType' => 'The type/class of the seat.', |
|
114 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
115 | - 'url' => 'URL of the item.' |
|
116 | - ]; |
|
117 | - } |
|
118 | - |
|
119 | - |
|
120 | - /** |
|
121 | - * @inheritdoc |
|
122 | - */ |
|
123 | - public function getGoogleRequiredSchema(): array |
|
124 | - { |
|
125 | - return ['description', 'name']; |
|
126 | - } |
|
127 | - |
|
128 | - |
|
129 | - /** |
|
130 | - * @inheritdoc |
|
131 | - */ |
|
132 | - public function getGoogleRecommendedSchema(): array |
|
133 | - { |
|
134 | - return ['image', 'url']; |
|
135 | - } |
|
136 | - |
|
137 | - |
|
138 | - /** |
|
139 | - * @inheritdoc |
|
140 | - */ |
|
141 | - public function defineRules(): array |
|
142 | - { |
|
143 | - $rules = parent::defineRules(); |
|
144 | - $rules = array_merge($rules, [ |
|
145 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
146 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
147 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
148 | - ]); |
|
149 | - |
|
150 | - return $rules; |
|
151 | - } |
|
26 | + use SeatTrait; |
|
27 | + use IntangibleTrait; |
|
28 | + use ThingTrait; |
|
29 | + |
|
30 | + /** |
|
31 | + * The Schema.org Type Name |
|
32 | + * |
|
33 | + * @var string |
|
34 | + */ |
|
35 | + public static string $schemaTypeName = 'Seat'; |
|
36 | + |
|
37 | + /** |
|
38 | + * The Schema.org Type Scope |
|
39 | + * |
|
40 | + * @var string |
|
41 | + */ |
|
42 | + public static string $schemaTypeScope = 'https://schema.org/Seat'; |
|
43 | + |
|
44 | + /** |
|
45 | + * The Schema.org Type Extends |
|
46 | + * |
|
47 | + * @var string |
|
48 | + */ |
|
49 | + public static string $schemaTypeExtends = 'Intangible'; |
|
50 | + |
|
51 | + /** |
|
52 | + * The Schema.org Type Description |
|
53 | + * |
|
54 | + * @var string |
|
55 | + */ |
|
56 | + public static string $schemaTypeDescription = 'Used to describe a seat, such as a reserved seat in an event reservation.'; |
|
57 | + |
|
58 | + |
|
59 | + /** |
|
60 | + * @inheritdoc |
|
61 | + */ |
|
62 | + public function getSchemaPropertyNames(): array |
|
63 | + { |
|
64 | + return array_keys($this->getSchemaPropertyExpectedTypes()); |
|
65 | + } |
|
66 | + |
|
67 | + |
|
68 | + /** |
|
69 | + * @inheritdoc |
|
70 | + */ |
|
71 | + public function getSchemaPropertyExpectedTypes(): array |
|
72 | + { |
|
73 | + return [ |
|
74 | + 'additionalType' => ['URL'], |
|
75 | + 'alternateName' => ['Text'], |
|
76 | + 'description' => ['Text'], |
|
77 | + 'disambiguatingDescription' => ['Text'], |
|
78 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
79 | + 'image' => ['URL', 'ImageObject'], |
|
80 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
81 | + 'name' => ['Text'], |
|
82 | + 'potentialAction' => ['Action'], |
|
83 | + 'sameAs' => ['URL'], |
|
84 | + 'seatNumber' => ['Text'], |
|
85 | + 'seatRow' => ['Text'], |
|
86 | + 'seatSection' => ['Text'], |
|
87 | + 'seatingType' => ['Text', 'QualitativeValue'], |
|
88 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
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 | + 'seatNumber' => 'The location of the reserved seat (e.g., 27).', |
|
111 | + 'seatRow' => 'The row location of the reserved seat (e.g., B).', |
|
112 | + 'seatSection' => 'The section location of the reserved seat (e.g. Orchestra).', |
|
113 | + 'seatingType' => 'The type/class of the seat.', |
|
114 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
115 | + 'url' => 'URL of the item.' |
|
116 | + ]; |
|
117 | + } |
|
118 | + |
|
119 | + |
|
120 | + /** |
|
121 | + * @inheritdoc |
|
122 | + */ |
|
123 | + public function getGoogleRequiredSchema(): array |
|
124 | + { |
|
125 | + return ['description', 'name']; |
|
126 | + } |
|
127 | + |
|
128 | + |
|
129 | + /** |
|
130 | + * @inheritdoc |
|
131 | + */ |
|
132 | + public function getGoogleRecommendedSchema(): array |
|
133 | + { |
|
134 | + return ['image', 'url']; |
|
135 | + } |
|
136 | + |
|
137 | + |
|
138 | + /** |
|
139 | + * @inheritdoc |
|
140 | + */ |
|
141 | + public function defineRules(): array |
|
142 | + { |
|
143 | + $rules = parent::defineRules(); |
|
144 | + $rules = array_merge($rules, [ |
|
145 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
146 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
147 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
148 | + ]); |
|
149 | + |
|
150 | + return $rules; |
|
151 | + } |
|
152 | 152 | } |
@@ -24,127 +24,127 @@ |
||
24 | 24 | */ |
25 | 25 | class NonprofitSBBI extends MetaJsonLd implements NonprofitSBBIInterface, NLNonprofitTypeInterface, NonprofitTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface |
26 | 26 | { |
27 | - use NonprofitSBBITrait; |
|
28 | - use NLNonprofitTypeTrait; |
|
29 | - use NonprofitTypeTrait; |
|
30 | - use EnumerationTrait; |
|
31 | - use IntangibleTrait; |
|
32 | - use ThingTrait; |
|
33 | - |
|
34 | - /** |
|
35 | - * The Schema.org Type Name |
|
36 | - * |
|
37 | - * @var string |
|
38 | - */ |
|
39 | - public static string $schemaTypeName = 'NonprofitSBBI'; |
|
40 | - |
|
41 | - /** |
|
42 | - * The Schema.org Type Scope |
|
43 | - * |
|
44 | - * @var string |
|
45 | - */ |
|
46 | - public static string $schemaTypeScope = 'https://schema.org/NonprofitSBBI'; |
|
47 | - |
|
48 | - /** |
|
49 | - * The Schema.org Type Extends |
|
50 | - * |
|
51 | - * @var string |
|
52 | - */ |
|
53 | - public static string $schemaTypeExtends = 'NLNonprofitType'; |
|
54 | - |
|
55 | - /** |
|
56 | - * The Schema.org Type Description |
|
57 | - * |
|
58 | - * @var string |
|
59 | - */ |
|
60 | - public static string $schemaTypeDescription = 'NonprofitSBBI: Non-profit type referring to a Social Interest Promoting Institution (NL).'; |
|
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 | - 'description' => ['Text'], |
|
81 | - 'disambiguatingDescription' => ['Text'], |
|
82 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
83 | - 'image' => ['URL', 'ImageObject'], |
|
84 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
85 | - 'name' => ['Text'], |
|
86 | - 'potentialAction' => ['Action'], |
|
87 | - 'sameAs' => ['URL'], |
|
88 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
89 | - 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
90 | - 'url' => ['URL'] |
|
91 | - ]; |
|
92 | - } |
|
93 | - |
|
94 | - |
|
95 | - /** |
|
96 | - * @inheritdoc |
|
97 | - */ |
|
98 | - public function getSchemaPropertyDescriptions(): array |
|
99 | - { |
|
100 | - return [ |
|
101 | - '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.', |
|
102 | - 'alternateName' => 'An alias for the item.', |
|
103 | - 'description' => 'A description of the item.', |
|
104 | - '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.', |
|
105 | - '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. ', |
|
106 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
107 | - '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.', |
|
108 | - 'name' => 'The name of the item.', |
|
109 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
110 | - '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.', |
|
111 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
112 | - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
113 | - 'url' => 'URL of the item.' |
|
114 | - ]; |
|
115 | - } |
|
116 | - |
|
117 | - |
|
118 | - /** |
|
119 | - * @inheritdoc |
|
120 | - */ |
|
121 | - public function getGoogleRequiredSchema(): array |
|
122 | - { |
|
123 | - return ['description', 'name']; |
|
124 | - } |
|
125 | - |
|
126 | - |
|
127 | - /** |
|
128 | - * @inheritdoc |
|
129 | - */ |
|
130 | - public function getGoogleRecommendedSchema(): array |
|
131 | - { |
|
132 | - return ['image', 'url']; |
|
133 | - } |
|
134 | - |
|
135 | - |
|
136 | - /** |
|
137 | - * @inheritdoc |
|
138 | - */ |
|
139 | - public function defineRules(): array |
|
140 | - { |
|
141 | - $rules = parent::defineRules(); |
|
142 | - $rules = array_merge($rules, [ |
|
143 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
144 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
145 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
146 | - ]); |
|
147 | - |
|
148 | - return $rules; |
|
149 | - } |
|
27 | + use NonprofitSBBITrait; |
|
28 | + use NLNonprofitTypeTrait; |
|
29 | + use NonprofitTypeTrait; |
|
30 | + use EnumerationTrait; |
|
31 | + use IntangibleTrait; |
|
32 | + use ThingTrait; |
|
33 | + |
|
34 | + /** |
|
35 | + * The Schema.org Type Name |
|
36 | + * |
|
37 | + * @var string |
|
38 | + */ |
|
39 | + public static string $schemaTypeName = 'NonprofitSBBI'; |
|
40 | + |
|
41 | + /** |
|
42 | + * The Schema.org Type Scope |
|
43 | + * |
|
44 | + * @var string |
|
45 | + */ |
|
46 | + public static string $schemaTypeScope = 'https://schema.org/NonprofitSBBI'; |
|
47 | + |
|
48 | + /** |
|
49 | + * The Schema.org Type Extends |
|
50 | + * |
|
51 | + * @var string |
|
52 | + */ |
|
53 | + public static string $schemaTypeExtends = 'NLNonprofitType'; |
|
54 | + |
|
55 | + /** |
|
56 | + * The Schema.org Type Description |
|
57 | + * |
|
58 | + * @var string |
|
59 | + */ |
|
60 | + public static string $schemaTypeDescription = 'NonprofitSBBI: Non-profit type referring to a Social Interest Promoting Institution (NL).'; |
|
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 | + 'description' => ['Text'], |
|
81 | + 'disambiguatingDescription' => ['Text'], |
|
82 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
83 | + 'image' => ['URL', 'ImageObject'], |
|
84 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
85 | + 'name' => ['Text'], |
|
86 | + 'potentialAction' => ['Action'], |
|
87 | + 'sameAs' => ['URL'], |
|
88 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
89 | + 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
90 | + 'url' => ['URL'] |
|
91 | + ]; |
|
92 | + } |
|
93 | + |
|
94 | + |
|
95 | + /** |
|
96 | + * @inheritdoc |
|
97 | + */ |
|
98 | + public function getSchemaPropertyDescriptions(): array |
|
99 | + { |
|
100 | + return [ |
|
101 | + '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.', |
|
102 | + 'alternateName' => 'An alias for the item.', |
|
103 | + 'description' => 'A description of the item.', |
|
104 | + '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.', |
|
105 | + '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. ', |
|
106 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
107 | + '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.', |
|
108 | + 'name' => 'The name of the item.', |
|
109 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
110 | + '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.', |
|
111 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
112 | + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
113 | + 'url' => 'URL of the item.' |
|
114 | + ]; |
|
115 | + } |
|
116 | + |
|
117 | + |
|
118 | + /** |
|
119 | + * @inheritdoc |
|
120 | + */ |
|
121 | + public function getGoogleRequiredSchema(): array |
|
122 | + { |
|
123 | + return ['description', 'name']; |
|
124 | + } |
|
125 | + |
|
126 | + |
|
127 | + /** |
|
128 | + * @inheritdoc |
|
129 | + */ |
|
130 | + public function getGoogleRecommendedSchema(): array |
|
131 | + { |
|
132 | + return ['image', 'url']; |
|
133 | + } |
|
134 | + |
|
135 | + |
|
136 | + /** |
|
137 | + * @inheritdoc |
|
138 | + */ |
|
139 | + public function defineRules(): array |
|
140 | + { |
|
141 | + $rules = parent::defineRules(); |
|
142 | + $rules = array_merge($rules, [ |
|
143 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
144 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
145 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
146 | + ]); |
|
147 | + |
|
148 | + return $rules; |
|
149 | + } |
|
150 | 150 | } |
@@ -24,193 +24,193 @@ |
||
24 | 24 | */ |
25 | 25 | class BroadcastService extends MetaJsonLd implements BroadcastServiceInterface, ServiceInterface, IntangibleInterface, ThingInterface |
26 | 26 | { |
27 | - use BroadcastServiceTrait; |
|
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 string $schemaTypeName = 'BroadcastService'; |
|
38 | - |
|
39 | - /** |
|
40 | - * The Schema.org Type Scope |
|
41 | - * |
|
42 | - * @var string |
|
43 | - */ |
|
44 | - public static string $schemaTypeScope = 'https://schema.org/BroadcastService'; |
|
45 | - |
|
46 | - /** |
|
47 | - * The Schema.org Type Extends |
|
48 | - * |
|
49 | - * @var string |
|
50 | - */ |
|
51 | - public static string $schemaTypeExtends = 'Service'; |
|
52 | - |
|
53 | - /** |
|
54 | - * The Schema.org Type Description |
|
55 | - * |
|
56 | - * @var string |
|
57 | - */ |
|
58 | - public static string $schemaTypeDescription = 'A delivery service through which content is provided via broadcast over the air or online.'; |
|
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 | - 'area' => ['Place'], |
|
80 | - 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
81 | - 'audience' => ['Audience'], |
|
82 | - 'availableChannel' => ['ServiceChannel'], |
|
83 | - 'award' => ['Text'], |
|
84 | - 'brand' => ['Brand', 'Organization'], |
|
85 | - 'broadcastAffiliateOf' => ['Organization'], |
|
86 | - 'broadcastDisplayName' => ['Text'], |
|
87 | - 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], |
|
88 | - 'broadcastTimezone' => ['Text'], |
|
89 | - 'broadcaster' => ['Organization'], |
|
90 | - 'broker' => ['Person', 'Organization'], |
|
91 | - 'callSign' => ['Text'], |
|
92 | - 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], |
|
93 | - 'description' => ['Text'], |
|
94 | - 'disambiguatingDescription' => ['Text'], |
|
95 | - 'hasBroadcastChannel' => ['BroadcastChannel'], |
|
96 | - 'hasOfferCatalog' => ['OfferCatalog'], |
|
97 | - 'hoursAvailable' => ['OpeningHoursSpecification'], |
|
98 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
99 | - 'image' => ['URL', 'ImageObject'], |
|
100 | - 'inLanguage' => ['Text', 'Language'], |
|
101 | - 'isRelatedTo' => ['Product', 'Service'], |
|
102 | - 'isSimilarTo' => ['Product', 'Service'], |
|
103 | - 'logo' => ['ImageObject', 'URL'], |
|
104 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
105 | - 'name' => ['Text'], |
|
106 | - 'offers' => ['Demand', 'Offer'], |
|
107 | - 'parentService' => ['BroadcastService'], |
|
108 | - 'potentialAction' => ['Action'], |
|
109 | - 'produces' => ['Thing'], |
|
110 | - 'provider' => ['Organization', 'Person'], |
|
111 | - 'providerMobility' => ['Text'], |
|
112 | - 'review' => ['Review'], |
|
113 | - 'sameAs' => ['URL'], |
|
114 | - 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
115 | - 'serviceAudience' => ['Audience'], |
|
116 | - 'serviceOutput' => ['Thing'], |
|
117 | - 'serviceType' => ['Text', 'GovernmentBenefitsType'], |
|
118 | - 'slogan' => ['Text'], |
|
119 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
120 | - 'termsOfService' => ['URL', 'Text'], |
|
121 | - 'url' => ['URL'], |
|
122 | - 'videoFormat' => ['Text'] |
|
123 | - ]; |
|
124 | - } |
|
125 | - |
|
126 | - |
|
127 | - /** |
|
128 | - * @inheritdoc |
|
129 | - */ |
|
130 | - public function getSchemaPropertyDescriptions(): array |
|
131 | - { |
|
132 | - return [ |
|
133 | - '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.', |
|
134 | - 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
135 | - 'alternateName' => 'An alias for the item.', |
|
136 | - 'area' => 'The area within which users can expect to reach the broadcast service.', |
|
137 | - 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
138 | - 'audience' => 'An intended audience, i.e. a group for whom something was created.', |
|
139 | - 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', |
|
140 | - 'award' => 'An award won by or for this item.', |
|
141 | - 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
142 | - 'broadcastAffiliateOf' => 'The media network(s) whose content is broadcast on this station.', |
|
143 | - 'broadcastDisplayName' => 'The name displayed in the channel guide. For many US affiliates, it is the network name.', |
|
144 | - 'broadcastFrequency' => 'The frequency used for over-the-air broadcasts. Numeric values or simple ranges, e.g. 87-99. In addition a shortcut idiom is supported for frequences of AM and FM radio channels, e.g. "87 FM".', |
|
145 | - 'broadcastTimezone' => 'The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts.', |
|
146 | - 'broadcaster' => 'The organization owning or operating the broadcast service.', |
|
147 | - '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.', |
|
148 | - 'callSign' => 'A [callsign](https://en.wikipedia.org/wiki/Call_sign), as used in broadcasting and radio communications to identify people, radio and TV stations, or vehicles.', |
|
149 | - 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', |
|
150 | - 'description' => 'A description of the item.', |
|
151 | - '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.', |
|
152 | - 'hasBroadcastChannel' => 'A broadcast channel of a broadcast service.', |
|
153 | - 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
154 | - 'hoursAvailable' => 'The hours during which this service or contact is available.', |
|
155 | - '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. ', |
|
156 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
157 | - 'inLanguage' => 'The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].', |
|
158 | - 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', |
|
159 | - 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', |
|
160 | - 'logo' => 'An associated logo.', |
|
161 | - '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.', |
|
162 | - 'name' => 'The name of the item.', |
|
163 | - '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. ', |
|
164 | - 'parentService' => 'A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.', |
|
165 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
166 | - 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
167 | - '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.', |
|
168 | - 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', |
|
169 | - 'review' => 'A review of the item.', |
|
170 | - '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.', |
|
171 | - 'serviceArea' => 'The geographic area where the service is provided.', |
|
172 | - 'serviceAudience' => 'The audience eligible for this service.', |
|
173 | - 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
174 | - 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', |
|
175 | - 'slogan' => 'A slogan or motto associated with the item.', |
|
176 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
177 | - 'termsOfService' => 'Human-readable terms of service documentation.', |
|
178 | - 'url' => 'URL of the item.', |
|
179 | - 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).' |
|
180 | - ]; |
|
181 | - } |
|
182 | - |
|
183 | - |
|
184 | - /** |
|
185 | - * @inheritdoc |
|
186 | - */ |
|
187 | - public function getGoogleRequiredSchema(): array |
|
188 | - { |
|
189 | - return ['description', 'name']; |
|
190 | - } |
|
191 | - |
|
192 | - |
|
193 | - /** |
|
194 | - * @inheritdoc |
|
195 | - */ |
|
196 | - public function getGoogleRecommendedSchema(): array |
|
197 | - { |
|
198 | - return ['image', 'url']; |
|
199 | - } |
|
200 | - |
|
201 | - |
|
202 | - /** |
|
203 | - * @inheritdoc |
|
204 | - */ |
|
205 | - public function defineRules(): array |
|
206 | - { |
|
207 | - $rules = parent::defineRules(); |
|
208 | - $rules = array_merge($rules, [ |
|
209 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
210 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
211 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
212 | - ]); |
|
213 | - |
|
214 | - return $rules; |
|
215 | - } |
|
27 | + use BroadcastServiceTrait; |
|
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 string $schemaTypeName = 'BroadcastService'; |
|
38 | + |
|
39 | + /** |
|
40 | + * The Schema.org Type Scope |
|
41 | + * |
|
42 | + * @var string |
|
43 | + */ |
|
44 | + public static string $schemaTypeScope = 'https://schema.org/BroadcastService'; |
|
45 | + |
|
46 | + /** |
|
47 | + * The Schema.org Type Extends |
|
48 | + * |
|
49 | + * @var string |
|
50 | + */ |
|
51 | + public static string $schemaTypeExtends = 'Service'; |
|
52 | + |
|
53 | + /** |
|
54 | + * The Schema.org Type Description |
|
55 | + * |
|
56 | + * @var string |
|
57 | + */ |
|
58 | + public static string $schemaTypeDescription = 'A delivery service through which content is provided via broadcast over the air or online.'; |
|
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 | + 'area' => ['Place'], |
|
80 | + 'areaServed' => ['Text', 'Place', 'GeoShape', 'AdministrativeArea'], |
|
81 | + 'audience' => ['Audience'], |
|
82 | + 'availableChannel' => ['ServiceChannel'], |
|
83 | + 'award' => ['Text'], |
|
84 | + 'brand' => ['Brand', 'Organization'], |
|
85 | + 'broadcastAffiliateOf' => ['Organization'], |
|
86 | + 'broadcastDisplayName' => ['Text'], |
|
87 | + 'broadcastFrequency' => ['Text', 'BroadcastFrequencySpecification'], |
|
88 | + 'broadcastTimezone' => ['Text'], |
|
89 | + 'broadcaster' => ['Organization'], |
|
90 | + 'broker' => ['Person', 'Organization'], |
|
91 | + 'callSign' => ['Text'], |
|
92 | + 'category' => ['URL', 'CategoryCode', 'Text', 'Thing', 'PhysicalActivityCategory'], |
|
93 | + 'description' => ['Text'], |
|
94 | + 'disambiguatingDescription' => ['Text'], |
|
95 | + 'hasBroadcastChannel' => ['BroadcastChannel'], |
|
96 | + 'hasOfferCatalog' => ['OfferCatalog'], |
|
97 | + 'hoursAvailable' => ['OpeningHoursSpecification'], |
|
98 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
99 | + 'image' => ['URL', 'ImageObject'], |
|
100 | + 'inLanguage' => ['Text', 'Language'], |
|
101 | + 'isRelatedTo' => ['Product', 'Service'], |
|
102 | + 'isSimilarTo' => ['Product', 'Service'], |
|
103 | + 'logo' => ['ImageObject', 'URL'], |
|
104 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
105 | + 'name' => ['Text'], |
|
106 | + 'offers' => ['Demand', 'Offer'], |
|
107 | + 'parentService' => ['BroadcastService'], |
|
108 | + 'potentialAction' => ['Action'], |
|
109 | + 'produces' => ['Thing'], |
|
110 | + 'provider' => ['Organization', 'Person'], |
|
111 | + 'providerMobility' => ['Text'], |
|
112 | + 'review' => ['Review'], |
|
113 | + 'sameAs' => ['URL'], |
|
114 | + 'serviceArea' => ['AdministrativeArea', 'Place', 'GeoShape'], |
|
115 | + 'serviceAudience' => ['Audience'], |
|
116 | + 'serviceOutput' => ['Thing'], |
|
117 | + 'serviceType' => ['Text', 'GovernmentBenefitsType'], |
|
118 | + 'slogan' => ['Text'], |
|
119 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
120 | + 'termsOfService' => ['URL', 'Text'], |
|
121 | + 'url' => ['URL'], |
|
122 | + 'videoFormat' => ['Text'] |
|
123 | + ]; |
|
124 | + } |
|
125 | + |
|
126 | + |
|
127 | + /** |
|
128 | + * @inheritdoc |
|
129 | + */ |
|
130 | + public function getSchemaPropertyDescriptions(): array |
|
131 | + { |
|
132 | + return [ |
|
133 | + '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.', |
|
134 | + 'aggregateRating' => 'The overall rating, based on a collection of reviews or ratings, of the item.', |
|
135 | + 'alternateName' => 'An alias for the item.', |
|
136 | + 'area' => 'The area within which users can expect to reach the broadcast service.', |
|
137 | + 'areaServed' => 'The geographic area where a service or offered item is provided.', |
|
138 | + 'audience' => 'An intended audience, i.e. a group for whom something was created.', |
|
139 | + 'availableChannel' => 'A means of accessing the service (e.g. a phone bank, a web site, a location, etc.).', |
|
140 | + 'award' => 'An award won by or for this item.', |
|
141 | + 'brand' => 'The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.', |
|
142 | + 'broadcastAffiliateOf' => 'The media network(s) whose content is broadcast on this station.', |
|
143 | + 'broadcastDisplayName' => 'The name displayed in the channel guide. For many US affiliates, it is the network name.', |
|
144 | + 'broadcastFrequency' => 'The frequency used for over-the-air broadcasts. Numeric values or simple ranges, e.g. 87-99. In addition a shortcut idiom is supported for frequences of AM and FM radio channels, e.g. "87 FM".', |
|
145 | + 'broadcastTimezone' => 'The timezone in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601) for which the service bases its broadcasts.', |
|
146 | + 'broadcaster' => 'The organization owning or operating the broadcast service.', |
|
147 | + '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.', |
|
148 | + 'callSign' => 'A [callsign](https://en.wikipedia.org/wiki/Call_sign), as used in broadcasting and radio communications to identify people, radio and TV stations, or vehicles.', |
|
149 | + 'category' => 'A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.', |
|
150 | + 'description' => 'A description of the item.', |
|
151 | + '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.', |
|
152 | + 'hasBroadcastChannel' => 'A broadcast channel of a broadcast service.', |
|
153 | + 'hasOfferCatalog' => 'Indicates an OfferCatalog listing for this Organization, Person, or Service.', |
|
154 | + 'hoursAvailable' => 'The hours during which this service or contact is available.', |
|
155 | + '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. ', |
|
156 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
157 | + 'inLanguage' => 'The language of the content or performance or used in an action. Please use one of the language codes from the [IETF BCP 47 standard](http://tools.ietf.org/html/bcp47). See also [[availableLanguage]].', |
|
158 | + 'isRelatedTo' => 'A pointer to another, somehow related product (or multiple products).', |
|
159 | + 'isSimilarTo' => 'A pointer to another, functionally similar product (or multiple products).', |
|
160 | + 'logo' => 'An associated logo.', |
|
161 | + '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.', |
|
162 | + 'name' => 'The name of the item.', |
|
163 | + '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. ', |
|
164 | + 'parentService' => 'A broadcast service to which the broadcast service may belong to such as regional variations of a national channel.', |
|
165 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
166 | + 'produces' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
167 | + '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.', |
|
168 | + 'providerMobility' => 'Indicates the mobility of a provided service (e.g. \'static\', \'dynamic\').', |
|
169 | + 'review' => 'A review of the item.', |
|
170 | + '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.', |
|
171 | + 'serviceArea' => 'The geographic area where the service is provided.', |
|
172 | + 'serviceAudience' => 'The audience eligible for this service.', |
|
173 | + 'serviceOutput' => 'The tangible thing generated by the service, e.g. a passport, permit, etc.', |
|
174 | + 'serviceType' => 'The type of service being offered, e.g. veterans\' benefits, emergency relief, etc.', |
|
175 | + 'slogan' => 'A slogan or motto associated with the item.', |
|
176 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
177 | + 'termsOfService' => 'Human-readable terms of service documentation.', |
|
178 | + 'url' => 'URL of the item.', |
|
179 | + 'videoFormat' => 'The type of screening or video broadcast used (e.g. IMAX, 3D, SD, HD, etc.).' |
|
180 | + ]; |
|
181 | + } |
|
182 | + |
|
183 | + |
|
184 | + /** |
|
185 | + * @inheritdoc |
|
186 | + */ |
|
187 | + public function getGoogleRequiredSchema(): array |
|
188 | + { |
|
189 | + return ['description', 'name']; |
|
190 | + } |
|
191 | + |
|
192 | + |
|
193 | + /** |
|
194 | + * @inheritdoc |
|
195 | + */ |
|
196 | + public function getGoogleRecommendedSchema(): array |
|
197 | + { |
|
198 | + return ['image', 'url']; |
|
199 | + } |
|
200 | + |
|
201 | + |
|
202 | + /** |
|
203 | + * @inheritdoc |
|
204 | + */ |
|
205 | + public function defineRules(): array |
|
206 | + { |
|
207 | + $rules = parent::defineRules(); |
|
208 | + $rules = array_merge($rules, [ |
|
209 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
210 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
211 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
212 | + ]); |
|
213 | + |
|
214 | + return $rules; |
|
215 | + } |
|
216 | 216 | } |
@@ -24,151 +24,151 @@ |
||
24 | 24 | */ |
25 | 25 | class SurgicalProcedure extends MetaJsonLd implements SurgicalProcedureInterface, MedicalProcedureInterface, MedicalEntityInterface, ThingInterface |
26 | 26 | { |
27 | - use SurgicalProcedureTrait; |
|
28 | - use MedicalProcedureTrait; |
|
29 | - use MedicalEntityTrait; |
|
30 | - use ThingTrait; |
|
31 | - |
|
32 | - /** |
|
33 | - * The Schema.org Type Name |
|
34 | - * |
|
35 | - * @var string |
|
36 | - */ |
|
37 | - public static string $schemaTypeName = 'SurgicalProcedure'; |
|
38 | - |
|
39 | - /** |
|
40 | - * The Schema.org Type Scope |
|
41 | - * |
|
42 | - * @var string |
|
43 | - */ |
|
44 | - public static string $schemaTypeScope = 'https://schema.org/SurgicalProcedure'; |
|
45 | - |
|
46 | - /** |
|
47 | - * The Schema.org Type Extends |
|
48 | - * |
|
49 | - * @var string |
|
50 | - */ |
|
51 | - public static string $schemaTypeExtends = 'MedicalProcedure'; |
|
52 | - |
|
53 | - /** |
|
54 | - * The Schema.org Type Description |
|
55 | - * |
|
56 | - * @var string |
|
57 | - */ |
|
58 | - public static string $schemaTypeDescription = 'A medical procedure involving an incision with instruments; performed for diagnose, or therapeutic purposes.'; |
|
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 | - 'alternateName' => ['Text'], |
|
78 | - 'bodyLocation' => ['Text'], |
|
79 | - 'code' => ['MedicalCode'], |
|
80 | - 'description' => ['Text'], |
|
81 | - 'disambiguatingDescription' => ['Text'], |
|
82 | - 'followup' => ['Text'], |
|
83 | - 'funding' => ['Grant'], |
|
84 | - 'guideline' => ['MedicalGuideline'], |
|
85 | - 'howPerformed' => ['Text'], |
|
86 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
87 | - 'image' => ['URL', 'ImageObject'], |
|
88 | - 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], |
|
89 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
90 | - 'medicineSystem' => ['MedicineSystem'], |
|
91 | - 'name' => ['Text'], |
|
92 | - 'potentialAction' => ['Action'], |
|
93 | - 'preparation' => ['Text', 'MedicalEntity'], |
|
94 | - 'procedureType' => ['MedicalProcedureType'], |
|
95 | - 'recognizingAuthority' => ['Organization'], |
|
96 | - 'relevantSpecialty' => ['MedicalSpecialty'], |
|
97 | - 'sameAs' => ['URL'], |
|
98 | - 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], |
|
99 | - 'study' => ['MedicalStudy'], |
|
100 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
101 | - 'url' => ['URL'] |
|
102 | - ]; |
|
103 | - } |
|
104 | - |
|
105 | - |
|
106 | - /** |
|
107 | - * @inheritdoc |
|
108 | - */ |
|
109 | - public function getSchemaPropertyDescriptions(): array |
|
110 | - { |
|
111 | - return [ |
|
112 | - '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.', |
|
113 | - 'alternateName' => 'An alias for the item.', |
|
114 | - 'bodyLocation' => 'Location in the body of the anatomical structure.', |
|
115 | - 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', |
|
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 | - 'followup' => 'Typical or recommended followup care after the procedure is performed.', |
|
119 | - 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
120 | - 'guideline' => 'A medical guideline related to this entity.', |
|
121 | - 'howPerformed' => 'How the procedure is performed.', |
|
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 | - 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', |
|
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 | - 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', |
|
127 | - 'name' => 'The name of the item.', |
|
128 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
129 | - 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', |
|
130 | - 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', |
|
131 | - 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', |
|
132 | - 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', |
|
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 | - 'status' => 'The status of the study (enumerated).', |
|
135 | - 'study' => 'A medical study or trial related to this entity.', |
|
136 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
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 | - } |
|
27 | + use SurgicalProcedureTrait; |
|
28 | + use MedicalProcedureTrait; |
|
29 | + use MedicalEntityTrait; |
|
30 | + use ThingTrait; |
|
31 | + |
|
32 | + /** |
|
33 | + * The Schema.org Type Name |
|
34 | + * |
|
35 | + * @var string |
|
36 | + */ |
|
37 | + public static string $schemaTypeName = 'SurgicalProcedure'; |
|
38 | + |
|
39 | + /** |
|
40 | + * The Schema.org Type Scope |
|
41 | + * |
|
42 | + * @var string |
|
43 | + */ |
|
44 | + public static string $schemaTypeScope = 'https://schema.org/SurgicalProcedure'; |
|
45 | + |
|
46 | + /** |
|
47 | + * The Schema.org Type Extends |
|
48 | + * |
|
49 | + * @var string |
|
50 | + */ |
|
51 | + public static string $schemaTypeExtends = 'MedicalProcedure'; |
|
52 | + |
|
53 | + /** |
|
54 | + * The Schema.org Type Description |
|
55 | + * |
|
56 | + * @var string |
|
57 | + */ |
|
58 | + public static string $schemaTypeDescription = 'A medical procedure involving an incision with instruments; performed for diagnose, or therapeutic purposes.'; |
|
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 | + 'alternateName' => ['Text'], |
|
78 | + 'bodyLocation' => ['Text'], |
|
79 | + 'code' => ['MedicalCode'], |
|
80 | + 'description' => ['Text'], |
|
81 | + 'disambiguatingDescription' => ['Text'], |
|
82 | + 'followup' => ['Text'], |
|
83 | + 'funding' => ['Grant'], |
|
84 | + 'guideline' => ['MedicalGuideline'], |
|
85 | + 'howPerformed' => ['Text'], |
|
86 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
87 | + 'image' => ['URL', 'ImageObject'], |
|
88 | + 'legalStatus' => ['Text', 'DrugLegalStatus', 'MedicalEnumeration'], |
|
89 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
90 | + 'medicineSystem' => ['MedicineSystem'], |
|
91 | + 'name' => ['Text'], |
|
92 | + 'potentialAction' => ['Action'], |
|
93 | + 'preparation' => ['Text', 'MedicalEntity'], |
|
94 | + 'procedureType' => ['MedicalProcedureType'], |
|
95 | + 'recognizingAuthority' => ['Organization'], |
|
96 | + 'relevantSpecialty' => ['MedicalSpecialty'], |
|
97 | + 'sameAs' => ['URL'], |
|
98 | + 'status' => ['MedicalStudyStatus', 'Text', 'EventStatusType'], |
|
99 | + 'study' => ['MedicalStudy'], |
|
100 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
101 | + 'url' => ['URL'] |
|
102 | + ]; |
|
103 | + } |
|
104 | + |
|
105 | + |
|
106 | + /** |
|
107 | + * @inheritdoc |
|
108 | + */ |
|
109 | + public function getSchemaPropertyDescriptions(): array |
|
110 | + { |
|
111 | + return [ |
|
112 | + '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.', |
|
113 | + 'alternateName' => 'An alias for the item.', |
|
114 | + 'bodyLocation' => 'Location in the body of the anatomical structure.', |
|
115 | + 'code' => 'A medical code for the entity, taken from a controlled vocabulary or ontology such as ICD-9, DiseasesDB, MeSH, SNOMED-CT, RxNorm, etc.', |
|
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 | + 'followup' => 'Typical or recommended followup care after the procedure is performed.', |
|
119 | + 'funding' => 'A [[Grant]] that directly or indirectly provide funding or sponsorship for this item. See also [[ownershipFundingInfo]].', |
|
120 | + 'guideline' => 'A medical guideline related to this entity.', |
|
121 | + 'howPerformed' => 'How the procedure is performed.', |
|
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 | + 'legalStatus' => 'The drug or supplement\'s legal status, including any controlled substance schedules that apply.', |
|
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 | + 'medicineSystem' => 'The system of medicine that includes this MedicalEntity, for example \'evidence-based\', \'homeopathic\', \'chiropractic\', etc.', |
|
127 | + 'name' => 'The name of the item.', |
|
128 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
129 | + 'preparation' => 'Typical preparation that a patient must undergo before having the procedure performed.', |
|
130 | + 'procedureType' => 'The type of procedure, for example Surgical, Noninvasive, or Percutaneous.', |
|
131 | + 'recognizingAuthority' => 'If applicable, the organization that officially recognizes this entity as part of its endorsed system of medicine.', |
|
132 | + 'relevantSpecialty' => 'If applicable, a medical specialty in which this entity is relevant.', |
|
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 | + 'status' => 'The status of the study (enumerated).', |
|
135 | + 'study' => 'A medical study or trial related to this entity.', |
|
136 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
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 | } |
@@ -24,125 +24,125 @@ |
||
24 | 24 | */ |
25 | 25 | class RsvpResponseType extends MetaJsonLd implements RsvpResponseTypeInterface, EnumerationInterface, IntangibleInterface, ThingInterface |
26 | 26 | { |
27 | - use RsvpResponseTypeTrait; |
|
28 | - use EnumerationTrait; |
|
29 | - use IntangibleTrait; |
|
30 | - use ThingTrait; |
|
31 | - |
|
32 | - /** |
|
33 | - * The Schema.org Type Name |
|
34 | - * |
|
35 | - * @var string |
|
36 | - */ |
|
37 | - public static string $schemaTypeName = 'RsvpResponseType'; |
|
38 | - |
|
39 | - /** |
|
40 | - * The Schema.org Type Scope |
|
41 | - * |
|
42 | - * @var string |
|
43 | - */ |
|
44 | - public static string $schemaTypeScope = 'https://schema.org/RsvpResponseType'; |
|
45 | - |
|
46 | - /** |
|
47 | - * The Schema.org Type Extends |
|
48 | - * |
|
49 | - * @var string |
|
50 | - */ |
|
51 | - public static string $schemaTypeExtends = 'Enumeration'; |
|
52 | - |
|
53 | - /** |
|
54 | - * The Schema.org Type Description |
|
55 | - * |
|
56 | - * @var string |
|
57 | - */ |
|
58 | - public static string $schemaTypeDescription = 'RsvpResponseType is an enumeration type whose instances represent responding to an RSVP request.'; |
|
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 | - 'alternateName' => ['Text'], |
|
78 | - 'description' => ['Text'], |
|
79 | - 'disambiguatingDescription' => ['Text'], |
|
80 | - 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
81 | - 'image' => ['URL', 'ImageObject'], |
|
82 | - 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
83 | - 'name' => ['Text'], |
|
84 | - 'potentialAction' => ['Action'], |
|
85 | - 'sameAs' => ['URL'], |
|
86 | - 'subjectOf' => ['Event', 'CreativeWork'], |
|
87 | - 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
88 | - 'url' => ['URL'] |
|
89 | - ]; |
|
90 | - } |
|
91 | - |
|
92 | - |
|
93 | - /** |
|
94 | - * @inheritdoc |
|
95 | - */ |
|
96 | - public function getSchemaPropertyDescriptions(): array |
|
97 | - { |
|
98 | - return [ |
|
99 | - '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.', |
|
100 | - 'alternateName' => 'An alias for the item.', |
|
101 | - 'description' => 'A description of the item.', |
|
102 | - '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.', |
|
103 | - '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. ', |
|
104 | - 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
105 | - '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.', |
|
106 | - 'name' => 'The name of the item.', |
|
107 | - 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
108 | - '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.', |
|
109 | - 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
110 | - 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
111 | - 'url' => 'URL of the item.' |
|
112 | - ]; |
|
113 | - } |
|
114 | - |
|
115 | - |
|
116 | - /** |
|
117 | - * @inheritdoc |
|
118 | - */ |
|
119 | - public function getGoogleRequiredSchema(): array |
|
120 | - { |
|
121 | - return ['description', 'name']; |
|
122 | - } |
|
123 | - |
|
124 | - |
|
125 | - /** |
|
126 | - * @inheritdoc |
|
127 | - */ |
|
128 | - public function getGoogleRecommendedSchema(): array |
|
129 | - { |
|
130 | - return ['image', 'url']; |
|
131 | - } |
|
132 | - |
|
133 | - |
|
134 | - /** |
|
135 | - * @inheritdoc |
|
136 | - */ |
|
137 | - public function defineRules(): array |
|
138 | - { |
|
139 | - $rules = parent::defineRules(); |
|
140 | - $rules = array_merge($rules, [ |
|
141 | - [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
142 | - [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
143 | - [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
144 | - ]); |
|
145 | - |
|
146 | - return $rules; |
|
147 | - } |
|
27 | + use RsvpResponseTypeTrait; |
|
28 | + use EnumerationTrait; |
|
29 | + use IntangibleTrait; |
|
30 | + use ThingTrait; |
|
31 | + |
|
32 | + /** |
|
33 | + * The Schema.org Type Name |
|
34 | + * |
|
35 | + * @var string |
|
36 | + */ |
|
37 | + public static string $schemaTypeName = 'RsvpResponseType'; |
|
38 | + |
|
39 | + /** |
|
40 | + * The Schema.org Type Scope |
|
41 | + * |
|
42 | + * @var string |
|
43 | + */ |
|
44 | + public static string $schemaTypeScope = 'https://schema.org/RsvpResponseType'; |
|
45 | + |
|
46 | + /** |
|
47 | + * The Schema.org Type Extends |
|
48 | + * |
|
49 | + * @var string |
|
50 | + */ |
|
51 | + public static string $schemaTypeExtends = 'Enumeration'; |
|
52 | + |
|
53 | + /** |
|
54 | + * The Schema.org Type Description |
|
55 | + * |
|
56 | + * @var string |
|
57 | + */ |
|
58 | + public static string $schemaTypeDescription = 'RsvpResponseType is an enumeration type whose instances represent responding to an RSVP request.'; |
|
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 | + 'alternateName' => ['Text'], |
|
78 | + 'description' => ['Text'], |
|
79 | + 'disambiguatingDescription' => ['Text'], |
|
80 | + 'identifier' => ['PropertyValue', 'URL', 'Text'], |
|
81 | + 'image' => ['URL', 'ImageObject'], |
|
82 | + 'mainEntityOfPage' => ['URL', 'CreativeWork'], |
|
83 | + 'name' => ['Text'], |
|
84 | + 'potentialAction' => ['Action'], |
|
85 | + 'sameAs' => ['URL'], |
|
86 | + 'subjectOf' => ['Event', 'CreativeWork'], |
|
87 | + 'supersededBy' => ['Class', 'Property', 'Enumeration'], |
|
88 | + 'url' => ['URL'] |
|
89 | + ]; |
|
90 | + } |
|
91 | + |
|
92 | + |
|
93 | + /** |
|
94 | + * @inheritdoc |
|
95 | + */ |
|
96 | + public function getSchemaPropertyDescriptions(): array |
|
97 | + { |
|
98 | + return [ |
|
99 | + '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.', |
|
100 | + 'alternateName' => 'An alias for the item.', |
|
101 | + 'description' => 'A description of the item.', |
|
102 | + '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.', |
|
103 | + '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. ', |
|
104 | + 'image' => 'An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].', |
|
105 | + '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.', |
|
106 | + 'name' => 'The name of the item.', |
|
107 | + 'potentialAction' => 'Indicates a potential Action, which describes an idealized action in which this thing would play an \'object\' role.', |
|
108 | + '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.', |
|
109 | + 'subjectOf' => 'A CreativeWork or Event about this Thing.', |
|
110 | + 'supersededBy' => 'Relates a term (i.e. a property, class or enumeration) to one that supersedes it.', |
|
111 | + 'url' => 'URL of the item.' |
|
112 | + ]; |
|
113 | + } |
|
114 | + |
|
115 | + |
|
116 | + /** |
|
117 | + * @inheritdoc |
|
118 | + */ |
|
119 | + public function getGoogleRequiredSchema(): array |
|
120 | + { |
|
121 | + return ['description', 'name']; |
|
122 | + } |
|
123 | + |
|
124 | + |
|
125 | + /** |
|
126 | + * @inheritdoc |
|
127 | + */ |
|
128 | + public function getGoogleRecommendedSchema(): array |
|
129 | + { |
|
130 | + return ['image', 'url']; |
|
131 | + } |
|
132 | + |
|
133 | + |
|
134 | + /** |
|
135 | + * @inheritdoc |
|
136 | + */ |
|
137 | + public function defineRules(): array |
|
138 | + { |
|
139 | + $rules = parent::defineRules(); |
|
140 | + $rules = array_merge($rules, [ |
|
141 | + [$this->getSchemaPropertyNames(), 'validateJsonSchema'], |
|
142 | + [$this->getGoogleRequiredSchema(), 'required', 'on' => ['google'], 'message' => 'This property is required by Google.'], |
|
143 | + [$this->getGoogleRecommendedSchema(), 'required', 'on' => ['google'], 'message' => 'This property is recommended by Google.'] |
|
144 | + ]); |
|
145 | + |
|
146 | + return $rules; |
|
147 | + } |
|
148 | 148 | } |